Revision: 26593
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26593
Author:   ben2610
Date:     2010-02-03 22:20:06 +0100 (Wed, 03 Feb 2010)

Log Message:
-----------
Add btBvhTriangleMeshShape::buildOptimizedBvh() in preparation of next commit. 
This patch has been approved already and will be in Bullet 2.76.

Modified Paths:
--------------
    
trunk/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp
    
trunk/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h

Modified: 
trunk/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp
===================================================================
--- 
trunk/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp
 2010-02-03 21:14:50 UTC (rev 26592)
+++ 
trunk/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp
 2010-02-03 21:20:06 UTC (rev 26593)
@@ -30,22 +30,9 @@
        //construct bvh from meshInterface
 #ifndef DISABLE_BVH
 
-       btVector3 bvhAabbMin,bvhAabbMax;
-       if(meshInterface->hasPremadeAabb())
-       {
-               meshInterface->getPremadeAabb(&bvhAabbMin, &bvhAabbMax);
-       }
-       else
-       {
-               meshInterface->calculateAabbBruteForce(bvhAabbMin,bvhAabbMax);
-       }
-       
        if (buildBvh)
        {
-               void* mem = btAlignedAlloc(sizeof(btOptimizedBvh),16);
-               m_bvh = new (mem) btOptimizedBvh();
-               
m_bvh->build(meshInterface,m_useQuantizedAabbCompression,bvhAabbMin,bvhAabbMax);
-               m_ownsBvh = true;
+               buildOptimizedBvh();
        }
 
 #endif //DISABLE_BVH
@@ -343,20 +330,25 @@
    if ((getLocalScaling() -scaling).length2() > SIMD_EPSILON)
    {
       btTriangleMeshShape::setLocalScaling(scaling);
-      if (m_ownsBvh)
-      {
-         m_bvh->~btOptimizedBvh();
-         btAlignedFree(m_bvh);
-      }
-      ///m_localAabbMin/m_localAabbMax is already re-calculated in 
btTriangleMeshShape. We could just scale aabb, but this needs some more work
-      void* mem = btAlignedAlloc(sizeof(btOptimizedBvh),16);
-      m_bvh = new(mem) btOptimizedBvh();
-      //rebuild the bvh...
-      
m_bvh->build(m_meshInterface,m_useQuantizedAabbCompression,m_localAabbMin,m_localAabbMax);
-      m_ownsBvh = true;
+         buildOptimizedBvh();
    }
 }
 
+void   btBvhTriangleMeshShape::buildOptimizedBvh()
+{
+       if (m_ownsBvh)
+       {
+               m_bvh->~btOptimizedBvh();
+               btAlignedFree(m_bvh);
+       }
+       ///m_localAabbMin/m_localAabbMax is already re-calculated in 
btTriangleMeshShape. We could just scale aabb, but this needs some more work
+       void* mem = btAlignedAlloc(sizeof(btOptimizedBvh),16);
+       m_bvh = new(mem) btOptimizedBvh();
+       //rebuild the bvh...
+       
m_bvh->build(m_meshInterface,m_useQuantizedAabbCompression,m_localAabbMin,m_localAabbMax);
+       m_ownsBvh = true;
+}
+
 void   btBvhTriangleMeshShape::setOptimizedBvh(btOptimizedBvh* bvh, const 
btVector3& scaling)
 {
    btAssert(!m_bvh);

Modified: 
trunk/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h
===================================================================
--- 
trunk/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h
   2010-02-03 21:14:50 UTC (rev 26592)
+++ 
trunk/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h
   2010-02-03 21:20:06 UTC (rev 26593)
@@ -76,6 +76,8 @@
 
        void    setOptimizedBvh(btOptimizedBvh* bvh, const btVector3& 
localScaling=btVector3(1,1,1));
 
+       void    buildOptimizedBvh();
+
        bool    usesQuantizedAabbCompression() const
        {
                return  m_useQuantizedAabbCompression;


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to