Wasabi
Public Member Functions | Public Attributes | Protected Attributes | List of all members
WPhysicsComponent Class Referenceabstract

#include <WPhysicsComponent.hpp>

Inheritance diagram for WPhysicsComponent:
WBulletPhysics WHavokPhysics

Public Member Functions

 WPhysicsComponent (class Wasabi *app)
 
virtual WError Initialize (bool debug=false)=0
 
virtual void Cleanup ()=0
 
virtual void Start ()=0
 
virtual void Stop ()=0
 
virtual void Step (float deltaTime)=0
 
virtual bool Stepping () const =0
 
virtual WRigidBodyCreateRigidBody (uint32_t ID=0) const =0
 
virtual bool RayCast (WVector3 from, WVector3 to, W_RAYCAST_OUTPUT *out=nullptr)=0
 
virtual void SetSpeed (float fSpeed)=0
 
virtual void SetGravity (float x, float y, float z)=0
 
virtual void SetGravity (WVector3 gravity)=0
 

Public Attributes

WRigidBodyManagerRigidBodyManager
 

Protected Attributes

class Wasabim_app
 

Detailed Description

A physics component is a base class that can be derived to supply physics implementation for an application. A physics component provides an interface to manage the basic operations of a physics engine.

Member Function Documentation

◆ Cleanup()

virtual void WPhysicsComponent::Cleanup ( )
pure virtual

Frees all resources allocated by the physics engine.

Implemented in WHavokPhysics, and WBulletPhysics.

◆ CreateRigidBody()

virtual WRigidBody* WPhysicsComponent::CreateRigidBody ( uint32_t  ID = 0) const
pure virtual

Creates a new rigid body instance. This is equivalent to calling new WRigidBody(app, ID), so care must be taken to free the resource when done with it.

Parameters
IDID for the created rigid body
Returns
A newly allocated rigid body instance

Implemented in WBulletPhysics.

◆ Initialize()

virtual WError WPhysicsComponent::Initialize ( bool  debug = false)
pure virtual

Initializes the physics engine.

Parameters
debugIf set to true, the physics will run in debug mode
Returns
Error code, see WError.h

Implemented in WBulletPhysics.

◆ RayCast()

virtual bool WPhysicsComponent::RayCast ( WVector3  from,
WVector3  to,
W_RAYCAST_OUTPUT out = nullptr 
)
pure virtual

Performs a ray cast operation on the physics objects. A ray cast operation checks if a ray segment (given to the function) intersects any geometry, as far as the physics engine is concerned.

Parameters
fromStarting point of the ray
toEnd point of the ray
outA pointer to a structure to be filled with extra output information
Returns
true if the ray intersects some geometry, false otherwise

Implemented in WBulletPhysics, and WHavokPhysics.

◆ SetGravity() [1/2]

virtual void WPhysicsComponent::SetGravity ( float  x,
float  y,
float  z 
)
pure virtual

Sets the physics gravity.

Parameters
xGravity on the x-axis
yGravity on the y-axis
zGravity on the z-axis

Implemented in WHavokPhysics, and WBulletPhysics.

◆ SetGravity() [2/2]

virtual void WPhysicsComponent::SetGravity ( WVector3  gravity)
pure virtual

Sets the physics gravity.

Parameters
gravityPhysics gravity vector

Implemented in WHavokPhysics, and WBulletPhysics.

◆ SetSpeed()

virtual void WPhysicsComponent::SetSpeed ( float  fSpeed)
pure virtual

Sets the simulation speed multiplier

Parameters
fSpeedSpeed multiplier, must be > 0 (1 is normal speed)

Implemented in WHavokPhysics, and WBulletPhysics.

◆ Start()

virtual void WPhysicsComponent::Start ( )
pure virtual

Start the physics simulation.

Implemented in WHavokPhysics, and WBulletPhysics.

◆ Step()

virtual void WPhysicsComponent::Step ( float  deltaTime)
pure virtual

Step the physics simulation a certain time forward.

Parameters
deltaTimeTime to step the simulation

Implemented in WHavokPhysics, and WBulletPhysics.

◆ Stepping()

virtual bool WPhysicsComponent::Stepping ( ) const
pure virtual

This function must return true if called during Step(), and false otherwise

Returns
true if the physics simulation is stepping, false otherwise

Implemented in WHavokPhysics, and WBulletPhysics.

◆ Stop()

virtual void WPhysicsComponent::Stop ( )
pure virtual

Stop (pause) the physics simulation.

Implemented in WHavokPhysics, and WBulletPhysics.

Member Data Documentation

◆ m_app

class Wasabi* WPhysicsComponent::m_app
protected

A pointer to the Wasabi application


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