Om  1.0.0
A universal framework for multimedia simulation
Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
om::physics::shapes::CylinderShape Class Reference

A class that represents a 3D cylinder shape. More...

#include <omPhysicsCylinderShape.h>

Inheritance diagram for om::physics::shapes::CylinderShape:
om::physics::shapes::PhysicsShape

Public Member Functions

 CylinderShape ()
 Create a cylinder shape centered at the origin with a radius and height of 1. More...
 
 CylinderShape (const Vector3f &newEndpoint1, const Vector3f &newEndpoint2, Float newRadius)
 Create a cylinder shape with the specified endpoints and radius. More...
 
 CylinderShape (const Vector3f &newEndpoint1, const Vector3f &newEndpoint2, Float newRadius1, Float newRadius2)
 Create a cylinder shape with the specified endpoints and radii. More...
 
const Vector3f & getEndpoint1 () const
 Return the 3D position of this cylinder shape's first endpoint in its local space. More...
 
SIMDFloat4 getEndpoint1SIMD () const
 Return the 4-wide SIMD position of this cylinder shape's first endpoint in its local space. More...
 
void setEndpoint1 (const Vector3f &newEndpoint1)
 Set the 3D position of this cylinder shape's first endpoint in its local space. More...
 
const Vector3f & getEndpoint2 () const
 Return the 3D position of this cylinder shape's second endpoint in its local space. More...
 
SIMDFloat4 getEndpoint2SIMD () const
 Return the 4-wide SIMD position of this cylinder shape's second endpoint in its local space. More...
 
void setEndpoint2 (const Vector3f &newEndpoint2)
 Set the 3D position of this cylinder shape's second endpoint in its local space. More...
 
Float getRadius1 () const
 Return the radius of this cylinder shape's first endpoint sphere in its local space. More...
 
void setRadius1 (Float newRadius1)
 Set the radius of this cylinder's first endpoint sphere in its local space. More...
 
Float getRadius2 () const
 Return the radius of this cylinder shape's second endpoint sphere in its local space. More...
 
void setRadius2 (Float newRadius2)
 Set the radius of this cylinder's second endpoint sphere in its local space. More...
 
const Vector3f & getAxis () const
 Return the normalized axis of this cylinder shape in its local space. More...
 
SIMDFloat4 getAxisSIMD () const
 Return the 4-wide SIMD normalized axis of this cylinder shape in its local space. More...
 
void setAxis (const Vector3f &newAxis)
 Set the axis of this cylinder's shaft. More...
 
Float getHeight () const
 Return the distance from the first endpoint to the second endpoint in local space. More...
 
void setHeight (Float newHeight)
 Set the distance from the first endpoint to the second endpoint in local space. More...
 
PhysicsMaterialgetMaterial () const
 Return a pointer to the physics material that this cylinder shape is using. More...
 
void setMaterial (PhysicsMaterial *newMaterial)
 Set a pointer to the physics material that this cylinder shape is using. More...
 
virtual void getMassInfo (Float &mass, Vector3f &massCenter, Matrix3f &inertia) const
 Get the mass distribution for this shape in its local space in the output parameters. More...
 
virtual Float getVolume () const
 Return the volume of this shape in distance units cubed (m^3) in its coordinate frame. More...
 
- Public Member Functions inherited from om::physics::shapes::PhysicsShape
virtual ~PhysicsShape ()
 Destroy this physics shape and all resources it has. More...
 
const AABB3f & getBoundingBox () const
 Return a const reference to the local bounding box of this shape in its coordinate frame. More...
 
ShapeFlagsgetFlags ()
 Return a reference to an object that contains boolean parameters of the shape. More...
 
const ShapeFlagsgetFlags () const
 Return an object that contains boolean parameters of the shape. More...
 
void setFlags (const ShapeFlags &newFlags)
 Set an object that contains boolean parameters of the shape. More...
 
Bool flagIsSet (ShapeFlags::Flag flag) const
 Return whether or not the specified boolan flag is set for this shape. More...
 
Bool flagsAreSet (const ShapeFlags &otherFlags) const
 Return whether or not all of the specified boolan flags are set for this shape. More...
 
void setFlag (ShapeFlags::Flag flag, Bool newIsSet=true)
 Set whether or not the specified boolan flag is set for this shape. More...
 
ShapeTypeID getTypeID () const
 Return an integer identifying the type of this collision shape. More...
 
const ShapeTypegetType () const
 Return an object representing the type of this PhysicsShape. More...
 

Static Public Member Functions

static SIMDFloat4 getSupportPoint (const CylinderShape *cylinder, const SIMDFloat4 &direction)
 Return the point on the specified cylinder that is farthest in the given normalized direction. More...
 

Static Public Attributes

static const ShapeType TYPE
 A shape type object that represents the type to use for a cylinder shape. More...
 
- Static Public Attributes inherited from om::physics::shapes::PhysicsShape
static const ResourceType RESOURCE_TYPE
 The resource type for a physics shape. More...
 

Additional Inherited Members

- Protected Member Functions inherited from om::physics::shapes::PhysicsShape
 PhysicsShape (const ShapeType *newType)
 Create a PhysicsShape object that has the specified subtype. More...
 
void setBoundingBox (const AABB3f &newBoundingBox)
 Set the local-space bounding box to use for this PhysicsShape. More...
 

