Jet  v1.3.3
collider_set3.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_COLLIDER_SET3_H_
8 #define INCLUDE_JET_COLLIDER_SET3_H_
9 
10 #include <jet/collider3.h>
11 #include <jet/surface_set3.h>
12 #include <vector>
13 
14 namespace jet {
15 
17 class ColliderSet3 final : public Collider3 {
18  public:
19  class Builder;
20 
23 
25  explicit ColliderSet3(const std::vector<Collider3Ptr>& others);
26 
28  Vector3D velocityAt(const Vector3D& point) const override;
29 
32 
34  size_t numberOfColliders() const;
35 
37  Collider3Ptr collider(size_t i) const;
38 
40  static Builder builder();
41 
42  private:
43  std::vector<Collider3Ptr> _colliders;
44 };
45 
47 typedef std::shared_ptr<ColliderSet3> ColliderSet3Ptr;
48 
49 
53 class ColliderSet3::Builder final {
54  public:
56  Builder& withColliders(const std::vector<Collider3Ptr>& others);
57 
60 
63 
64  private:
65  std::vector<Collider3Ptr> _colliders;
66 };
67 
68 } // namespace jet
69 
70 #endif // INCLUDE_JET_COLLIDER_SET3_H_
jet::ColliderSet3::velocityAt
Vector3D velocityAt(const Vector3D &point) const override
Returns the velocity of the collider at given point.
jet::ColliderSet3::Builder
Front-end to create ColliderSet3 objects step by step.
Definition: collider_set3.h:53
jet::Collider3
Abstract base class for generic collider object.
Definition: collider3.h:24
jet::ColliderSet3::addCollider
void addCollider(const Collider3Ptr &collider)
Adds a collider to the set.
jet::ColliderSet3::collider
Collider3Ptr collider(size_t i) const
Returns collider at index i.
surface_set3.h
collider3.h
jet::ColliderSet3::Builder::withColliders
Builder & withColliders(const std::vector< Collider3Ptr > &others)
Returns builder with other colliders.
jet
Definition: advection_solver2.h:18
jet::ColliderSet3Ptr
std::shared_ptr< ColliderSet3 > ColliderSet3Ptr
Shared pointer for the ColliderSet3 type.
Definition: collider_set3.h:47
jet::ColliderSet3::ColliderSet3
ColliderSet3(const std::vector< Collider3Ptr > &others)
Constructs with other colliders.
jet::ColliderSet3::numberOfColliders
size_t numberOfColliders() const
Returns number of colliders.
jet::ColliderSet3
Collection of 3-D colliders.
Definition: collider_set3.h:17
jet::ColliderSet3::Builder::build
ColliderSet3 build() const
Builds ColliderSet3.
jet::Vector< T, 3 >
3-D vector class.
Definition: vector3.h:25
jet::ColliderSet3::builder
static Builder builder()
Returns builder fox ColliderSet3.
jet::ColliderSet3::ColliderSet3
ColliderSet3()
Default constructor.
jet::Collider3Ptr
std::shared_ptr< Collider3 > Collider3Ptr
Shared pointer type for the Collider2.
Definition: collider3.h:118
jet::ColliderSet3::Builder::makeShared
ColliderSet3Ptr makeShared() const
Builds shared pointer of ColliderSet3 instance.