Go to the documentation of this file.
7 #ifndef INCLUDE_JET_VOLUME_GRID_EMITTER3_H_
8 #define INCLUDE_JET_VOLUME_GRID_EMITTER3_H_
27 typedef std::function<double(
double,
const Vector3D&,
double)>
108 typedef std::tuple<ScalarGrid3Ptr, ScalarMapper> ScalarTarget;
109 typedef std::tuple<VectorGrid3Ptr, 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_EMITTER3_H_
Builder & withSourceRegion(const Surface3Ptr &sourceRegion)
Returns builder with surface defining source region.
Builder & withIsOneShot(bool isOneShot)
Returns builder with one-shot flag.
std::shared_ptr< ImplicitSurface3 > ImplicitSurface3Ptr
Shared pointer type for the ImplicitSurface3.
Definition: implicit_surface3.h:43
std::function< Vector3D(double, const Vector3D &, const Vector3D &)> VectorMapper
Maps to a vector value for given signed-dist, location, and old value.
Definition: volume_grid_emitter3.h:32
std::shared_ptr< VectorGrid3 > VectorGrid3Ptr
Shared pointer for the VectorGrid3 type.
Definition: vector_grid3.h:103
const ImplicitSurface3Ptr & sourceRegion() const
Returns implicit surface which defines the source region.
std::shared_ptr< VolumeGridEmitter3 > VolumeGridEmitter3Ptr
Shared pointer type for the VolumeGridEmitter3.
Definition: volume_grid_emitter3.h:125
std::shared_ptr< ScalarGrid3 > ScalarGrid3Ptr
Shared pointer for the ScalarGrid3 type.
Definition: scalar_grid3.h:193
std::function< double(double, const Vector3D &, double)> ScalarMapper
Maps to a scalar value for given signed-dist, location, and old value.
Definition: volume_grid_emitter3.h:24
std::shared_ptr< Surface3 > Surface3Ptr
Shared pointer for the Surface3 type.
Definition: surface3.h:109
Definition: advection_solver2.h:18
Abstract base class for 3-D grid-based emitters.
Definition: grid_emitter3.h:22
void addSignedDistanceTarget(const ScalarGrid3Ptr &scalarGridTarget)
Adds signed-distance target to the scalar grid.
VolumeGridEmitter3Ptr makeShared() const
Builds shared pointer of VolumeGridEmitter3 instance.
void addTarget(const VectorGrid3Ptr &vectorGridTarget, const VectorMapper &customMapper)
Adds a vector grid target.
virtual ~VolumeGridEmitter3()
Destructor.
3-D grid-based volumetric emitter.
Definition: volume_grid_emitter3.h:22
void addStepFunctionTarget(const ScalarGrid3Ptr &scalarGridTarget, double minValue, double maxValue)
Adds step function target to the scalar grid.
Vector3< double > Vector3D
Double-type 3D vector.
Definition: vector3.h:349
void addTarget(const ScalarGrid3Ptr &scalarGridTarget, const ScalarMapper &customMapper)
Adds a scalar grid target.
3-D vector class.
Definition: vector3.h:25
VolumeGridEmitter3(const ImplicitSurface3Ptr &sourceRegion, bool isOneShot=true)
Constructs an emitter with a source and is-one-shot flag.
bool isOneShot() const
Returns true if this emits only once.
Front-end to create VolumeGridEmitter3 objects step by step.
Definition: volume_grid_emitter3.h:131
static Builder builder()
Returns builder fox VolumeGridEmitter3.
VolumeGridEmitter3 build() const
Builds VolumeGridEmitter3.