Go to the documentation of this file.
7 #ifndef INCLUDE_JET_VOLUME_GRID_EMITTER2_H_
8 #define INCLUDE_JET_VOLUME_GRID_EMITTER2_H_
27 typedef std::function<double(
double,
const Vector2D&,
double)>
108 typedef std::tuple<ScalarGrid2Ptr, ScalarMapper> ScalarTarget;
109 typedef std::tuple<VectorGrid2Ptr, VectorMapper> VectorTarget;
112 bool _isOneShot =
true;
113 bool _hasEmitted =
false;
114 std::vector<ScalarTarget> _customScalarTargets;
115 std::vector<VectorTarget> _customVectorTargets;
118 double currentTimeInSeconds,
119 double timeIntervalInSeconds)
override;
147 bool _isOneShot =
true;
152 #endif // INCLUDE_JET_VOLUME_GRID_EMITTER2_H_
Builder & withSourceRegion(const Surface2Ptr &sourceRegion)
Returns builder with surface defining source region.
static Builder builder()
Returns builder fox VolumeGridEmitter2.
VolumeGridEmitter2Ptr makeShared() const
Builds shared pointer of VolumeGridEmitter2 instance.
Vector2< double > Vector2D
Double-type 2D vector.
Definition: vector2.h:340
std::function< double(double, const Vector2D &, double)> ScalarMapper
Maps to a scalar value for given signed-dist, location, and old value.
Definition: volume_grid_emitter2.h:24
void addSignedDistanceTarget(const ScalarGrid2Ptr &scalarGridTarget)
Adds signed-distance target to the scalar grid.
std::function< Vector2D(double, const Vector2D &, const Vector2D &)> VectorMapper
Maps to a vector value for given signed-dist, location, and old value.
Definition: volume_grid_emitter2.h:32
bool isOneShot() const
Returns true if this emits only once.
void addStepFunctionTarget(const ScalarGrid2Ptr &scalarGridTarget, double minValue, double maxValue)
Adds step function target to the scalar grid.
Definition: advection_solver2.h:18
std::shared_ptr< ImplicitSurface2 > ImplicitSurface2Ptr
Shared pointer type for the ImplicitSurface2.
Definition: implicit_surface2.h:43
Builder & withIsOneShot(bool isOneShot)
Returns builder with one-shot flag.
virtual ~VolumeGridEmitter2()
Destructor.
std::shared_ptr< Surface2 > Surface2Ptr
Shared pointer for the Surface2 type.
Definition: surface2.h:109
void addTarget(const VectorGrid2Ptr &vectorGridTarget, const VectorMapper &customMapper)
Adds a vector grid target.
Abstract base class for 2-D grid-based emitters.
Definition: grid_emitter2.h:22
2-D vector class.
Definition: vector2.h:24
VolumeGridEmitter2(const ImplicitSurface2Ptr &sourceRegion, bool isOneShot=true)
Constructs an emitter with a source and is-one-shot flag.
std::shared_ptr< ScalarGrid2 > ScalarGrid2Ptr
Shared pointer for the ScalarGrid2 type.
Definition: scalar_grid2.h:188
std::shared_ptr< VolumeGridEmitter2 > VolumeGridEmitter2Ptr
Shared pointer type for the VolumeGridEmitter2.
Definition: volume_grid_emitter2.h:125
const ImplicitSurface2Ptr & sourceRegion() const
Returns implicit surface which defines the source region.
2-D grid-based volumetric emitter.
Definition: volume_grid_emitter2.h:22
std::shared_ptr< VectorGrid2 > VectorGrid2Ptr
Shared pointer for the VectorGrid2 type.
Definition: vector_grid2.h:88
void addTarget(const ScalarGrid2Ptr &scalarGridTarget, const ScalarMapper &customMapper)
Adds a scalar grid target.
Front-end to create VolumeGridEmitter2 objects step by step.
Definition: volume_grid_emitter2.h:131
VolumeGridEmitter2 build() const
Builds VolumeGridEmitter2.