OpenVDB
12.0.0
|
Rasterize particles with position, radius and velocity into either a boolean mask grid or a narrow-band level set grid. More...
#include <openvdb/Types.h>
#include <openvdb/Grid.h>
#include <openvdb/math/Math.h>
#include <openvdb/math/Transform.h>
#include <openvdb/tree/LeafManager.h>
#include <openvdb/util/logging.h>
#include <openvdb/util/NullInterrupter.h>
#include <openvdb/util/Assert.h>
#include <openvdb/thread/Threading.h>
#include "Composite.h"
#include "PointPartitioner.h"
#include "Prune.h"
#include "SignedFloodFill.h"
#include <tbb/parallel_reduce.h>
#include <tbb/blocked_range.h>
#include <functional>
#include <iostream>
#include <type_traits>
#include <vector>
Go to the source code of this file.
Classes | |
class | ParticlesToLevelSet< SdfGridT, AttributeT, InterrupterT > |
Namespaces | |
openvdb | |
openvdb::v12_0 | |
openvdb::v12_0::tools | |
Functions | |
template<typename GridT , typename ParticleListT , typename InterrupterT = util::NullInterrupter> | |
void | particlesToSdf (const ParticleListT &, GridT &, InterrupterT *=nullptr) |
Populate a scalar, floating-point grid with CSG-unioned level set spheres described by the given particle positions and radii. More... | |
template<typename GridT , typename ParticleListT , typename InterrupterT = util::NullInterrupter> | |
void | particlesToSdf (const ParticleListT &, GridT &, Real radius, InterrupterT *=nullptr) |
Populate a scalar, floating-point grid with fixed-size, CSG-unioned level set spheres described by the given particle positions and the specified radius. More... | |
template<typename GridT , typename ParticleListT , typename InterrupterT = util::NullInterrupter> | |
void | particleTrailsToSdf (const ParticleListT &, GridT &, Real delta=1, InterrupterT *=nullptr) |
Populate a scalar, floating-point grid with CSG-unioned trails of level set spheres with decreasing radius, where the starting position and radius and the direction of each trail is given by particle attributes. More... | |
template<typename GridT , typename ParticleListT , typename InterrupterT = util::NullInterrupter> | |
void | particlesToMask (const ParticleListT &, GridT &, InterrupterT *=nullptr) |
Activate a boolean grid wherever it intersects the spheres described by the given particle positions and radii. More... | |
template<typename GridT , typename ParticleListT , typename InterrupterT = util::NullInterrupter> | |
void | particlesToMask (const ParticleListT &, GridT &, Real radius, InterrupterT *=nullptr) |
Activate a boolean grid wherever it intersects the fixed-size spheres described by the given particle positions and the specified radius. More... | |
template<typename GridT , typename ParticleListT , typename InterrupterT = util::NullInterrupter> | |
void | particleTrailsToMask (const ParticleListT &, GridT &, Real delta=1, InterrupterT *=nullptr) |
Activate a boolean grid wherever it intersects trails of spheres with decreasing radius, where the starting position and radius and the direction of each trail is given by particle attributes. More... | |
Rasterize particles with position, radius and velocity into either a boolean mask grid or a narrow-band level set grid.
Optionally, arbitrary attributes on the particles can be transferred, resulting in additional output grids with the same topology as the main grid.
For particle access, any class with the following interface may be used (see the unit test or the From Particles Houdini SOP for practical examples):
Some functions accept an interrupter argument. This refers to any class with the following interface:
The default interrupter is NullInterrupter, for which all calls are no-ops that incur no computational overhead.