Colliding Shapes
Ian Parberry's "Introduction to Game Physics"
Public Member Functions | Private Attributes | List of all members
CKinematicArc Class Reference

Kinematic arc shape. More...

#include <Arc.h>

Inheritance diagram for CKinematicArc:
CArc CCircle CShape CShapeCommon

Public Member Functions

 CKinematicArc (CArcDesc &)
 Constructor. More...
 
void Rotate (const Vector2 &, float)
 Rotate. More...
 
void Reset ()
 Reset orientation. More...
 
- Public Member Functions inherited from CArc
 CArc (CArcDesc &)
 Constructor. More...
 
bool PreCollide (CContactDesc &)
 Collision detection. More...
 
bool PtInSector (const Vector2 &)
 Point in sector test. More...
 
void GetEndPts (Vector2 &, Vector2 &)
 Get end points. More...
 
void GetTangents (Vector2 &, Vector2 &)
 Get tangents. More...
 
- Public Member Functions inherited from CCircle
 CCircle (const CCircleDesc &)
 Constructor. More...
 
bool PreCollide (CContactDesc &)
 Collision detection. More...
 
bool PtInCircle (const Vector2 &)
 Point in circle test. More...
 
Vector2 ClosestPt (const Vector2 &)
 Closest point on circle. More...
 
bool Tangents (const Vector2 &, Vector2 &, Vector2 &)
 Tangents through external point. More...
 
bool Tangents (CCircle *, CLineSegDesc &, CLineSegDesc &)
 Common tangents. More...
 
bool Tangent (CCircle *, CLineSegDesc &)
 Common tangent. More...
 
float GetRadius ()
 Get radius. More...
 
- Public Member Functions inherited from CShape
 CShape (const CShapeDesc &)
 Constructor. More...
 
virtual ~CShape ()
 Destructor. More...
 
const eShape GetShapeType () const
 Get shape type. More...
 
const eMotion GetMotionType () const
 Get motion type. More...
 
const CAabb2DGetAABB () const
 Get AABB. More...
 
const bool GetSensor () const
 Is this shape a sensor? More...
 
const Vector2 & GetPos () const
 Get position. More...
 
void SetPos (const Vector2 &)
 Set position. More...
 
void SetAABBPoint (const Vector2 &)
 Set AABB point. More...
 
void AddAABBPoint (const Vector2 &)
 Add AABB point. More...
 
void SetCanCollide (bool=true)
 Turn collisions on or off. More...
 
const bool GetCanCollide () const
 Get whether shape can collide. More...
 
virtual void move ()
 Translate. More...
 
const bool GetRotating () const
 Get whether rotating. More...
 
void SetRotating (bool)
 Start or stop rotating. More...
 
const float GetOrientation () const
 Get orientation. More...
 
const float GetRotSpeed () const
 Get rotation speed. More...
 
const Vector2 & GetRotCenter () const
 Get rotation speed. More...
 
const float GetElasticity () const
 Get elasticity. More...
 
void SetOrientation (float)
 Set orientation. More...
 
void SetRotSpeed (float)
 Set rotation speed. More...
 
void SetRotCenter (const Vector2 &)
 Set center of rotation. More...
 
void * GetUserPtr () const
 Get user pointer. More...
 
void SetUserPtr (void *)
 Set user pointer. More...
 

Private Attributes

Vector2 m_vOldPos
 Original position.
 
float m_fOldAngle0
 Original angle 0.
 
float m_fOldAngle1
 Original angle 1.
 

Additional Inherited Members

- Protected Member Functions inherited from CArc
void Update ()
 Update from angles and radius. More...
 
float PtToAngle (const Vector2 &)
 Point to angle.
 
- Protected Attributes inherited from CArc
Vector2 m_vPt0
 Point 0.
 
Vector2 m_vPt1
 Point 1.
 
float m_fAngle0
 Angle from center to point 0.
 
float m_fAngle1
 Angle from center to point 1.
 
Vector2 m_vTangent0
 Tangent at point 0.
 
Vector2 m_vTangent1
 Tangent at point 1.
 
- Protected Attributes inherited from CCircle
float m_fRadius = 0.0f
 Radius.
 
float m_fRadiusSq = 0.0f
 Radius squared, used for faster distance calculations.
 
- Protected Attributes inherited from CShape
eShape m_eShapeType = eShape::Unknown
 Type of shape.
 
eMotion m_eMotionType = eMotion::Static
 How shape moves.
 
float m_fElasticity = 1.0f
 Elasticity, aka restitution, bounciness.
 
bool m_bIsSensor = false
 Sensor only, no rebound on collision.
 
CAabb2D m_cAABB
 Axially aligned bounding box in World Space.
 
bool m_bCanCollide = true
 Can collide with other shapes.
 
float m_fOrientation = 0.0f
 Orientation angle.
 
void * m_pUser
 Spare pointer for user in case they might need one.
 
Vector2 m_vRotCenter
 Center of rotation.
 
float m_fRotSpeed = 0.0f
 Rotation speed.
 
bool m_bRotating = false
 Whether rotating.
 
- Static Protected Attributes inherited from CShapeCommon
static float m_fGravity = 0.0f
 Gravitational constant.
 
static float m_fTimeStep = 0.0f
 Time step per animation frame (fictional).
 

Detailed Description

An arc shape whose motion type is KINEMATIC.

Constructor & Destructor Documentation

◆ CKinematicArc()

CKinematicArc::CKinematicArc ( CArcDesc r)

Constructs a kinematic arc described by an arc descriptor.

Parameters
rArc descriptor.

Member Function Documentation

◆ Reset()

void CKinematicArc::Reset ( )
virtual

Reset to original orientation.

Reimplemented from CShape.

◆ Rotate()

void CKinematicArc::Rotate ( const Vector2 &  v,
float  a 
)
virtual

Rotate to a given orientation from original orientation.

Parameters
vCenter of rotation.
aAngle increment from original orientation.

Reimplemented from CShape.