Neo  0.5.0
Developer Documentation
Neo::PhysicsContext Class Referenceabstract

The PhysicsContext class contains abstraction to 3D physics functionality. More...

#include <PhysicsContext.h>

Public Member Functions

virtual ~PhysicsContext (void)
 
virtual void init (const Vector3 &worldMin, const Vector3 &worldMax)=0
 
virtual void clear (void)=0
 
virtual void setSimulationQuality (unsigned int quality)=0
 Sets the simulation quality. More...
 
virtual void updateSimulation (void)=0
 
virtual void setWorldGravity (const Vector3 &gravity)=0
 Sets the world gravity. More...
 
virtual void createGhost (unsigned int *objectId, unsigned int shapeId, const Vector3 &position, const Quaternion &rotation)=0
 
virtual void createRigidBody (unsigned int *objectId, unsigned int shapeId, const Vector3 &position, const Quaternion &rotation, float mass)=0
 
virtual void activateObject (unsigned int objectId)=0
 
virtual void deactivateObject (unsigned int objectId)=0
 
virtual void deleteObject (unsigned int *objectId)=0
 
virtual void enableObjectKinematic (unsigned int objectId)=0
 
virtual void disableObjectKinematic (unsigned int objectId)=0
 
virtual void setObjectShape (unsigned int objectId, unsigned int shapeId)=0
 
virtual void setObjectMass (unsigned int objectId, float mass)=0
 
virtual void setObjectRestitution (unsigned int objectId, float restitution)=0
 
virtual void setObjectFriction (unsigned int objectId, float friction)=0
 
virtual void setObjectLinearFactor (unsigned int objectId, const Vector3 &linearFactor)=0
 
virtual void setObjectAngularFactor (unsigned int objectId, float angularFactor)=0
 
virtual void setObjectDamping (unsigned int objectId, float linearDamping, float angularDamping)=0
 
virtual void setObjectTransform (unsigned int objectId, const Vector3 &position, const Quaternion &rotation)=0
 
virtual void getObjectTransform (unsigned int objectId, Vector3 *position, Quaternion *rotation)=0
 
virtual void setObjectUserPointer (unsigned int objectId, void *userPointer)=0
 
virtual void * getObjectUserPointer (unsigned int objectId)=0
 
virtual void addCentralForce (unsigned int objectId, const Vector3 &force)=0
 
virtual void getCentralForce (unsigned int objectId, Vector3 *force)=0
 
virtual void addTorque (unsigned int objectId, const Vector3 &torque)=0
 
virtual void getTorque (unsigned int objectId, Vector3 *torque)=0
 
virtual void clearForces (unsigned int objectId)=0
 
virtual int isObjectInCollision (unsigned int objectId, unsigned int *collisionList=NULL, unsigned int size=0)=0
 
virtual bool isObjectsCollision (unsigned int object1Id, unsigned int object2Id)=0
 
virtual bool isRayHit (const Vector3 &start, const Vector3 &end, unsigned int *objectId=NULL, Vector3 *point=NULL, Vector3 *normal=NULL)=0
 
virtual void createMultiShape (unsigned int *shapeId)=0
 
virtual void createBoxShape (unsigned int *shapeId, const Vector3 &scale)=0
 
virtual void createSphereShape (unsigned int *shapeId, float radius)=0
 
virtual void createConeShape (unsigned int *shapeId, float radius, float height)=0
 
virtual void createCapsuleShape (unsigned int *shapeId, float radius, float height)=0
 
virtual void createCylinderShape (unsigned int *shapeId, float radius, float height)=0
 
virtual void createConvexHullShape (unsigned int *shapeId, const Vector3 *vertices, unsigned int verticesNumber, const Vector3 scale=Vector3(1))=0
 
virtual void createTriangleMeshShape (unsigned int *shapeId, const Vector3 *vertices, unsigned int verticesNumber, const void *indices, unsigned int indicesNumber, VAR_TYPES indicesType, const Vector3 scale=Vector3(1))=0
 
