Jet  v1.3.3
grid_emitter_set2.h
Go to the documentation of this file.
1 // Copyright (c) 2018 Doyub Kim
2 //
3 // I am making my contributions/submissions to this project solely in my
4 // personal capacity and am not conveying any rights to any intellectual
5 // property of any third parties.
6 
7 #ifndef INCLUDE_JET_GRID_EMITTER_SET2_H_
8 #define INCLUDE_JET_GRID_EMITTER_SET2_H_
9 
10 #include <jet/grid_emitter2.h>
11 #include <tuple>
12 #include <vector>
13 
14 namespace jet {
15 
19 class GridEmitterSet2 final : public GridEmitter2 {
20  public:
21  class Builder;
22 
25 
27  explicit GridEmitterSet2(const std::vector<GridEmitter2Ptr>& emitters);
28 
30  virtual ~GridEmitterSet2();
31 
33  void addEmitter(const GridEmitter2Ptr& emitter);
34 
36  static Builder builder();
37 
38  private:
39  std::vector<GridEmitter2Ptr> _emitters;
40 
41  void onUpdate(
42  double currentTimeInSeconds,
43  double timeIntervalInSeconds) override;
44 };
45 
47 typedef std::shared_ptr<GridEmitterSet2> GridEmitterSet2Ptr;
48 
49 
54  public:
56  Builder& withEmitters(const std::vector<GridEmitter2Ptr>& emitters);
57 
60 
63 
64  private:
65  std::vector<GridEmitter2Ptr> _emitters;
66 };
67 
68 } // namespace jet
69 
70 #endif // INCLUDE_JET_GRID_EMITTER_SET2_H_
jet::GridEmitterSet2::Builder
Front-end to create GridEmitterSet2 objects step by step.
Definition: grid_emitter_set2.h:53
jet::GridEmitterSet2::addEmitter
void addEmitter(const GridEmitter2Ptr &emitter)
Adds sub-emitter.
grid_emitter2.h
jet::GridEmitterSet2::Builder::build
GridEmitterSet2 build() const
Builds GridEmitterSet2.
jet
Definition: advection_solver2.h:18
jet::GridEmitterSet2::Builder::withEmitters
Builder & withEmitters(const std::vector< GridEmitter2Ptr > &emitters)
Returns builder with list of sub-emitters.
jet::GridEmitter2
Abstract base class for 2-D grid-based emitters.
Definition: grid_emitter2.h:22
jet::GridEmitterSet2::GridEmitterSet2
GridEmitterSet2(const std::vector< GridEmitter2Ptr > &emitters)
Constructs an emitter with sub-emitters.
jet::GridEmitterSet2::GridEmitterSet2
GridEmitterSet2()
Constructs an emitter.
jet::GridEmitterSet2::Builder::makeShared
GridEmitterSet2Ptr makeShared() const
Builds shared pointer of GridEmitterSet2 instance.
jet::GridEmitterSet2Ptr
std::shared_ptr< GridEmitterSet2 > GridEmitterSet2Ptr
Shared pointer type for the GridEmitterSet2.
Definition: grid_emitter_set2.h:47
jet::GridEmitterSet2::~GridEmitterSet2
virtual ~GridEmitterSet2()
Destructor.
jet::GridEmitterSet2
2-D grid-based emitter set.
Definition: grid_emitter_set2.h:19
jet::GridEmitter2Ptr
std::shared_ptr< GridEmitter2 > GridEmitter2Ptr
Shared pointer type for the GridEmitter2.
Definition: grid_emitter2.h:70
jet::GridEmitterSet2::builder
static Builder builder()
Returns builder fox GridEmitterSet2.