Jet  v1.3.3
rigid_body_collider3.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_RIGID_BODY_COLLIDER3_H_
8 #define INCLUDE_JET_RIGID_BODY_COLLIDER3_H_
9 
10 #include <jet/collider3.h>
11 #include <jet/quaternion.h>
12 
13 namespace jet {
14 
21 class RigidBodyCollider3 final : public Collider3 {
22  public:
23  class Builder;
24 
27 
30 
33 
36  const Surface3Ptr& surface,
37  const Vector3D& linearVelocity,
38  const Vector3D& angularVelocity);
39 
41  Vector3D velocityAt(const Vector3D& point) const override;
42 
44  static Builder builder();
45 };
46 
48 typedef std::shared_ptr<RigidBodyCollider3> RigidBodyCollider3Ptr;
49 
50 
55  public:
58 
61 
64 
67 
70 
71  private:
72  Surface3Ptr _surface;
73  Vector3D _linearVelocity{0, 0, 0};
74  Vector3D _angularVelocity{0, 0, 0};
75 };
76 
77 } // namespace jet
78 
79 #endif // INCLUDE_JET_RIGID_BODY_COLLIDER3_H_
jet::RigidBodyCollider3::builder
static Builder builder()
Returns builder fox RigidBodyCollider3.
jet::RigidBodyCollider3
3-D rigid body collider class.
Definition: rigid_body_collider3.h:21
jet::Collider3
Abstract base class for generic collider object.
Definition: collider3.h:24
jet::RigidBodyCollider3::RigidBodyCollider3
RigidBodyCollider3(const Surface3Ptr &surface)
Constructs a collider with a surface.
jet::RigidBodyCollider3::Builder::withLinearVelocity
Builder & withLinearVelocity(const Vector3D &linearVelocity)
Returns builder with linear velocity.
jet::RigidBodyCollider3::linearVelocity
Vector3D linearVelocity
Linear velocity of the rigid body.
Definition: rigid_body_collider3.h:23
jet::RigidBodyCollider3::Builder::makeShared
RigidBodyCollider3Ptr makeShared() const
Builds shared pointer of RigidBodyCollider3 instance.
jet::RigidBodyCollider3Ptr
std::shared_ptr< RigidBodyCollider3 > RigidBodyCollider3Ptr
Shared pointer for the RigidBodyCollider3 type.
Definition: rigid_body_collider3.h:48
quaternion.h
jet::Collider3::surface
const Surface3Ptr & surface() const
Returns the surface instance.
collider3.h
jet::Surface3Ptr
std::shared_ptr< Surface3 > Surface3Ptr
Shared pointer for the Surface3 type.
Definition: surface3.h:109
jet
Definition: advection_solver2.h:18
jet::RigidBodyCollider3::velocityAt
Vector3D velocityAt(const Vector3D &point) const override
Returns the velocity of the collider at given point.
jet::RigidBodyCollider3::RigidBodyCollider3
RigidBodyCollider3(const Surface3Ptr &surface, const Vector3D &linearVelocity, const Vector3D &angularVelocity)
Constructs a collider with a surface and other parameters.
jet::RigidBodyCollider3::Builder::withAngularVelocity
Builder & withAngularVelocity(const Vector3D &angularVelocity)
Returns builder with angular velocity.
jet::RigidBodyCollider3::Builder::withSurface
Builder & withSurface(const Surface3Ptr &surface)
Returns builder with surface.
jet::RigidBodyCollider3::angularVelocity
Vector3D angularVelocity
Angular velocity of the rigid body.
Definition: rigid_body_collider3.h:29
jet::Vector< T, 3 >
3-D vector class.
Definition: vector3.h:25
jet::RigidBodyCollider3::Builder::build
RigidBodyCollider3 build() const
Builds RigidBodyCollider3.
jet::RigidBodyCollider3::Builder
Front-end to create RigidBodyCollider3 objects step by step.
Definition: rigid_body_collider3.h:54