[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [11195] branches/2-44-stable/blender: branches/2-44-stable
Diego Borghetti (Plumiferos)
bdiego at gmail.com
Sun Jul 8 23:10:12 CEST 2007
Revision: 11195
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11195
Author: bdiego
Date: 2007-07-08 23:10:11 +0200 (Sun, 08 Jul 2007)
Log Message:
-----------
branches/2-44-stable
Merge from trunk:
revision 11164:11165
Bugfix: 'Random' crashes after duplicating bones
Link: http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11165
revision 11024:11025
Bugfix: adding static objects will 'replace' previously added static object in game engine
need to use new motion state.
Link: http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11025
revision 11025:11026
Preparation to upgrade to bullet 2.53
Link: http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11026
revision 11026:11027
Upgrade to Bullet 2.53
Link: http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11027
revision 11177:11178
Synchronized to latest version of Bullet.
Link: http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11178
revision 11180:11181
Fixed issue with kinematic objects
Link: http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11181
revision 11181:11182
Someone reversed axle direction conventions inside Bullet (axle winding),
so need to compensate to keep game blender vehicles working the same.
Link: http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11182
revision 11186:11187
Makefile fix.
Link: http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11187
----
This is a big commit, i test it on linux and don't get any compile error.. so please test it
and let me know if you have some compile error.
Erwin if i forget some things, let me know.
Olivier: i begin work in the log now, need a review and then i send it to you (tomorrow).
Revision Links:
--------------
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11164
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11024
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11025
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11026
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11177
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11180
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11181
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11186
Modified Paths:
--------------
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/BroadphaseCollision/btDispatcher.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionDispatch/SphereTriangleDetector.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionDispatch/SphereTriangleDetector.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionDispatch/btCollisionCreateFunc.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionDispatch/btCollisionObject.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionDispatch/btCollisionWorld.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionDispatch/btCompoundCollisionAlgorithm.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionDispatch/btCompoundCollisionAlgorithm.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionDispatch/btConvexConcaveCollisionAlgorithm.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionDispatch/btConvexConcaveCollisionAlgorithm.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionDispatch/btEmptyCollisionAlgorithm.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionDispatch/btEmptyCollisionAlgorithm.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionDispatch/btManifoldResult.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionDispatch/btSimulationIslandManager.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionDispatch/btSimulationIslandManager.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionDispatch/btSphereBoxCollisionAlgorithm.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionDispatch/btSphereBoxCollisionAlgorithm.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionDispatch/btSphereTriangleCollisionAlgorithm.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionDispatch/btSphereTriangleCollisionAlgorithm.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionDispatch/btUnionFind.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionDispatch/btUnionFind.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btBoxShape.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btBoxShape.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btCollisionMargin.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btCollisionShape.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btCollisionShape.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btCompoundShape.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btCompoundShape.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btConcaveShape.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btConcaveShape.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btConeShape.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btConeShape.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btConvexHullShape.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btConvexShape.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btConvexShape.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btCylinderShape.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btCylinderShape.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btEmptyShape.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btEmptyShape.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btMinkowskiSumShape.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btMinkowskiSumShape.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btMultiSphereShape.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btOptimizedBvh.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btOptimizedBvh.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btSphereShape.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btSphereShape.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btTetrahedronShape.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btTriangleBuffer.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btTriangleCallback.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btTriangleMesh.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btTriangleMesh.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btTriangleMeshShape.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btTriangleShape.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btContinuousConvexCollision.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btConvexCast.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btConvexPenetrationDepthSolver.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btGjkConvexCast.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btGjkConvexCast.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btGjkEpa.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btGjkEpaPenetrationDepthSolver.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btMinkowskiPenetrationDepthSolver.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btPointCollector.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btRaycastCallback.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btRaycastCallback.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btSimplexSolverInterface.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btSubSimplexConvexCast.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btSubSimplexConvexCast.h
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h
branches/2-44-stable/blender/extern/bullet2/src/BulletDynamics/ConstraintSolver/btConstraintSolver.h
branches/2-44-stable/blender/extern/bullet2/src/BulletDynamics/ConstraintSolver/btContactConstraint.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletDynamics/ConstraintSolver/btContactConstraint.h
branches/2-44-stable/blender/extern/bullet2/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h
branches/2-44-stable/blender/extern/bullet2/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h
branches/2-44-stable/blender/extern/bullet2/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h
branches/2-44-stable/blender/extern/bullet2/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h
branches/2-44-stable/blender/extern/bullet2/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h
branches/2-44-stable/blender/extern/bullet2/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h
branches/2-44-stable/blender/extern/bullet2/src/BulletDynamics/ConstraintSolver/btSolve2LinearConstraint.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletDynamics/ConstraintSolver/btSolve2LinearConstraint.h
branches/2-44-stable/blender/extern/bullet2/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h
branches/2-44-stable/blender/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h
branches/2-44-stable/blender/extern/bullet2/src/BulletDynamics/Dynamics/btDynamicsWorld.h
branches/2-44-stable/blender/extern/bullet2/src/BulletDynamics/Dynamics/btRigidBody.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletDynamics/Dynamics/btRigidBody.h
branches/2-44-stable/blender/extern/bullet2/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h
branches/2-44-stable/blender/extern/bullet2/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletDynamics/Vehicle/btRaycastVehicle.h
branches/2-44-stable/blender/extern/bullet2/src/BulletDynamics/Vehicle/btVehicleRaycaster.h
branches/2-44-stable/blender/extern/bullet2/src/BulletDynamics/Vehicle/btWheelInfo.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletDynamics/Vehicle/btWheelInfo.h
branches/2-44-stable/blender/extern/bullet2/src/Jamfile
branches/2-44-stable/blender/extern/bullet2/src/LinearMath/btAabbUtil2.h
branches/2-44-stable/blender/extern/bullet2/src/LinearMath/btAlignedAllocator.cpp
branches/2-44-stable/blender/extern/bullet2/src/LinearMath/btAlignedAllocator.h
branches/2-44-stable/blender/extern/bullet2/src/LinearMath/btAlignedObjectArray.h
branches/2-44-stable/blender/extern/bullet2/src/LinearMath/btDefaultMotionState.h
branches/2-44-stable/blender/extern/bullet2/src/LinearMath/btGeometryUtil.cpp
branches/2-44-stable/blender/extern/bullet2/src/LinearMath/btGeometryUtil.h
branches/2-44-stable/blender/extern/bullet2/src/LinearMath/btIDebugDraw.h
branches/2-44-stable/blender/extern/bullet2/src/LinearMath/btMatrix3x3.h
branches/2-44-stable/blender/extern/bullet2/src/LinearMath/btMotionState.h
branches/2-44-stable/blender/extern/bullet2/src/LinearMath/btPoint3.h
branches/2-44-stable/blender/extern/bullet2/src/LinearMath/btQuadWord.h
branches/2-44-stable/blender/extern/bullet2/src/LinearMath/btQuaternion.h
branches/2-44-stable/blender/extern/bullet2/src/LinearMath/btQuickprof.cpp
branches/2-44-stable/blender/extern/bullet2/src/LinearMath/btQuickprof.h
branches/2-44-stable/blender/extern/bullet2/src/LinearMath/btScalar.h
branches/2-44-stable/blender/extern/bullet2/src/LinearMath/btSimdMinMax.h
branches/2-44-stable/blender/extern/bullet2/src/LinearMath/btTransform.h
branches/2-44-stable/blender/extern/bullet2/src/LinearMath/btTransformUtil.h
branches/2-44-stable/blender/extern/bullet2/src/LinearMath/btVector3.h
branches/2-44-stable/blender/extern/bullet2/src/btBulletCollisionCommon.h
branches/2-44-stable/blender/extern/bullet2/src/btBulletDynamicsCommon.h
branches/2-44-stable/blender/release/Makefile
branches/2-44-stable/blender/source/blender/blenloader/intern/writefile.c
branches/2-44-stable/blender/source/blender/src/editarmature.c
branches/2-44-stable/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
branches/2-44-stable/blender/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp
branches/2-44-stable/blender/source/gameengine/Ketsji/KX_VehicleWrapper.cpp
branches/2-44-stable/blender/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
Added Paths:
-----------
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btCapsuleShape.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/CollisionShapes/btCapsuleShape.h
branches/2-44-stable/blender/extern/bullet2/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp
branches/2-44-stable/blender/extern/bullet2/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h
branches/2-44-stable/blender/extern/bullet2/src/BulletDynamics/ConstraintSolver/btSolverBody.h
branches/2-44-stable/blender/extern/bullet2/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h
Modified: branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp
===================================================================
--- branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp 2007-07-08 14:07:20 UTC (rev 11194)
+++ branches/2-44-stable/blender/extern/bullet2/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp 2007-07-08 21:10:11 UTC (rev 11195)
@@ -21,9 +21,34 @@
#include <assert.h>
+#ifdef DEBUG_BROADPHASE
+#include <stdio.h>
+void btAxisSweep3::debugPrintAxis(int axis, bool checkCardinality)
+{
+ int numEdges = m_pHandles[0].m_maxEdges[axis];
+ printf("SAP Axis %d, numEdges=%d\n",axis,numEdges);
+
+ int i;
+ for (i=0;i<numEdges+1;i++)
+ {
+ Edge* pEdge = m_pEdges[axis] + i;
+ Handle* pHandlePrev = getHandle(pEdge->m_handle);
+ int handleIndex = pEdge->IsMax()? pHandlePrev->m_maxEdges[axis] : pHandlePrev->m_minEdges[axis];
+ char beginOrEnd;
+ beginOrEnd=pEdge->IsMax()?'E':'B';
+ printf(" [%c,h=%d,p=%x,i=%d]\n",beginOrEnd,pEdge->m_handle,pEdge->m_pos,handleIndex);
+ }
+
+ if (checkCardinality)
+ assert(numEdges == m_numHandles*2+1);
+}
+#endif //DEBUG_BROADPHASE
+
+
btBroadphaseProxy* btAxisSweep3::createProxy( const btVector3& min, const btVector3& max,int shapeType,void* userPtr,short int collisionFilterGroup,short int collisionFilterMask)
{
- unsigned short handleId = addHandle(min,max, userPtr,collisionFilterGroup,collisionFilterMask);
+ (void)shapeType;
+ BP_FP_INT_TYPE handleId = addHandle(min,max, userPtr,collisionFilterGroup,collisionFilterMask);
Handle* handle = getHandle(handleId);
@@ -40,6 +65,7 @@
{
Handle* handle = static_cast<Handle*>(proxy);
updateHandle(handle->m_handleId,aabbMin,aabbMax);
+
}
@@ -50,10 +76,11 @@
btAxisSweep3::btAxisSweep3(const btPoint3& worldAabbMin,const btPoint3& worldAabbMax, int maxHandles)
:btOverlappingPairCache()
{
+ m_invalidPair = 0;
//assert(bounds.HasVolume());
// 1 handle is reserved as sentinel
- assert(maxHandles > 1 && maxHandles < 32767);
+ btAssert(maxHandles > 1 && maxHandles < BP_MAX_HANDLES);
// init bounds
m_worldAabbMin = worldAabbMin;
@@ -61,8 +88,10 @@
btVector3 aabbSize = m_worldAabbMax - m_worldAabbMin;
- m_quantize = btVector3(65535.0f,65535.0f,65535.0f) / aabbSize;
+ BP_FP_INT_TYPE maxInt = BP_HANDLE_SENTINEL;
+ m_quantize = btVector3(btScalar(maxInt),btScalar(maxInt),btScalar(maxInt)) / aabbSize;
+
// allocate handles buffer and put all handles on free list
m_pHandles = new Handle[maxHandles];
m_maxHandles = maxHandles;
@@ -71,7 +100,7 @@
// handle 0 is reserved as the null index, and is also used as the sentinel
m_firstFreeHandle = 1;
{
- for (int i = m_firstFreeHandle; i < maxHandles; i++)
+ for (BP_FP_INT_TYPE i = m_firstFreeHandle; i < maxHandles; i++)
m_pHandles[i].SetNextFree(i + 1);
m_pHandles[maxHandles - 1].SetNextFree(0);
}
@@ -94,9 +123,14 @@
m_pEdges[axis][0].m_pos = 0;
m_pEdges[axis][0].m_handle = 0;
- m_pEdges[axis][1].m_pos = 0xffff;
+ m_pEdges[axis][1].m_pos = BP_HANDLE_SENTINEL;
m_pEdges[axis][1].m_handle = 0;
+#ifdef DEBUG_BROADPHASE
+ debugPrintAxis(axis);
+#endif //DEBUG_BROADPHASE
+
}
+
}
btAxisSweep3::~btAxisSweep3()
@@ -107,43 +141,36 @@
delete[] m_pHandles;
}
-void btAxisSweep3::quantize(unsigned short* out, const btPoint3& point, int isMax) const
+void btAxisSweep3::quantize(BP_FP_INT_TYPE* out, const btPoint3& point, int isMax) const
{
btPoint3 clampedPoint(point);
- /*
- if (isMax)
- clampedPoint += btVector3(10,10,10);
- else
- {
- clampedPoint -= btVector3(10,10,10);
- }
- */
+
clampedPoint.setMax(m_worldAabbMin);
clampedPoint.setMin(m_worldAabbMax);
btVector3 v = (clampedPoint - m_worldAabbMin) * m_quantize;
- out[0] = (unsigned short)(((int)v.getX() & 0xfffc) | isMax);
- out[1] = (unsigned short)(((int)v.getY() & 0xfffc) | isMax);
- out[2] = (unsigned short)(((int)v.getZ() & 0xfffc) | isMax);
+ out[0] = (BP_FP_INT_TYPE)(((BP_FP_INT_TYPE)v.getX() & BP_HANDLE_MASK) | isMax);
+ out[1] = (BP_FP_INT_TYPE)(((BP_FP_INT_TYPE)v.getY() & BP_HANDLE_MASK) | isMax);
+ out[2] = (BP_FP_INT_TYPE)(((BP_FP_INT_TYPE)v.getZ() & BP_HANDLE_MASK) | isMax);
}
-unsigned short btAxisSweep3::allocHandle()
+BP_FP_INT_TYPE btAxisSweep3::allocHandle()
{
assert(m_firstFreeHandle);
- unsigned short handle = m_firstFreeHandle;
+ BP_FP_INT_TYPE handle = m_firstFreeHandle;
m_firstFreeHandle = getHandle(handle)->GetNextFree();
m_numHandles++;
return handle;
}
-void btAxisSweep3::freeHandle(unsigned short handle)
+void btAxisSweep3::freeHandle(BP_FP_INT_TYPE handle)
{
assert(handle > 0 && handle < m_maxHandles);
@@ -155,15 +182,15 @@
-unsigned short btAxisSweep3::addHandle(const btPoint3& aabbMin,const btPoint3& aabbMax, void* pOwner,short int collisionFilterGroup,short int collisionFilterMask)
+BP_FP_INT_TYPE btAxisSweep3::addHandle(const btPoint3& aabbMin,const btPoint3& aabbMax, void* pOwner,short int collisionFilterGroup,short int collisionFilterMask)
{
// quantize the bounds
- unsigned short min[3], max[3];
+ BP_FP_INT_TYPE min[3], max[3];
quantize(min, aabbMin, 0);
quantize(max, aabbMax, 1);
// allocate a handle
- unsigned short handle = allocHandle();
+ BP_FP_INT_TYPE handle = allocHandle();
assert(handle!= 0xcdcd);
Handle* pHandle = getHandle(handle);
@@ -175,11 +202,13 @@
pHandle->m_collisionFilterMask = collisionFilterMask;
// compute current limit of edge arrays
- int limit = m_numHandles * 2;
+ BP_FP_INT_TYPE limit = m_numHandles * 2;
+
// insert new edges just inside the max boundary edge
- for (int axis = 0; axis < 3; axis++)
+ for (BP_FP_INT_TYPE axis = 0; axis < 3; axis++)
{
+
m_pHandles[0].m_maxEdges[axis] += 2;
m_pEdges[axis][limit + 1] = m_pEdges[axis][limit - 1];
@@ -202,14 +231,14 @@
sortMinDown(2, pHandle->m_minEdges[2], true);
sortMaxDown(2, pHandle->m_maxEdges[2], true);
- //PrintAxis(1);
return handle;
}
-void btAxisSweep3::removeHandle(unsigned short handle)
+void btAxisSweep3::removeHandle(BP_FP_INT_TYPE handle)
{
+
Handle* pHandle = getHandle(handle);
//explicitly remove the pairs containing the proxy
@@ -220,42 +249,145 @@
// compute current limit of edge arrays
int limit = m_numHandles * 2;
+
int axis;
for (axis = 0;axis<3;axis++)
{
- Edge* pEdges = m_pEdges[axis];
- int maxEdge= pHandle->m_maxEdges[axis];
- pEdges[maxEdge].m_pos = 0xffff;
- int minEdge = pHandle->m_minEdges[axis];
- pEdges[minEdge].m_pos = 0xffff;
+ m_pHandles[0].m_maxEdges[axis] -= 2;
}
// remove the edges by sorting them up to the end of the list
for ( axis = 0; axis < 3; axis++)
{
Edge* pEdges = m_pEdges[axis];
- int max = pHandle->m_maxEdges[axis];
- pEdges[max].m_pos = 0xffff;
+ BP_FP_INT_TYPE max = pHandle->m_maxEdges[axis];
+ pEdges[max].m_pos = BP_HANDLE_SENTINEL;
sortMaxUp(axis,max,false);
-
- int i = pHandle->m_minEdges[axis];
- pEdges[i].m_pos = 0xffff;
+
+ BP_FP_INT_TYPE i = pHandle->m_minEdges[axis];
+ pEdges[i].m_pos = BP_HANDLE_SENTINEL;
+
+
sortMinUp(axis,i,false);
pEdges[limit-1].m_handle = 0;
- pEdges[limit-1].m_pos = 0xffff;
+ pEdges[limit-1].m_pos = BP_HANDLE_SENTINEL;
+
+#ifdef DEBUG_BROADPHASE
+ debugPrintAxis(axis,false);
+#endif //DEBUG_BROADPHASE
+
}
+
// free the handle
freeHandle(handle);
}
+extern int gOverlappingPairs;
+
+
+void btAxisSweep3::refreshOverlappingPairs()
+{
+
+}
+void btAxisSweep3::processAllOverlappingPairs(btOverlapCallback* callback)
+{
+
+ //perform a sort, to find duplicates and to sort 'invalid' pairs to the end
+ m_overlappingPairArray.heapSort(btBroadphasePairSortPredicate());
+
+ //remove the 'invalid' ones
+#ifdef USE_POPBACK_REMOVAL
+ while (m_invalidPair>0)
+ {
+ m_invalidPair--;
+ m_overlappingPairArray.pop_back();
+ }
+#else
+ m_overlappingPairArray.resize(m_overlappingPairArray.size() - m_invalidPair);
+ m_invalidPair = 0;
+#endif
+
+
+ int i;
+
+ btBroadphasePair previousPair;
+ previousPair.m_pProxy0 = 0;
+ previousPair.m_pProxy1 = 0;
+ previousPair.m_algorithm = 0;
+
+
+ for (i=0;i<m_overlappingPairArray.size();i++)
+ {
+
+ btBroadphasePair& pair = m_overlappingPairArray[i];
+
+ bool isDuplicate = (pair == previousPair);
+
+ previousPair = pair;
+
+ bool needsRemoval = false;
+
+ if (!isDuplicate)
+ {
+ bool hasOverlap = testOverlap(pair.m_pProxy0,pair.m_pProxy1);
+
+ if (hasOverlap)
+ {
+ needsRemoval = callback->processOverlap(pair);
+ } else
+ {
+ needsRemoval = true;
+ }
+ } else
+ {
+ //remove duplicate
+ needsRemoval = true;
+ //should have no algorithm
+ btAssert(!pair.m_algorithm);
+ }
+
+ if (needsRemoval)
+ {
+ cleanOverlappingPair(pair);
+
+ // m_overlappingPairArray.swap(i,m_overlappingPairArray.size()-1);
+ // m_overlappingPairArray.pop_back();
+ pair.m_pProxy0 = 0;
+ pair.m_pProxy1 = 0;
+ m_invalidPair++;
+ gOverlappingPairs--;
+ }
+
+ }
+}
+
+
+bool btAxisSweep3::testOverlap(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1)
+{
+ const Handle* pHandleA = static_cast<Handle*>(proxy0);
+ const Handle* pHandleB = static_cast<Handle*>(proxy1);
+
+ //optimization 1: check the array index (memory address), instead of the m_pos
+
+ for (int axis = 0; axis < 3; axis++)
+ {
+ if (pHandleA->m_maxEdges[axis] < pHandleB->m_minEdges[axis] ||
+ pHandleB->m_maxEdges[axis] < pHandleA->m_minEdges[axis])
+ {
+ return false;
+ }
+ }
+ return true;
+}
+
bool btAxisSweep3::testOverlap(int ignoreAxis,const Handle* pHandleA, const Handle* pHandleB)
{
//optimization 1: check the array index (memory address), instead of the m_pos
@@ -272,7 +404,7 @@
}
}
- //optimization 2: only 2 axis need to be tested
+ //optimization 2: only 2 axis need to be tested (conflicts with 'delayed removal' optimization)
/*for (int axis = 0; axis < 3; axis++)
{
@@ -287,7 +419,7 @@
return true;
}
-void btAxisSweep3::updateHandle(unsigned short handle, const btPoint3& aabbMin,const btPoint3& aabbMax)
+void btAxisSweep3::updateHandle(BP_FP_INT_TYPE handle, const btPoint3& aabbMin,const btPoint3& aabbMax)
{
// assert(bounds.IsFinite());
//assert(bounds.HasVolume());
@@ -295,15 +427,15 @@
Handle* pHandle = getHandle(handle);
// quantize the new bounds
- unsigned short min[3], max[3];
+ BP_FP_INT_TYPE min[3], max[3];
quantize(min, aabbMin, 0);
quantize(max, aabbMax, 1);
// update changed edges
for (int axis = 0; axis < 3; axis++)
{
- unsigned short emin = pHandle->m_minEdges[axis];
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list