This class rasterizes particles (with position, radius and velocity) into a narrow-band level set.
More...
This class rasterizes particles (with position, radius and velocity) into a narrow-band level set.
- Note
- This fast particle to level set converter is always intended to be combined with some kind of surface post processing, i.e. tools::Filter. Without such post processing the generated surface is typically too noisy and blooby. However it serves as a great and fast starting point for subsequent level set surface processing and convolution. In the near future we will add support for anisotropic particle kernels.
The ParticleListT
template argument below refers to any class with the following interface (see unittest/TestParticlesToLevelSet.cc and SOP_DW_OpenVDBParticleVoxelizer for practical examples):
class ParticleList {
...
public:
};
- Note
- All methods are assumed to be thread-safe. Also note all access methods return by value since this allows for especailly the radius and velocities to be scaled (i.e. modified) relative to the internal representations (see unittest/TestParticlesToLevelSet.cc for an example).
The InterruptT
template argument below refers to any class with the following interface:
class Interrupter {
...
public:
void start(const char* name = NULL)
void end()
};
- Note
- If no template argument is provided for this InterruptT the util::NullInterrupter is used which implies that all interrupter calls are no-ops (i.e. incurs no computational overhead).