2-D grid-based volumetric emitter. More...
#include <Core/Emitter/VolumeGridEmitter2.hpp>
Classes | |
class | Builder |
Front-end to create VolumeGridEmitter2 objects step by step. More... | |
Public Types | |
using | ScalarMapper = std::function< double(double, const Vector2D &, double)> |
Maps to a scalar value for given signed-dist, location, and old value. More... | |
using | VectorMapper = std::function< Vector2D(double, const Vector2D &, const Vector2D &)> |
Maps to a vector value for given signed-dist, location, and old value. More... | |
Public Types inherited from CubbyFlow::GridEmitter2 | |
using | OnBeginUpdateCallback = std::function< void(GridEmitter2 *, double, double)> |
Callback function type for update calls. More... | |
Public Member Functions | |
VolumeGridEmitter2 (ImplicitSurface2Ptr sourceRegion, bool isOneShot=true) | |
Constructs an emitter with a source and is-one-shot flag. More... | |
VolumeGridEmitter2 (const VolumeGridEmitter2 &)=default | |
Default copy constructor. More... | |
VolumeGridEmitter2 (VolumeGridEmitter2 &&) noexcept=default | |
Default move constructor. More... | |
~VolumeGridEmitter2 () override=default | |
Default virtual destructor. More... | |
VolumeGridEmitter2 & | operator= (const VolumeGridEmitter2 &)=default |
Default copy assignment operator. More... | |
VolumeGridEmitter2 & | operator= (VolumeGridEmitter2 &&) noexcept=default |
Default move assignment operator. More... | |
void | AddSignedDistanceTarget (const ScalarGrid2Ptr &scalarGridTarget) |
Adds signed-distance target to the scalar grid. More... | |
void | AddStepFunctionTarget (const ScalarGrid2Ptr &scalarGridTarget, double minValue, double maxValue) |
Adds step function target to the scalar grid. More... | |
void | AddTarget (const ScalarGrid2Ptr &scalarGridTarget, const ScalarMapper &customMapper) |
Adds a scalar grid target. More... | |
void | AddTarget (const VectorGrid2Ptr &vectorGridTarget, const VectorMapper &customMapper) |
Adds a vector grid target. More... | |
const ImplicitSurface2Ptr & | GetSourceRegion () const |
Returns implicit surface which defines the source region. More... | |
bool | GetIsOneShot () const |
Returns true if this emits only once. More... | |
Public Member Functions inherited from CubbyFlow::GridEmitter2 | |
GridEmitter2 ()=default | |
Default constructor. More... | |
GridEmitter2 (const GridEmitter2 &)=default | |
Default copy constructor. More... | |
GridEmitter2 (GridEmitter2 &&) noexcept=default | |
Default move constructor. More... | |
virtual | ~GridEmitter2 ()=default |
Default virtual destructor. More... | |
GridEmitter2 & | operator= (const GridEmitter2 &)=default |
Default copy assignment operator. More... | |
GridEmitter2 & | operator= (GridEmitter2 &&) noexcept=default |
Default copy assignment operator. More... | |
void | Update (double currentTimeInSeconds, double timeIntervalInSeconds) |
bool | GetIsEnabled () const |
Returns true if the emitter is enabled. More... | |
void | SetIsEnabled (bool enabled) |
Sets true/false to enable/disable the emitter. More... | |
void | SetOnBeginUpdateCallback (const OnBeginUpdateCallback &callback) |
Sets the callback function to be called when GridEmitter2::Update function is invoked. More... | |
Static Public Member Functions | |
static Builder | GetBuilder () |
Returns builder fox VolumeGridEmitter2. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from CubbyFlow::GridEmitter2 | |
void | CallOnBeginUpdateCallback (double currentTimeInSeconds, double timeIntervalInSeconds) |
Detailed Description
2-D grid-based volumetric emitter.
Member Typedef Documentation
◆ ScalarMapper
using CubbyFlow::VolumeGridEmitter2::ScalarMapper = std::function<double(double, const Vector2D&, double)> |
Maps to a scalar value for given signed-dist, location, and old value.
◆ VectorMapper
using CubbyFlow::VolumeGridEmitter2::VectorMapper = std::function<Vector2D(double, const Vector2D&, const Vector2D&)> |
Maps to a vector value for given signed-dist, location, and old value.
Constructor & Destructor Documentation
◆ VolumeGridEmitter2() [1/3]
|
explicit |
Constructs an emitter with a source and is-one-shot flag.
- Parameters
-
[in] sourceRegion Emitting region given by the SDF. [in] isOneShot True if emitter gets disabled after one shot.
◆ VolumeGridEmitter2() [2/3]
|
default |
Default copy constructor.
◆ VolumeGridEmitter2() [3/3]
|
defaultnoexcept |
Default move constructor.
◆ ~VolumeGridEmitter2()
|
overridedefault |
Default virtual destructor.
Member Function Documentation
◆ AddSignedDistanceTarget()
void CubbyFlow::VolumeGridEmitter2::AddSignedDistanceTarget | ( | const ScalarGrid2Ptr & | scalarGridTarget | ) |
Adds signed-distance target to the scalar grid.
◆ AddStepFunctionTarget()
void CubbyFlow::VolumeGridEmitter2::AddStepFunctionTarget | ( | const ScalarGrid2Ptr & | scalarGridTarget, |
double | minValue, | ||
double | maxValue | ||
) |
Adds step function target to the scalar grid.
- Parameters
-
[in] scalarGridTarget The scalar grid target. [in] minValue The minimum value of the step function. [in] maxValue The maximum value of the step function.
◆ AddTarget() [1/2]
void CubbyFlow::VolumeGridEmitter2::AddTarget | ( | const ScalarGrid2Ptr & | scalarGridTarget, |
const ScalarMapper & | customMapper | ||
) |
Adds a scalar grid target.
This function adds a custom target to the emitter. The first parameter defines which grid should it write to. The second parameter, customMapper
, defines how to map signed-distance field from the volume geometry and location of the point to the final scalar value that is going to be written to the target grid. The third parameter defines how to blend the old value from the target grid and the new value from the mapper function.
- Parameters
-
[in] scalarGridTarget The scalar grid target [in] customMapper The custom mapper.
◆ AddTarget() [2/2]
void CubbyFlow::VolumeGridEmitter2::AddTarget | ( | const VectorGrid2Ptr & | vectorGridTarget, |
const VectorMapper & | customMapper | ||
) |
Adds a vector grid target.
This function adds a custom target to the emitter. The first parameter defines which grid should it write to. The second parameter, customMapper
, defines how to map signed-distance field from the volume geometry and location of the point to the final vector value that is going to be written to the target grid. The third parameter defines how to blend the old value from the target grid and the new value from the mapper function.
- Parameters
-
[in] vectorGridTarget The vector grid target [in] customMapper The custom mapper.
◆ GetBuilder()
|
static |
Returns builder fox VolumeGridEmitter2.
◆ GetIsOneShot()
bool CubbyFlow::VolumeGridEmitter2::GetIsOneShot | ( | ) | const |
Returns true if this emits only once.
◆ GetSourceRegion()
const ImplicitSurface2Ptr& CubbyFlow::VolumeGridEmitter2::GetSourceRegion | ( | ) | const |
Returns implicit surface which defines the source region.
◆ operator=() [1/2]
|
default |
Default copy assignment operator.
◆ operator=() [2/2]
|
defaultnoexcept |
Default move assignment operator.
The documentation for this class was generated from the following file:
- Core/Emitter/VolumeGridEmitter2.hpp