Wasabi
Public Member Functions | Static Public Member Functions | List of all members
WBulletRigidBody Class Reference

#include <WBulletRigidBody.hpp>

Inheritance diagram for WBulletRigidBody:
WRigidBody WBase WOrientation

Public Member Functions

virtual std::string GetTypeName () const override
 
virtual void SetID (uint32_t newID) override
 
virtual void SetName (std::string newName) override
 
 WBulletRigidBody (class Wasabi *const app, uint32_t ID=0)
 
virtual WError Create (W_RIGID_BODY_CREATE_INFO createInfo, bool bSaveInfo=false) override
 
virtual void Update (float deltaTime) override
 
virtual void BindObject (WOrientation *obj, WBase *objBase=nullptr) override
 
virtual void SetLinearVelocity (WVector3 vel) override
 
virtual void SetAngularVelocity (WVector3 vel) override
 
virtual void SetLinearDamping (float power) override
 
virtual void SetAngularDamping (float power) override
 
virtual void SetBouncingPower (float bouncing) override
 
virtual void SetMass (float mass) override
 
virtual void SetMassCenter (float x, float y, float z) override
 
virtual void SetFriction (float friction) override
 
virtual void ApplyForce (WVector3 force) override
 
virtual void ApplyForce (WVector3 force, WVector3 relative_pos) override
 
virtual void ApplyImpulse (WVector3 impulse) override
 
virtual void ApplyImpulse (WVector3 impulse, WVector3 relative_pos) override
 
virtual void ApplyTorque (WVector3 torque) override
 
virtual WVector3 getLinearVelocity () const override
 
virtual WVector3 getAngularVelocity () const override
 
virtual WVector3 getTotalForce () const override
 
virtual WVector3 getTotalTorque () const override
 
WMatrix GetWorldMatrix ()
 
virtual bool Valid () const override
 
virtual void OnStateChange (STATE_CHANGE_TYPE type) override
 
virtual WError SaveToStream (WFile *file, std::ostream &outputStream) override
 
virtual WError LoadFromStream (WFile *file, std::istream &inputStream, std::vector< void * > &args, std::string nameSuffix) override
 
- Public Member Functions inherited from WRigidBody
 WRigidBody (class Wasabi *const app, uint32_t ID=0)
 
WError BuildFromGeometries (W_RIGIDBODYTYPE type, class WGeometry *const *geometries, uint32_t numGeometries, bool bFixed=false, bool bSimplify=true, void *mopp=nullptr, uint32_t moppsize=0)
 
void Destroy ()
 
void BindObject (class WObject *const object)
 
void UnbindObject (class WObject *const object)
 
void UnbindObject (uint32_t ID)
 
void Enable ()
 
void Disable ()
 
bool Enabled () const
 
void SetLinearVelocity (float velX, float velY, float velZ)
 
void SetAngularVelocity (float velX, float velY, float velZ)
 
void SetLinearDamping (float power)
 
void SetAngularDamping (float power)
 
void SetMaxLinearVelocity (float fScalarVelocity)
 
void SetMaxAngularVelocity (float fScalarVelocity)
 
void SetMotionType (W_MOTIONTYPE type)
 
void SetBouncingPower (float bouncing)
 
void SetMass (float mass)
 
void SetMassCenter (float x, float y, float z)
 
void SetFriction (float friction)
 
void SetCollisionQuality (W_COLLISIONQUALITY quality)
 
void UpdateLocals ()
 
WMatrix GetWorldMatrix ()
 
hkQuaternion GetRotationQuat ()
 
W_RIGIDBODYTYPE GetType () const
 
hkpRigidBody * GetRigidBody () const
 
bool Valid () const
 
void OnStateChange (STATE_CHANGE_TYPE type)
 
 WRigidBody (class Wasabi *const app, uint32_t ID=0)
 
- Public Member Functions inherited from WBase
 WBase (class Wasabi *const app, uint32_t ID=0)
 
uint32_t GetID () const
 
