Simulant  21.12-574
A portable game engine for Windows, OSX, Linux, Dreamcast, and PSP
Public Member Functions | Protected Member Functions | List of all members
smlt::behaviours::impl::DynamicBody Class Reference
Inheritance diagram for smlt::behaviours::impl::DynamicBody:
smlt::behaviours::impl::Body smlt::behaviours::StageNodeBehaviour smlt::Behaviour smlt::Updateable smlt::behaviours::KinematicBody smlt::behaviours::RigidBody

Public Member Functions

 DynamicBody (RigidBodySimulation *simulation)
 
float mass () const
 
void set_mass (float m)
 
void set_center_of_mass (const smlt::Vec3 &com)
 
Vec3 center_of_mass () const
 
Vec3 absolute_center_of_mass () const
 
void add_force (const Vec3 &force)
 
void add_force_at_position (const Vec3 &force, const Vec3 &position)
 
void add_relative_force (const Vec3 &force)
 
void add_torque (const Vec3 &torque)
 
void add_relative_torque (const Vec3 &torque)
 
void add_impulse (const Vec3 &impulse)
 
void add_impulse_at_position (const Vec3 &impulse, const Vec3 &position)
 
void add_acceleration_force (const Vec3 &acc)
 
void add_acceleration_force_at_position (const Vec3 &force, const Vec3 &position)
 
void set_linear_damping (const float d)
 
void set_angular_damping (const float d)
 
void set_angular_damping (const Vec3 &v)
 
void set_angular_sleep_tolerance (float x)
 
Vec3 linear_velocity () const
 
Vec3 linear_velocity_at (const Vec3 &position) const
 
void set_linear_velocity (const Vec3 &vel)
 
Vec3 angular_velocity () const
 
void set_angular_velocity (const Vec3 &vel)
 
Vec3 position () const
 
Quaternion rotation () const
 
Vec3 forward ()
 
Vec3 right ()
 
Vec3 up ()
 
bool is_awake () const
 
void lock_rotation (bool x, bool y, bool z)
 
- Public Member Functions inherited from smlt::behaviours::impl::Body
 Body (RigidBodySimulation *simulation)
 
void move_to (const Vec3 &position)
 
void rotate_to (const Quaternion &rotation)
 
bool init ()
 
void clean_up ()
 
void add_box_collider (const Vec3 &size, const PhysicsMaterial &properties, uint16_t kind=0, const Vec3 &offset=Vec3(), const Quaternion &rotation=Quaternion())
 
void add_sphere_collider (const float diameter, const PhysicsMaterial &properties, uint16_t kind=0, const Vec3 &offset=Vec3())
 
void add_capsule_collider (float height, const float diameter, const PhysicsMaterial &properties, uint16_t kind=0)
 
void add_triangle_collider (const smlt::Vec3 &v1, const smlt::Vec3 &v2, const smlt::Vec3 &v3, const PhysicsMaterial &properties, uint16_t kind=0)
 
void register_collision_listener (CollisionListener *listener)
 
void unregister_collision_listener (CollisionListener *listener)
 
Quaternion rotation () const
 
Vec3 position () const
 
- Public Member Functions inherited from smlt::Behaviour
virtual const char * name () const =0
 
void enable ()
 
void disable ()
 
void _update_thunk (float dt) override
 
void _late_update_thunk (float dt) override
 
void _fixed_update_thunk (float step) override
 
bool attached () const
 

Protected Member Functions

b3Body * fetch_body () const
 
- Protected Member Functions inherited from smlt::behaviours::impl::Body
void update (float dt) override
 
void store_collider (b3Fixture *fixture, const PhysicsMaterial &material, uint16_t kind)
 
- Protected Member Functions inherited from smlt::behaviours::StageNodeBehaviour
void on_behaviour_added (Organism *controllable) override
 
void on_behaviour_removed (Organism *controllable) override
 

Additional Inherited Members

- Public Attributes inherited from smlt::behaviours::impl::Body
Property< decltype(&Body::simulation_)> simulation
 
- Public Attributes inherited from smlt::behaviours::StageNodeBehaviour
Property< decltype(&StageNodeBehaviour::stage_node_)> stage_node = { this, &StageNodeBehaviour::stage_node_ }
 
- Public Attributes inherited from smlt::Behaviour
Property< Organism *Behaviour::* > organism
 
- Protected Attributes inherited from smlt::behaviours::impl::Body
b3Body * body_ = nullptr
 
RigidBodySimulationsimulation_ = nullptr
 
std::pair< Vec3, Quaternionlast_state_
 
std::unordered_map< b3Fixture *, ColliderDetailscollider_details_
 

Member Function Documentation

◆ add_acceleration_force()

void smlt::behaviours::impl::DynamicBody::add_acceleration_force ( const Vec3 acc)

Add a force to the body over time, ignoring mass


The documentation for this class was generated from the following files: