The noise class generates a random terrain using simplex noise http://en.wikipedia.org/wiki/Simplex_noise . Original code http://webstaff.itn.liu.se/~stegu/simplexnoise/SimplexNoise.java. More...
#include <noise.hpp>
Public Types | |
typedef boost::function< bool(vector3, real &)> | t_callbackInterpolation |
typedef configType | t_config |
typedef base< t_config > | t_base |
typedef sharedPointer< noise > | pointer |
typedef t_config::t_data | t_voxel |
![]() | |
typedef configType | t_config |
typedef enableSharedFromThis < base< t_config > > | t_base |
typedef sharedPointer< base < t_config > > | pointer |
typedef t_config::t_container::t_simple | t_voxelContainerSimple |
typedef t_config::t_container::t_tile | t_voxelContainerTile |
typedef t_config::t_data | t_voxel |
![]() | |
typedef std::enable_shared_from_this < base< configType > > | t_base |
typedef blub::sharedPointer < base< configType >const > | t_thisPtrConst |
typedef blub::sharedPointer < base< configType > > | t_thisPtr |
Public Member Functions | |
virtual | ~noise () |
~noise destructor | |
blub::axisAlignedBox | getAxisAlignedBoundingBox (const transform &trans) const override |
getAxisAlignedBoundingBox returns transformed aab of the to generate voxel More... | |
![]() | |
virtual | ~base () |
destructor | |
void | calculateVoxel (const transform &trans) const |
calculates voxel in the container u have to set by setVoxelContainer() before. If setVoxelContainer() didn't get called before, method will assert. More... | |
virtual void | calculateVoxel (t_voxelContainerTile *voxelContainer, const vector3int32 &voxelContainerOffset, const transform &trans) const |
calculates all voxel in getAxisAlignedBoundingBox() and inserts them into voxelContainer. Method gets called once per tile from various threads. Voxel only will get set if the interpolation is higher than the inerpoaltion before calculation. More... | |
void | setCut (const bool &cut) |
Enable or disable cut. Don't change the value while active calculation. More... | |
const bool & | getCut () const |
Returns if cutting is enabled. More... | |
void | setVoxelContainer (t_voxelContainerSimple *toSet) |
Sets the voxelcontainer used by calculateVoxel(). More... | |
t_voxelContainerSimple * | getVoxelContainer () const |
![]() | |
t_thisPtrConst | getSharedThisPtr () const |
t_thisPtr | getSharedThisPtr () |
Static Public Member Functions | |
static pointer | create (const blub::axisAlignedBox &desc, const vector3 &scale, const uint32 &seed=0, const t_callbackInterpolation &callbackInterpolation=[](const vector3 &, real &value){value *=1024;return true;}) |
creates an instance of the class and returns it as shared_ptr<> More... | |
Protected Member Functions | |
int32 | permutation (const int32 index) const |
bool | calculateOneVoxel (const vector3 &pos, t_voxel *resultVoxel) const override |
calculateOneVoxel scales pos by scale set in constructor and calculates the noise. More... | |
noise (const blub::axisAlignedBox &desc, const vector3 &scale, const uint32 &seed, const t_callbackInterpolation &callbackInterpolation) | |
noise Contructor - same as create() | |
![]() | |
virtual void | createLine (t_voxelContainerTile *voxelContainer, const vector3int32 &posVoxel, const real &from, const real &len, const axis &ax, const blub::plane &planeA, const blub::plane &planeB) const |
createLine creates a voxel-line on one axis with a specific length More... | |
Protected Attributes | |
const blub::axisAlignedBox | m_aab |
const vector3 | m_scale |
const t_callbackInterpolation | m_callbackInterpolation |
vector< uint8_t > | m_permutation |
![]() | |
t_voxelContainerSimple * | m_voxelContainer |
bool | m_cut |
Additional Inherited Members | |
![]() | |
enum | axis { x, y, z } |
The axis enum is used by createLine() for describing the direction. | |
The noise class generates a random terrain using simplex noise http://en.wikipedia.org/wiki/Simplex_noise . Original code http://webstaff.itn.liu.se/~stegu/simplexnoise/SimplexNoise.java.
|
inlineoverrideprotectedvirtual |
calculateOneVoxel scales pos by scale set in constructor and calculates the noise.
pos | absolute voxel-position |
resultVoxel | gets set if interpolation larger -127 |
Reimplemented from blub::procedural::voxel::edit::base< configType >.
|
inlinestatic |
creates an instance of the class and returns it as shared_ptr<>
desc | Defines the size in which the terrain should get generated. |
scale | Gets used to scale the voxel-position before calculating the interpolation |
seed | Used before calling std::random_shuffle |
callbackInterpolation | Callback for the generated interpolation. |
|
inlineoverridevirtual |
getAxisAlignedBoundingBox returns transformed aab of the to generate voxel
trans | Transform |
Implements blub::procedural::voxel::edit::base< configType >.