The sphere class creates an interpolated voxel-sphere. More...
#include <sphere.hpp>
Public Types | |
typedef configType | t_config |
typedef base< t_config > | t_base |
typedef sharedPointer< sphere < t_config > > | 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 | |
void | setSphere (const ::blub::sphere &desc) |
setSphere sets the describing sphere. Dont set it while caluculating voxel. More... | |
const ::blub::sphere & | getSphere () const |
getSphere More... | |
blub::axisAlignedBox | getAxisAlignedBoundingBox (const blub::transform &trans) const override |
getAxisAlignedBoundingBox returns the transformed aab that includes the sphere. 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::sphere &desc) |
creates an instance More... | |
Protected Member Functions | |
bool | calculateOneVoxel (const vector3 &pos, t_voxel *resultVoxel) const override |
calculateOneVoxel calculates on voxel in getAxisAlignedBoundingBox(). More... | |
sphere (const ::blub::sphere &desc) | |
![]() | |
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 | |
::blub::sphere | m_sphere |
![]() | |
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 sphere class creates an interpolated voxel-sphere.
|
inlineoverrideprotectedvirtual |
calculateOneVoxel calculates on voxel in getAxisAlignedBoundingBox().
pos | absolute voxel position. |
resultVoxel | interpolation gets set if inside sphere. |
Reimplemented from blub::procedural::voxel::edit::base< configType >.
|
inlinestatic |
creates an instance
desc | Describes the voxels to create |
|
inlineoverridevirtual |
getAxisAlignedBoundingBox returns the transformed aab that includes the sphere.
trans | Transform. |
Implements blub::procedural::voxel::edit::base< configType >.
|
inline |
getSphere
|
inline |
setSphere sets the describing sphere. Dont set it while caluculating voxel.
desc |