Hopefully a working merge with trunk (could be one error left in raytrace.c - will...
authorDaniel Genrich <daniel.genrich@gmx.net>
Mon, 20 Apr 2009 00:19:16 +0000 (00:19 +0000)
committerDaniel Genrich <daniel.genrich@gmx.net>
Mon, 20 Apr 2009 00:19:16 +0000 (00:19 +0000)
Merging 18706 - 19804

933 files changed:
CMakeLists.txt
SConstruct
blenderplayer/CMakeLists.txt
config/darwin-config.py
config/irix6-config.py
config/linux2-config.py
config/linuxcross-config.py
config/openbsd3-config.py
config/sunos5-config.py
config/win32-mingw-config.py
config/win32-vc-config.py
extern/CMakeLists.txt
extern/Makefile
extern/SConscript
extern/bullet2/make/msvc_9_0/Bullet.vcproj
extern/bullet2/src/Bullet-C-Api.h
extern/bullet2/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp
extern/bullet2/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h
extern/bullet2/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h
extern/bullet2/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h
extern/bullet2/src/BulletCollision/BroadphaseCollision/btDbvt.cpp
extern/bullet2/src/BulletCollision/BroadphaseCollision/btDbvt.h
extern/bullet2/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp
extern/bullet2/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h
extern/bullet2/src/BulletCollision/BroadphaseCollision/btDispatcher.h
extern/bullet2/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp
extern/bullet2/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h
extern/bullet2/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp
extern/bullet2/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h
extern/bullet2/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp
extern/bullet2/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h
extern/bullet2/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp
extern/bullet2/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h
extern/bullet2/src/BulletCollision/CMakeLists.txt
extern/bullet2/src/BulletCollision/CollisionDispatch/SphereTriangleDetector.cpp
extern/bullet2/src/BulletCollision/CollisionDispatch/SphereTriangleDetector.h
extern/bullet2/src/BulletCollision/CollisionDispatch/btActivatingCollisionAlgorithm.cpp [new file with mode: 0644]
extern/bullet2/src/BulletCollision/CollisionDispatch/btActivatingCollisionAlgorithm.h [new file with mode: 0644]
extern/bullet2/src/BulletCollision/CollisionDispatch/btBoxBoxCollisionAlgorithm.cpp
extern/bullet2/src/BulletCollision/CollisionDispatch/btBoxBoxCollisionAlgorithm.h
extern/bullet2/src/BulletCollision/CollisionDispatch/btBoxBoxDetector.cpp
extern/bullet2/src/BulletCollision/CollisionDispatch/btCollisionConfiguration.h
extern/bullet2/src/BulletCollision/CollisionDispatch/btCollisionCreateFunc.h
extern/bullet2/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp
extern/bullet2/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp
extern/bullet2/src/BulletCollision/CollisionDispatch/btCollisionObject.h
extern/bullet2/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp
extern/bullet2/src/BulletCollision/CollisionDispatch/btCollisionWorld.h
extern/bullet2/src/BulletCollision/CollisionDispatch/btCompoundCollisionAlgorithm.cpp
extern/bullet2/src/BulletCollision/CollisionDispatch/btCompoundCollisionAlgorithm.h
extern/bullet2/src/BulletCollision/CollisionDispatch/btConvexConcaveCollisionAlgorithm.cpp
extern/bullet2/src/BulletCollision/CollisionDispatch/btConvexConcaveCollisionAlgorithm.h
extern/bullet2/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp
extern/bullet2/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h
extern/bullet2/src/BulletCollision/CollisionDispatch/btConvexPlaneCollisionAlgorithm.cpp
extern/bullet2/src/BulletCollision/CollisionDispatch/btConvexPlaneCollisionAlgorithm.h
extern/bullet2/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp
extern/bullet2/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h
extern/bullet2/src/BulletCollision/CollisionDispatch/btGhostObject.cpp [new file with mode: 0644]
extern/bullet2/src/BulletCollision/CollisionDispatch/btGhostObject.h [new file with mode: 0644]
extern/bullet2/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp
extern/bullet2/src/BulletCollision/CollisionDispatch/btManifoldResult.h
extern/bullet2/src/BulletCollision/CollisionDispatch/btSimulationIslandManager.cpp
extern/bullet2/src/BulletCollision/CollisionDispatch/btSimulationIslandManager.h
extern/bullet2/src/BulletCollision/CollisionDispatch/btSphereBoxCollisionAlgorithm.cpp
extern/bullet2/src/BulletCollision/CollisionDispatch/btSphereBoxCollisionAlgorithm.h
extern/bullet2/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.cpp
extern/bullet2/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.h
extern/bullet2/src/BulletCollision/CollisionDispatch/btSphereTriangleCollisionAlgorithm.cpp
extern/bullet2/src/BulletCollision/CollisionDispatch/btSphereTriangleCollisionAlgorithm.h
extern/bullet2/src/BulletCollision/CollisionDispatch/btUnionFind.cpp
extern/bullet2/src/BulletCollision/CollisionDispatch/btUnionFind.h
extern/bullet2/src/BulletCollision/CollisionShapes/btBoxShape.h
extern/bullet2/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp
extern/bullet2/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h
extern/bullet2/src/BulletCollision/CollisionShapes/btCapsuleShape.cpp
extern/bullet2/src/BulletCollision/CollisionShapes/btCapsuleShape.h
extern/bullet2/src/BulletCollision/CollisionShapes/btCollisionShape.cpp
extern/bullet2/src/BulletCollision/CollisionShapes/btCollisionShape.h
extern/bullet2/src/BulletCollision/CollisionShapes/btCompoundShape.cpp
extern/bullet2/src/BulletCollision/CollisionShapes/btCompoundShape.h
extern/bullet2/src/BulletCollision/CollisionShapes/btConcaveShape.h
extern/bullet2/src/BulletCollision/CollisionShapes/btConeShape.cpp
extern/bullet2/src/BulletCollision/CollisionShapes/btConeShape.h
extern/bullet2/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp
extern/bullet2/src/BulletCollision/CollisionShapes/btConvexHullShape.h
extern/bullet2/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp
extern/bullet2/src/BulletCollision/CollisionShapes/btConvexInternalShape.h
extern/bullet2/src/BulletCollision/CollisionShapes/btConvexPointCloudShape.cpp [new file with mode: 0644]
extern/bullet2/src/BulletCollision/CollisionShapes/btConvexPointCloudShape.h [new file with mode: 0644]
extern/bullet2/src/BulletCollision/CollisionShapes/btConvexShape.cpp
extern/bullet2/src/BulletCollision/CollisionShapes/btConvexShape.h
extern/bullet2/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp
extern/bullet2/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h
extern/bullet2/src/BulletCollision/CollisionShapes/btCylinderShape.cpp
extern/bullet2/src/BulletCollision/CollisionShapes/btCylinderShape.h
extern/bullet2/src/BulletCollision/CollisionShapes/btEmptyShape.cpp
extern/bullet2/src/BulletCollision/CollisionShapes/btEmptyShape.h
extern/bullet2/src/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.cpp
extern/bullet2/src/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.h
extern/bullet2/src/BulletCollision/CollisionShapes/btMinkowskiSumShape.cpp
extern/bullet2/src/BulletCollision/CollisionShapes/btMinkowskiSumShape.h
extern/bullet2/src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp
extern/bullet2/src/BulletCollision/CollisionShapes/btMultiSphereShape.h
extern/bullet2/src/BulletCollision/CollisionShapes/btMultimaterialTriangleMeshShape.h
extern/bullet2/src/BulletCollision/CollisionShapes/btOptimizedBvh.cpp
extern/bullet2/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp
extern/bullet2/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h
extern/bullet2/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp
extern/bullet2/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h
extern/bullet2/src/BulletCollision/CollisionShapes/btSphereShape.cpp
extern/bullet2/src/BulletCollision/CollisionShapes/btSphereShape.h
extern/bullet2/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp
extern/bullet2/src/BulletCollision/CollisionShapes/btStaticPlaneShape.h
extern/bullet2/src/BulletCollision/CollisionShapes/btStridingMeshInterface.h
extern/bullet2/src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp
extern/bullet2/src/BulletCollision/CollisionShapes/btTetrahedronShape.h
extern/bullet2/src/BulletCollision/CollisionShapes/btTriangleBuffer.h
extern/bullet2/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp
extern/bullet2/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h
extern/bullet2/src/BulletCollision/CollisionShapes/btTriangleIndexVertexMaterialArray.cpp
extern/bullet2/src/BulletCollision/CollisionShapes/btTriangleMesh.cpp
extern/bullet2/src/BulletCollision/CollisionShapes/btTriangleMesh.h
extern/bullet2/src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp
extern/bullet2/src/BulletCollision/CollisionShapes/btTriangleMeshShape.h
extern/bullet2/src/BulletCollision/CollisionShapes/btTriangleShape.h
extern/bullet2/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp
extern/bullet2/src/BulletCollision/CollisionShapes/btUniformScalingShape.h
extern/bullet2/src/BulletCollision/Gimpact/btBoxCollision.h
extern/bullet2/src/BulletCollision/Gimpact/btClipPolygon.h
extern/bullet2/src/BulletCollision/Gimpact/btContactProcessing.cpp
extern/bullet2/src/BulletCollision/Gimpact/btContactProcessing.h
extern/bullet2/src/BulletCollision/Gimpact/btGImpactBvh.cpp
extern/bullet2/src/BulletCollision/Gimpact/btGImpactBvh.h
extern/bullet2/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp
extern/bullet2/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h
extern/bullet2/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp
extern/bullet2/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h
extern/bullet2/src/BulletCollision/Gimpact/btGImpactShape.h
extern/bullet2/src/BulletCollision/Gimpact/btGenericPoolAllocator.cpp
extern/bullet2/src/BulletCollision/Gimpact/btGenericPoolAllocator.h
extern/bullet2/src/BulletCollision/Gimpact/btGeometryOperations.h
extern/bullet2/src/BulletCollision/Gimpact/btQuantization.h
extern/bullet2/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp
extern/bullet2/src/BulletCollision/Gimpact/btTriangleShapeEx.h
extern/bullet2/src/BulletCollision/Gimpact/gim_array.h
extern/bullet2/src/BulletCollision/Gimpact/gim_basic_geometry_operations.h
extern/bullet2/src/BulletCollision/Gimpact/gim_bitset.h
extern/bullet2/src/BulletCollision/Gimpact/gim_box_collision.h
extern/bullet2/src/BulletCollision/Gimpact/gim_box_set.cpp
extern/bullet2/src/BulletCollision/Gimpact/gim_box_set.h
extern/bullet2/src/BulletCollision/Gimpact/gim_clip_polygon.h
extern/bullet2/src/BulletCollision/Gimpact/gim_contact.h
extern/bullet2/src/BulletCollision/Gimpact/gim_geom_types.h
extern/bullet2/src/BulletCollision/Gimpact/gim_hash_table.h
extern/bullet2/src/BulletCollision/Gimpact/gim_linear_math.h
extern/bullet2/src/BulletCollision/Gimpact/gim_math.h
extern/bullet2/src/BulletCollision/Gimpact/gim_memory.h
extern/bullet2/src/BulletCollision/Gimpact/gim_radixsort.h
extern/bullet2/src/BulletCollision/Gimpact/gim_tri_collision.cpp
extern/bullet2/src/BulletCollision/Gimpact/gim_tri_collision.h
extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btContinuousConvexCollision.cpp
extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btConvexPenetrationDepthSolver.h
extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.cpp
extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btGjkEpaPenetrationDepthSolver.cpp
extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btGjkEpaPenetrationDepthSolver.h
extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp
extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h
extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h
extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btMinkowskiPenetrationDepthSolver.cpp
extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btMinkowskiPenetrationDepthSolver.h
extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp
extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h
extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btRaycastCallback.cpp
extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btRaycastCallback.h
extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btSimplexSolverInterface.h
extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp
extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h
extern/bullet2/src/BulletDynamics/CMakeLists.txt
extern/bullet2/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp
extern/bullet2/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h
extern/bullet2/src/BulletDynamics/ConstraintSolver/btContactConstraint.cpp
extern/bullet2/src/BulletDynamics/ConstraintSolver/btContactConstraint.h
extern/bullet2/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h
extern/bullet2/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp
extern/bullet2/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h
extern/bullet2/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp
extern/bullet2/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h
extern/bullet2/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp
extern/bullet2/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h
extern/bullet2/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp
extern/bullet2/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h
extern/bullet2/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp
extern/bullet2/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h
extern/bullet2/src/BulletDynamics/ConstraintSolver/btSolverBody.h
extern/bullet2/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h
extern/bullet2/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp
extern/bullet2/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h
extern/bullet2/src/BulletDynamics/Dynamics/Bullet-C-API.cpp
extern/bullet2/src/BulletDynamics/Dynamics/btActionInterface.h [new file with mode: 0644]
extern/bullet2/src/BulletDynamics/Dynamics/btContinuousDynamicsWorld.cpp
extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp
extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h
extern/bullet2/src/BulletDynamics/Dynamics/btDynamicsWorld.h
extern/bullet2/src/BulletDynamics/Dynamics/btRigidBody.cpp
extern/bullet2/src/BulletDynamics/Dynamics/btRigidBody.h
extern/bullet2/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp
extern/bullet2/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h
extern/bullet2/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp
extern/bullet2/src/BulletDynamics/Vehicle/btRaycastVehicle.h
extern/bullet2/src/BulletSoftBody/CMakeLists.txt
extern/bullet2/src/BulletSoftBody/btSoftBody.cpp
extern/bullet2/src/BulletSoftBody/btSoftBody.h
extern/bullet2/src/BulletSoftBody/btSoftBodyConcaveCollisionAlgorithm.cpp
extern/bullet2/src/BulletSoftBody/btSoftBodyConcaveCollisionAlgorithm.h
extern/bullet2/src/BulletSoftBody/btSoftBodyHelpers.cpp
extern/bullet2/src/BulletSoftBody/btSoftBodyHelpers.h
extern/bullet2/src/BulletSoftBody/btSoftBodyInternals.h
extern/bullet2/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.cpp
extern/bullet2/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.h
extern/bullet2/src/BulletSoftBody/btSoftRigidCollisionAlgorithm.cpp
extern/bullet2/src/BulletSoftBody/btSoftRigidCollisionAlgorithm.h
extern/bullet2/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp
extern/bullet2/src/BulletSoftBody/btSoftRigidDynamicsWorld.h
extern/bullet2/src/BulletSoftBody/btSoftSoftCollisionAlgorithm.h
extern/bullet2/src/BulletSoftBody/btSparseSDF.h
extern/bullet2/src/LinearMath/CMakeLists.txt
extern/bullet2/src/LinearMath/btAabbUtil2.h
extern/bullet2/src/LinearMath/btAlignedAllocator.cpp
extern/bullet2/src/LinearMath/btAlignedAllocator.h
extern/bullet2/src/LinearMath/btAlignedObjectArray.h
extern/bullet2/src/LinearMath/btConvexHull.cpp
extern/bullet2/src/LinearMath/btConvexHull.h
extern/bullet2/src/LinearMath/btIDebugDraw.h
extern/bullet2/src/LinearMath/btMatrix3x3.h
extern/bullet2/src/LinearMath/btQuadWord.h
extern/bullet2/src/LinearMath/btQuaternion.h
extern/bullet2/src/LinearMath/btQuickprof.cpp
extern/bullet2/src/LinearMath/btQuickprof.h
extern/bullet2/src/LinearMath/btScalar.h
extern/bullet2/src/LinearMath/btStackAlloc.h
extern/bullet2/src/LinearMath/btTransform.h
extern/bullet2/src/LinearMath/btTransformUtil.h
extern/bullet2/src/LinearMath/btVector3.h
extern/bullet2/src/SConscript
extern/libopenjpeg/CMakeLists.txt [new file with mode: 0644]
extern/libopenjpeg/Makefile [new file with mode: 0644]
extern/libopenjpeg/SConscript
extern/libopenjpeg/opj_includes.h
extern/libopenjpeg/t1_generate_luts.c [deleted file]
extern/libredcode/codec.c
extern/libredcode/format.c
extern/libredcode/format.h
intern/SoundSystem/Makefile
intern/SoundSystem/SND_DependKludge.h
intern/SoundSystem/SoundDefines.h
intern/SoundSystem/dummy/SND_DummyDevice.cpp
intern/SoundSystem/intern/Makefile
intern/SoundSystem/intern/SND_DeviceManager.cpp
intern/SoundSystem/intern/SND_Scene.cpp
intern/SoundSystem/intern/SND_Utils.cpp
intern/SoundSystem/make/msvc_6_0/SoundSystem.dsp
intern/SoundSystem/make/msvc_6_0/dummy/DummySoundSystem.dsp
intern/SoundSystem/make/msvc_6_0/openal/OpenALSoundSystem.dsp
intern/SoundSystem/openal/SND_OpenALDevice.cpp
intern/SoundSystem/openal/SND_OpenALDevice.h
intern/SoundSystem/sdl/SND_SDLCDDevice.h
intern/bmfont/make/msvc_6_0/bmfont.dsp
intern/bmfont/make/msvc_6_0/bmfont.dsw
intern/bmfont/test/make/msvc_6_0/BMF_Test.dsp
intern/bmfont/test/make/msvc_6_0/BMF_Test.dsw
intern/boolop/intern/BOP_Merge2.cpp
intern/boolop/intern/BOP_Misc.h
intern/boolop/make/msvc_6_0/boolop.dsp
intern/bsp/make/msvc6_0/bsplib.dsp
intern/bsp/make/msvc6_0/bsplib.dsw
intern/bsp/test/BSP_GhostTest/BSP_GhostTest.dsp
intern/bsp/test/BSP_GhostTest/BSP_GhostTest.dsw
intern/container/make/msvc_6_0/container.dsp
intern/container/make/msvc_6_0/container.dsw
intern/decimation/SConscript
intern/decimation/make/msvc_6_0/decimation.dsp
intern/decimation/make/msvc_6_0/decimation.dsw
intern/elbeem/make/msvc_6_0/elbeem.dsp
intern/ghost/intern/GHOST_SystemX11.cpp
intern/ghost/make/msvc/ghost.dsp
intern/ghost/make/msvc/ghost.dsw
intern/ghost/test/make/msvc_6_0/gears.dsp
intern/ghost/test/make/msvc_6_0/gears_C.dsp
intern/ghost/test/make/msvc_6_0/ghost_test.dsw
intern/guardedalloc/intern/mmap_win.c
intern/guardedalloc/make/msvc_6_0/guardedalloc.dsp
intern/guardedalloc/mmap_win.h
intern/iksolver/make/msvc_6_0/iksolver.dsp
intern/iksolver/make/msvc_6_0/iksolver.dsw
intern/iksolver/test/ik_glut_test/make/msvc_6_0/ik_glut_test.dsp
intern/iksolver/test/ik_glut_test/make/msvc_6_0/ik_glut_test.dsw
intern/make/msvc_6_0/build_install_all.dsp
intern/make/msvc_6_0/intern.dsw
intern/memutil/make/msvc_60/memutil.dsp
intern/memutil/make/msvc_60/memutil.dsw
intern/moto/include/MT_Quaternion.inl
intern/moto/make/msvc_6_0/MoTo.dsp
intern/moto/make/msvc_6_0/MoTo.dsw
intern/opennl/SConscript
intern/opennl/make/msvc_6_0/OpenNL.dsp
intern/opennl/make/msvc_6_0/OpenNL.dsw
intern/opennl/superlu/get_perm_c.c
intern/string/make/msvc_6_0/string.dsp
intern/string/make/msvc_6_0/string.dsw
projectfiles/blender/BLO_readblenfile/BLO_readblenfile.dsp
projectfiles/blender/BPY_python/BPY_python.dsp
projectfiles/blender/avi/BL_avi.dsp
projectfiles/blender/blender.dsp
projectfiles/blender/blender.dsw
projectfiles/blender/blenkernel/BKE_blenkernel.dsp
projectfiles/blender/blenlib/BLI_blenlib.dsp
projectfiles/blender/blenpluginapi/blenpluginapi/blenpluginapi.dsp
projectfiles/blender/ftfont/FTF_ftfont.dsp
projectfiles/blender/glut/BL_glut.dsp
projectfiles/blender/imbuf/BL_imbuf.dsp
projectfiles/blender/img/BL_img.dsp
projectfiles/blender/loader/BLO_loader.dsp
projectfiles/blender/makesdna/DNA_makesdna.dsp
projectfiles/blender/radiosity/BRA_radiosity.dsp
projectfiles/blender/render/BRE_render.dsp
projectfiles/blender/renderconverter/BRE_renderconverter.dsp
projectfiles/blender/src/BL_src.dsp
projectfiles/blender/src/BL_src_cre.dsp
projectfiles/datatoc/datatoc.dsp
projectfiles/gameengine/blenderhook/KX_blenderhook.dsp
projectfiles/gameengine/converter/KX_converter.dsp
projectfiles/gameengine/expression/EXP_expressions.dsp
projectfiles/gameengine/gamelogic/SCA_gamelogic.dsp
projectfiles/gameengine/gameplayer/axctl/GP_axctl.dsp
projectfiles/gameengine/gameplayer/common/GP_common.dsp
projectfiles/gameengine/gameplayer/ghost/GP_ghost.dsp
projectfiles/gameengine/gameplayer/glut/GP_glut.dsp
projectfiles/gameengine/gameplayer/loader/BlenderLoader/BlenderLoader.dsp
projectfiles/gameengine/gameplayer/netscape/GP_netscape.dsp
projectfiles/gameengine/gameplayer/netscape2/GP_netscape.dsp
projectfiles/gameengine/gameplayer/ps2/GP_ps2.dsp
projectfiles/gameengine/gameplayer/qt/gp.dsp
projectfiles/gameengine/gameplayer/qt/gpplugin.dsp
projectfiles/gameengine/gameplayer/qt/qtgp.dsw
projectfiles/gameengine/gameplayer/sdl/GP_sdl.dsp
projectfiles/gameengine/ketsji/KX_ketsji.dsp
projectfiles/gameengine/ketsji/network/KX_network.dsp
projectfiles/gameengine/network/loopbacknetwork/NG_loopbacknetwork.dsp
projectfiles/gameengine/network/network/NG_network.dsp
projectfiles/gameengine/network/terraplaynetwork/NG_terraplaynetwork.dsp
projectfiles/gameengine/physics/PHY_Physics/PHY_Dummy/PHY_Dummy.dsp
projectfiles/gameengine/physics/PHY_Physics/PHY_Ode/PHY_Ode.dsp
projectfiles/gameengine/physics/PHY_Physics/PHY_Physics.dsp
projectfiles/gameengine/physics/PHY_Physics/PHY_Sumo/PHY_Sumo.dsp
projectfiles/gameengine/rasterizer/RAS_rasterizer.dsp
projectfiles/gameengine/rasterizer/openglrasterizer/RAS_openglrasterizer.dsp
projectfiles/gameengine/scenegraph/SG_scenegraph.dsp
projectfiles/kernel/gen_messaging/gen_messaging.dsp
projectfiles/kernel/system/SYS_system.dsp
projectfiles/sumo/fuzzics/SM_fuzzics.dsp
projectfiles/sumo/moto/SM_moto.dsp
projectfiles/sumo/solid/SM_solid.dsp
projectfiles_vc7/sumo/moto/SM_moto.dsp
projectfiles_vc7/sumo/solid/SM_solid.dsp
projectfiles_vc9/blender/BPY_python/BPY_python.vcproj
projectfiles_vc9/blender/blender.vcproj
projectfiles_vc9/blender/imbuf/BL_imbuf.vcproj
projectfiles_vc9/blender/nodes/nodes.vcproj
projectfiles_vc9/blender/src/BL_src.vcproj
projectfiles_vc9/gameengine/blenderhook/KX_blenderhook.vcproj
projectfiles_vc9/gameengine/gameplayer/ghost/GP_ghost.vcproj
projectfiles_vc9/gameengine/ketsji/KX_ketsji.vcproj
projectfiles_vc9/gameengine/physics/PHY_Physics/PHY_Bullet/PHY_Bullet.vcproj
projectfiles_vc9/gameengine/physics/PHY_Physics/PHY_Physics.vcproj
projectfiles_vc9/gameengine/videotexture/TEX_Video.vcproj
release/datafiles/blenderbuttons
release/freedesktop/blender.desktop [new file with mode: 0644]
release/scripts/3ds_import.py
release/scripts/bevel_center.py
release/scripts/bpymodules/dxfLibrary.py
release/scripts/bpymodules/paths_svg2obj.py
release/scripts/export_dxf.py
release/scripts/export_fbx.py
release/scripts/export_obj.py
release/scripts/image_auto_layout.py
release/scripts/import_dxf.py
release/scripts/import_obj.py
release/scripts/import_web3d.py [changed mode: 0755->0644]
release/scripts/mesh_poly_reduce_grid.py [new file with mode: 0644]
release/scripts/ply_import.py
release/scripts/scripttemplate_camera_object.py [moved from release/scripts/scripttemplate_camer_object.py with 100% similarity]
release/scripts/scripttemplate_gamelogic.py
release/scripts/uvcalc_smart_project.py
release/windows/specific.sh
source/Makefile
source/blender/blenkernel/BKE_DerivedMesh.h
source/blender/blenkernel/BKE_bad_level_calls.h
source/blender/blenkernel/BKE_blender.h
source/blender/blenkernel/BKE_bmesh.h
source/blender/blenkernel/BKE_bmeshCustomData.h
source/blender/blenkernel/BKE_booleanops.h
source/blender/blenkernel/BKE_bvhutils.h
source/blender/blenkernel/BKE_cloth.h
source/blender/blenkernel/BKE_collision.h
source/blender/blenkernel/BKE_curve.h
source/blender/blenkernel/BKE_node.h
source/blender/blenkernel/BKE_particle.h
source/blender/blenkernel/BKE_scene.h
source/blender/blenkernel/BKE_shrinkwrap.h
source/blender/blenkernel/BKE_suggestions.h
source/blender/blenkernel/CMakeLists.txt
source/blender/blenkernel/SConscript
source/blender/blenkernel/bad_level_call_stubs/stubs.c
source/blender/blenkernel/intern/BME_Customdata.c
source/blender/blenkernel/intern/BME_conversions.c
source/blender/blenkernel/intern/BME_eulers.c
source/blender/blenkernel/intern/BME_mesh.c
source/blender/blenkernel/intern/BME_structure.c
source/blender/blenkernel/intern/BME_tools.c
source/blender/blenkernel/intern/DerivedMesh.c
source/blender/blenkernel/intern/Makefile
source/blender/blenkernel/intern/anim.c
source/blender/blenkernel/intern/bmesh_private.h
source/blender/blenkernel/intern/bvhutils.c
source/blender/blenkernel/intern/constraint.c
source/blender/blenkernel/intern/curve.c
source/blender/blenkernel/intern/effect.c
source/blender/blenkernel/intern/modifier.c
source/blender/blenkernel/intern/node.c
source/blender/blenkernel/intern/object.c
source/blender/blenkernel/intern/particle.c
source/blender/blenkernel/intern/particle_system.c
source/blender/blenkernel/intern/scene.c
source/blender/blenkernel/intern/shrinkwrap.c
source/blender/blenkernel/intern/softbody.c
source/blender/blenkernel/intern/suggestions.c
source/blender/blenkernel/intern/world.c
source/blender/blenkernel/intern/writeffmpeg.c
source/blender/blenlib/BLI_arithb.h
source/blender/blenlib/BLI_graph.h
source/blender/blenlib/intern/arithb.c
source/blender/blenlib/intern/bpath.c
source/blender/blenlib/intern/freetypefont.c
source/blender/blenlib/intern/graph.c
source/blender/blenlib/intern/psfont.c
source/blender/blenloader/intern/readfile.c
source/blender/blenloader/intern/writefile.c
source/blender/blenpluginapi/iff.h
source/blender/gpu/GPU_draw.h
source/blender/gpu/intern/gpu_draw.c
source/blender/imbuf/CMakeLists.txt
source/blender/imbuf/intern/IMB_anim.h
source/blender/imbuf/intern/IMB_jp2.h
source/blender/imbuf/intern/Makefile
source/blender/imbuf/intern/anim.c
source/blender/imbuf/intern/anim5.c
source/blender/imbuf/intern/cineon/cineon_dpx.c
source/blender/imbuf/intern/cineon/dpxlib.c
source/blender/imbuf/intern/dds/Makefile
source/blender/imbuf/intern/radiance_hdr.c
source/blender/imbuf/intern/scaling.c
source/blender/imbuf/intern/util.c
source/blender/include/BDR_gpencil.h
source/blender/include/BDR_sketch.h [new file with mode: 0644]
source/blender/include/BIF_editarmature.h
source/blender/include/BIF_editparticle.h
source/blender/include/BIF_editsound.h
source/blender/include/BIF_generate.h [new file with mode: 0644]
source/blender/include/BIF_poseobject.h
source/blender/include/BIF_radialcontrol.h
source/blender/include/BIF_resources.h
source/blender/include/BIF_retarget.h [new file with mode: 0644]
source/blender/include/BIF_sketch.h [new file with mode: 0644]
source/blender/include/BIF_space.h
source/blender/include/BIF_transform.h
source/blender/include/BSE_editaction_types.h
source/blender/include/BSE_view.h
source/blender/include/blendef.h
source/blender/include/butspace.h
source/blender/include/reeb.h
source/blender/include/transform.h
source/blender/makesdna/DNA_actuator_types.h
source/blender/makesdna/DNA_cloth_types.h
source/blender/makesdna/DNA_constraint_types.h
source/blender/makesdna/DNA_modifier_types.h
source/blender/makesdna/DNA_object_force.h
source/blender/makesdna/DNA_object_types.h
source/blender/makesdna/DNA_particle_types.h
source/blender/makesdna/DNA_scene_types.h
source/blender/makesdna/DNA_sensor_types.h
source/blender/makesdna/DNA_space_types.h
source/blender/makesdna/DNA_world_types.h
source/blender/nodes/SConscript
source/blender/nodes/TEX_node.h
source/blender/nodes/intern/CMP_nodes/CMP_blur.c
source/blender/nodes/intern/CMP_nodes/CMP_normalize.c
source/blender/nodes/intern/SHD_nodes/SHD_dynamic.c
source/blender/nodes/intern/SHD_nodes/SHD_invert.c
source/blender/nodes/intern/TEX_nodes/Makefile
source/blender/nodes/intern/TEX_nodes/TEX_compose.c [new file with mode: 0644]
source/blender/nodes/intern/TEX_nodes/TEX_decompose.c [new file with mode: 0644]
source/blender/nodes/intern/TEX_nodes/TEX_hueSatVal.c
source/blender/nodes/intern/TEX_nodes/TEX_image.c
source/blender/nodes/intern/TEX_nodes/TEX_math.c
source/blender/nodes/intern/TEX_nodes/TEX_proc.c
source/blender/nodes/intern/TEX_nodes/TEX_rotate.c
source/blender/nodes/intern/TEX_nodes/TEX_scale.c [new file with mode: 0644]
source/blender/nodes/intern/TEX_nodes/TEX_texture.c
source/blender/nodes/intern/TEX_nodes/TEX_translate.c
source/blender/nodes/intern/TEX_nodes/TEX_valToNor.c [new file with mode: 0644]
source/blender/nodes/intern/TEX_nodes/TEX_valToRgb.c
source/blender/nodes/intern/TEX_util.c
source/blender/python/BPY_interface.c
source/blender/python/SConscript
source/blender/python/api2_2x/Armature.c
source/blender/python/api2_2x/BGL.c
source/blender/python/api2_2x/BGL.h
source/blender/python/api2_2x/Blender.c
source/blender/python/api2_2x/Bone.c
source/blender/python/api2_2x/CurNurb.c
source/blender/python/api2_2x/Draw.c
source/blender/python/api2_2x/Lamp.c
source/blender/python/api2_2x/Mathutils.c
source/blender/python/api2_2x/Modifier.c
source/blender/python/api2_2x/Object.c
source/blender/python/api2_2x/Particle.c
source/blender/python/api2_2x/SurfNurb.c
source/blender/python/api2_2x/bpy_internal_import.c [new file with mode: 0644]
source/blender/python/api2_2x/bpy_internal_import.h [new file with mode: 0644]
source/blender/python/api2_2x/doc/Lamp.py
source/blender/python/api2_2x/doc/Particle.py
source/blender/python/api2_2x/doc/SConscript
source/blender/python/api2_2x/doc/epy_docgen.sh [changed mode: 0644->0755]
source/blender/python/api2_2x/modules.h
source/blender/python/api2_2x/sceneRender.c
source/blender/python/api2_2x/sceneSequence.c
source/blender/quicktime/apple/quicktime_import.c
source/blender/render/intern/source/convertblender.c
source/blender/render/intern/source/raytrace.c
source/blender/render/intern/source/renderdatabase.c
source/blender/src/CMakeLists.txt
source/blender/src/Makefile
source/blender/src/SConscript
source/blender/src/blenderbuttons.c
source/blender/src/booleanops.c
source/blender/src/buttons_editing.c
source/blender/src/buttons_logic.c
source/blender/src/buttons_object.c
source/blender/src/buttons_scene.c
source/blender/src/buttons_shading.c
source/blender/src/drawgpencil.c
source/blender/src/drawimage.c
source/blender/src/drawmesh.c
source/blender/src/drawobject.c
source/blender/src/drawview.c
source/blender/src/edit.c
source/blender/src/editarmature.c
source/blender/src/editarmature_generate.c [new file with mode: 0644]
source/blender/src/editarmature_retarget.c [moved from source/blender/src/autoarmature.c with 72% similarity]
source/blender/src/editarmature_sketch.c [new file with mode: 0644]
source/blender/src/editconstraint.c
source/blender/src/editcurve.c
source/blender/src/editface.c
source/blender/src/editmesh_tools.c
source/blender/src/editobject.c
source/blender/src/editparticle.c
source/blender/src/editseq.c
source/blender/src/editsound.c
source/blender/src/filesel.c
source/blender/src/gpencil.c
source/blender/src/hddaudio.c
source/blender/src/header_text.c
source/blender/src/header_view3d.c
source/blender/src/imagepaint.c
source/blender/src/interface.c
source/blender/src/parametrizer.c
source/blender/src/parametrizer.h
source/blender/src/poseobject.c
source/blender/src/radialcontrol.c
source/blender/src/reeb.c
source/blender/src/sculptmode.c
source/blender/src/seqeffects.c
source/blender/src/sequence.c
source/blender/src/space.c
source/blender/src/transform_conversions.c
source/blender/src/transform_snap.c
source/blender/src/unwrapper.c
source/blender/src/usiblender.c
source/blender/src/view.c
source/creator/CMakeLists.txt
source/creator/Makefile
source/creator/SConscript
source/darwin/Makefile
source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
source/gameengine/BlenderRoutines/CMakeLists.txt
source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.cpp
source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp
source/gameengine/BlenderRoutines/KX_BlenderRenderTools.h
source/gameengine/BlenderRoutines/Makefile
source/gameengine/BlenderRoutines/SConscript
source/gameengine/Converter/BL_ActionActuator.cpp
source/gameengine/Converter/BL_ActionActuator.h
source/gameengine/Converter/BL_BlenderDataConversion.cpp
source/gameengine/Converter/BL_MeshDeformer.cpp
source/gameengine/Converter/BL_ShapeActionActuator.cpp
source/gameengine/Converter/BL_ShapeActionActuator.h
source/gameengine/Converter/KX_BlenderSceneConverter.cpp
source/gameengine/Converter/KX_ConvertActuators.cpp
source/gameengine/Converter/KX_ConvertControllers.cpp
source/gameengine/Converter/KX_ConvertSensors.cpp
source/gameengine/Converter/KX_IpoConvert.cpp
source/gameengine/Converter/SConscript
source/gameengine/Expressions/BoolValue.cpp
source/gameengine/Expressions/BoolValue.h
source/gameengine/Expressions/ConstExpr.cpp
source/gameengine/Expressions/ConstExpr.h
source/gameengine/Expressions/EmptyValue.cpp
source/gameengine/Expressions/EmptyValue.h
source/gameengine/Expressions/ErrorValue.cpp
source/gameengine/Expressions/ErrorValue.h
source/gameengine/Expressions/FloatValue.cpp
source/gameengine/Expressions/FloatValue.h
source/gameengine/Expressions/InputParser.cpp
source/gameengine/Expressions/InputParser.h
source/gameengine/Expressions/IntValue.cpp
source/gameengine/Expressions/IntValue.h
source/gameengine/Expressions/ListValue.cpp
source/gameengine/Expressions/ListValue.h
source/gameengine/Expressions/PyObjectPlus.cpp
source/gameengine/Expressions/PyObjectPlus.h
source/gameengine/Expressions/SConscript
source/gameengine/Expressions/StringValue.cpp
source/gameengine/Expressions/StringValue.h
source/gameengine/Expressions/Value.cpp
source/gameengine/Expressions/Value.h
source/gameengine/Expressions/VectorValue.cpp
source/gameengine/Expressions/VectorValue.h
source/gameengine/Expressions/VoidValue.h
source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp
source/gameengine/GameLogic/Joystick/SCA_Joystick.h
source/gameengine/GameLogic/Joystick/SCA_JoystickDefines.h
source/gameengine/GameLogic/Joystick/SCA_JoystickEvents.cpp
source/gameengine/GameLogic/SCA_2DFilterActuator.cpp
source/gameengine/GameLogic/SCA_2DFilterActuator.h
source/gameengine/GameLogic/SCA_ANDController.cpp
source/gameengine/GameLogic/SCA_ANDController.h
source/gameengine/GameLogic/SCA_ActuatorSensor.cpp
source/gameengine/GameLogic/SCA_ActuatorSensor.h
source/gameengine/GameLogic/SCA_AlwaysSensor.cpp
source/gameengine/GameLogic/SCA_AlwaysSensor.h
source/gameengine/GameLogic/SCA_DelaySensor.cpp
source/gameengine/GameLogic/SCA_DelaySensor.h
source/gameengine/GameLogic/SCA_ExpressionController.cpp
source/gameengine/GameLogic/SCA_ExpressionController.h
source/gameengine/GameLogic/SCA_IActuator.cpp
source/gameengine/GameLogic/SCA_IActuator.h
source/gameengine/GameLogic/SCA_IController.cpp
source/gameengine/GameLogic/SCA_ILogicBrick.cpp
source/gameengine/GameLogic/SCA_ILogicBrick.h
source/gameengine/GameLogic/SCA_IObject.cpp
source/gameengine/GameLogic/SCA_IObject.h
source/gameengine/GameLogic/SCA_ISensor.cpp
source/gameengine/GameLogic/SCA_ISensor.h
source/gameengine/GameLogic/SCA_JoystickSensor.cpp
source/gameengine/GameLogic/SCA_JoystickSensor.h
source/gameengine/GameLogic/SCA_KeyboardSensor.cpp
source/gameengine/GameLogic/SCA_KeyboardSensor.h
source/gameengine/GameLogic/SCA_MouseSensor.cpp
source/gameengine/GameLogic/SCA_MouseSensor.h
source/gameengine/GameLogic/SCA_NANDController.cpp
source/gameengine/GameLogic/SCA_NANDController.h
source/gameengine/GameLogic/SCA_NORController.cpp
source/gameengine/GameLogic/SCA_NORController.h
source/gameengine/GameLogic/SCA_ORController.cpp
source/gameengine/GameLogic/SCA_ORController.h
source/gameengine/GameLogic/SCA_PropertyActuator.cpp
source/gameengine/GameLogic/SCA_PropertyActuator.h
source/gameengine/GameLogic/SCA_PropertySensor.cpp
source/gameengine/GameLogic/SCA_PropertySensor.h
source/gameengine/GameLogic/SCA_PythonController.cpp
source/gameengine/GameLogic/SCA_PythonController.h
source/gameengine/GameLogic/SCA_RandomActuator.cpp
source/gameengine/GameLogic/SCA_RandomActuator.h
source/gameengine/GameLogic/SCA_RandomSensor.cpp
source/gameengine/GameLogic/SCA_RandomSensor.h
source/gameengine/GameLogic/SCA_XNORController.cpp
source/gameengine/GameLogic/SCA_XNORController.h
source/gameengine/GameLogic/SCA_XORController.cpp
source/gameengine/GameLogic/SCA_XORController.h
source/gameengine/GameLogic/SConscript
source/gameengine/GamePlayer/common/GPC_KeyboardDevice.cpp
source/gameengine/GamePlayer/common/GPC_RenderTools.cpp
source/gameengine/GamePlayer/common/GPC_RenderTools.h
source/gameengine/GamePlayer/common/SConscript
source/gameengine/GamePlayer/common/windows/Makefile
source/gameengine/GamePlayer/ghost/GPG_Application.cpp
source/gameengine/GamePlayer/ghost/GPG_ghost.cpp
source/gameengine/GamePlayer/ghost/SConscript
source/gameengine/Ketsji/BL_BlenderShader.cpp
source/gameengine/Ketsji/BL_Shader.cpp
source/gameengine/Ketsji/BL_Shader.h
source/gameengine/Ketsji/BL_Texture.cpp
source/gameengine/Ketsji/CMakeLists.txt
source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp
source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h
source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp
source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h
source/gameengine/Ketsji/KXNetwork/SConscript
source/gameengine/Ketsji/KX_BlenderMaterial.cpp
source/gameengine/Ketsji/KX_BlenderMaterial.h
source/gameengine/Ketsji/KX_BulletPhysicsController.cpp
source/gameengine/Ketsji/KX_BulletPhysicsController.h
source/gameengine/Ketsji/KX_CDActuator.cpp
source/gameengine/Ketsji/KX_CDActuator.h
source/gameengine/Ketsji/KX_Camera.cpp
source/gameengine/Ketsji/KX_Camera.h
source/gameengine/Ketsji/KX_CameraActuator.cpp
source/gameengine/Ketsji/KX_CameraActuator.h
source/gameengine/Ketsji/KX_ClientObjectInfo.h
source/gameengine/Ketsji/KX_ConstraintActuator.cpp
source/gameengine/Ketsji/KX_ConstraintActuator.h
source/gameengine/Ketsji/KX_ConstraintWrapper.cpp
source/gameengine/Ketsji/KX_ConstraintWrapper.h
source/gameengine/Ketsji/KX_ConvertPhysicsObject.h
source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp
source/gameengine/Ketsji/KX_Dome.cpp [new file with mode: 0644]
source/gameengine/Ketsji/KX_Dome.h [new file with mode: 0644]
source/gameengine/Ketsji/KX_GameActuator.cpp
source/gameengine/Ketsji/KX_GameActuator.h
source/gameengine/Ketsji/KX_GameObject.cpp
source/gameengine/Ketsji/KX_GameObject.h
source/gameengine/Ketsji/KX_IPO_SGController.cpp
source/gameengine/Ketsji/KX_IPhysicsController.h
source/gameengine/Ketsji/KX_IpoActuator.cpp
source/gameengine/Ketsji/KX_IpoActuator.h
source/gameengine/Ketsji/KX_KetsjiEngine.cpp
source/gameengine/Ketsji/KX_KetsjiEngine.h
source/gameengine/Ketsji/KX_Light.cpp
source/gameengine/Ketsji/KX_Light.h
source/gameengine/Ketsji/KX_MeshProxy.cpp
source/gameengine/Ketsji/KX_MeshProxy.h
source/gameengine/Ketsji/KX_MotionState.cpp
source/gameengine/Ketsji/KX_MotionState.h
source/gameengine/Ketsji/KX_MouseFocusSensor.cpp
source/gameengine/Ketsji/KX_MouseFocusSensor.h
source/gameengine/Ketsji/KX_NearSensor.cpp
source/gameengine/Ketsji/KX_NearSensor.h
source/gameengine/Ketsji/KX_ObjectActuator.cpp
source/gameengine/Ketsji/KX_ObjectActuator.h
source/gameengine/Ketsji/KX_OdePhysicsController.h
source/gameengine/Ketsji/KX_ParentActuator.cpp
source/gameengine/Ketsji/KX_ParentActuator.h
source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp
source/gameengine/Ketsji/KX_PhysicsObjectWrapper.h
source/gameengine/Ketsji/KX_PolyProxy.cpp
source/gameengine/Ketsji/KX_PolyProxy.h
source/gameengine/Ketsji/KX_PolygonMaterial.cpp
source/gameengine/Ketsji/KX_PolygonMaterial.h
source/gameengine/Ketsji/KX_PyConstraintBinding.cpp
source/gameengine/Ketsji/KX_PyMath.cpp
source/gameengine/Ketsji/KX_PyMath.h
source/gameengine/Ketsji/KX_PythonInit.cpp
source/gameengine/Ketsji/KX_PythonInit.h
source/gameengine/Ketsji/KX_PythonInitTypes.cpp [new file with mode: 0644]
source/gameengine/Ketsji/KX_PythonInitTypes.h [new file with mode: 0644]
source/gameengine/Ketsji/KX_RadarSensor.cpp
source/gameengine/Ketsji/KX_RadarSensor.h
source/gameengine/Ketsji/KX_RayCast.cpp
source/gameengine/Ketsji/KX_RaySensor.cpp
source/gameengine/Ketsji/KX_RaySensor.h
source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp
source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h
source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp
source/gameengine/Ketsji/KX_SCA_DynamicActuator.h
source/gameengine/Ketsji/KX_SCA_EndObjectActuator.cpp
source/gameengine/Ketsji/KX_SCA_EndObjectActuator.h
source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp
source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h
source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.cpp
source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.h
source/gameengine/Ketsji/KX_SG_NodeRelationships.cpp
source/gameengine/Ketsji/KX_SG_NodeRelationships.h
source/gameengine/Ketsji/KX_Scene.cpp
source/gameengine/Ketsji/KX_Scene.h
source/gameengine/Ketsji/KX_SceneActuator.cpp
source/gameengine/Ketsji/KX_SceneActuator.h
source/gameengine/Ketsji/KX_SoundActuator.cpp
source/gameengine/Ketsji/KX_SoundActuator.h
source/gameengine/Ketsji/KX_StateActuator.cpp
source/gameengine/Ketsji/KX_StateActuator.h
source/gameengine/Ketsji/KX_SumoPhysicsController.cpp
source/gameengine/Ketsji/KX_SumoPhysicsController.h
source/gameengine/Ketsji/KX_TouchSensor.cpp
source/gameengine/Ketsji/KX_TouchSensor.h
source/gameengine/Ketsji/KX_TrackToActuator.cpp
source/gameengine/Ketsji/KX_TrackToActuator.h
source/gameengine/Ketsji/KX_VehicleWrapper.cpp
source/gameengine/Ketsji/KX_VehicleWrapper.h
source/gameengine/Ketsji/KX_VertexProxy.cpp
source/gameengine/Ketsji/KX_VertexProxy.h
source/gameengine/Ketsji/KX_VisibilityActuator.cpp
source/gameengine/Ketsji/KX_VisibilityActuator.h
source/gameengine/Ketsji/SConscript
source/gameengine/Network/NG_NetworkScene.h
source/gameengine/Physics/BlOde/OdePhysicsController.h
source/gameengine/Physics/BlOde/OdePhysicsEnvironment.h
source/gameengine/Physics/Bullet/CMakeLists.txt
source/gameengine/Physics/Bullet/CcdGraphicController.cpp [new file with mode: 0644]
source/gameengine/Physics/Bullet/CcdGraphicController.h [new file with mode: 0644]
source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
source/gameengine/Physics/Bullet/CcdPhysicsController.h
source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp
source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h
source/gameengine/Physics/Bullet/Makefile
source/gameengine/Physics/Bullet/SConscript
source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h
source/gameengine/Physics/Sumo/Fuzzics/include/SM_Scene.h
source/gameengine/Physics/Sumo/SumoPhysicsController.h
source/gameengine/Physics/Sumo/SumoPhysicsEnvironment.h
source/gameengine/Physics/common/CMakeLists.txt
source/gameengine/Physics/common/PHY_DynamicTypes.h
source/gameengine/Physics/common/PHY_IController.cpp [new file with mode: 0644]
source/gameengine/Physics/common/PHY_IController.h [new file with mode: 0644]
source/gameengine/Physics/common/PHY_IGraphicController.cpp [new file with mode: 0644]
source/gameengine/Physics/common/PHY_IGraphicController.h [new file with mode: 0644]
source/gameengine/Physics/common/PHY_IMotionState.h
source/gameengine/Physics/common/PHY_IPhysicsController.h
source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h
source/gameengine/Physics/common/PHY_Pro.h
source/gameengine/Physics/common/SConscript
source/gameengine/PyDoc/BL_ActionActuator.py
source/gameengine/PyDoc/BL_Shader.py [new file with mode: 0644]
source/gameengine/PyDoc/BL_ShapeActionActuator.py
source/gameengine/PyDoc/CListValue.py [new file with mode: 0644]
source/gameengine/PyDoc/GameKeys.py
source/gameengine/PyDoc/GameLogic.py
source/gameengine/PyDoc/GameTypes.py [new file with mode: 0644]
source/gameengine/PyDoc/KX_BlenderMaterial.py [new file with mode: 0644]
source/gameengine/PyDoc/KX_CDActuator.py
source/gameengine/PyDoc/KX_Camera.py
source/gameengine/PyDoc/KX_CameraActuator.py
source/gameengine/PyDoc/KX_ConstraintActuator.py
source/gameengine/PyDoc/KX_ConstraintWrapper.py [new file with mode: 0644]
source/gameengine/PyDoc/KX_GameActuator.py
source/gameengine/PyDoc/KX_GameObject.py
source/gameengine/PyDoc/KX_IpoActuator.py
source/gameengine/PyDoc/KX_LightObject.py [moved from source/gameengine/PyDoc/KX_Light.py with 97% similarity]
source/gameengine/PyDoc/KX_MeshProxy.py
source/gameengine/PyDoc/KX_MouseFocusSensor.py
source/gameengine/PyDoc/KX_NearSensor.py
source/gameengine/PyDoc/KX_NetworkMessageActuator.py
source/gameengine/PyDoc/KX_NetworkMessageSensor.py
source/gameengine/PyDoc/KX_ParentActuator.py
source/gameengine/PyDoc/KX_PhysicsObjectWrapper.py [new file with mode: 0644]
source/gameengine/PyDoc/KX_RadarSensor.py
source/gameengine/PyDoc/KX_RaySensor.py
source/gameengine/PyDoc/KX_SCA_AddObjectActuator.py
source/gameengine/PyDoc/KX_SCA_DynamicActuator.py [new file with mode: 0644]
source/gameengine/PyDoc/KX_SCA_ReplaceMeshActuator.py
source/gameengine/PyDoc/KX_Scene.py
source/gameengine/PyDoc/KX_SceneActuator.py
source/gameengine/PyDoc/KX_SoundActuator.py
source/gameengine/PyDoc/KX_StateActuator.py
source/gameengine/PyDoc/KX_TouchSensor.py
source/gameengine/PyDoc/KX_TrackToActuator.py
source/gameengine/PyDoc/KX_VehicleWrapper.py [new file with mode: 0644]
source/gameengine/PyDoc/KX_VertexProxy.py
source/gameengine/PyDoc/KX_VisibilityActuator.py
source/gameengine/PyDoc/SCA_2DFilterActuator.py [new file with mode: 0644]
source/gameengine/PyDoc/SCA_ActuatorSensor.py [moved from source/gameengine/PyDoc/KX_ActuatorSensor.py with 87% similarity]
source/gameengine/PyDoc/SCA_DelaySensor.py
source/gameengine/PyDoc/SCA_JoystickSensor.py
source/gameengine/PyDoc/SCA_KeyboardSensor.py
source/gameengine/PyDoc/SCA_MouseSensor.py
source/gameengine/PyDoc/SCA_NANDController.py [new file with mode: 0644]
source/gameengine/PyDoc/SCA_NORController.py [new file with mode: 0644]
source/gameengine/PyDoc/SCA_PythonController.py
source/gameengine/PyDoc/SCA_RandomSensor.py
source/gameengine/PyDoc/SCA_XNORController.py [new file with mode: 0644]
source/gameengine/PyDoc/SCA_XORController.py [new file with mode: 0644]
source/gameengine/PyDoc/SConscript
source/gameengine/PyDoc/WhatsNew.py
source/gameengine/PyDoc/bge_api_validate_py.txt [new file with mode: 0644]
source/gameengine/PyDoc/epy_docgen.sh [changed mode: 0644->0755]
source/gameengine/Rasterizer/RAS_2DFilterManager.cpp
source/gameengine/Rasterizer/RAS_BucketManager.cpp
source/gameengine/Rasterizer/RAS_FramingManager.h
source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp
source/gameengine/Rasterizer/RAS_IPolygonMaterial.h
source/gameengine/Rasterizer/RAS_IRasterizer.h
source/gameengine/Rasterizer/RAS_IRenderTools.h
source/gameengine/Rasterizer/RAS_LightObject.h
source/gameengine/Rasterizer/RAS_MaterialBucket.cpp
source/gameengine/Rasterizer/RAS_MaterialBucket.h
source/gameengine/Rasterizer/RAS_MeshObject.cpp
source/gameengine/Rasterizer/RAS_MeshObject.h
source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.cpp
source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h
source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp
source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.h
source/gameengine/Rasterizer/RAS_OpenGLRasterizer/SConscript
source/gameengine/Rasterizer/RAS_Polygon.cpp
source/gameengine/Rasterizer/RAS_Polygon.h
source/gameengine/Rasterizer/RAS_TexVert.cpp
source/gameengine/Rasterizer/RAS_TexVert.h
source/gameengine/Rasterizer/SConscript
source/gameengine/SConscript
source/gameengine/SceneGraph/SConscript
source/gameengine/SceneGraph/SG_BBox.cpp
source/gameengine/SceneGraph/SG_BBox.h
source/gameengine/SceneGraph/SG_IObject.cpp
source/gameengine/SceneGraph/SG_IObject.h
source/gameengine/SceneGraph/SG_Node.cpp
source/gameengine/SceneGraph/SG_Node.h
source/gameengine/SceneGraph/SG_ParentRelation.h
source/gameengine/SceneGraph/SG_Spatial.cpp
source/gameengine/SceneGraph/SG_Spatial.h
source/gameengine/VideoTexture/CMakeLists.txt
source/gameengine/VideoTexture/FilterBase.cpp
source/gameengine/VideoTexture/FilterNormal.cpp
source/gameengine/VideoTexture/FilterSource.h
source/gameengine/VideoTexture/ImageRender.cpp
source/gameengine/VideoTexture/Makefile
source/gameengine/VideoTexture/SConscript
source/gameengine/VideoTexture/VideoBase.cpp
source/gameengine/VideoTexture/VideoFFmpeg.cpp
source/gameengine/VideoTexture/VideoFFmpeg.h
source/gameengine/VideoTexture/blendVideoTex.cpp
source/nan_compile.mk
source/nan_definitions.mk
tools/Blender.py
tools/btools.py

index 4b96ca585a6ea49a30d152d03149e1c1412ff70b..0b7f3999e8264fb9546411c0f6b36490f881b4ba 100644 (file)
@@ -63,7 +63,7 @@ OPTION(WITH_QUICKTIME         "Enable Quicktime Support"                              OFF)
 OPTION(WITH_OPENEXR            "Enable OpenEXR Support (http://www.openexr.com)"       ON)
 OPTION(WITH_DDS                        "Enable DDS Support"                                    ON)
 OPTION(WITH_FFMPEG             "Enable FFMPeg Support (http://ffmpeg.mplayerhq.hu/)"   OFF)
-OPTION(WITH_FFMPEG             "Enable FFMPeg Support (http://ffmpeg.mplayerhq.hu/)"   OFF)
+OPTION(WITH_OPENJPEG           "Enable OpenJpeg Support (http://www.openjpeg.org/)"    OFF)
 OPTION(WITH_OPENAL             "Enable OpenAL Support (http://www.openal.org)"         ON)
 OPTION(WITH_OPENMP             "Enable OpenMP (has to be supported by the compiler)"   OFF)
 OPTION(WITH_WEBPLUGIN          "Enable Web Plugin (Unix only)"                         OFF)
@@ -431,6 +431,9 @@ SET(FTGL ${CMAKE_SOURCE_DIR}/extern/bFTGL)
 SET(FTGL_INC ${FTGL}/include)
 SET(FTGL_LIB extern_ftgl)
 
+set(OPENJPEG ${CMAKE_SOURCE_DIR}/extern/libopenjpeg)
+set(OPENJPEG_INC ${OPENJPEG})
+set(OPENJPEG_LIb extern_libopenjpeg)
 
 #-----------------------------------------------------------------------------
 # Blender WebPlugin
index 809166586e6af8a4c891cf40e0714e2de45a2be3..03aee18413c656bb20a02496be9007ee3fd4b03d 100644 (file)
@@ -262,28 +262,35 @@ if 'blendernogame' in B.targets:
        env['WITH_BF_GAMEENGINE'] = False
 
 if 'blenderlite' in B.targets:
-       env['WITH_BF_GAMEENGINE'] = False
-       env['WITH_BF_OPENAL'] = False
-       env['WITH_BF_OPENEXR'] = False
-       env['WITH_BF_ICONV'] = False
-       env['WITH_BF_INTERNATIONAL'] = False
-       env['WITH_BF_OPENJPEG'] = False
-       env['WITH_BF_FFMPEG'] = False
-       env['WITH_BF_QUICKTIME'] = False
-       env['WITH_BF_YAFRAY'] = False
-       env['WITH_BF_REDCODE'] = False
-       env['WITH_BF_FTGL'] = False
-       env['WITH_BF_DDS'] = False
-       env['WITH_BF_ZLIB'] = False
-       env['WITH_BF_SDL'] = False
-       env['WITH_BF_JPEG'] = False
-       env['WITH_BF_PNG'] = False
-       env['WITH_BF_ODE'] = False
-       env['WITH_BF_BULLET'] = False
-       env['WITH_BF_BINRELOC'] = False
-       env['BF_BUILDINFO'] = False
-       env['BF_NO_ELBEEM'] = True
-       env['WITH_BF_PYTHON'] = False
+       target_env_defs = {}
+       target_env_defs['WITH_BF_GAMEENGINE'] = False
+       target_env_defs['WITH_BF_OPENAL'] = False
+       target_env_defs['WITH_BF_OPENEXR'] = False
+       target_env_defs['WITH_BF_ICONV'] = False
+       target_env_defs['WITH_BF_INTERNATIONAL'] = False
+       target_env_defs['WITH_BF_OPENJPEG'] = False
+       target_env_defs['WITH_BF_FFMPEG'] = False
+       target_env_defs['WITH_BF_QUICKTIME'] = False
+       target_env_defs['WITH_BF_YAFRAY'] = False
+       target_env_defs['WITH_BF_REDCODE'] = False
+       target_env_defs['WITH_BF_FTGL'] = False
+       target_env_defs['WITH_BF_DDS'] = False
+       target_env_defs['WITH_BF_ZLIB'] = False
+       target_env_defs['WITH_BF_SDL'] = False
+       target_env_defs['WITH_BF_JPEG'] = False
+       target_env_defs['WITH_BF_PNG'] = False
+       target_env_defs['WITH_BF_ODE'] = False
+       target_env_defs['WITH_BF_BULLET'] = False
+       target_env_defs['WITH_BF_SOLID'] = False
+       target_env_defs['WITH_BF_BINRELOC'] = False
+       target_env_defs['BF_BUILDINFO'] = False
+       target_env_defs['BF_NO_ELBEEM'] = True
+       target_env_defs['WITH_BF_PYTHON'] = False
+       
+       # Merge blenderlite, let command line to override
+       for k,v in target_env_defs.iteritems():
+               if k not in B.arguments:
+                       env[k] = v
 
 # lastly we check for root_build_dir ( we should not do before, otherwise we might do wrong builddir
 #B.root_build_dir = B.arguments.get('BF_BUILDDIR', '..'+os.sep+'build'+os.sep+platform+os.sep)
@@ -547,7 +554,9 @@ if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw'):
        if env['WITH_BF_SDL']:
                dllsources.append('${BF_SDL_LIBPATH}/SDL.dll')
        if env['WITH_BF_PYTHON']:
-               dllsources.append('#release/windows/extra/python25.zip')
+               ver = env["BF_PYTHON_VERSION"].replace(".", "")
+               
+               dllsources.append('#release/windows/extra/python' + ver + '.zip')
                dllsources.append('#release/windows/extra/zlib.pyd')
                if env['BF_DEBUG']:
                        dllsources.append('${BF_PYTHON_LIBPATH}/${BF_PYTHON_LIB}_d.dll')
@@ -556,14 +565,14 @@ if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw'):
        if env['WITH_BF_ICONV']:
                dllsources += ['${BF_ICONV_LIBPATH}/iconv.dll']
        if env['WITH_BF_FFMPEG']:
-               dllsources += ['${LCGDIR}/ffmpeg/lib/avcodec-51.dll',
+               dllsources += ['${LCGDIR}/ffmpeg/lib/avcodec-52.dll',
                                                '${LCGDIR}/ffmpeg/lib/avformat-52.dll',
                                                '${LCGDIR}/ffmpeg/lib/avdevice-52.dll',
-                                               '${LCGDIR}/ffmpeg/lib/avutil-49.dll',
-                                               '${LCGDIR}/ffmpeg/lib/libfaad-0.dll',
+                                               '${LCGDIR}/ffmpeg/lib/avutil-50.dll',
+                                               '${LCGDIR}/ffmpeg/lib/libfaad-2.dll',
                                                '${LCGDIR}/ffmpeg/lib/libfaac-0.dll',
                                                '${LCGDIR}/ffmpeg/lib/libmp3lame-0.dll',
-                                               '${LCGDIR}/ffmpeg/lib/libx264-59.dll',
+                                               '${LCGDIR}/ffmpeg/lib/libx264-67.dll',
                                                '${LCGDIR}/ffmpeg/lib/xvidcore.dll',
                                                '${LCGDIR}/ffmpeg/lib/swscale-0.dll']
        windlls = env.Install(dir=env['BF_INSTALLDIR'], source = dllsources)
@@ -607,6 +616,13 @@ if not env['WITHOUT_BF_INSTALL']:
 
 #------------ EPYDOC
 if env['WITH_BF_DOCS']:
-       SConscript('source/blender/python/api2_2x/doc/SConscript')
-       SConscript('source/gameengine/PyDoc/SConscript')
+       try:            import epydoc
+       except: epydoc = None
+       
+       if epydoc:
+               SConscript('source/blender/python/api2_2x/doc/SConscript')
+               SConscript('source/gameengine/PyDoc/SConscript')
+       else:
+               print "No epydoc install detected, Python API and Gameengine API Docs will not be generated "
+       
 
index f02650f7ea01cc608bc158ce04698c285774bd7b..b9ac3c7a8c69b67e6f5beea926653e9ebd4f933d 100644 (file)
@@ -104,6 +104,7 @@ IF(UNIX)
     bf_blenlib 
     bf_cineon 
     bf_openexr 
+    extern_libopenjpeg 
     bf_dds
     bf_ftfont 
     extern_ftgl 
index cfd6a9395bba8d4d8a4a88c71f37158c56887e9c..04a44372383a16f3a069afa847a70c154d049bee 100644 (file)
@@ -40,11 +40,7 @@ else:
 # enable ffmpeg  support
 WITH_BF_FFMPEG = True  # -DWITH_FFMPEG
 BF_FFMPEG = "#extern/ffmpeg"
-# trick : The version of ffmpeg in extern/ffmpeg uses explicit libav.. directory in #include statements
-#         To keep Blender compatible with older versions, I add ${BF_FFMPEG} to the inc dir so that ffmpeg
-#         finds the files directly in extern/ffmpeg/libav... while blender finds them in
-#         extern/ffmpeg/include. 
-BF_FFMPEG_INC = '${BF_FFMPEG}/include ${BF_FFMPEG}'
+BF_FFMPEG_INC = '${BF_FFMPEG}'
 if USE_SDK==True:
        BF_FFMPEG_EXTRA = '-isysroot '+MACOSX_SDK+' -mmacosx-version-min='+MAC_MIN_VERS
 #BF_FFMPEG_LIBPATH='${BF_FFMPEG}/lib'
@@ -110,9 +106,6 @@ BF_SDL_INC = '${BF_SDL}/include' #$(shell $(BF_SDL)/bin/sdl-config --cflags)
 BF_SDL_LIB = 'SDL' #BF_SDL #$(shell $(BF_SDL)/bin/sdl-config --libs) -lSDL_mixer
 BF_SDL_LIBPATH = '${BF_SDL}/lib'
 
-WITH_BF_FMOD = False
-BF_FMOD = LIBDIR + '/fmod'
-
 WITH_BF_OPENEXR = True
 WITH_BF_STATICOPENEXR = False
 BF_OPENEXR = '${LCGDIR}/openexr'
index 81a301fbb038eb1ff1a25333bb8297688d84194d..2c57a2bba8a700d5e9d5cd8b9b68cab148d0cd22 100644 (file)
@@ -34,14 +34,11 @@ WITH_BF_STATICCXX = 'false'
 BF_CXX_LIB_STATIC = '${BF_CXX}/lib/libstdc++.a'
 
 WITH_BF_SDL = 'true'
-BF_SDL = LCGDIR+'/SDL' #$(shell sdl-config --prefix)
+BF_SDL = LCGDIR+'/sdl' #$(shell sdl-config --prefix)
 BF_SDL_INC = '${BF_SDL}/include/SDL' #$(shell $(BF_SDL)/bin/sdl-config --cflags)
 BF_SDL_LIB = 'SDL audio iconv charset' #BF_SDL #$(shell $(BF_SDL)/bin/sdl-config --libs) -lSDL_mixer
 BF_SDL_LIBPATH = '${BF_SDL}/lib'
 
-WITH_BF_FMOD = 'false'
-BF_FMOD = LIBDIR + '/fmod'
-
 WITH_BF_OPENEXR = 'false'
 WITH_BF_STATICOPENEXR = 'false'
 BF_OPENEXR = '/usr'
index 6ba3052048d088d3d229ac745e7e3129035527fb..5bd9a4c80849eb94148eb4d84b7267ffe82ea345 100644 (file)
@@ -34,9 +34,6 @@ BF_SDL = '/usr' #$(shell sdl-config --prefix)
 BF_SDL_INC = '${BF_SDL}/include/SDL' #$(shell $(BF_SDL)/bin/sdl-config --cflags)
 BF_SDL_LIB = 'SDL' #BF_SDL #$(shell $(BF_SDL)/bin/sdl-config --libs) -lSDL_mixer
 
-WITH_BF_FMOD = False
-BF_FMOD = LIBDIR + '/fmod'
-
 WITH_BF_OPENEXR = True
 WITH_BF_STATICOPENEXR = False
 BF_OPENEXR = '/usr'
@@ -140,19 +137,14 @@ BF_FFMPEG_LIB = ''
 # Uncomment the following two lines to use system's ffmpeg
 # BF_FFMPEG = '/usr'
 # BF_FFMPEG_LIB = 'avformat avcodec swscale avutil avdevice'
-# trick : The version of ffmpeg in extern/ffmpeg uses explicit libav.. directory in #include statements
-#         To keep Blender compatible with older version, I add ${BF_FFMPEG} to the inc dir so that ffmpeg
-#         finds the files directly in extern/ffmpeg/libav... while blender finds them in
-#         extern/ffmpeg/include. When using system ffmpeg, you don't need that, assuming the system library
-#         still use the flat directory model, otherwise will not compile anyway
-BF_FFMPEG_INC = '${BF_FFMPEG}/include ${BF_FFMPEG}'
+BF_FFMPEG_INC = '${BF_FFMPEG}'
 BF_FFMPEG_LIBPATH='${BF_FFMPEG}/lib'
 
 # enable ogg, vorbis and theora in ffmpeg
 WITH_BF_OGG = False  # -DWITH_OGG 
 BF_OGG = '/usr'
 BF_OGG_INC = '${BF_OGG}/include'
-BF_OGG_LIB = 'ogg vorbis theoraenc theoradec'
+BF_OGG_LIB = 'ogg vorbis vorbisenc theoraenc theoradec'
 
 WITH_BF_OPENJPEG = True 
 BF_OPENJPEG = '#extern/libopenjpeg'
index 5981c8b96e518e5d3fcfcdbd4947a5d4a2388732..ac9e8bc23a53ccb9d070eb4e7de08d6abfd465a6 100644 (file)
@@ -38,9 +38,6 @@ BF_PTHREADS_INC = '${BF_PTHREADS}/include'
 BF_PTHREADS_LIB = 'pthreadGC2'
 BF_PTHREADS_LIBPATH = '${BF_PTHREADS}/lib'
 
-WITH_BF_FMOD = False
-BF_FMOD = LIBDIR + '/fmod'
-
 WITH_BF_OPENEXR = True
 WITH_BF_STATICOPENEXR = False
 BF_OPENEXR = LIBDIR + '/gcc/openexr'
index 8fc334874f98eb553b0f18143660912367a7023c..3a36f8df6632b175cd36f85cc273fcd861dcdb96 100644 (file)
@@ -22,9 +22,6 @@ BF_SDL_INC = '${BF_SDL}/include/SDL' #$(shell $(BF_SDL)/bin/sdl-config --cflags)
 BF_SDL_LIB = 'SDL' #BF_SDL #$(shell $(BF_SDL)/bin/sdl-config --libs) -lSDL_mixer
 BF_SDL_LIBPATH = '${BF_SDL}/lib'
 
-WITH_BF_FMOD = False
-BF_FMOD = LIBDIR + '/fmod'
-
 WITH_BF_OPENEXR = False
 WITH_BF_STATICOPENEXR = False
 BF_OPENEXR = '/usr/local'
index dda7d0ff2f391305168e015767abba01d88c587c..6fa9529e1cd77eceaaffb299b8918626433fe787 100644 (file)
@@ -28,9 +28,6 @@ BF_SDL_INC = '${BF_SDL}/include/SDL' #$(shell $(BF_SDL)/bin/sdl-config --cflags)
 BF_SDL_LIBPATH = '${BF_SDL}/lib'
 BF_SDL_LIB = 'SDL' #BF_SDL #$(shell $(BF_SDL)/bin/sdl-config --libs) -lSDL_mixer
 
-WITH_BF_FMOD = False
-BF_FMOD = LIBDIR + '/fmod'
-
 WITH_BF_OPENEXR = True
 WITH_BF_STATICOPENEXR = False
 BF_OPENEXR = '/usr/local'
index b94747637e91729463d0d55fdbb823fae556a0a9..a102c423fb5ddf23f4755939d01e9747d8a0a6be 100644 (file)
@@ -38,9 +38,6 @@ BF_PTHREADS_INC = '${BF_PTHREADS}/include'
 BF_PTHREADS_LIB = 'pthreadGC2'
 BF_PTHREADS_LIBPATH = '${BF_PTHREADS}/lib'
 
-WITH_BF_FMOD = False
-BF_FMOD = LIBDIR + '/fmod'
-
 WITH_BF_OPENEXR = True
 WITH_BF_STATICOPENEXR = False
 BF_OPENEXR = LIBDIR + '/gcc/openexr'
index d4e9fa9b30ebad942b8998d4a48d69a6c3d12752..4ffffc4616778385340e716805942c7fdd49f9ff 100644 (file)
@@ -9,7 +9,7 @@ WITH_BF_FFMPEG = True  # -DWITH_FFMPEG
 BF_FFMPEG = LIBDIR +'/ffmpeg'
 BF_FFMPEG_INC = '${BF_FFMPEG}/include'
 BF_FFMPEG_LIBPATH='${BF_FFMPEG}/lib'
-BF_FFMPEG_LIB = 'avformat-52.lib avcodec-51.lib avdevice-52.lib avutil-49.lib swscale-0.lib'
+BF_FFMPEG_LIB = 'avformat-52.lib avcodec-52.lib avdevice-52.lib avutil-50.lib swscale-0.lib'
 
 BF_PYTHON = LIBDIR + '/python'
 BF_PYTHON_VERSION = '2.5'
@@ -49,9 +49,6 @@ BF_PTHREADS_INC = '${BF_PTHREADS}/include'
 BF_PTHREADS_LIB = 'pthreadVC2'
 BF_PTHREADS_LIBPATH = '${BF_PTHREADS}/lib'
 
-WITH_BF_FMOD = False
-BF_FMOD = LIBDIR + '/fmod'
-
 WITH_BF_OPENEXR = True
 WITH_BF_STATICOPENEXR = False
 BF_OPENEXR = LIBDIR + '/openexr'
index ee5cab31e092c81012a283c78f879276bfbe34a7..b81efb52de901d06ee2b68f92e96940e6f1c79f5 100644 (file)
@@ -29,7 +29,7 @@ IF(WITH_GAMEENGINE)
 ENDIF(WITH_GAMEENGINE)
 
 IF(WITH_BULLET)
-    SUBDIRS(bullet2)
+  SUBDIRS(bullet2)
 ENDIF(WITH_BULLET)
 
 IF(WITH_INTERNATIONAL)
@@ -46,3 +46,6 @@ ENDIF(CMAKE_SYSTEM_NAME MATCHES "Linux")
 
 SUBDIRS(glew)
 
+IF(WITH_OPENJPEG)
+  SUBDIRS(libopenjpeg)
+ENDIF(WITH_OPENJPEG)
index 51213698ebbfd83b88d7afaeab13090389279f52..38bec4b73dd0d649ba4b734322abc919af1ff050 100644 (file)
@@ -57,6 +57,10 @@ ifeq ($(WITH_BINRELOC), true)
     DIRS += binreloc
 endif
 
+ifeq ($(WITH_OPENJPEG), true)
+    DIRS += libopenjpeg
+endif
+
 TARGET = solid
 
 all::
index 4c892e1956dee1eceb5c7ad545cecdba49398fa5..6bc067c0f03a03a04e0b56c0484572b882450792 100644 (file)
@@ -5,8 +5,8 @@ Import('env')
 SConscript(['glew/SConscript'])
 
 if env['WITH_BF_GAMEENGINE']:
-    SConscript(['qhull/SConscript',
-            'solid/SConscript'])
+       if env['WITH_BF_SOLID']:
+               SConscript(['qhull/SConscript', 'solid/SConscript'])
 
 if env['WITH_BF_BULLET']:
     SConscript(['bullet2/src/SConscript'])
index d22b98efade25155ed8d1ddc1b9913c8db63e828..3130835fdc81a2ed21e18731670ae96343a631ee 100644 (file)
                                <Filter\r
                                        Name="Dynamics"\r
                                        >\r
+                                       <File\r
+                                               RelativePath="..\..\src\BulletDynamics\Dynamics\btActionInterface.h"\r
+                                               >\r
+                                       </File>\r
                                        <File\r
                                                RelativePath="..\..\src\BulletDynamics\Dynamics\btContinuousDynamicsWorld.cpp"\r
                                                >\r
                                <Filter\r
                                        Name="CollisionDispatch"\r
                                        >\r
+                                       <File\r
+                                               RelativePath="..\..\src\BulletCollision\CollisionDispatch\btActivatingCollisionAlgorithm.cpp"\r
+                                               >\r
+                                       </File>\r
+                                       <File\r
+                                               RelativePath="..\..\src\BulletCollision\CollisionDispatch\btActivatingCollisionAlgorithm.h"\r
+                                               >\r
+                                       </File>\r
                                        <File\r
                                                RelativePath="..\..\src\BulletCollision\CollisionDispatch\btBoxBoxCollisionAlgorithm.cpp"\r
                                                >\r
                                                RelativePath="..\..\src\BulletCollision\CollisionDispatch\btEmptyCollisionAlgorithm.h"\r
                                                >\r
                                        </File>\r
+                                       <File\r
+                                               RelativePath="..\..\src\BulletCollision\CollisionDispatch\btGhostObject.cpp"\r
+                                               >\r
+                                       </File>\r
+                                       <File\r
+                                               RelativePath="..\..\src\BulletCollision\CollisionDispatch\btGhostObject.h"\r
+                                               >\r
+                                       </File>\r
                                        <File\r
                                                RelativePath="..\..\src\BulletCollision\CollisionDispatch\btManifoldResult.cpp"\r
                                                >\r
                                                RelativePath="..\..\src\BulletCollision\CollisionShapes\btConvexInternalShape.h"\r
                                                >\r
                                        </File>\r
+                                       <File\r
+                                               RelativePath="..\..\src\BulletCollision\CollisionShapes\btConvexPointCloudShape.cpp"\r
+                                               >\r
+                                       </File>\r
+                                       <File\r
+                                               RelativePath="..\..\src\BulletCollision\CollisionShapes\btConvexPointCloudShape.h"\r
+                                               >\r
+                                       </File>\r
                                        <File\r
                                                RelativePath="..\..\src\BulletCollision\CollisionShapes\btConvexShape.cpp"\r
                                                >\r
index 8074aed3038449586c4c7f3022ddf3c48c00f9de..a4a8a70524e1f4ab966edd7e00e70dd97417c66b 100644 (file)
@@ -38,37 +38,37 @@ typedef plReal      plQuaternion[4];
 extern "C" { 
 #endif
 
-/*     Particular physics SDK */
+/**    Particular physics SDK (C-API) */
        PL_DECLARE_HANDLE(plPhysicsSdkHandle);
 
-/*     Dynamics world, belonging to some physics SDK */
+/**    Dynamics world, belonging to some physics SDK (C-API)*/
        PL_DECLARE_HANDLE(plDynamicsWorldHandle);
 
-/* Rigid Body that can be part of a Dynamics World */  
+/** Rigid Body that can be part of a Dynamics World (C-API)*/  
        PL_DECLARE_HANDLE(plRigidBodyHandle);
 
-/*     Collision Shape/Geometry, property of a Rigid Body */
+/**    Collision Shape/Geometry, property of a Rigid Body (C-API)*/
        PL_DECLARE_HANDLE(plCollisionShapeHandle);
 
-/* Constraint for Rigid Bodies */
+/** Constraint for Rigid Bodies (C-API)*/
        PL_DECLARE_HANDLE(plConstraintHandle);
 
-/* Triangle Mesh interface */
+/** Triangle Mesh interface (C-API)*/
        PL_DECLARE_HANDLE(plMeshInterfaceHandle);
 
-/* Broadphase Scene/Proxy Handles */
+/** Broadphase Scene/Proxy Handles (C-API)*/
        PL_DECLARE_HANDLE(plCollisionBroadphaseHandle);
        PL_DECLARE_HANDLE(plBroadphaseProxyHandle);
        PL_DECLARE_HANDLE(plCollisionWorldHandle);
 
-/*
+/**
        Create and Delete a Physics SDK 
 */
 
        extern  plPhysicsSdkHandle      plNewBulletSdk(); //this could be also another sdk, like ODE, PhysX etc.
        extern  void            plDeletePhysicsSdk(plPhysicsSdkHandle   physicsSdk);
 
-/* Collision World, not strictly necessary, you can also just create a Dynamics World with Rigid Bodies which internally manages the Collision World with Collision Objects */
+/** Collision World, not strictly necessary, you can also just create a Dynamics World with Rigid Bodies which internally manages the Collision World with Collision Objects */
 
        typedef void(*btBroadphaseCallback)(void* clientData, void* object1,void* object2);
 
index d7eea33ea416d17b2c7dc8f5a373f1f29229daa6..77763305b1bb4f910f59e3e169c3e56bc2004d7f 100644 (file)
 // 3. This notice may not be removed or altered from any source distribution.
 #include "btAxisSweep3.h"
 
-#include <assert.h>
 
-btAxisSweep3::btAxisSweep3(const btPoint3& worldAabbMin,const btPoint3& worldAabbMax, unsigned short int maxHandles, btOverlappingPairCache* pairCache)
-:btAxisSweep3Internal<unsigned short int>(worldAabbMin,worldAabbMax,0xfffe,0xffff,maxHandles,pairCache)
+btAxisSweep3::btAxisSweep3(const btVector3& worldAabbMin,const btVector3& worldAabbMax, unsigned short int maxHandles, btOverlappingPairCache* pairCache, bool disableRaycastAccelerator)
+:btAxisSweep3Internal<unsigned short int>(worldAabbMin,worldAabbMax,0xfffe,0xffff,maxHandles,pairCache,disableRaycastAccelerator)
 {
        // 1 handle is reserved as sentinel
        btAssert(maxHandles > 1 && maxHandles < 32767);
@@ -30,8 +29,8 @@ btAxisSweep3::btAxisSweep3(const btPoint3& worldAabbMin,const btPoint3& worldAab
 }
 
 
-bt32BitAxisSweep3::bt32BitAxisSweep3(const btPoint3& worldAabbMin,const btPoint3& worldAabbMax, unsigned int maxHandles , btOverlappingPairCache* pairCache )
-:btAxisSweep3Internal<unsigned int>(worldAabbMin,worldAabbMax,0xfffffffe,0x7fffffff,maxHandles,pairCache)
+bt32BitAxisSweep3::bt32BitAxisSweep3(const btVector3& worldAabbMin,const btVector3& worldAabbMax, unsigned int maxHandles , btOverlappingPairCache* pairCache , bool disableRaycastAccelerator)
+:btAxisSweep3Internal<unsigned int>(worldAabbMin,worldAabbMax,0xfffffffe,0x7fffffff,maxHandles,pairCache,disableRaycastAccelerator)
 {
        // 1 handle is reserved as sentinel
        btAssert(maxHandles > 1 && maxHandles < 2147483647);
index d0ad09a385a44d744a43991026eb4ddbb00249be..cad21b4cad29a3db55773b7ec0236ebc31a7b9c2 100644 (file)
 #ifndef AXIS_SWEEP_3_H
 #define AXIS_SWEEP_3_H
 
-#include "LinearMath/btPoint3.h"
 #include "LinearMath/btVector3.h"
 #include "btOverlappingPairCache.h"
 #include "btBroadphaseInterface.h"
 #include "btBroadphaseProxy.h"
 #include "btOverlappingPairCallback.h"
+#include "btDbvtBroadphase.h"
 
 //#define DEBUG_BROADPHASE 1
 #define USE_OVERLAP_TEST_ON_REMOVES 1
@@ -42,6 +42,7 @@ protected:
 
 public:
        
+ BT_DECLARE_ALIGNED_ALLOCATOR();
 
        class Edge
        {
@@ -61,8 +62,7 @@ public:
                // indexes into the edge arrays
                BP_FP_INT_TYPE m_minEdges[3], m_maxEdges[3];            // 6 * 2 = 12
 //             BP_FP_INT_TYPE m_uniqueId;
-               BP_FP_INT_TYPE m_pad;
-               
+               btBroadphaseProxy*      m_dbvtProxy;//for faster raycast
                //void* m_pOwner; this is now in btBroadphaseProxy.m_clientObject
        
                SIMD_FORCE_INLINE void SetNextFree(BP_FP_INT_TYPE next) {m_minEdges[0] = next;}
@@ -71,8 +71,8 @@ public:
 
        
 protected:
-       btPoint3 m_worldAabbMin;                                                // overall system bounds
-       btPoint3 m_worldAabbMax;                                                // overall system bounds
+       btVector3 m_worldAabbMin;                                               // overall system bounds
+       btVector3 m_worldAabbMax;                                               // overall system bounds
 
        btVector3 m_quantize;                                           // scaling factor for quantization
 
@@ -94,6 +94,12 @@ protected:
 
        int     m_invalidPair;
 
+       ///additional dynamic aabb structure, used to accelerate ray cast queries.
+       ///can be disabled using a optional argument in the constructor
+       btDbvtBroadphase*       m_raycastAccelerator;
+       btOverlappingPairCache* m_nullPairCache;
+
+
        // allocation/deallocation
        BP_FP_INT_TYPE allocHandle();
        void freeHandle(BP_FP_INT_TYPE handle);
@@ -108,7 +114,7 @@ protected:
        //Overlap* AddOverlap(BP_FP_INT_TYPE handleA, BP_FP_INT_TYPE handleB);
        //void RemoveOverlap(BP_FP_INT_TYPE handleA, BP_FP_INT_TYPE handleB);
 
-       void quantize(BP_FP_INT_TYPE* out, const btPoint3& point, int isMax) const;
+       
 
        void sortMinDown(int axis, BP_FP_INT_TYPE edge, btDispatcher* dispatcher, bool updateOverlaps );
        void sortMinUp(int axis, BP_FP_INT_TYPE edge, btDispatcher* dispatcher, bool updateOverlaps );
@@ -117,7 +123,7 @@ protected:
 
 public:
 
-       btAxisSweep3Internal(const btPoint3& worldAabbMin,const btPoint3& worldAabbMax, BP_FP_INT_TYPE handleMask, BP_FP_INT_TYPE handleSentinel, BP_FP_INT_TYPE maxHandles = 16384, btOverlappingPairCache* pairCache=0);
+       btAxisSweep3Internal(const btVector3& worldAabbMin,const btVector3& worldAabbMax, BP_FP_INT_TYPE handleMask, BP_FP_INT_TYPE handleSentinel, BP_FP_INT_TYPE maxHandles = 16384, btOverlappingPairCache* pairCache=0,bool disableRaycastAccelerator = false);
 
        virtual ~btAxisSweep3Internal();
 
@@ -128,17 +134,26 @@ public:
 
        virtual void    calculateOverlappingPairs(btDispatcher* dispatcher);
        
-       BP_FP_INT_TYPE addHandle(const btPoint3& aabbMin,const btPoint3& aabbMax, void* pOwner,short int collisionFilterGroup,short int collisionFilterMask,btDispatcher* dispatcher,void* multiSapProxy);
+       BP_FP_INT_TYPE addHandle(const btVector3& aabbMin,const btVector3& aabbMax, void* pOwner,short int collisionFilterGroup,short int collisionFilterMask,btDispatcher* dispatcher,void* multiSapProxy);
        void removeHandle(BP_FP_INT_TYPE handle,btDispatcher* dispatcher);
-       void updateHandle(BP_FP_INT_TYPE handle, const btPoint3& aabbMin,const btPoint3& aabbMax,btDispatcher* dispatcher);
+       void updateHandle(BP_FP_INT_TYPE handle, const btVector3& aabbMin,const btVector3& aabbMax,btDispatcher* dispatcher);
        SIMD_FORCE_INLINE Handle* getHandle(BP_FP_INT_TYPE index) const {return m_pHandles + index;}
 
+       virtual void resetPool(btDispatcher* dispatcher);
+
        void    processAllOverlappingPairs(btOverlapCallback* callback);
 
        //Broadphase Interface
        virtual btBroadphaseProxy*      createProxy(  const btVector3& aabbMin,  const btVector3& aabbMax,int shapeType,void* userPtr ,short int collisionFilterGroup,short int collisionFilterMask,btDispatcher* dispatcher,void* multiSapProxy);
        virtual void    destroyProxy(btBroadphaseProxy* proxy,btDispatcher* dispatcher);
        virtual void    setAabb(btBroadphaseProxy* proxy,const btVector3& aabbMin,const btVector3& aabbMax,btDispatcher* dispatcher);
+       virtual void  getAabb(btBroadphaseProxy* proxy,btVector3& aabbMin, btVector3& aabbMax ) const;
+       
+       virtual void    rayTest(const btVector3& rayFrom,const btVector3& rayTo, btBroadphaseRayCallback& rayCallback, const btVector3& aabbMin=btVector3(0,0,0), const btVector3& aabbMax = btVector3(0,0,0));
+       
+       void quantize(BP_FP_INT_TYPE* out, const btVector3& point, int isMax) const;
+       ///unQuantize should be conservative: aabbMin/aabbMax should be larger then 'getAabb' result
+       void unQuantize(btBroadphaseProxy* proxy,btVector3& aabbMin, btVector3& aabbMax ) const;
        
        bool    testAabbOverlap(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1);
 
@@ -206,7 +221,7 @@ void btAxisSweep3<BP_FP_INT_TYPE>::debugPrintAxis(int axis, bool checkCardinalit
        }
 
        if (checkCardinality)
-               assert(numEdges == m_numHandles*2+1);
+               btAssert(numEdges == m_numHandles*2+1);
 }
 #endif //DEBUG_BROADPHASE
 
@@ -217,7 +232,12 @@ btBroadphaseProxy* btAxisSweep3Internal<BP_FP_INT_TYPE>::createProxy(  const btV
                BP_FP_INT_TYPE handleId = addHandle(aabbMin,aabbMax, userPtr,collisionFilterGroup,collisionFilterMask,dispatcher,multiSapProxy);
                
                Handle* handle = getHandle(handleId);
-                               
+               
+               if (m_raycastAccelerator)
+               {
+                       btBroadphaseProxy* rayProxy = m_raycastAccelerator->createProxy(aabbMin,aabbMax,shapeType,userPtr,collisionFilterGroup,collisionFilterMask,dispatcher,0);
+                       handle->m_dbvtProxy = rayProxy;
+               }
                return handle;
 }
 
@@ -227,6 +247,8 @@ template <typename BP_FP_INT_TYPE>
 void   btAxisSweep3Internal<BP_FP_INT_TYPE>::destroyProxy(btBroadphaseProxy* proxy,btDispatcher* dispatcher)
 {
        Handle* handle = static_cast<Handle*>(proxy);
+       if (m_raycastAccelerator)
+               m_raycastAccelerator->destroyProxy(handle->m_dbvtProxy,dispatcher);
        removeHandle(static_cast<BP_FP_INT_TYPE>(handle->m_uniqueId), dispatcher);
 }
 
@@ -234,22 +256,80 @@ template <typename BP_FP_INT_TYPE>
 void   btAxisSweep3Internal<BP_FP_INT_TYPE>::setAabb(btBroadphaseProxy* proxy,const btVector3& aabbMin,const btVector3& aabbMax,btDispatcher* dispatcher)
 {
        Handle* handle = static_cast<Handle*>(proxy);
+       handle->m_aabbMin = aabbMin;
+       handle->m_aabbMax = aabbMax;
        updateHandle(static_cast<BP_FP_INT_TYPE>(handle->m_uniqueId), aabbMin, aabbMax,dispatcher);
+       if (m_raycastAccelerator)
+               m_raycastAccelerator->setAabb(handle->m_dbvtProxy,aabbMin,aabbMax,dispatcher);
+
+}
+
+template <typename BP_FP_INT_TYPE>
+void   btAxisSweep3Internal<BP_FP_INT_TYPE>::rayTest(const btVector3& rayFrom,const btVector3& rayTo, btBroadphaseRayCallback& rayCallback,const btVector3& aabbMin,const btVector3& aabbMax)
+{
+       if (m_raycastAccelerator)
+       {
+               m_raycastAccelerator->rayTest(rayFrom,rayTo,rayCallback,aabbMin,aabbMax);
+       } else
+       {
+               //choose axis?
+               BP_FP_INT_TYPE axis = 0;
+               //for each proxy
+               for (BP_FP_INT_TYPE i=1;i<m_numHandles*2+1;i++)
+               {
+                       if (m_pEdges[axis][i].IsMax())
+                       {
+                               rayCallback.process(getHandle(m_pEdges[axis][i].m_handle));
+                       }
+               }
+       }
+}
+
 
+
+template <typename BP_FP_INT_TYPE>
+void btAxisSweep3Internal<BP_FP_INT_TYPE>::getAabb(btBroadphaseProxy* proxy,btVector3& aabbMin, btVector3& aabbMax ) const
+{
+       Handle* pHandle = static_cast<Handle*>(proxy);
+       aabbMin = pHandle->m_aabbMin;
+       aabbMax = pHandle->m_aabbMax;
 }
 
 
+template <typename BP_FP_INT_TYPE>
+void btAxisSweep3Internal<BP_FP_INT_TYPE>::unQuantize(btBroadphaseProxy* proxy,btVector3& aabbMin, btVector3& aabbMax ) const
+{
+       Handle* pHandle = static_cast<Handle*>(proxy);
+
+       unsigned short vecInMin[3];
+       unsigned short vecInMax[3];
+
+       vecInMin[0] = m_pEdges[0][pHandle->m_minEdges[0]].m_pos ;
+       vecInMax[0] = m_pEdges[0][pHandle->m_maxEdges[0]].m_pos +1 ;
+       vecInMin[1] = m_pEdges[1][pHandle->m_minEdges[1]].m_pos ;
+       vecInMax[1] = m_pEdges[1][pHandle->m_maxEdges[1]].m_pos +1 ;
+       vecInMin[2] = m_pEdges[2][pHandle->m_minEdges[2]].m_pos ;
+       vecInMax[2] = m_pEdges[2][pHandle->m_maxEdges[2]].m_pos +1 ;
+       
+       aabbMin.setValue((btScalar)(vecInMin[0]) / (m_quantize.getX()),(btScalar)(vecInMin[1]) / (m_quantize.getY()),(btScalar)(vecInMin[2]) / (m_quantize.getZ()));
+       aabbMin += m_worldAabbMin;
+       
+       aabbMax.setValue((btScalar)(vecInMax[0]) / (m_quantize.getX()),(btScalar)(vecInMax[1]) / (m_quantize.getY()),(btScalar)(vecInMax[2]) / (m_quantize.getZ()));
+       aabbMax += m_worldAabbMin;
+}
+
 
 
 
 template <typename BP_FP_INT_TYPE>
-btAxisSweep3Internal<BP_FP_INT_TYPE>::btAxisSweep3Internal(const btPoint3& worldAabbMin,const btPoint3& worldAabbMax, BP_FP_INT_TYPE handleMask, BP_FP_INT_TYPE handleSentinel,BP_FP_INT_TYPE userMaxHandles, btOverlappingPairCache* pairCache )
+btAxisSweep3Internal<BP_FP_INT_TYPE>::btAxisSweep3Internal(const btVector3& worldAabbMin,const btVector3& worldAabbMax, BP_FP_INT_TYPE handleMask, BP_FP_INT_TYPE handleSentinel,BP_FP_INT_TYPE userMaxHandles, btOverlappingPairCache* pairCache , bool disableRaycastAccelerator)
 :m_bpHandleMask(handleMask),
 m_handleSentinel(handleSentinel),
 m_pairCache(pairCache),
 m_userPairCallback(0),
 m_ownsPairCache(false),
-m_invalidPair(0)
+m_invalidPair(0),
+m_raycastAccelerator(0)
 {
        BP_FP_INT_TYPE maxHandles = static_cast<BP_FP_INT_TYPE>(userMaxHandles+1);//need to add one sentinel handle
 
@@ -260,7 +340,14 @@ m_invalidPair(0)
                m_ownsPairCache = true;
        }
 
-       //assert(bounds.HasVolume());
+       if (!disableRaycastAccelerator)
+       {
+               m_nullPairCache = new (btAlignedAlloc(sizeof(btNullPairCache),16)) btNullPairCache();
+               m_raycastAccelerator = new (btAlignedAlloc(sizeof(btDbvtBroadphase),16)) btDbvtBroadphase(m_nullPairCache);//m_pairCache);
+               m_raycastAccelerator->m_deferedcollide = true;//don't add/remove pairs
+       }
+
+       //btAssert(bounds.HasVolume());
 
        // init bounds
        m_worldAabbMin = worldAabbMin;
@@ -320,7 +407,14 @@ m_invalidPair(0)
 template <typename BP_FP_INT_TYPE>
 btAxisSweep3Internal<BP_FP_INT_TYPE>::~btAxisSweep3Internal()
 {
-       
+       if (m_raycastAccelerator)
+       {
+               m_nullPairCache->~btOverlappingPairCache();
+               btAlignedFree(m_nullPairCache);
+               m_raycastAccelerator->~btDbvtBroadphase();
+               btAlignedFree (m_raycastAccelerator);
+       }
+
        for (int i = 2; i >= 0; i--)
        {
                btAlignedFree(m_pEdgesRawPtr[i]);
@@ -335,27 +429,31 @@ btAxisSweep3Internal<BP_FP_INT_TYPE>::~btAxisSweep3Internal()
 }
 
 template <typename BP_FP_INT_TYPE>
-void btAxisSweep3Internal<BP_FP_INT_TYPE>::quantize(BP_FP_INT_TYPE* out, const btPoint3& point, int isMax) const
+void btAxisSweep3Internal<BP_FP_INT_TYPE>::quantize(BP_FP_INT_TYPE* out, const btVector3& point, int isMax) const
 {
-       btPoint3 clampedPoint(point);
-       
-
-
+#ifdef OLD_CLAMPING_METHOD
+       ///problem with this clamping method is that the floating point during quantization might still go outside the range [(0|isMax) .. (m_handleSentinel&m_bpHandleMask]|isMax]
+       ///see http://code.google.com/p/bullet/issues/detail?id=87
+       btVector3 clampedPoint(point);
        clampedPoint.setMax(m_worldAabbMin);
        clampedPoint.setMin(m_worldAabbMax);
-
        btVector3 v = (clampedPoint - m_worldAabbMin) * m_quantize;
        out[0] = (BP_FP_INT_TYPE)(((BP_FP_INT_TYPE)v.getX() & m_bpHandleMask) | isMax);
        out[1] = (BP_FP_INT_TYPE)(((BP_FP_INT_TYPE)v.getY() & m_bpHandleMask) | isMax);
        out[2] = (BP_FP_INT_TYPE)(((BP_FP_INT_TYPE)v.getZ() & m_bpHandleMask) | isMax);
-       
+#else
+       btVector3 v = (point - m_worldAabbMin) * m_quantize;
+       out[0]=(v[0]<=0)?(BP_FP_INT_TYPE)isMax:(v[0]>=m_handleSentinel)?(BP_FP_INT_TYPE)((m_handleSentinel&m_bpHandleMask)|isMax):(BP_FP_INT_TYPE)(((BP_FP_INT_TYPE)v[0]&m_bpHandleMask)|isMax);
+       out[1]=(v[1]<=0)?(BP_FP_INT_TYPE)isMax:(v[1]>=m_handleSentinel)?(BP_FP_INT_TYPE)((m_handleSentinel&m_bpHandleMask)|isMax):(BP_FP_INT_TYPE)(((BP_FP_INT_TYPE)v[1]&m_bpHandleMask)|isMax);
+       out[2]=(v[2]<=0)?(BP_FP_INT_TYPE)isMax:(v[2]>=m_handleSentinel)?(BP_FP_INT_TYPE)((m_handleSentinel&m_bpHandleMask)|isMax):(BP_FP_INT_TYPE)(((BP_FP_INT_TYPE)v[2]&m_bpHandleMask)|isMax);
+#endif //OLD_CLAMPING_METHOD
 }
 
 
 template <typename BP_FP_INT_TYPE>
 BP_FP_INT_TYPE btAxisSweep3Internal<BP_FP_INT_TYPE>::allocHandle()
 {
-       assert(m_firstFreeHandle);
+       btAssert(m_firstFreeHandle);
 
        BP_FP_INT_TYPE handle = m_firstFreeHandle;
        m_firstFreeHandle = getHandle(handle)->GetNextFree();
@@ -367,7 +465,7 @@ BP_FP_INT_TYPE btAxisSweep3Internal<BP_FP_INT_TYPE>::allocHandle()
 template <typename BP_FP_INT_TYPE>
 void btAxisSweep3Internal<BP_FP_INT_TYPE>::freeHandle(BP_FP_INT_TYPE handle)
 {
-       assert(handle > 0 && handle < m_maxHandles);
+       btAssert(handle > 0 && handle < m_maxHandles);
 
        getHandle(handle)->SetNextFree(m_firstFreeHandle);
        m_firstFreeHandle = handle;
@@ -377,7 +475,7 @@ void btAxisSweep3Internal<BP_FP_INT_TYPE>::freeHandle(BP_FP_INT_TYPE handle)
 
 
 template <typename BP_FP_INT_TYPE>
-BP_FP_INT_TYPE btAxisSweep3Internal<BP_FP_INT_TYPE>::addHandle(const btPoint3& aabbMin,const btPoint3& aabbMax, void* pOwner,short int collisionFilterGroup,short int collisionFilterMask,btDispatcher* dispatcher,void* multiSapProxy)
+BP_FP_INT_TYPE btAxisSweep3Internal<BP_FP_INT_TYPE>::addHandle(const btVector3& aabbMin,const btVector3& aabbMax, void* pOwner,short int collisionFilterGroup,short int collisionFilterMask,btDispatcher* dispatcher,void* multiSapProxy)
 {
        // quantize the bounds
        BP_FP_INT_TYPE min[3], max[3];
@@ -440,7 +538,7 @@ void btAxisSweep3Internal<BP_FP_INT_TYPE>::removeHandle(BP_FP_INT_TYPE handle,bt
 
        //explicitly remove the pairs containing the proxy
        //we could do it also in the sortMinUp (passing true)
-       //todo: compare performance
+       ///@todo: compare performance
        if (!m_pairCache->hasDeferredRemoval())
        {
                m_pairCache->removeOverlappingPairsContainingProxy(pHandle,dispatcher);
@@ -489,6 +587,21 @@ void btAxisSweep3Internal<BP_FP_INT_TYPE>::removeHandle(BP_FP_INT_TYPE handle,bt
        
 }
 
+template <typename BP_FP_INT_TYPE>
+void btAxisSweep3Internal<BP_FP_INT_TYPE>::resetPool(btDispatcher* dispatcher)
+{
+       if (m_numHandles == 0)
+       {
+               m_firstFreeHandle = 1;
+               {
+                       for (BP_FP_INT_TYPE i = m_firstFreeHandle; i < m_maxHandles; i++)
+                               m_pHandles[i].SetNextFree(static_cast<BP_FP_INT_TYPE>(i + 1));
+                       m_pHandles[m_maxHandles - 1].SetNextFree(0);
+               }
+       }
+}       
+
+
 extern int gOverlappingPairs;
 //#include <stdio.h>
 
@@ -529,6 +642,7 @@ void        btAxisSweep3Internal<BP_FP_INT_TYPE>::calculateOverlappingPairs(btDispatche
 
                        if (!isDuplicate)
                        {
+                               ///important to use an AABB test that is consistent with the broadphase
                                bool hasOverlap = testAabbOverlap(pair.m_pProxy0,pair.m_pProxy1);
 
                                if (hasOverlap)
@@ -574,10 +688,6 @@ void       btAxisSweep3Internal<BP_FP_INT_TYPE>::calculateOverlappingPairs(btDispatche
                //printf("overlappingPairArray.size()=%d\n",overlappingPairArray.size());
        }
 
-
-
-       
-
 }
 
 
@@ -616,10 +726,10 @@ bool btAxisSweep3Internal<BP_FP_INT_TYPE>::testOverlap2D(const Handle* pHandleA,
 }
 
 template <typename BP_FP_INT_TYPE>
-void btAxisSweep3Internal<BP_FP_INT_TYPE>::updateHandle(BP_FP_INT_TYPE handle, const btPoint3& aabbMin,const btPoint3& aabbMax,btDispatcher* dispatcher)
+void btAxisSweep3Internal<BP_FP_INT_TYPE>::updateHandle(BP_FP_INT_TYPE handle, const btVector3& aabbMin,const btVector3& aabbMax,btDispatcher* dispatcher)
 {
-//     assert(bounds.IsFinite());
-       //assert(bounds.HasVolume());
+//     btAssert(bounds.IsFinite());
+       //btAssert(bounds.HasVolume());
 
        Handle* pHandle = getHandle(handle);
 
@@ -895,7 +1005,7 @@ class btAxisSweep3 : public btAxisSweep3Internal<unsigned short int>
 {
 public:
 
-       btAxisSweep3(const btPoint3& worldAabbMin,const btPoint3& worldAabbMax, unsigned short int maxHandles = 16384, btOverlappingPairCache* pairCache = 0);
+       btAxisSweep3(const btVector3& worldAabbMin,const btVector3& worldAabbMax, unsigned short int maxHandles = 16384, btOverlappingPairCache* pairCache = 0, bool disableRaycastAccelerator = false);
 
 };
 
@@ -906,7 +1016,7 @@ class bt32BitAxisSweep3 : public btAxisSweep3Internal<unsigned int>
 {
 public:
 
-       bt32BitAxisSweep3(const btPoint3& worldAabbMin,const btPoint3& worldAabbMax, unsigned int maxHandles = 1500000, btOverlappingPairCache* pairCache = 0);
+       bt32BitAxisSweep3(const btVector3& worldAabbMin,const btVector3& worldAabbMax, unsigned int maxHandles = 1500000, btOverlappingPairCache* pairCache = 0, bool disableRaycastAccelerator = false);
 
 };
 
index 200ac365329edc717c3822ce2a43ec77c2c38806..b7bbaf512aed1dbf1e00fc09de8706d25e136921 100644 (file)
@@ -21,8 +21,22 @@ subject to the following restrictions:
 struct btDispatcherInfo;
 class btDispatcher;
 #include "btBroadphaseProxy.h"
+
 class btOverlappingPairCache;
 
+
+
+struct btBroadphaseRayCallback
+{
+       ///added some cached data to accelerate ray-AABB tests
+       btVector3               m_rayDirectionInverse;
+       unsigned int    m_signs[3];
+       btScalar                m_lambda_max;
+
+       virtual ~btBroadphaseRayCallback() {}
+       virtual bool    process(const btBroadphaseProxy* proxy) = 0;
+};
+
 #include "LinearMath/btVector3.h"
 
 ///The btBroadphaseInterface class provides an interface to detect aabb-overlapping object pairs.
@@ -36,7 +50,10 @@ public:
        virtual btBroadphaseProxy*      createProxy(  const btVector3& aabbMin,  const btVector3& aabbMax,int shapeType,void* userPtr, short int collisionFilterGroup,short int collisionFilterMask, btDispatcher* dispatcher,void* multiSapProxy) =0;
        virtual void    destroyProxy(btBroadphaseProxy* proxy,btDispatcher* dispatcher)=0;
        virtual void    setAabb(btBroadphaseProxy* proxy,const btVector3& aabbMin,const btVector3& aabbMax, btDispatcher* dispatcher)=0;
-       
+       virtual void    getAabb(btBroadphaseProxy* proxy,btVector3& aabbMin, btVector3& aabbMax ) const =0;
+
+       virtual void    rayTest(const btVector3& rayFrom,const btVector3& rayTo, btBroadphaseRayCallback& rayCallback, const btVector3& aabbMin=btVector3(0,0,0), const btVector3& aabbMax = btVector3(0,0,0)) = 0;
+
        ///calculateOverlappingPairs is optional: incremental algorithms (sweep and prune) might do it during the set aabb
        virtual void    calculateOverlappingPairs(btDispatcher* dispatcher)=0;
 
@@ -47,6 +64,9 @@ public:
        ///will add some transform later
        virtual void getBroadphaseAabb(btVector3& aabbMin,btVector3& aabbMax) const =0;
 
+       ///reset broadphase internal structures, to ensure determinism/reproducability
+       virtual void resetPool(btDispatcher* dispatcher) {};
+
        virtual void    printStats() = 0;
 
 };
index a074a0b150bf61d5d40513d54d336646710e977f..be261ec408013cf4abcd4010c083182466958ef3 100644 (file)
@@ -17,20 +17,24 @@ subject to the following restrictions:
 #define BROADPHASE_PROXY_H
 
 #include "LinearMath/btScalar.h" //for SIMD_FORCE_INLINE
+#include "LinearMath/btVector3.h"
 #include "LinearMath/btAlignedAllocator.h"
 
 
 /// btDispatcher uses these types
 /// IMPORTANT NOTE:The types are ordered polyhedral, implicit convex and concave
 /// to facilitate type checking
+/// CUSTOM_POLYHEDRAL_SHAPE_TYPE,CUSTOM_CONVEX_SHAPE_TYPE and CUSTOM_CONCAVE_SHAPE_TYPE can be used to extend Bullet without modifying source code
 enum BroadphaseNativeTypes
 {
-// polyhedral convex shapes
+       // polyhedral convex shapes
        BOX_SHAPE_PROXYTYPE,
        TRIANGLE_SHAPE_PROXYTYPE,
        TETRAHEDRAL_SHAPE_PROXYTYPE,
        CONVEX_TRIANGLEMESH_SHAPE_PROXYTYPE,
        CONVEX_HULL_SHAPE_PROXYTYPE,
+       CONVEX_POINT_CLOUD_SHAPE_PROXYTYPE,
+       CUSTOM_POLYHEDRAL_SHAPE_TYPE,
 //implicit convex shapes
 IMPLICIT_CONVEX_SHAPES_START_HERE,
        SPHERE_SHAPE_PROXYTYPE,
@@ -42,6 +46,7 @@ IMPLICIT_CONVEX_SHAPES_START_HERE,
        UNIFORM_SCALING_SHAPE_PROXYTYPE,
        MINKOWSKI_SUM_SHAPE_PROXYTYPE,
        MINKOWSKI_DIFFERENCE_SHAPE_PROXYTYPE,
+       CUSTOM_CONVEX_SHAPE_TYPE,
 //concave shapes
 CONCAVE_SHAPES_START_HERE,
        //keep all the convex shapetype below here, for the check IsConvexShape in broadphase proxy!
@@ -58,13 +63,18 @@ CONCAVE_SHAPES_START_HERE,
        
        EMPTY_SHAPE_PROXYTYPE,
        STATIC_PLANE_PROXYTYPE,
+       CUSTOM_CONCAVE_SHAPE_TYPE,
 CONCAVE_SHAPES_END_HERE,
 
        COMPOUND_SHAPE_PROXYTYPE,
 
        SOFTBODY_SHAPE_PROXYTYPE,
+       HFFLUID_SHAPE_PROXYTYPE,
+       HFFLUID_BUOYANT_CONVEX_SHAPE_PROXYTYPE,
+       INVALID_SHAPE_PROXYTYPE,
 
        MAX_BROADPHASE_COLLISION_TYPES
+       
 };
 
 
@@ -83,20 +93,20 @@ BT_DECLARE_ALIGNED_ALLOCATOR();
                KinematicFilter = 4,
                DebrisFilter = 8,
                        SensorTrigger = 16,
+                       CharacterFilter = 32,
                AllFilter = -1 //all bits sets: DefaultFilter | StaticFilter | KinematicFilter | DebrisFilter | SensorTrigger
        };
 
        //Usually the client btCollisionObject or Rigidbody class
        void*   m_clientObject;
-
        short int m_collisionFilterGroup;
        short int m_collisionFilterMask;
-
        void*   m_multiSapParentProxy;          
-
-
        int                     m_uniqueId;//m_uniqueId is introduced for paircache. could get rid of this, by calculating the address offset etc.
 
+       btVector3       m_aabbMin;
+       btVector3       m_aabbMax;
+
        SIMD_FORCE_INLINE int getUid() const
        {
                return m_uniqueId;
@@ -107,10 +117,12 @@ BT_DECLARE_ALIGNED_ALLOCATOR();
        {
        }
 
-       btBroadphaseProxy(void* userPtr,short int collisionFilterGroup, short int collisionFilterMask,void* multiSapParentProxy=0)
+       btBroadphaseProxy(const btVector3& aabbMin,const btVector3& aabbMax,void* userPtr,short int collisionFilterGroup, short int collisionFilterMask,void* multiSapParentProxy=0)
                :m_clientObject(userPtr),
                m_collisionFilterGroup(collisionFilterGroup),
-               m_collisionFilterMask(collisionFilterMask)
+               m_collisionFilterMask(collisionFilterMask),
+               m_aabbMin(aabbMin),
+               m_aabbMax(aabbMax)
        {
                m_multiSapParentProxy = multiSapParentProxy;
        }
@@ -159,7 +171,7 @@ ATTRIBUTE_ALIGNED16(struct) btBroadphasePair
        m_pProxy0(0),
                m_pProxy1(0),
                m_algorithm(0),
-               m_userInfo(0)
+               m_internalInfo1(0)
        {
        }
 
@@ -169,14 +181,14 @@ BT_DECLARE_ALIGNED_ALLOCATOR();
                :               m_pProxy0(other.m_pProxy0),
                                m_pProxy1(other.m_pProxy1),
                                m_algorithm(other.m_algorithm),
-                               m_userInfo(other.m_userInfo)
+                               m_internalInfo1(other.m_internalInfo1)
        {
        }
        btBroadphasePair(btBroadphaseProxy& proxy0,btBroadphaseProxy& proxy1)
        {
 
                //keep them sorted, so the std::set operations work
-               if (&proxy0 < &proxy1)
+               if (proxy0.m_uniqueId < proxy1.m_uniqueId)
         { 
             m_pProxy0 = &proxy0; 
             m_pProxy1 = &proxy1; 
@@ -188,7 +200,7 @@ BT_DECLARE_ALIGNED_ALLOCATOR();
         }
 
                m_algorithm = 0;
-               m_userInfo = 0;
+               m_internalInfo1 = 0;
 
        }
        
@@ -196,7 +208,7 @@ BT_DECLARE_ALIGNED_ALLOCATOR();
        btBroadphaseProxy* m_pProxy1;
        
        mutable btCollisionAlgorithm* m_algorithm;
-       mutable void* m_userInfo;
+       union { void* m_internalInfo1; int m_internalTmpValue;};//don't use this data, it will be removed in future version.
 
 };
 
@@ -217,8 +229,13 @@ class btBroadphasePairSortPredicate
 
                bool operator() ( const btBroadphasePair& a, const btBroadphasePair& b )
                {
-                        return a.m_pProxy0 > b.m_pProxy0 || 
-                               (a.m_pProxy0 == b.m_pProxy0 && a.m_pProxy1 > b.m_pProxy1) ||
+                       const int uidA0 = a.m_pProxy0 ? a.m_pProxy0->m_uniqueId : -1;
+                       const int uidB0 = b.m_pProxy0 ? b.m_pProxy0->m_uniqueId : -1;
+                       const int uidA1 = a.m_pProxy1 ? a.m_pProxy1->m_uniqueId : -1;
+                       const int uidB1 = b.m_pProxy1 ? b.m_pProxy1->m_uniqueId : -1;
+
+                        return uidA0 > uidB0 || 
+                               (a.m_pProxy0 == b.m_pProxy0 && uidA1 > uidB1) ||
                                (a.m_pProxy0 == b.m_pProxy0 && a.m_pProxy1 == b.m_pProxy1 && a.m_algorithm > b.m_algorithm); 
                }
 };
index 7c41c8d8f719d008560b14556bb069735d9d5991..a6e36b47049253267116600cf45f706d701013d7 100644 (file)
@@ -23,188 +23,188 @@ typedef btAlignedObjectArray<const btDbvtNode*>   tConstNodeArray;
 //
 struct btDbvtNodeEnumerator : btDbvt::ICollide
 {
-tConstNodeArray        nodes;
-void Process(const btDbvtNode* n) { nodes.push_back(n); }
+       tConstNodeArray nodes;
+       void Process(const btDbvtNode* n) { nodes.push_back(n); }
 };
 
 //
 static DBVT_INLINE int                 indexof(const btDbvtNode* node)
 {
-return(node->parent->childs[1]==node);
+       return(node->parent->childs[1]==node);
 }
 
 //
 static DBVT_INLINE btDbvtVolume        merge(  const btDbvtVolume& a,
-                                                                               const btDbvtVolume& b)
+                                                                         const btDbvtVolume& b)
 {
-#if DBVT_MERGE_IMPL==DBVT_IMPL_SSE
-DBVT_ALIGN char locals[sizeof(btDbvtAabbMm)];
-btDbvtVolume&  res=*(btDbvtVolume*)locals;
+#if (DBVT_MERGE_IMPL==DBVT_IMPL_SSE)
+       ATTRIBUTE_ALIGNED16(char locals[sizeof(btDbvtAabbMm)]);
+       btDbvtVolume&   res=*(btDbvtVolume*)locals;
 #else
-btDbvtVolume   res;
+               btDbvtVolume    res;
 #endif
-Merge(a,b,res);
-return(res);
+       Merge(a,b,res);
+       return(res);
 }
 
 // volume+edge lengths
 static DBVT_INLINE btScalar            size(const btDbvtVolume& a)
 {
-const btVector3        edges=a.Lengths();
-return(        edges.x()*edges.y()*edges.z()+
+       const btVector3 edges=a.Lengths();
+       return( edges.x()*edges.y()*edges.z()+
                edges.x()+edges.y()+edges.z());
 }
 
 //
 static void                                            getmaxdepth(const btDbvtNode* node,int depth,int& maxdepth)
 {
-if(node->isinternal())
+       if(node->isinternal())
        {
-       getmaxdepth(node->childs[0],depth+1,maxdepth);
-       getmaxdepth(node->childs[0],depth+1,maxdepth);
+               getmaxdepth(node->childs[0],depth+1,maxdepth);
+               getmaxdepth(node->childs[0],depth+1,maxdepth);
        } else maxdepth=btMax(maxdepth,depth);
 }
 
 //
 static DBVT_INLINE void                        deletenode(     btDbvt* pdbvt,
-                                                                                       btDbvtNode* node)
+                                                                                  btDbvtNode* node)
 {
-btAlignedFree(pdbvt->m_free);
-pdbvt->m_free=node;
+       btAlignedFree(pdbvt->m_free);
+       pdbvt->m_free=node;
 }
-       
+
 //
 static void                                            recursedeletenode(      btDbvt* pdbvt,
-                                                                                                       btDbvtNode* node)
+                                                                                                 btDbvtNode* node)
 {
-if(!node->isleaf())
+       if(!node->isleaf())
        {
-       recursedeletenode(pdbvt,node->childs[0]);
-       recursedeletenode(pdbvt,node->childs[1]);
+               recursedeletenode(pdbvt,node->childs[0]);
+               recursedeletenode(pdbvt,node->childs[1]);
        }
-if(node==pdbvt->m_root) pdbvt->m_root=0;
-deletenode(pdbvt,node);
+       if(node==pdbvt->m_root) pdbvt->m_root=0;
+       deletenode(pdbvt,node);
 }
 
 //
 static DBVT_INLINE btDbvtNode* createnode(     btDbvt* pdbvt,
-                                                                                       btDbvtNode* parent,
-                                                                                       void* data)
+                                                                                  btDbvtNode* parent,
+                                                                                  void* data)
 {
-btDbvtNode*    node;
-if(pdbvt->m_free)
+       btDbvtNode*     node;
+       if(pdbvt->m_free)
        { node=pdbvt->m_free;pdbvt->m_free=0; }
        else
        { node=new(btAlignedAlloc(sizeof(btDbvtNode),16)) btDbvtNode(); }
-node->parent   =       parent;
-node->data             =       data;
-node->childs[1]        =       0;
-return(node);
+       node->parent    =       parent;
+       node->data              =       data;
+       node->childs[1] =       0;
+       return(node);
 }
 
 //
 static DBVT_INLINE btDbvtNode* createnode(     btDbvt* pdbvt,
-                                                                                       btDbvtNode* parent,
-                                                                                       const btDbvtVolume& volume,
-                                                                                       void* data)
+                                                                                  btDbvtNode* parent,
+                                                                                  const btDbvtVolume& volume,
+                                                                                  void* data)
 {
-btDbvtNode*    node=createnode(pdbvt,parent,data);
-node->volume=volume;
-return(node);
+       btDbvtNode*     node=createnode(pdbvt,parent,data);
+       node->volume=volume;
+       return(node);
 }
 
 //
 static DBVT_INLINE btDbvtNode* createnode(     btDbvt* pdbvt,
-                                                                                       btDbvtNode* parent,
-                                                                                       const btDbvtVolume& volume0,
-                                                                                       const btDbvtVolume& volume1,
-                                                                                       void* data)
+                                                                                  btDbvtNode* parent,
+                                                                                  const btDbvtVolume& volume0,
+                                                                                  const btDbvtVolume& volume1,
+                                                                                  void* data)
 {
-btDbvtNode*    node=createnode(pdbvt,parent,data);
-Merge(volume0,volume1,node->volume);
-return(node);
+       btDbvtNode*     node=createnode(pdbvt,parent,data);
+       Merge(volume0,volume1,node->volume);
+       return(node);
 }
 
 //
 static void                                            insertleaf(     btDbvt* pdbvt,
-                                                                                       btDbvtNode* root,
-                                                                                       btDbvtNode* leaf)
+                                                                                  btDbvtNode* root,
+                                                                                  btDbvtNode* leaf)
 {
-if(!pdbvt->m_root)
+       if(!pdbvt->m_root)
        {
-       pdbvt->m_root   =       leaf;
-       leaf->parent    =       0;
+               pdbvt->m_root   =       leaf;
+               leaf->parent    =       0;
        }
        else
        {
-       if(!root->isleaf())
+               if(!root->isleaf())
                {
-               do      {
-                       root=root->childs[Select(       leaf->volume,
-                                                                               root->childs[0]->volume,
-                                                                               root->childs[1]->volume)];
+                       do      {
+                               root=root->childs[Select(       leaf->volume,
+                                       root->childs[0]->volume,
+                                       root->childs[1]->volume)];
                        } while(!root->isleaf());
                }
-       btDbvtNode*     prev=root->parent;
-       btDbvtNode*     node=createnode(pdbvt,prev,leaf->volume,root->volume,0);
-       if(prev)
+               btDbvtNode*     prev=root->parent;
+               btDbvtNode*     node=createnode(pdbvt,prev,leaf->volume,root->volume,0);
+               if(prev)
                {
-               prev->childs[indexof(root)]     =       node;
-               node->childs[0]                         =       root;root->parent=node;
-               node->childs[1]                         =       leaf;leaf->parent=node;
-               do      {
-                       if(!prev->volume.Contain(node->volume))
-                               Merge(prev->childs[0]->volume,prev->childs[1]->volume,prev->volume);
+                       prev->childs[indexof(root)]     =       node;
+                       node->childs[0]                         =       root;root->parent=node;
+                       node->childs[1]                         =       leaf;leaf->parent=node;
+                       do      {
+                               if(!prev->volume.Contain(node->volume))
+                                       Merge(prev->childs[0]->volume,prev->childs[1]->volume,prev->volume);
                                else
-                               break;
-                       node=prev;
+                                       break;
+                               node=prev;
                        } while(0!=(prev=node->parent));
                }
                else
                {
-               node->childs[0] =       root;root->parent=node;
-               node->childs[1] =       leaf;leaf->parent=node;
-               pdbvt->m_root   =       node;
+                       node->childs[0] =       root;root->parent=node;
+                       node->childs[1] =       leaf;leaf->parent=node;
+                       pdbvt->m_root   =       node;
                }
        }
 }
-       
+
 //
 static btDbvtNode*                             removeleaf(     btDbvt* pdbvt,
-                                                                                       btDbvtNode* leaf)
+                                                                                  btDbvtNode* leaf)
 {
-if(leaf==pdbvt->m_root)
+       if(leaf==pdbvt->m_root)
        {
-       pdbvt->m_root=0;
-       return(0);
+               pdbvt->m_root=0;
+               return(0);
        }
        else
        {
-       btDbvtNode*     parent=leaf->parent;
-       btDbvtNode*     prev=parent->parent;
-       btDbvtNode*     sibling=parent->childs[1-indexof(leaf)];                        
-       if(prev)
+               btDbvtNode*     parent=leaf->parent;
+               btDbvtNode*     prev=parent->parent;
+               btDbvtNode*     sibling=parent->childs[1-indexof(leaf)];                        
+               if(prev)
                {
-               prev->childs[indexof(parent)]=sibling;
-               sibling->parent=prev;
-               deletenode(pdbvt,parent);
-               while(prev)
+                       prev->childs[indexof(parent)]=sibling;
+                       sibling->parent=prev;
+                       deletenode(pdbvt,parent);
+                       while(prev)
                        {
-                       const btDbvtVolume      pb=prev->volume;
-                       Merge(prev->childs[0]->volume,prev->childs[1]->volume,prev->volume);
-                       if(NotEqual(pb,prev->volume))
+                               const btDbvtVolume      pb=prev->volume;
+                               Merge(prev->childs[0]->volume,prev->childs[1]->volume,prev->volume);
+                               if(NotEqual(pb,prev->volume))
                                {
-                               prev=prev->parent;
+                                       prev=prev->parent;
                                } else break;
                        }
-               return(prev?prev:pdbvt->m_root);
+                       return(prev?prev:pdbvt->m_root);
                }
                else
                {                                                               
-               pdbvt->m_root=sibling;
-               sibling->parent=0;
-               deletenode(pdbvt,parent);
-               return(pdbvt->m_root);
+                       pdbvt->m_root=sibling;
+                       sibling->parent=0;
+                       deletenode(pdbvt,parent);
+                       return(pdbvt->m_root);
                }                       
        }
 }
@@ -215,33 +215,33 @@ static void                                               fetchleaves(btDbvt* pdbvt,
                                                                                        tNodeArray& leaves,
                                                                                        int depth=-1)
 {
-if(root->isinternal()&&depth)
+       if(root->isinternal()&&depth)
        {
-       fetchleaves(pdbvt,root->childs[0],leaves,depth-1);
-       fetchleaves(pdbvt,root->childs[1],leaves,depth-1);
-       deletenode(pdbvt,root);
+               fetchleaves(pdbvt,root->childs[0],leaves,depth-1);
+               fetchleaves(pdbvt,root->childs[1],leaves,depth-1);
+               deletenode(pdbvt,root);
        }
        else
        {
-       leaves.push_back(root);
+               leaves.push_back(root);
        }
 }
 
 //
 static void                                            split(  const tNodeArray& leaves,
-                                                                               tNodeArray& left,
-                                                                               tNodeArray& right,
-                                                                               const btVector3& org,
-                                                                               const btVector3& axis)
+                                                                         tNodeArray& left,
+                                                                         tNodeArray& right,
+                                                                         const btVector3& org,
+                                                                         const btVector3& axis)
 {
-left.resize(0);
-right.resize(0);
-for(int i=0,ni=leaves.size();i<ni;++i)
+       left.resize(0);
+       right.resize(0);
+       for(int i=0,ni=leaves.size();i<ni;++i)
        {
-       if(dot(axis,leaves[i]->volume.Center()-org)<0)
-               left.push_back(leaves[i]);
+               if(dot(axis,leaves[i]->volume.Center()-org)<0)
+                       left.push_back(leaves[i]);
                else
-               right.push_back(leaves[i]);
+                       right.push_back(leaves[i]);
        }
 }
 
@@ -249,49 +249,49 @@ for(int i=0,ni=leaves.size();i<ni;++i)
 static btDbvtVolume                            bounds( const tNodeArray& leaves)
 {
 #if DBVT_MERGE_IMPL==DBVT_IMPL_SSE
-DBVT_ALIGN char        locals[sizeof(btDbvtVolume)];
-btDbvtVolume&  volume=*(btDbvtVolume*)locals;
-volume=leaves[0]->volume;
+       ATTRIBUTE_ALIGNED16(char        locals[sizeof(btDbvtVolume)]);
+       btDbvtVolume&   volume=*(btDbvtVolume*)locals;
+       volume=leaves[0]->volume;
 #else
-btDbvtVolume volume=leaves[0]->volume;
+       btDbvtVolume volume=leaves[0]->volume;
 #endif
-for(int i=1,ni=leaves.size();i<ni;++i)
+       for(int i=1,ni=leaves.size();i<ni;++i)
        {
-       Merge(volume,leaves[i]->volume,volume);
+               Merge(volume,leaves[i]->volume,volume);
        }
-return(volume);
+       return(volume);
 }
 
 //
 static void                                            bottomup(       btDbvt* pdbvt,
-                                                                                       tNodeArray& leaves)
+                                                                                tNodeArray& leaves)
 {
-while(leaves.size()>1)
+       while(leaves.size()>1)
        {
-       btScalar        minsize=SIMD_INFINITY;
-       int                     minidx[2]={-1,-1};
-       for(int i=0;i<leaves.size();++i)
+               btScalar        minsize=SIMD_INFINITY;
+               int                     minidx[2]={-1,-1};
+               for(int i=0;i<leaves.size();++i)
                {
-               for(int j=i+1;j<leaves.size();++j)
+                       for(int j=i+1;j<leaves.size();++j)
                        {
-                       const btScalar  sz=size(merge(leaves[i]->volume,leaves[j]->volume));
-                       if(sz<minsize)
+                               const btScalar  sz=size(merge(leaves[i]->volume,leaves[j]->volume));
+                               if(sz<minsize)
                                {
-                               minsize         =       sz;
-                               minidx[0]       =       i;
-                               minidx[1]       =       j;
+                                       minsize         =       sz;
+                                       minidx[0]       =       i;
+                                       minidx[1]       =       j;
                                }
                        }
                }
-       btDbvtNode*     n[]     =       {leaves[minidx[0]],leaves[minidx[1]]};
-       btDbvtNode*     p       =       createnode(pdbvt,0,n[0]->volume,n[1]->volume,0);
-       p->childs[0]            =       n[0];
-       p->childs[1]            =       n[1];
-       n[0]->parent            =       p;
-       n[1]->parent            =       p;
-       leaves[minidx[0]]       =       p;
-       leaves.swap(minidx[1],leaves.size()-1);
-       leaves.pop_back();
+               btDbvtNode*     n[]     =       {leaves[minidx[0]],leaves[minidx[1]]};
+               btDbvtNode*     p       =       createnode(pdbvt,0,n[0]->volume,n[1]->volume,0);
+               p->childs[0]            =       n[0];
+               p->childs[1]            =       n[1];
+               n[0]->parent            =       p;
+               n[1]->parent            =       p;
+               leaves[minidx[0]]       =       p;
+               leaves.swap(minidx[1],leaves.size()-1);
+               leaves.pop_back();
        }
 }
 
@@ -300,175 +300,181 @@ static btDbvtNode*                      topdown(btDbvt* pdbvt,
                                                                        tNodeArray& leaves,
                                                                        int bu_treshold)
 {
-static const btVector3 axis[]={btVector3(1,0,0),
-                                                               btVector3(0,1,0),
-                                                               btVector3(0,0,1)};
-if(leaves.size()>1)
+       static const btVector3  axis[]={btVector3(1,0,0),
+               btVector3(0,1,0),
+               btVector3(0,0,1)};
+       if(leaves.size()>1)
        {
-       if(leaves.size()>bu_treshold)
+               if(leaves.size()>bu_treshold)
                {
-               const btDbvtVolume      vol=bounds(leaves);
-               const btVector3                 org=vol.Center();
-               tNodeArray                              sets[2];
-               int                                             bestaxis=-1;
-               int                                             bestmidp=leaves.size();
-               int                                             splitcount[3][2]={{0,0},{0,0},{0,0}};
-               int i;
-               for( i=0;i<leaves.size();++i)
+                       const btDbvtVolume      vol=bounds(leaves);
+                       const btVector3                 org=vol.Center();
+                       tNodeArray                              sets[2];
+                       int                                             bestaxis=-1;
+                       int                                             bestmidp=leaves.size();
+                       int                                             splitcount[3][2]={{0,0},{0,0},{0,0}};
+                       int i;
+                       for( i=0;i<leaves.size();++i)
                        {
-                       const btVector3 x=leaves[i]->volume.Center()-org;
-                       for(int j=0;j<3;++j)
+                               const btVector3 x=leaves[i]->volume.Center()-org;
+                               for(int j=0;j<3;++j)
                                {
-                               ++splitcount[j][dot(x,axis[j])>0?1:0];
+                                       ++splitcount[j][dot(x,axis[j])>0?1:0];
                                }
                        }
-               for( i=0;i<3;++i)
+                       for( i=0;i<3;++i)
                        {
-                       if((splitcount[i][0]>0)&&(splitcount[i][1]>0))
+                               if((splitcount[i][0]>0)&&(splitcount[i][1]>0))
                                {
-                    &nbs