std::string GetName () const
 
class WasabiGetAppPtr () const
 
void AddReference ()
 
void RemoveReference ()
 
- Public Member Functions inherited from WOrientation
void SetPosition (float x, float y, float z)
 
void SetPosition (const WVector3 pos)
 
void Point (float x, float y, float z)
 
void Point (WVector3 target)
 
void SetAngle (WQuaternion quat)
 
void SetToRotation (const WOrientation *const device)
 
void SetULRVectors (WVector3 up, WVector3 look, WVector3 right)
 
void SetToTransformation (WMatrix mtx)
 
void Yaw (float angle)
 
void Roll (float angle)
 
void Pitch (float angle)
 
void Move (float units)
 
void Strafe (float units)
 
void Fly (float units)
 
float GetPositionX () const
 
float GetPositionY () const
 
float GetPositionZ () const
 
WVector3 GetPosition () const
 
float GetAngleX () const
 
float GetAngleY () const
 
float GetAngleZ () const
 
WQuaternion GetRotation () const
 
WVector3 GetUVector () const
 
WVector3 GetLVector () const
 
WVector3 GetRVector () const
 
virtual void SetBindingMatrix (WMatrix mtx)
 
void RemoveBinding ()
 
WMatrix GetBindingMatrix () const
 
bool IsBound () const
 
WMatrix ComputeTransformation () const
 
WMatrix ComputeInverseTransformation () const
 

Static Public Member Functions

static std::string _GetTypeName ()
 
static std::vector< void * > LoadArgs (bool bSaveInfo=false)
 

Additional Inherited Members

- Protected Attributes inherited from WBase
class Wasabim_app
 
uint32_t m_ID
 
std::string m_name
 

Detailed Description

This represents a rigid body and is responsible for integrating it with the Bullet physics simulation.

Member Function Documentation

◆ _GetTypeName()

static std::string WBulletRigidBody::_GetTypeName ( )
static

Returns "RigidBody" string.

Returns
Returns "RigidBody" string

◆ ApplyForce() [1/2]

virtual void WBulletRigidBody::ApplyForce ( WVector3  force)
overridevirtual

Applies force to the center of the rigid body

Implements WRigidBody.

◆ ApplyForce() [2/2]

virtual void WBulletRigidBody::ApplyForce ( WVector3  force,
WVector3  relative_pos 
)
overridevirtual

Applies force to the rigid body relative to a coordinate (will also apply rotation)

Implements WRigidBody.

◆ ApplyImpulse() [1/2]

virtual void WBulletRigidBody::ApplyImpulse ( WVector3  impulse)
overridevirtual

Applies an impulse to the center of the rigid body

Implements WRigidBody.

◆ ApplyImpulse() [2/2]

virtual void WBulletRigidBody::ApplyImpulse ( WVector3  impulse,
WVector3  relative_pos 
)
overridevirtual

Applies an impulse to the rigid body relative to a coordinate

Implements WRigidBody.

◆ ApplyTorque()

virtual void WBulletRigidBody::ApplyTorque ( WVector3  torque)
overridevirtual

Applies torque to the rigid body

Implements WRigidBody.

◆ BindObject()

virtual void WBulletRigidBody::BindObject ( WOrientation obj,
WBase objBase = nullptr 
)
overridevirtual

Must be implemented to attach a WOrientation to this rigid body

Parameters
objA WOrientation (WObject, WCamera, etc...) to attach
objBaseAn optional (but highly recommended) parameter to specify the WBase* pointer that obj is associated with. This will cause the rigid body to hold a reference to the object until unbound.

Implements WRigidBody.

◆ Create()

virtual WError WBulletRigidBody::Create ( W_RIGID_BODY_CREATE_INFO  createInfo,
bool  bSaveInfo = false 
)
overridevirtual

Must be implemented to initialize the rigid body.

Parameters
createInfoVarious parameters for the rigid body creation
bSaveInfoIf set to true, the rigid body will store the creation information so that it can be later saved to file
Returns
Error code, see WError.h

