16 #ifndef BT_COLLISION_OBJECT_H
17 #define BT_COLLISION_OBJECT_H
23 #define ISLAND_SLEEPING 2
24 #define WANTS_DEACTIVATION 3
25 #define DISABLE_DEACTIVATION 4
26 #define DISABLE_SIMULATION 5
37 #ifdef BT_USE_DOUBLE_PRECISION
38 #define btCollisionObjectData btCollisionObjectDoubleData
39 #define btCollisionObjectDataName "btCollisionObjectDoubleData"
41 #define btCollisionObjectData btCollisionObjectFloatData
42 #define btCollisionObjectDataName "btCollisionObjectFloatData"
121 CF_KINEMATIC_OBJECT= 2,
122 CF_NO_CONTACT_RESPONSE = 4,
123 CF_CUSTOM_MATERIAL_CALLBACK = 8,
124 CF_CHARACTER_OBJECT = 16,
125 CF_DISABLE_VISUALIZE_OBJECT = 32,
126 CF_DISABLE_SPU_COLLISION_PROCESSING = 64
131 CO_COLLISION_OBJECT =1,
143 CF_ANISOTROPIC_FRICTION_DISABLED=0,
144 CF_ANISOTROPIC_FRICTION = 1,
145 CF_ANISOTROPIC_ROLLING_FRICTION = 2
151 return ((m_collisionFlags & (CF_STATIC_OBJECT | CF_KINEMATIC_OBJECT | CF_NO_CONTACT_RESPONSE) )==0);
156 return m_anisotropicFriction;
160 m_anisotropicFriction = anisotropicFriction;
161 bool isUnity = (anisotropicFriction[0]!=1.f) || (anisotropicFriction[1]!=1.f) || (anisotropicFriction[2]!=1.f);
162 m_hasAnisotropicFriction = isUnity?frictionMode : 0;
166 return (m_hasAnisotropicFriction&frictionMode)!=0;
173 m_contactProcessingThreshold = contactProcessingThreshold;
177 return m_contactProcessingThreshold;
181 return (m_collisionFlags & CF_STATIC_OBJECT) != 0;
186 return (m_collisionFlags & CF_KINEMATIC_OBJECT) != 0;
191 return (m_collisionFlags & (CF_KINEMATIC_OBJECT | CF_STATIC_OBJECT)) != 0 ;
195 return (m_collisionFlags & CF_NO_CONTACT_RESPONSE)==0;
205 m_collisionShape = collisionShape;
206 m_rootCollisionShape = collisionShape;
211 return m_collisionShape;
216 return m_collisionShape;
227 return m_extensionPointer;
233 m_extensionPointer = pointer;
238 void setActivationState(
int newState)
const;
242 m_deactivationTime = time;
246 return m_deactivationTime;
249 void forceActivationState(
int newState)
const;
251 void activate(
bool forceActivation =
false)
const;
260 m_restitution = rest;
264 return m_restitution;
277 m_rollingFriction = frict;
281 return m_rollingFriction;
288 return m_internalType;
293 return m_worldTransform;
298 return m_worldTransform;
303 m_worldTransform = worldTrans;
309 return m_broadphaseHandle;
314 return m_broadphaseHandle;
319 m_broadphaseHandle = handle;
325 return m_interpolationWorldTransform;
330 return m_interpolationWorldTransform;
335 m_interpolationWorldTransform = trans;
340 m_interpolationLinearVelocity = linvel;
345 m_interpolationAngularVelocity = angvel;
350 return m_interpolationLinearVelocity;
355 return m_interpolationAngularVelocity;
370 return m_companionId;
380 return m_hitFraction;
385 m_hitFraction = hitFraction;
391 return m_collisionFlags;
396 m_collisionFlags = flags;
402 return m_ccdSweptSphereRadius;
408 m_ccdSweptSphereRadius = radius;
413 return m_ccdMotionThreshold;
418 return m_ccdMotionThreshold*m_ccdMotionThreshold;
426 m_ccdMotionThreshold = ccdMotionThreshold;
432 return m_userObjectPointer;
438 m_userObjectPointer = userPointer;
444 if (m_checkCollideWith)
445 return checkCollideWithOverride(co);
450 virtual int calculateSerializeBufferSize()
const;
453 virtual const char* serialize(
void* dataBuffer,
class btSerializer* serializer)
const;
455 virtual void serializeSingleObject(
class btSerializer* serializer)
const;
534 #endif //BT_COLLISION_OBJECT_H