HDK
|
#include <ParticlesToLevelSet.h>
Public Types | |
using | DisableT = typename std::is_void< AttributeT >::type |
using | InterrupterType = InterrupterT |
using | SdfGridType = SdfGridT |
using | SdfType = typename SdfGridT::ValueType |
using | AttType = typename std::conditional< DisableT::value, size_t, AttributeT >::type |
using | AttGridType = typename SdfGridT::template ValueConverter< AttType >::Type |
Public Member Functions | |
ParticlesToLevelSet (SdfGridT &grid, InterrupterT *interrupt=nullptr) | |
Constructor using an existing boolean or narrow-band level set grid. More... | |
~ParticlesToLevelSet () | |
void | finalize (bool prune=false) |
This method syncs up the level set and attribute grids and therefore needs to be called before any of those grids are used and after the last call to any of the rasterizer methods. More... | |
AttGridType::Ptr | attributeGrid () |
Return a pointer to the grid containing the optional user-defined attribute. More... | |
Real | getVoxelSize () const |
Return the size of a voxel in world units. More... | |
Real | getHalfWidth () const |
Return the half-width of the narrow band in voxel units. More... | |
Real | getRmin () const |
Return the smallest radius allowed in voxel units. More... | |
void | setRmin (Real Rmin) |
Set the smallest radius allowed in voxel units. More... | |
Real | getRmax () const |
Return the largest radius allowed in voxel units. More... | |
void | setRmax (Real Rmax) |
Set the largest radius allowed in voxel units. More... | |
bool | ignoredParticles () const |
Return true if any particles were ignored due to their size. More... | |
size_t | getMinCount () const |
Return the number of particles that were ignored because they were smaller than the minimum radius. More... | |
size_t | getMaxCount () const |
Return the number of particles that were ignored because they were larger than the maximum radius. More... | |
int | getGrainSize () const |
Return the grain size used for threading. More... | |
void | setGrainSize (int grainSize) |
Set the grain size used for threading. More... | |
template<typename ParticleListT > | |
void | rasterizeSpheres (const ParticleListT &pa) |
Rasterize each particle as a sphere with the particle's position and radius. More... | |
template<typename ParticleListT > | |
void | rasterizeSpheres (const ParticleListT &pa, Real radius) |
Rasterize each particle as a sphere with the particle's position and a fixed radius. More... | |
template<typename ParticleListT > | |
void | rasterizeTrails (const ParticleListT &pa, Real delta=1.0) |
Rasterize each particle as a trail comprising the CSG union of spheres of decreasing radius. More... | |
Static Public Attributes | |
static const bool | OutputIsMask = std::is_same<SdfType, bool>::value |
Definition at line 159 of file ParticlesToLevelSet.h.
using openvdb::OPENVDB_VERSION_NAME::tools::ParticlesToLevelSet< SdfGridT, AttributeT, InterrupterT >::AttGridType = typename SdfGridT::template ValueConverter<AttType>::Type |
Definition at line 169 of file ParticlesToLevelSet.h.
using openvdb::OPENVDB_VERSION_NAME::tools::ParticlesToLevelSet< SdfGridT, AttributeT, InterrupterT >::AttType = typename std::conditional<DisableT::value, size_t, AttributeT>::type |
Definition at line 168 of file ParticlesToLevelSet.h.
using openvdb::OPENVDB_VERSION_NAME::tools::ParticlesToLevelSet< SdfGridT, AttributeT, InterrupterT >::DisableT = typename std::is_void<AttributeT>::type |
Definition at line 162 of file ParticlesToLevelSet.h.
using openvdb::OPENVDB_VERSION_NAME::tools::ParticlesToLevelSet< SdfGridT, AttributeT, InterrupterT >::InterrupterType = InterrupterT |
Definition at line 163 of file ParticlesToLevelSet.h.
using openvdb::OPENVDB_VERSION_NAME::tools::ParticlesToLevelSet< SdfGridT, AttributeT, InterrupterT >::SdfGridType = SdfGridT |
Definition at line 165 of file ParticlesToLevelSet.h.
using openvdb::OPENVDB_VERSION_NAME::tools::ParticlesToLevelSet< SdfGridT, AttributeT, InterrupterT >::SdfType = typename SdfGridT::ValueType |
Definition at line 166 of file ParticlesToLevelSet.h.
|
inlineexplicit |
Constructor using an existing boolean or narrow-band level set grid.
grid | grid into which particles are rasterized |
interrupt | callback to interrupt a long-running process |
If the input grid is already populated with signed distances, particles are unioned onto the existing level set surface.
The width in voxel units of the generated narrow band level set is given by 2×background/dx, where background is the background value stored in the grid and dx is the voxel size derived from the transform associated with the grid. Also note that −background corresponds to the constant value inside the generated narrow-band level set.
AttributeT
is not void
, attributes are generated only for voxels that overlap with particles, not for any other preexisting voxels (for which no attributes exist!). Definition at line 293 of file ParticlesToLevelSet.h.
|
inline |
Definition at line 193 of file ParticlesToLevelSet.h.
|
inline |
Return a pointer to the grid containing the optional user-defined attribute.
AttributeT
is void
) or if finalize is not called, the pointer will be null. Definition at line 208 of file ParticlesToLevelSet.h.
|
inline |
This method syncs up the level set and attribute grids and therefore needs to be called before any of those grids are used and after the last call to any of the rasterizer methods.
It has no effect or overhead if attribute transfer is disabled (i.e., if AttributeT
is void
) and prune is false
.
Definition at line 359 of file ParticlesToLevelSet.h.
|
inline |
Return the grain size used for threading.
Definition at line 236 of file ParticlesToLevelSet.h.
|
inline |
Return the half-width of the narrow band in voxel units.
Definition at line 214 of file ParticlesToLevelSet.h.
|
inline |
Return the number of particles that were ignored because they were larger than the maximum radius.
Definition at line 233 of file ParticlesToLevelSet.h.
|
inline |
Return the number of particles that were ignored because they were smaller than the minimum radius.
Definition at line 230 of file ParticlesToLevelSet.h.
|
inline |
Return the largest radius allowed in voxel units.
Definition at line 222 of file ParticlesToLevelSet.h.
|
inline |
Return the smallest radius allowed in voxel units.
Definition at line 217 of file ParticlesToLevelSet.h.
|
inline |
Return the size of a voxel in world units.
Definition at line 211 of file ParticlesToLevelSet.h.
|
inline |
Return true
if any particles were ignored due to their size.
Definition at line 227 of file ParticlesToLevelSet.h.
|
inline |
Rasterize each particle as a sphere with the particle's position and radius.
For level set output, all spheres are CSG-unioned.
Definition at line 317 of file ParticlesToLevelSet.h.
|
inline |
Rasterize each particle as a sphere with the particle's position and a fixed radius.
For level set output, all spheres are CSG-unioned.
pa | particles with positions |
radius | fixed sphere radius in world units. |
Definition at line 331 of file ParticlesToLevelSet.h.
|
inline |
Rasterize each particle as a trail comprising the CSG union of spheres of decreasing radius.
pa | particles with position, radius and velocity. |
delta | controls the distance between sphere instances |
Definition at line 345 of file ParticlesToLevelSet.h.
|
inline |
Set the grain size used for threading.
Definition at line 239 of file ParticlesToLevelSet.h.
|
inline |
Set the largest radius allowed in voxel units.
Definition at line 224 of file ParticlesToLevelSet.h.
|
inline |
Set the smallest radius allowed in voxel units.
Definition at line 219 of file ParticlesToLevelSet.h.
|
static |
Definition at line 171 of file ParticlesToLevelSet.h.