ReactPhysics3D  v0.10.2
C++ Physics engine library
Loading...
Searching...
No Matches
reactphysics3d::CapsuleShape Class Reference

This class represents a capsule collision shape that is defined around the Y axis. More...

#include <include/reactphysics3d/collision/shapes/CapsuleShape.h>

Inheritance diagram for reactphysics3d::CapsuleShape:
reactphysics3d::ConvexShape reactphysics3d::CollisionShape

Public Member Functions

 CapsuleShape (const CapsuleShape &shape)=delete
 Deleted copy-constructor.
 
CapsuleShapeoperator= (const CapsuleShape &shape)=delete
 Deleted assignment operator.
 
decimal getRadius () const
 Return the radius of the capsule.
 
void setRadius (decimal radius)
 Set the radius of the capsule.
 
decimal getHeight () const
 Return the height of the capsule.
 
void setHeight (decimal height)
 Set the height of the capsule.
 
virtual AABB getLocalBounds () const override
 Return the local bounds of the shape in x, y and z directions.
 
virtual decimal getVolume () const override
 Compute and return the volume of the collision shape.
 
virtual bool isPolyhedron () const override
 Return true if the collision shape is a polyhedron.
 
virtual Vector3 getLocalInertiaTensor (decimal mass) const override
 Return the local inertia tensor of the collision shape.
 
virtual std::string to_string () const override
 Return the string representation of the shape.
 
- Public Member Functions inherited from reactphysics3d::ConvexShape
 ConvexShape (CollisionShapeName name, CollisionShapeType type, MemoryAllocator &allocator, decimal margin=decimal(0.0))
 Constructor.
 
virtual ~ConvexShape () override=default
 Destructor.
 
 ConvexShape (const ConvexShape &shape)=delete
 Deleted copy-constructor.
 
ConvexShapeoperator= (const ConvexShape &shape)=delete
 Deleted assignment operator.
 
decimal getMargin () const
 Return the current object margin.
 
virtual bool isConvex () const override
 Return true if the collision shape is convex, false if it is concave.
 
- Public Member Functions inherited from reactphysics3d::CollisionShape
 CollisionShape (CollisionShapeName name, CollisionShapeType type, MemoryAllocator &allocator)
 Constructor.
 
virtual ~CollisionShape ()=default
 Destructor.
 
 CollisionShape (const CollisionShape &shape)=delete
 Deleted copy-constructor.
 
CollisionShapeoperator= (const CollisionShape &shape)=delete
 Deleted assignment operator.
 
CollisionShapeName getName () const
 Return the name of the collision shape.
 
CollisionShapeType getType () const
 Return the type of the collision shape.
 
uint32 getId () const
 Return the id of the shape.
 
virtual AABB computeTransformedAABB (const Transform &transform) const
 Compute the transformed AABB of the collision shape given a transform.
 

Detailed Description

This class represents a capsule collision shape that is defined around the Y axis.

A capsule shape can be seen as the convex hull of two spheres. The capsule shape is defined by its radius (radius of the two spheres of the capsule) and its height (distance between the centers of the two spheres). This collision shape does not have an explicit object margin distance. The margin is implicitly the radius and height of the shape. Therefore, no need to specify an object margin for a capsule shape.

Member Function Documentation

◆ getHeight()

RP3D_FORCE_INLINE decimal reactphysics3d::CapsuleShape::getHeight ( ) const

Return the height of the capsule.

Returns
The height of the capsule shape (in meters)

◆ getLocalBounds()

AABB CapsuleShape::getLocalBounds ( ) const
overridevirtual

Return the local bounds of the shape in x, y and z directions.

Returns
The AABB of the shape

Implements reactphysics3d::CollisionShape.

◆ getLocalInertiaTensor()

Vector3 CapsuleShape::getLocalInertiaTensor ( decimal  mass) const
overridevirtual

Return the local inertia tensor of the collision shape.

Parameters
massMass to use to compute the inertia tensor of the collision shape

Implements reactphysics3d::CollisionShape.

◆ getRadius()

RP3D_FORCE_INLINE decimal reactphysics3d::CapsuleShape::getRadius ( ) const

Return the radius of the capsule.

Returns
The radius of the capsule shape (in meters)

◆ getVolume()

RP3D_FORCE_INLINE decimal reactphysics3d::CapsuleShape::getVolume ( ) const
overridevirtual

Compute and return the volume of the collision shape.

Implements reactphysics3d::CollisionShape.

◆ isPolyhedron()

RP3D_FORCE_INLINE bool reactphysics3d::CapsuleShape::isPolyhedron ( ) const
overridevirtual

Return true if the collision shape is a polyhedron.

Implements reactphysics3d::CollisionShape.

◆ setHeight()

RP3D_FORCE_INLINE void reactphysics3d::CapsuleShape::setHeight ( decimal  height)

Set the height of the capsule.

Note that you might want to recompute the inertia tensor and center of mass of the body after changing the height of the collision shape.

Parameters
heightThe height of the capsule (in meters)

◆ setRadius()

RP3D_FORCE_INLINE void reactphysics3d::CapsuleShape::setRadius ( decimal  radius)

Set the radius of the capsule.

Note that you might want to recompute the inertia tensor and center of mass of the body after changing the radius of the collision shape.

Parameters
radiusThe radius of the capsule (in meters)

◆ to_string()

RP3D_FORCE_INLINE std::string reactphysics3d::CapsuleShape::to_string ( ) const
overridevirtual

Return the string representation of the shape.

Implements reactphysics3d::CollisionShape.


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