then you have to manually call the btMultiBodyConstraint::finalizeMultiDof for all multi-dof multi body constraints.
43 lines
1.5 KiB
C
43 lines
1.5 KiB
C
#ifndef RAYTRACER_SETUP_H
|
|
#define RAYTRACER_SETUP_H
|
|
|
|
|
|
#include "Bullet3AppSupport/CommonRigidBodySetup.h"
|
|
|
|
struct RaytracerPhysicsSetup : public CommonPhysicsSetup
|
|
{
|
|
|
|
struct RaytracerInternalData* m_internalData;
|
|
|
|
RaytracerPhysicsSetup();
|
|
|
|
virtual ~RaytracerPhysicsSetup();
|
|
|
|
virtual void initPhysics(GraphicsPhysicsBridge& gfxBridge);
|
|
|
|
virtual void exitPhysics();
|
|
|
|
virtual void stepSimulation(float deltaTime);
|
|
|
|
virtual void debugDraw(int debugDrawFlags);
|
|
|
|
virtual bool pickBody(const btVector3& rayFromWorld, const btVector3& rayToWorld);
|
|
virtual bool movePickedBody(const btVector3& rayFromWorld, const btVector3& rayToWorld);
|
|
virtual void removePickingConstraint();
|
|
|
|
virtual void syncPhysicsToGraphics(GraphicsPhysicsBridge& gfxBridge);
|
|
|
|
///worldRaytest performs a ray versus all objects in a collision world, returning true is a hit is found (filling in worldNormal and worldHitPoint)
|
|
bool worldRaytest(const btVector3& rayFrom,const btVector3& rayTo,btVector3& worldNormal,btVector3& worldHitPoint);
|
|
|
|
///singleObjectRaytest performs a ray versus one collision shape, returning true is a hit is found (filling in worldNormal and worldHitPoint)
|
|
bool singleObjectRaytest(const btVector3& rayFrom,const btVector3& rayTo,btVector3& worldNormal,btVector3& worldHitPoint);
|
|
|
|
///lowlevelRaytest performs a ray versus convex shape, returning true is a hit is found (filling in worldNormal and worldHitPoint)
|
|
bool lowlevelRaytest(const btVector3& rayFrom,const btVector3& rayTo,btVector3& worldNormal,btVector3& worldHitPoint);
|
|
|
|
|
|
};
|
|
|
|
#endif //RAYTRACER_SETUP_H
|