Detailed Description

A class that represents a 3D cylinder shape.

A cylinder shape is the convex hull of two spheres, where each sphere can have a different radius and center position.

Constructor & Destructor Documentation

om::physics::shapes::CylinderShape::CylinderShape ( )

Create a cylinder shape centered at the origin with a radius and height of 1.

om::physics::shapes::CylinderShape::CylinderShape ( const Vector3f &  newEndpoint1,
const Vector3f &  newEndpoint2,
Float  newRadius 
)

Create a cylinder shape with the specified endpoints and radius.

om::physics::shapes::CylinderShape::CylinderShape ( const Vector3f &  newEndpoint1,
const Vector3f &  newEndpoint2,
Float  newRadius1,
Float  newRadius2 
)

Create a cylinder shape with the specified endpoints and radii.

Member Function Documentation

const Vector3f& om::physics::shapes::CylinderShape::getEndpoint1 ( ) const
inline

Return the 3D position of this cylinder shape's first endpoint in its local space.

SIMDFloat4 om::physics::shapes::CylinderShape::getEndpoint1SIMD ( ) const
inline

Return the 4-wide SIMD position of this cylinder shape's first endpoint in its local space.

void om::physics::shapes::CylinderShape::setEndpoint1 ( const Vector3f &  newEndpoint1)
inline

Set the 3D position of this cylinder shape's first endpoint in its local space.

This keeps the cylinder's 2nd endpoint in the same location and updates all other cylinder properties to be consistent with the new first endpoint.

const Vector3f& om::physics::shapes::CylinderShape::getEndpoint2 ( ) const
inline

Return the 3D position of this cylinder shape's second endpoint in its local space.

SIMDFloat4 om::physics::shapes::CylinderShape::getEndpoint2SIMD ( ) const
inline

Return the 4-wide SIMD position of this cylinder shape's second endpoint in its local space.

void om::physics::shapes::CylinderShape::setEndpoint2 ( const Vector3f &  newEndpoint2)
inline

Set the 3D position of this cylinder shape's second endpoint in its local space.

This keeps the cylinder's 1st endpoint in the same location and updates all other cylinder properties to be consistent with the new second endpoint.

Float om::physics::shapes::CylinderShape::getRadius1 ( ) const
inline

Return the radius of this cylinder shape's first endpoint sphere in its local space.

void om::physics::shapes::CylinderShape::setRadius1 ( Float  newRadius1)
inline

Set the radius of this cylinder's first endpoint sphere in its local space.

This radius value is clamped to the range of [0,+infinity].

Float om::physics::shapes::CylinderShape::getRadius2 ( ) const
inline

Return the radius of this cylinder shape's second endpoint sphere in its local space.

void om::physics::shapes::CylinderShape::setRadius2 ( Float  newRadius2)
inline

Set the radius of this cylinder's second endpoint sphere in its local space.

This radius value is clamped to the range of [0,+infinity].

const Vector3f& om::physics::shapes::CylinderShape::getAxis ( ) const
inline

Return the normalized axis of this cylinder shape in its local space.

SIMDFloat4 om::physics::shapes::CylinderShape::getAxisSIMD ( ) const
inline

Return the 4-wide SIMD normalized axis of this cylinder shape in its local space.

void om::physics::shapes::CylinderShape::setAxis ( const Vector3f &  newAxis)
inline

Set the axis of this cylinder's shaft.

This new axis vector is normalized and then the cylinder's 2nd endpoint is recomputed using the new axis vector and the cylinder's height and 1st endpoint.

Float om::physics::shapes::CylinderShape::getHeight ( ) const
inline

Return the distance from the first endpoint to the second endpoint in local space.

void om::physics::shapes::CylinderShape::setHeight ( Float  newHeight)
inline

Set the distance from the first endpoint to the second endpoint in local space.

This method keeps the cylinder's first endpoint at the same location and recomputes the cylinder's 2nd endpoint based on the cylinder's axis and the new height value.

This height value is clamped to the range of [0,+infinity].

PhysicsMaterial* om::physics::shapes::CylinderShape::getMaterial ( ) const
inline

Return a pointer to the physics material that this cylinder shape is using.

void om::physics::shapes::CylinderShape::setMaterial ( PhysicsMaterial newMaterial)
inline

Set a pointer to the physics material that this cylinder shape is using.

virtual void om::physics::shapes::CylinderShape::getMassInfo ( Float mass,
Vector3f &  massCenter,
Matrix3f &  inertia 
) const
virtual

Get the mass distribution for this shape in its local space in the output parameters.

Implements om::physics::shapes::PhysicsShape.

virtual Float om::physics::shapes::CylinderShape::getVolume ( ) const
virtual

Return the volume of this shape in distance units cubed (m^3) in its coordinate frame.

Implements om::physics::shapes::PhysicsShape.

SIMDFloat4 om::physics::shapes::CylinderShape::getSupportPoint ( const CylinderShape cylinder,
const SIMDFloat4 &  direction 
)
inlinestatic

Return the point on the specified cylinder that is farthest in the given normalized direction.

Member Data Documentation

const ShapeType om::physics::shapes::CylinderShape::TYPE
static

A shape type object that represents the type to use for a cylinder shape.


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