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