StevEngine
StevEngine is a customizable C++ game engine.
Loading...
Searching...
No Matches
StevEngine::Physics::Collider Class Reference

Base class for all collision shapes. More...

#include <physics/Colliders.hpp>

Inheritance diagram for StevEngine::Physics::Collider:
StevEngine::Component StevEngine::Physics::CapsuleCollider StevEngine::Physics::CubeCollider StevEngine::Physics::CylinderCollider StevEngine::Physics::ModelCollider StevEngine::Physics::SphereCollider StevEngine::Physics::TerrainCollider

Public Member Functions

 Collider (JPH::Ref< JPH::Shape > shape, Utilities::Vector3 position=Utilities::Vector3(), Utilities::Quaternion rotation=Utilities::Quaternion(), Utilities::Vector3 scale=Utilities::Vector3(1, 1, 1))
 Create new collider.
 
 Collider (Utilities::Stream &stream)
 Create collider from text serialized data.
 
std::string GetType () const
 Get component type.
 
Utilities::Stream Export (Utilities::StreamType type) const
 Serialize component to a stream.
 
Utilities::Vector3 GetScale () const
 Get local scale.
 
Utilities::Quaternion GetRotation () const
 Get local rotation.
 
Utilities::Vector3 GetPosition () const
 Get local position.
 
void SetScale (Utilities::Vector3 scale)
 Set local scale.
 
void SetRotation (Utilities::Quaternion rotation)
 Set local rotation.
 
void SetPosition (Utilities::Vector3 position)
 Set local position.
 
void SetTransform (Utilities::Vector3 position, Utilities::Quaternion rotation, Utilities::Vector3 scale)
 Set full local transform.
 
Utilities::Range3 GetBounds () const
 Get axis-aligned bounds.
 
Utilities::Vector3 GetCenterOfMass () const
 Get center of mass.
 
JPH::Ref< JPH::Shape > GetShape () const
 Get physics shape.
 
- Public Member Functions inherited from StevEngine::Component
 Component ()
 Create new component.
 
virtual ~Component ()
 Clean up component resources.
 
GameObjectGetParent () const
 Get parent GameObject.
 
SceneGetScene () const
 Get containing Scene.
 
virtual void Update (double deltaTime)
 Update component logic.
 
virtual void Draw (const Utilities::Matrix4 &transform)
 Draw component visuals.
 

Protected Attributes

Utilities::Vector3 scale = Utilities::Vector3(1, 1, 1)
 Local scale.
 
Utilities::Vector3 position = Utilities::Vector3()
 Local position.
 
Utilities::Quaternion rotation = Utilities::Quaternion()
 Local rotation.
 
const JPH::Ref< JPH::Shape > rawShape
 Base physics shape.
 
JPH::Ref< JPH::Shape > shape
 Transformed shape.
 
- Protected Attributes inherited from StevEngine::Component
std::vector< std::pair< Utilities::ID, std::string > > handlers
 Event handler registrations.
 

Friends

class StevEngine::GameObject
 

Detailed Description

Base class for all collision shapes.

Provides common functionality for physics collision shapes. Handles transform updates and shape creation/modification. Integrates with the Jolt physics engine for collision detection.

Constructor & Destructor Documentation

◆ Collider() [1/2]

StevEngine::Physics::Collider::Collider ( JPH::Ref< JPH::Shape > shape,
Utilities::Vector3 position = Utilities::Vector3(),
Utilities::Quaternion rotation = Utilities::Quaternion(),
Utilities::Vector3 scale = Utilities::Vector3(1,1,1) )

Create new collider.

Parameters
shapeJolt physics shape
positionLocal position offset
rotationLocal rotation offset
scaleLocal scale modifier

◆ Collider() [2/2]

StevEngine::Physics::Collider::Collider ( Utilities::Stream & stream)

Create collider from text serialized data.

Parameters
streamStream containing serialized component data

Member Function Documentation

◆ Export()

Utilities::Stream StevEngine::Physics::Collider::Export ( Utilities::StreamType type) const
virtual

Serialize component to a stream.

Parameters
typeType of stream to export to
Returns
Serialized stream

Reimplemented from StevEngine::Component.

◆ GetBounds()

Utilities::Range3 StevEngine::Physics::Collider::GetBounds ( ) const
inline

Get axis-aligned bounds.

Returns
Bounding box in local space

◆ GetCenterOfMass()

Utilities::Vector3 StevEngine::Physics::Collider::GetCenterOfMass ( ) const
inline

Get center of mass.

Returns
Center of mass in local space

◆ GetShape()

JPH::Ref< JPH::Shape > StevEngine::Physics::Collider::GetShape ( ) const
inline

Get physics shape.

Returns
Reference to Jolt shape

◆ GetType()

std::string StevEngine::Physics::Collider::GetType ( ) const
inlinevirtual

Get component type.

Returns
Type identifier string

Implements StevEngine::Component.

◆ SetPosition()

void StevEngine::Physics::Collider::SetPosition ( Utilities::Vector3 position)

Set local position.

Parameters
positionNew position vector

◆ SetRotation()

void StevEngine::Physics::Collider::SetRotation ( Utilities::Quaternion rotation)

Set local rotation.

Parameters
rotationNew rotation quaternion

◆ SetScale()

void StevEngine::Physics::Collider::SetScale ( Utilities::Vector3 scale)

Set local scale.

Parameters
scaleNew scale vector

◆ SetTransform()

void StevEngine::Physics::Collider::SetTransform ( Utilities::Vector3 position,
Utilities::Quaternion rotation,
Utilities::Vector3 scale )

Set full local transform.

Parameters
positionNew position
rotationNew rotation
scaleNew scale

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