Implements WRigidBody.

◆ getAngularVelocity()

virtual WVector3 WBulletRigidBody::getAngularVelocity ( ) const
overridevirtual

Retrieves the angular velocity of the rigid body

Implements WRigidBody.

◆ getLinearVelocity()

virtual WVector3 WBulletRigidBody::getLinearVelocity ( ) const
overridevirtual

Retrieves the linear velocity of the rigid body

Implements WRigidBody.

◆ getTotalForce()

virtual WVector3 WBulletRigidBody::getTotalForce ( ) const
overridevirtual

Retrieves the total force currently applied on the rigid body

Implements WRigidBody.

◆ getTotalTorque()

virtual WVector3 WBulletRigidBody::getTotalTorque ( ) const
overridevirtual

Retrieves the total torque currently applied on the rigid body

Implements WRigidBody.

◆ GetTypeName()

virtual std::string WBulletRigidBody::GetTypeName ( ) const
overridevirtual

This function must be implemented by a child class. This is used for debugging, in which a class should return its name.

Returns
The name of the class

Implements WBase.

◆ GetWorldMatrix()

WMatrix WBulletRigidBody::GetWorldMatrix ( )

Retrieves the world matrix for the rigid body.

Returns
World matrix for the rigid body

◆ OnStateChange()

virtual void WBulletRigidBody::OnStateChange ( STATE_CHANGE_TYPE  type)
overridevirtual

A callback called by this class when the entity changes its position or orientation.

Parameters
typeOrientation change type

Implements WRigidBody.

◆ SetAngularDamping()

virtual void WBulletRigidBody::SetAngularDamping ( float  power)
overridevirtual

Sets the angular damping of the rigid body

Implements WRigidBody.

◆ SetAngularVelocity()

virtual void WBulletRigidBody::SetAngularVelocity ( WVector3  vel)
overridevirtual

Sets the angular velocity of the rigid body

Implements WRigidBody.

◆ SetBouncingPower()

virtual void WBulletRigidBody::SetBouncingPower ( float  bouncing)
overridevirtual

Sets the bouncing power (restitution) of the rigid body

Implements WRigidBody.

◆ SetFriction()

virtual void WBulletRigidBody::SetFriction ( float  friction)
overridevirtual

Sets the friction of the rigid body

Implements WRigidBody.

◆ SetID()

virtual void WBulletRigidBody::SetID ( uint32_t  newID)
overridevirtual

Sets the ID of this object and notifies its manager.

Parameters
newIDNew ID

Implements WBase.

◆ SetLinearDamping()

virtual void WBulletRigidBody::SetLinearDamping ( float  power)
overridevirtual

Sets the linear damping of the rigid body

Implements WRigidBody.

◆ SetLinearVelocity()

virtual void WBulletRigidBody::SetLinearVelocity ( WVector3  vel)
overridevirtual

Sets the linear velocity of the rigid body

Implements WRigidBody.

◆ SetMass()

virtual void WBulletRigidBody::SetMass ( float  mass)
overridevirtual

Sets the mass of the rigid body

Implements WRigidBody.

◆ SetMassCenter()

virtual void WBulletRigidBody::SetMassCenter ( float  x,
float  y,
float  z 
)
overridevirtual

Sets the center of mass of the rigid body

Implements WRigidBody.

◆ SetName()

virtual void WBulletRigidBody::SetName ( std::string  newName)
overridevirtual

Sets the name of this object.

Parameters
nameNew name for the object

Implements WBase.

◆ Update()

virtual void WBulletRigidBody::Update ( float  deltaTime)
overridevirtual

Called by WBulletPhysics after stepping the physics simulation to update the rigid bodies.

Parameters
deltaTimeTime elapsed since last frame

Implements WRigidBody.

◆ Valid()

virtual bool WBulletRigidBody::Valid ( ) const
overridevirtual
Returns
Whether or not the rigid body will render properly

Implements WBase.


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