Differential D8762 Diff 28333 extern/bullet2/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h
Changeset View
Changeset View
Standalone View
Standalone View
extern/bullet2/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h
| Show All 12 Lines | |||||
| 3. This notice may not be removed or altered from any source distribution. | 3. This notice may not be removed or altered from any source distribution. | ||||
| */ | */ | ||||
| #ifndef BT_STATIC_PLANE_SHAPE_H | #ifndef BT_STATIC_PLANE_SHAPE_H | ||||
| #define BT_STATIC_PLANE_SHAPE_H | #define BT_STATIC_PLANE_SHAPE_H | ||||
| #include "btConcaveShape.h" | #include "btConcaveShape.h" | ||||
| ///The btStaticPlaneShape simulates an infinite non-moving (static) collision plane. | ///The btStaticPlaneShape simulates an infinite non-moving (static) collision plane. | ||||
| ATTRIBUTE_ALIGNED16(class) btStaticPlaneShape : public btConcaveShape | ATTRIBUTE_ALIGNED16(class) | ||||
| btStaticPlaneShape : public btConcaveShape | |||||
| { | { | ||||
| protected: | protected: | ||||
| btVector3 m_localAabbMin; | btVector3 m_localAabbMin; | ||||
| btVector3 m_localAabbMax; | btVector3 m_localAabbMax; | ||||
| btVector3 m_planeNormal; | btVector3 m_planeNormal; | ||||
| btScalar m_planeConstant; | btScalar m_planeConstant; | ||||
| btVector3 m_localScaling; | btVector3 m_localScaling; | ||||
| public: | public: | ||||
| BT_DECLARE_ALIGNED_ALLOCATOR(); | BT_DECLARE_ALIGNED_ALLOCATOR(); | ||||
| btStaticPlaneShape(const btVector3& planeNormal,btScalar planeConstant); | btStaticPlaneShape(const btVector3& planeNormal, btScalar planeConstant); | ||||
| virtual ~btStaticPlaneShape(); | virtual ~btStaticPlaneShape(); | ||||
| virtual void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const; | virtual void getAabb(const btTransform& t, btVector3& aabbMin, btVector3& aabbMax) const; | ||||
| virtual void processAllTriangles(btTriangleCallback* callback,const btVector3& aabbMin,const btVector3& aabbMax) const; | virtual void processAllTriangles(btTriangleCallback * callback, const btVector3& aabbMin, const btVector3& aabbMax) const; | ||||
| virtual void calculateLocalInertia(btScalar mass,btVector3& inertia) const; | virtual void calculateLocalInertia(btScalar mass, btVector3 & inertia) const; | ||||
| virtual void setLocalScaling(const btVector3& scaling); | virtual void setLocalScaling(const btVector3& scaling); | ||||
| virtual const btVector3& getLocalScaling() const; | virtual const btVector3& getLocalScaling() const; | ||||
| const btVector3& getPlaneNormal() const | const btVector3& getPlaneNormal() const | ||||
| { | { | ||||
| return m_planeNormal; | return m_planeNormal; | ||||
| } | } | ||||
| const btScalar& getPlaneConstant() const | const btScalar& getPlaneConstant() const | ||||
| { | { | ||||
| return m_planeConstant; | return m_planeConstant; | ||||
| } | } | ||||
| //debugging | //debugging | ||||
| virtual const char* getName()const {return "STATICPLANE";} | virtual const char* getName() const { return "STATICPLANE"; } | ||||
| virtual int calculateSerializeBufferSize() const; | virtual int calculateSerializeBufferSize() const; | ||||
| ///fills the dataBuffer and returns the struct name (and 0 on failure) | ///fills the dataBuffer and returns the struct name (and 0 on failure) | ||||
| virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const; | virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const; | ||||
| }; | }; | ||||
| ///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64 | ///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64 | ||||
| struct btStaticPlaneShapeData | struct btStaticPlaneShapeData | ||||
| { | { | ||||
| btCollisionShapeData m_collisionShapeData; | btCollisionShapeData m_collisionShapeData; | ||||
| btVector3FloatData m_localScaling; | btVector3FloatData m_localScaling; | ||||
| btVector3FloatData m_planeNormal; | btVector3FloatData m_planeNormal; | ||||
| float m_planeConstant; | float m_planeConstant; | ||||
| char m_pad[4]; | char m_pad[4]; | ||||
| }; | }; | ||||
| SIMD_FORCE_INLINE int btStaticPlaneShape::calculateSerializeBufferSize() const | SIMD_FORCE_INLINE int btStaticPlaneShape::calculateSerializeBufferSize() const | ||||
| { | { | ||||
| return sizeof(btStaticPlaneShapeData); | return sizeof(btStaticPlaneShapeData); | ||||
| } | } | ||||
| ///fills the dataBuffer and returns the struct name (and 0 on failure) | ///fills the dataBuffer and returns the struct name (and 0 on failure) | ||||
| SIMD_FORCE_INLINE const char* btStaticPlaneShape::serialize(void* dataBuffer, btSerializer* serializer) const | SIMD_FORCE_INLINE const char* btStaticPlaneShape::serialize(void* dataBuffer, btSerializer* serializer) const | ||||
| { | { | ||||
| btStaticPlaneShapeData* planeData = (btStaticPlaneShapeData*) dataBuffer; | btStaticPlaneShapeData* planeData = (btStaticPlaneShapeData*)dataBuffer; | ||||
| btCollisionShape::serialize(&planeData->m_collisionShapeData,serializer); | btCollisionShape::serialize(&planeData->m_collisionShapeData, serializer); | ||||
| m_localScaling.serializeFloat(planeData->m_localScaling); | m_localScaling.serializeFloat(planeData->m_localScaling); | ||||
| m_planeNormal.serializeFloat(planeData->m_planeNormal); | m_planeNormal.serializeFloat(planeData->m_planeNormal); | ||||
| planeData->m_planeConstant = float(m_planeConstant); | planeData->m_planeConstant = float(m_planeConstant); | ||||
| // Fill padding with zeros to appease msan. | |||||
| planeData->m_pad[0] = 0; | |||||
| planeData->m_pad[1] = 0; | |||||
| planeData->m_pad[2] = 0; | |||||
| planeData->m_pad[3] = 0; | |||||
| return "btStaticPlaneShapeData"; | return "btStaticPlaneShapeData"; | ||||
| } | } | ||||
| #endif //BT_STATIC_PLANE_SHAPE_H | #endif //BT_STATIC_PLANE_SHAPE_H | ||||