Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Dec 13, 2008, 11:45:51 PM (16 years ago)
Author:
rgrieder
Message:

Updated to Bullet 2.73 (first part).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/physics/src/bullet/BulletCollision/CollisionShapes/btConvexPointCloudShape.h

    r2192 r2430  
    2424ATTRIBUTE_ALIGNED16(class) btConvexPointCloudShape : public btPolyhedralConvexShape
    2525{
    26         btVector3* m_points;
     26        btVector3* m_unscaledPoints;
    2727        int m_numPoints;
     28
    2829public:
    2930        BT_DECLARE_ALIGNED_ALLOCATOR();
    3031
    31         btConvexPointCloudShape(btVector3* points,int numPoints);
     32        btConvexPointCloudShape(btVector3* points,int numPoints, const btVector3& localScaling,bool computeAabb = true)
     33        {
     34                m_localScaling = localScaling;
     35                m_shapeType = CONVEX_POINT_CLOUD_SHAPE_PROXYTYPE;
     36                m_unscaledPoints = points;
     37                m_numPoints = numPoints;
    3238
    33         void setPoints (btVector3* points, int numPoints);
    34 
    35         btPoint3* getPoints()
    36         {
    37                 return m_points;
     39                if (computeAabb)
     40                        recalcLocalAabb();
    3841        }
    3942
    40         const btPoint3* getPoints() const
     43        void setPoints (btVector3* points, int numPoints, bool computeAabb = true)
    4144        {
    42                 return m_points;
     45                m_unscaledPoints = points;
     46                m_numPoints = numPoints;
     47
     48                if (computeAabb)
     49                        recalcLocalAabb();
    4350        }
    4451
    45         int getNumPoints() const
     52        SIMD_FORCE_INLINE       btVector3* getUnscaledPoints()
     53        {
     54                return m_unscaledPoints;
     55        }
     56
     57        SIMD_FORCE_INLINE       const btVector3* getUnscaledPoints() const
     58        {
     59                return m_unscaledPoints;
     60        }
     61
     62        SIMD_FORCE_INLINE       int getNumPoints() const
    4663        {
    4764                return m_numPoints;
    4865        }
    4966
     67        SIMD_FORCE_INLINE       btVector3       getScaledPoint( int index) const
     68        {
     69                return m_unscaledPoints[index] * m_localScaling;
     70        }
     71
     72#ifndef __SPU__
    5073        virtual btVector3       localGetSupportingVertex(const btVector3& vec)const;
    5174        virtual btVector3       localGetSupportingVertexWithoutMargin(const btVector3& vec)const;
    5275        virtual void    batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const;
     76#endif
    5377
    5478
     
    5882        virtual int     getNumVertices() const;
    5983        virtual int getNumEdges() const;
    60         virtual void getEdge(int i,btPoint3& pa,btPoint3& pb) const;
    61         virtual void getVertex(int i,btPoint3& vtx) const;
     84        virtual void getEdge(int i,btVector3& pa,btVector3& pb) const;
     85        virtual void getVertex(int i,btVector3& vtx) const;
    6286        virtual int     getNumPlanes() const;
    63         virtual void getPlane(btVector3& planeNormal,btPoint3& planeSupport,int i ) const;
    64         virtual bool isInside(const btPoint3& pt,btScalar tolerance) const;
     87        virtual void getPlane(btVector3& planeNormal,btVector3& planeSupport,int i ) const;
     88        virtual bool isInside(const btVector3& pt,btScalar tolerance) const;
    6589
    6690        ///in case we receive negative scaling
Note: See TracChangeset for help on using the changeset viewer.