#include <GeometryHandlers.h>
Public Types | |
enum | EGeomType { SPHERE = dSphereClass, BOX = dBoxClass, CAPSULE = dCapsuleClass, CYLINDER = dCylinderClass, PLANE = dPlaneClass, RAY = dRayClass, CONVEX = dConvexClass, TRANSFORM = dGeomTransformClass, MESH = dTriMeshClass, HEIGHT_FIELD = dHeightfieldClass, USER1 = dFirstUserClass } |
Geom types (builtin or user classes). More... | |
enum | EBodyADOverride { AD_NO_OVERRIDE = 0, AD_FLAG = 0x01, AD_LINEAR = 0x02, AD_ANGULAR = 0x04, AD_STEPS = 0x08, AD_TIME = 0x10, AD_SAMPLES_COUNT = 0x20 } |
Flags to say which param to override when attaching a body to a geom. More... | |
Public Member Functions | |
GeometryHandler () | |
virtual EGeomType | type () const =0 |
virtual GeometryHandler * | clone () const =0 |
Auto-disable hints | |
The reason for auto-disable override hints is that some geoms need different parameters.
For exemple, when the body has remained a disable candidate for a certain number of steps (AutoDisableSteps), it is disabled. This is almost completely for boxes, which like to land and bounce up on two points, and teeter motionless for a few steps before falling back down. Round items generally need a much lower (like 1) AutoDisableSteps than boxes do (10+), 10 is the default. | |
virtual UINT | getADOverrideFlag () |
Gets the auto-disable override flag (default is no override - can be overloaded in derivates). The method returns which parameters can be overriden by the geometry. | |
virtual bool | getADFlag () |
Returns true if the geometry can be auto-disabled. | |
virtual dReal | getADLinearThreshold () |
virtual dReal | getADAngularThreshold () |
virtual UINT | getADSteps () |
virtual dReal | getADTime () |
virtual UINT | getADSamplesCount () |
Protected Member Functions | |
virtual dGeomID | create (dSpaceID spaceId)=0 |
virtual | ~GeometryHandler () |
Protected destructor forces the object to be deleted by being dereferenced. | |
Protected Attributes | |
dGeomID | id |
Friends | |
class | Geom |
On-change callback | |
The geometry handler can call functions on property change (Like the radius of the sphere, the length of the box, etc.
). | |
osg::ref_ptr< GHChangeCallback > | pChangeCallback |
void | addOrSetChangeCallback (GHChangeCallback *callback) |
) Geometry handlers are responsible for the geom creation (create() method), not their destruction ! They're a kind of factory. They also contain hints for body auto-disable feature (when a geom is attached to a body).
Definition at line 73 of file GeometryHandlers.h.
Flags to say which param to override when attaching a body to a geom.
Definition at line 80 of file GeometryHandlers.h.
Geom types (builtin or user classes).
Dev note : be careful about not defining too much classes. See dLastUserClass.
Definition at line 77 of file GeometryHandlers.h.
Physics::GeometryHandler::GeometryHandler | ( | ) | [inline] |
Definition at line 90 of file GeometryHandlers.h.
virtual Physics::GeometryHandler::~GeometryHandler | ( | ) | [inline, protected, virtual] |
Protected destructor forces the object to be deleted by being dereferenced.
Also avoids the object from beeing created on the stack.
Definition at line 124 of file GeometryHandlers.h.
void Physics::GeometryHandler::addOrSetChangeCallback | ( | GHChangeCallback * | callback | ) | [inline] |
virtual GeometryHandler* Physics::GeometryHandler::clone | ( | ) | const [pure virtual] |
virtual dGeomID Physics::GeometryHandler::create | ( | dSpaceID | spaceId | ) | [protected, pure virtual] |
virtual dReal Physics::GeometryHandler::getADAngularThreshold | ( | ) | [inline, virtual] |
virtual bool Physics::GeometryHandler::getADFlag | ( | ) | [inline, virtual] |
Returns true
if the geometry can be auto-disabled.
Definition at line 99 of file GeometryHandlers.h.
virtual dReal Physics::GeometryHandler::getADLinearThreshold | ( | ) | [inline, virtual] |
virtual UINT Physics::GeometryHandler::getADOverrideFlag | ( | ) | [inline, virtual] |
Gets the auto-disable override flag (default is no override - can be overloaded in derivates). The method returns which parameters can be overriden by the geometry.
Reimplemented in Physics::SphereHandler, and Physics::MeshHandler.
Definition at line 98 of file GeometryHandlers.h.
virtual UINT Physics::GeometryHandler::getADSamplesCount | ( | ) | [inline, virtual] |
virtual UINT Physics::GeometryHandler::getADSteps | ( | ) | [inline, virtual] |
Reimplemented in Physics::SphereHandler, and Physics::MeshHandler.
Definition at line 102 of file GeometryHandlers.h.
virtual dReal Physics::GeometryHandler::getADTime | ( | ) | [inline, virtual] |
Definition at line 103 of file GeometryHandlers.h.
virtual EGeomType Physics::GeometryHandler::type | ( | ) | const [pure virtual] |
Implemented in Physics::SphereHandler, Physics::BoxHandler, Physics::PlaneHandler, Physics::CylinderHandler, Physics::CapsuleHandler, Physics::RayHandler, Physics::HeightFieldHandler, and Physics::MeshHandler.
Referenced by C3DPhy::createPhysicsDebugView(), Physics::NearCallback::operator()(), and PhysicsDebugUpdateCB::operator()().
friend class Geom [friend] |
Definition at line 118 of file GeometryHandlers.h.
dGeomID Physics::GeometryHandler::id [mutable, protected] |
Definition at line 120 of file GeometryHandlers.h.
Referenced by Physics::HeightFieldHandler::create().
osg::ref_ptr<GHChangeCallback> Physics::GeometryHandler::pChangeCallback |
Definition at line 112 of file GeometryHandlers.h.
Referenced by PhysicsDebugUpdateCB::operator()().