diff options
Diffstat (limited to 'thirdparty/bullet/BulletCollision/CollisionShapes/btConeShape.h')
-rw-r--r-- | thirdparty/bullet/BulletCollision/CollisionShapes/btConeShape.h | 175 |
1 files changed, 0 insertions, 175 deletions
diff --git a/thirdparty/bullet/BulletCollision/CollisionShapes/btConeShape.h b/thirdparty/bullet/BulletCollision/CollisionShapes/btConeShape.h deleted file mode 100644 index 49f26bc4e5..0000000000 --- a/thirdparty/bullet/BulletCollision/CollisionShapes/btConeShape.h +++ /dev/null @@ -1,175 +0,0 @@ -/* -Bullet Continuous Collision Detection and Physics Library -Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org - -This software is provided 'as-is', without any express or implied warranty. -In no event will the authors be held liable for any damages arising from the use of this software. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, -subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef BT_CONE_MINKOWSKI_H -#define BT_CONE_MINKOWSKI_H - -#include "btConvexInternalShape.h" -#include "BulletCollision/BroadphaseCollision/btBroadphaseProxy.h" // for the types - -///The btConeShape implements a cone shape primitive, centered around the origin and aligned with the Y axis. The btConeShapeX is aligned around the X axis and btConeShapeZ around the Z axis. -ATTRIBUTE_ALIGNED16(class) -btConeShape : public btConvexInternalShape - -{ - btScalar m_sinAngle; - btScalar m_radius; - btScalar m_height; - int m_coneIndices[3]; - btVector3 coneLocalSupport(const btVector3& v) const; - -public: - BT_DECLARE_ALIGNED_ALLOCATOR(); - - btConeShape(btScalar radius, btScalar height); - - virtual btVector3 localGetSupportingVertex(const btVector3& vec) const; - virtual btVector3 localGetSupportingVertexWithoutMargin(const btVector3& vec) const; - virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors, btVector3* supportVerticesOut, int numVectors) const; - - btScalar getRadius() const { return m_radius; } - btScalar getHeight() const { return m_height; } - - void setRadius(const btScalar radius) - { - m_radius = radius; - } - void setHeight(const btScalar height) - { - m_height = height; - } - - virtual void calculateLocalInertia(btScalar mass, btVector3 & inertia) const - { - btTransform identity; - identity.setIdentity(); - btVector3 aabbMin, aabbMax; - getAabb(identity, aabbMin, aabbMax); - - btVector3 halfExtents = (aabbMax - aabbMin) * btScalar(0.5); - - btScalar margin = getMargin(); - - btScalar lx = btScalar(2.) * (halfExtents.x() + margin); - btScalar ly = btScalar(2.) * (halfExtents.y() + margin); - btScalar lz = btScalar(2.) * (halfExtents.z() + margin); - const btScalar x2 = lx * lx; - const btScalar y2 = ly * ly; - const btScalar z2 = lz * lz; - const btScalar scaledmass = mass * btScalar(0.08333333); - - inertia = scaledmass * (btVector3(y2 + z2, x2 + z2, x2 + y2)); - - // inertia.x() = scaledmass * (y2+z2); - // inertia.y() = scaledmass * (x2+z2); - // inertia.z() = scaledmass * (x2+y2); - } - - virtual const char* getName() const - { - return "Cone"; - } - - ///choose upAxis index - void setConeUpIndex(int upIndex); - - int getConeUpIndex() const - { - return m_coneIndices[1]; - } - - virtual btVector3 getAnisotropicRollingFrictionDirection() const - { - return btVector3(0, 1, 0); - } - - virtual void setLocalScaling(const btVector3& scaling); - - virtual int calculateSerializeBufferSize() const; - - ///fills the dataBuffer and returns the struct name (and 0 on failure) - virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const; -}; - -///btConeShape implements a Cone shape, around the X axis -class btConeShapeX : public btConeShape -{ -public: - btConeShapeX(btScalar radius, btScalar height); - - virtual btVector3 getAnisotropicRollingFrictionDirection() const - { - return btVector3(1, 0, 0); - } - - //debugging - virtual const char* getName() const - { - return "ConeX"; - } -}; - -///btConeShapeZ implements a Cone shape, around the Z axis -class btConeShapeZ : public btConeShape -{ -public: - btConeShapeZ(btScalar radius, btScalar height); - - virtual btVector3 getAnisotropicRollingFrictionDirection() const - { - return btVector3(0, 0, 1); - } - - //debugging - virtual const char* getName() const - { - return "ConeZ"; - } -}; - -///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64 -struct btConeShapeData -{ - btConvexInternalShapeData m_convexInternalShapeData; - - int m_upIndex; - - char m_padding[4]; -}; - -SIMD_FORCE_INLINE int btConeShape::calculateSerializeBufferSize() const -{ - return sizeof(btConeShapeData); -} - -///fills the dataBuffer and returns the struct name (and 0 on failure) -SIMD_FORCE_INLINE const char* btConeShape::serialize(void* dataBuffer, btSerializer* serializer) const -{ - btConeShapeData* shapeData = (btConeShapeData*)dataBuffer; - - btConvexInternalShape::serialize(&shapeData->m_convexInternalShapeData, serializer); - - shapeData->m_upIndex = m_coneIndices[1]; - - // Fill padding with zeros to appease msan. - shapeData->m_padding[0] = 0; - shapeData->m_padding[1] = 0; - shapeData->m_padding[2] = 0; - shapeData->m_padding[3] = 0; - - return "btConeShapeData"; -} - -#endif //BT_CONE_MINKOWSKI_H |