55 #ifndef USE_BOX_INERTIA_APPROXIMATION    72         int idxRadius, idxHeight;
    90         radius2 = halfExtents[idxRadius] * halfExtents[idxRadius];
    91         height2 = 
btScalar(4.) * halfExtents[idxHeight] * halfExtents[idxHeight];
    94         btScalar t1 = div12 * height2 + div4 * radius2;
   108 #else //USE_BOX_INERTIA_APPROXIMATION   117                                         mass/(
btScalar(12.0)) * (lx*lx + lz*lz),
   118                                         mass/(
btScalar(12.0)) * (lx*lx + ly*ly));
   119 #endif //USE_BOX_INERTIA_APPROXIMATION   125 const int cylinderUpAxis = 0;
   135         btScalar halfHeight = halfExtents[cylinderUpAxis];
   146                 tmp[YY] = v[YY] < 0.0 ? -halfHeight : halfHeight;
   153                 tmp[YY] = v[YY] < 0.0 ? -halfHeight : halfHeight;
   169 const int cylinderUpAxis = 1;
   176         btScalar halfHeight = halfExtents[cylinderUpAxis];
   187                 tmp[YY] = v[YY] < 0.0 ? -halfHeight : halfHeight;
   194                 tmp[YY] = v[YY] < 0.0 ? -halfHeight : halfHeight;
   203 const int cylinderUpAxis = 2;
   213         btScalar halfHeight = halfExtents[cylinderUpAxis];
   224                 tmp[YY] = v[YY] < 0.0 ? -halfHeight : halfHeight;
   231                 tmp[YY] = v[YY] < 0.0 ? -halfHeight : halfHeight;
   256         for (
int i=0;i<numVectors;i++)
   264         for (
int i=0;i<numVectors;i++)
   275         for (
int i=0;i<numVectors;i++)
 btCylinderShapeZ(const btVector3 &halfExtents)
btVector3 getHalfExtentsWithMargin() const 
btVector3 CylinderLocalSupportY(const btVector3 &halfExtents, const btVector3 &v)
void setValue(const btScalar &_x, const btScalar &_y, const btScalar &_z)
virtual btVector3 localGetSupportingVertexWithoutMargin(const btVector3 &vec) const 
The btConvexInternalShape is an internal base class, shared by most convex shape implementations. 
btScalar btSqrt(btScalar y)
#define SIMD_FORCE_INLINE
virtual void calculateLocalInertia(btScalar mass, btVector3 &inertia) const 
const btVector3 & getHalfExtentsWithoutMargin() const 
virtual btScalar getMargin() const 
btVector3 m_implicitShapeDimensions
const btScalar & x() const 
Return the x value. 
btVector3 CylinderLocalSupportZ(const btVector3 &halfExtents, const btVector3 &v)
const btScalar & y() const 
Return the y value. 
btVector3 can be used to represent 3D points and vectors. 
btCylinderShapeX(const btVector3 &halfExtents)
void setSafeMargin(btScalar minDimension, btScalar defaultMarginMultiplier=0.1f)
virtual btVector3 localGetSupportingVertexWithoutMargin(const btVector3 &vec) const 
btVector3 CylinderLocalSupportX(const btVector3 &halfExtents, const btVector3 &v)
virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3 *vectors, btVector3 *supportVerticesOut, int numVectors) const 
btCylinderShape(const btVector3 &halfExtents)
The btCylinderShape class implements a cylinder shape primitive, centered around the origin...
virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3 *vectors, btVector3 *supportVerticesOut, int numVectors) const 
void getAabb(const btTransform &t, btVector3 &aabbMin, btVector3 &aabbMax) const 
getAabb's default implementation is brute force, expected derived classes to implement a fast dedicat...
virtual btVector3 localGetSupportingVertexWithoutMargin(const btVector3 &vec) const 
void btTransformAabb(const btVector3 &halfExtents, btScalar margin, const btTransform &t, btVector3 &aabbMinOut, btVector3 &aabbMaxOut)
virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3 *vectors, btVector3 *supportVerticesOut, int numVectors) const 
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
const btScalar & z() const 
Return the z value.