virtual void deleteShape (unsigned int *shapeId)=0
 
virtual void addChildShape (unsigned int multiShapeId, unsigned int shapeId, const Vector3 &position, const Quaternion &rotation)=0
 
virtual void createConstraint (unsigned int *constraintId, unsigned int parentObjectId, unsigned int objectId, const Vector3 &pivot, bool disableParentCollision)=0
 
virtual void setLinearLimit (unsigned int constraintId, const Vector3 &lower, const Vector3 &upper)=0
 
virtual void setAngularLimit (unsigned int constraintId, const Vector3 &lower, const Vector3 &upper)=0
 
virtual void deleteConstraint (unsigned int *constraintId)=0
 

Detailed Description

The PhysicsContext class contains abstraction to 3D physics functionality.

Constructor & Destructor Documentation

virtual Neo::PhysicsContext::~PhysicsContext ( void  )
inlinevirtual

Member Function Documentation

virtual void Neo::PhysicsContext::activateObject ( unsigned int  objectId)
pure virtual
virtual void Neo::PhysicsContext::addCentralForce ( unsigned int  objectId,
const Vector3 force 
)
pure virtual
virtual void Neo::PhysicsContext::addChildShape ( unsigned int  multiShapeId,
unsigned int  shapeId,
const Vector3 position,
const Quaternion rotation 
)
pure virtual
virtual void Neo::PhysicsContext::addTorque ( unsigned int  objectId,
const Vector3 torque 
)
pure virtual
virtual void Neo::PhysicsContext::clear ( void  )
pure virtual
virtual void Neo::PhysicsContext::clearForces ( unsigned int  objectId)
pure virtual
virtual void Neo::PhysicsContext::createBoxShape ( unsigned int *  shapeId,
const Vector3 scale 
)
pure virtual
virtual void Neo::PhysicsContext::createCapsuleShape ( unsigned int *  shapeId,
float  radius,
float  height 
)
pure virtual
virtual void Neo::PhysicsContext::createConeShape ( unsigned int *  shapeId,
float  radius,
float  height 
)
pure virtual
virtual void Neo::PhysicsContext::createConstraint ( unsigned int *  constraintId,
unsigned int  parentObjectId,
unsigned int  objectId,
const Vector3 pivot,
bool  disableParentCollision 
)
pure virtual
virtual void Neo::PhysicsContext::createConvexHullShape ( unsigned int *  shapeId,
const Vector3 vertices,
unsigned int  verticesNumber,
const Vector3  scale = Vector3(1) 
)
pure virtual
virtual void Neo::PhysicsContext::createCylinderShape ( unsigned int *  shapeId,
float  radius,
float  height 
)
pure virtual
virtual void Neo::PhysicsContext::createGhost ( unsigned int *  objectId,
unsigned int  shapeId,
const Vector3 position,
const Quaternion rotation 
)
pure virtual
virtual void Neo::PhysicsContext::createMultiShape ( unsigned int *  shapeId)
pure virtual
virtual void Neo::PhysicsContext::createRigidBody ( unsigned int *  objectId,
unsigned int  shapeId,
const Vector3 position,
const Quaternion rotation,
float  mass 
)
pure virtual
virtual void Neo::PhysicsContext::createSphereShape ( unsigned int *  shapeId,
float  radius 
)
pure virtual
virtual void Neo::PhysicsContext::createTriangleMeshShape ( unsigned int *  shapeId,
const Vector3 vertices,
unsigned int  verticesNumber,
const void *  indices,
unsigned int  indicesNumber,
VAR_TYPES  indicesType,
const Vector3  scale = Vector3(1) 
)
pure virtual
virtual void Neo::PhysicsContext::deactivateObject ( unsigned int  objectId)
pure virtual
virtual void Neo::PhysicsContext::deleteConstraint ( unsigned int *  constraintId)
pure virtual
virtual void Neo::PhysicsContext::deleteObject ( unsigned int *  objectId)
pure virtual
virtual void Neo::PhysicsContext::deleteShape ( unsigned int *  shapeId)
pure virtual
virtual void Neo::PhysicsContext::disableObjectKinematic ( unsigned int  objectId)
pure virtual
virtual void Neo::PhysicsContext::enableObjectKinematic ( unsigned int  objectId)
pure virtual
virtual void Neo::PhysicsContext::getCentralForce ( unsigned int  objectId,
Vector3 force 
)
pure virtual
virtual void Neo::PhysicsContext::getObjectTransform ( unsigned int  objectId,
Vector3 position,
Quaternion rotation 
)
pure virtual
virtual void* Neo::PhysicsContext::getObjectUserPointer ( unsigned int  objectId)
pure virtual
virtual void Neo::PhysicsContext::getTorque ( unsigned int  objectId,
Vector3 torque 
)
pure virtual
virtual void Neo::PhysicsContext::init ( const Vector3 worldMin,
const Vector3 worldMax 
)
pure virtual
virtual int Neo::PhysicsContext::isObjectInCollision ( unsigned int  objectId,
unsigned int *  collisionList = NULL,
unsigned int  size = 0 
)
pure virtual
virtual bool Neo::PhysicsContext::isObjectsCollision ( unsigned int  object1Id,
unsigned int  object2Id 
)
pure virtual
virtual bool Neo::PhysicsContext::isRayHit ( const Vector3 start,
const Vector3 end,
unsigned int *  objectId = NULL,
Vector3 point = NULL,
Vector3 normal = NULL 
)
pure virtual
virtual void Neo::PhysicsContext::setAngularLimit ( unsigned int  constraintId,
const Vector3 lower,
const Vector3 upper 
)
pure virtual
virtual void Neo::PhysicsContext::setLinearLimit ( unsigned int  constraintId,
const Vector3 lower,
const Vector3 upper 
)
pure virtual
virtual void Neo::PhysicsContext::setObjectAngularFactor ( unsigned int  objectId,
float  angularFactor 
)
pure virtual
virtual void Neo::PhysicsContext::setObjectDamping ( unsigned int  objectId,
float  linearDamping,
float  angularDamping 
)
pure virtual
virtual void Neo::PhysicsContext::setObjectFriction ( unsigned int  objectId,
float  friction 
)
pure virtual
virtual void Neo::PhysicsContext::setObjectLinearFactor ( unsigned int  objectId,
const Vector3 linearFactor 
)
pure virtual
virtual void Neo::PhysicsContext::setObjectMass ( unsigned int  objectId,
float  mass 
)
pure virtual
virtual void Neo::PhysicsContext::setObjectRestitution ( unsigned int  objectId,
float  restitution 
)
pure virtual
virtual void Neo::PhysicsContext::setObjectShape ( unsigned int  objectId,
unsigned int  shapeId 
)
pure virtual
virtual void Neo::PhysicsContext::setObjectTransform ( unsigned int  objectId,
const Vector3 position,
const Quaternion rotation 
)
pure virtual
virtual void Neo::PhysicsContext::setObjectUserPointer ( unsigned int  objectId,
void *  userPointer 
)
pure virtual
virtual void Neo::PhysicsContext::setSimulationQuality ( unsigned int  quality)
pure virtual

Sets the simulation quality.

Default simulation quality is 2 when using Bullet. Any value lower than two will result in worse, any value higher in better physics quality. Higher values cost more time to calculate so keep the quality as low as possible!

Parameters
qualityThe quality level. Defaults to 2 when using Bullet
virtual void Neo::PhysicsContext::setWorldGravity ( const Vector3 gravity)
pure virtual

Sets the world gravity.

Parameters
gravityAn MVector3 containing the new gravitational pull to be used for example MVector3(0.0f, 0.0f, -9.81)
virtual void Neo::PhysicsContext::updateSimulation ( void  )
pure virtual

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