[DEV] Basic integration of the bullet librairy

This commit is contained in:
Edouard DUPIN 2013-01-07 22:36:22 +01:00
parent 896cdf4891
commit a781cf4c26
9 changed files with 207 additions and 4 deletions

3
.gitmodules vendored
View File

@ -38,3 +38,6 @@
[submodule "external/z/zlib"]
path = external/z/zlib
url = https://github.com/madler/zlib.git
[submodule "external/bullet/bullet"]
path = external/bullet/bullet
url = https://github.com/HeeroYui/bullet.git

View File

@ -7,6 +7,7 @@ TMP_DIR := $(shell readlink -m -n $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LI
EWOL_FOLDER:=$(TMP_DIR)
USER_PACKAGES+= $(TMP_DIR)/sources/
# Add external librairy (direct folder to reduce the search time (really special case for windows ...))
USER_PACKAGES+= $(TMP_DIR)/external/bullet
USER_PACKAGES+= $(TMP_DIR)/external/etk
USER_PACKAGES+= $(TMP_DIR)/external/agg
USER_PACKAGES+= $(TMP_DIR)/external/freetype

2
build

@ -1 +1 @@
Subproject commit 22c1c9d19709f643d3032bb5d7a42ea55924d50b
Subproject commit 2147015fbc38ee63e65b822ab8d2819ca782ed80

21
external/bullet/Generic.mk vendored Normal file
View File

@ -0,0 +1,21 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := bullet
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)
LOCAL_C_INCLUDES := $(LOCAL_PATH)/bullet/src/ \
$(LOCAL_PATH)/bullet/Extras/ConvexDecomposition
LOCAL_CFLAGS := -Wno-write-strings \
-DHAVE_CONFIG_H
# load the common sources file of the platform
include $(LOCAL_PATH)/file.mk
LOCAL_SRC_FILES := $(FILE_LIST)
include $(BUILD_STATIC_LIBRARY)

1
external/bullet/bullet vendored Submodule

@ -0,0 +1 @@
Subproject commit 6930931f46f9846c6f4f7031e416205cd0fdb4b4

173
external/bullet/file.mk vendored Normal file
View File

@ -0,0 +1,173 @@
# lib LinearMath
FILE_LIST = \
bullet/src/LinearMath/btQuickprof.cpp \
bullet/src/LinearMath/btGeometryUtil.cpp \
bullet/src/LinearMath/btAlignedAllocator.cpp \
bullet/src/LinearMath/btSerializer.cpp \
bullet/src/LinearMath/btConvexHull.cpp \
bullet/src/LinearMath/btPolarDecomposition.cpp \
bullet/src/LinearMath/btVector3.cpp \
bullet/src/LinearMath/btConvexHullComputer.cpp
# lib BulletCollision
FILE_LIST+= \
bullet/src/BulletCollision/NarrowPhaseCollision/btRaycastCallback.cpp \
bullet/src/BulletCollision/NarrowPhaseCollision/btMinkowskiPenetrationDepthSolver.cpp \
bullet/src/BulletCollision/NarrowPhaseCollision/btSubSimplexConvexCast.cpp \
bullet/src/BulletCollision/NarrowPhaseCollision/btGjkEpaPenetrationDepthSolver.cpp \
bullet/src/BulletCollision/NarrowPhaseCollision/btGjkConvexCast.cpp \
bullet/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp \
bullet/src/BulletCollision/NarrowPhaseCollision/btConvexCast.cpp \
bullet/src/BulletCollision/NarrowPhaseCollision/btPolyhedralContactClipping.cpp \
bullet/src/BulletCollision/NarrowPhaseCollision/btContinuousConvexCollision.cpp \
bullet/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp \
bullet/src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.cpp \
bullet/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp \
bullet/src/BulletCollision/CollisionDispatch/btActivatingCollisionAlgorithm.cpp \
bullet/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp \
bullet/src/BulletCollision/CollisionDispatch/btEmptyCollisionAlgorithm.cpp \
bullet/src/BulletCollision/CollisionDispatch/btGhostObject.cpp \
bullet/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.cpp \
bullet/src/BulletCollision/CollisionDispatch/btSphereBoxCollisionAlgorithm.cpp \
bullet/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp \
bullet/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp \
bullet/src/BulletCollision/CollisionDispatch/btSimulationIslandManager.cpp \
bullet/src/BulletCollision/CollisionDispatch/btBoxBoxDetector.cpp \
bullet/src/BulletCollision/CollisionDispatch/btConvexPlaneCollisionAlgorithm.cpp \
bullet/src/BulletCollision/CollisionDispatch/btConvexConcaveCollisionAlgorithm.cpp \
bullet/src/BulletCollision/CollisionDispatch/btBoxBoxCollisionAlgorithm.cpp \
bullet/src/BulletCollision/CollisionDispatch/btBox2dBox2dCollisionAlgorithm.cpp \
bullet/src/BulletCollision/CollisionDispatch/SphereTriangleDetector.cpp \
bullet/src/BulletCollision/CollisionDispatch/btInternalEdgeUtility.cpp \
bullet/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp \
bullet/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp \
bullet/src/BulletCollision/CollisionDispatch/btSphereTriangleCollisionAlgorithm.cpp \
bullet/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp \
bullet/src/BulletCollision/CollisionDispatch/btConvex2dConvex2dAlgorithm.cpp \
bullet/src/BulletCollision/CollisionDispatch/btUnionFind.cpp \
bullet/src/BulletCollision/CollisionDispatch/btCompoundCollisionAlgorithm.cpp \
bullet/src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp \
bullet/src/BulletCollision/CollisionShapes/btShapeHull.cpp \
bullet/src/BulletCollision/CollisionShapes/btMinkowskiSumShape.cpp \
bullet/src/BulletCollision/CollisionShapes/btCompoundShape.cpp \
bullet/src/BulletCollision/CollisionShapes/btConeShape.cpp \
bullet/src/BulletCollision/CollisionShapes/btConvexPolyhedron.cpp \
bullet/src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp \
bullet/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp \
bullet/src/BulletCollision/CollisionShapes/btSphereShape.cpp \
bullet/src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp \
bullet/src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp \
bullet/src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp \
bullet/src/BulletCollision/CollisionShapes/btTriangleBuffer.cpp \
bullet/src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp \
bullet/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp \
bullet/src/BulletCollision/CollisionShapes/btEmptyShape.cpp \
bullet/src/BulletCollision/CollisionShapes/btCollisionShape.cpp \
bullet/src/BulletCollision/CollisionShapes/btConvexShape.cpp \
bullet/src/BulletCollision/CollisionShapes/btConvex2dShape.cpp \
bullet/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp \
bullet/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp \
bullet/src/BulletCollision/CollisionShapes/btTriangleCallback.cpp \
bullet/src/BulletCollision/CollisionShapes/btCapsuleShape.cpp \
bullet/src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp \
bullet/src/BulletCollision/CollisionShapes/btConcaveShape.cpp \
bullet/src/BulletCollision/CollisionShapes/btConvexPointCloudShape.cpp \
bullet/src/BulletCollision/CollisionShapes/btBoxShape.cpp \
bullet/src/BulletCollision/CollisionShapes/btBox2dShape.cpp \
bullet/src/BulletCollision/CollisionShapes/btOptimizedBvh.cpp \
bullet/src/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.cpp \
bullet/src/BulletCollision/CollisionShapes/btMultimaterialTriangleMeshShape.cpp \
bullet/src/BulletCollision/CollisionShapes/btCylinderShape.cpp \
bullet/src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp \
bullet/src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp \
bullet/src/BulletCollision/CollisionShapes/btTriangleIndexVertexMaterialArray.cpp \
bullet/src/BulletCollision/CollisionShapes/btTriangleMesh.cpp \
bullet/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp \
bullet/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp \
bullet/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp \
bullet/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp \
bullet/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp \
bullet/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp \
bullet/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp \
bullet/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.cpp \
bullet/src/BulletCollision/BroadphaseCollision/btDbvt.cpp \
bullet/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp \
bullet/src/BulletCollision/Gimpact/btGImpactBvh.cpp \
bullet/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp \
bullet/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp \
bullet/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp \
bullet/src/BulletCollision/Gimpact/btGImpactShape.cpp \
bullet/src/BulletCollision/Gimpact/gim_box_set.cpp \
bullet/src/BulletCollision/Gimpact/gim_contact.cpp \
bullet/src/BulletCollision/Gimpact/gim_memory.cpp \
bullet/src/BulletCollision/Gimpact/gim_tri_collision.cpp
# lib BulletDynamics
FILE_LIST+= \
bullet/src/BulletDynamics/Dynamics/btRigidBody.cpp \
bullet/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp \
bullet/src/BulletDynamics/Dynamics/Bullet-C-API.cpp \
bullet/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp \
bullet/src/BulletDynamics/ConstraintSolver/btGearConstraint.cpp \
bullet/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp \
bullet/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp \
bullet/src/BulletDynamics/ConstraintSolver/btSolve2LinearConstraint.cpp \
bullet/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp \
bullet/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp \
bullet/src/BulletDynamics/ConstraintSolver/btContactConstraint.cpp \
bullet/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp \
bullet/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp \
bullet/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp \
bullet/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp \
bullet/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp \
bullet/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp \
bullet/src/BulletDynamics/Vehicle/btWheelInfo.cpp \
bullet/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp \
bullet/src/BulletDynamics/Character/btKinematicCharacterController.cpp
# lib BulletSoftBody
FILE_LIST+= \
bullet/src/BulletSoftBody/btDefaultSoftBodySolver.cpp \
bullet/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.cpp \
bullet/src/BulletSoftBody/btSoftBody.cpp \
bullet/src/BulletSoftBody/btSoftRigidCollisionAlgorithm.cpp \
bullet/src/BulletSoftBody/btSoftBodyConcaveCollisionAlgorithm.cpp \
bullet/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp \
bullet/src/BulletSoftBody/btSoftBodyHelpers.cpp \
bullet/src/BulletSoftBody/btSoftSoftCollisionAlgorithm.cpp
# lib gimpactutils
FILE_LIST+= \
bullet/Extras/GIMPACTUtils/btGImpactConvexDecompositionShape.cpp
# lib convexdecomposition
FILE_LIST+= \
bullet/Extras/ConvexDecomposition/concavity.cpp \
bullet/Extras/ConvexDecomposition/ConvexDecomposition.cpp \
bullet/Extras/ConvexDecomposition/vlookup.cpp \
bullet/Extras/ConvexDecomposition/bestfit.cpp \
bullet/Extras/ConvexDecomposition/ConvexBuilder.cpp \
bullet/Extras/ConvexDecomposition/cd_hull.cpp \
bullet/Extras/ConvexDecomposition/raytri.cpp \
bullet/Extras/ConvexDecomposition/splitplane.cpp \
bullet/Extras/ConvexDecomposition/float_math.cpp \
bullet/Extras/ConvexDecomposition/planetri.cpp \
bullet/Extras/ConvexDecomposition/cd_wavefront.cpp \
bullet/Extras/ConvexDecomposition/bestfitobb.cpp \
bullet/Extras/ConvexDecomposition/meshvolume.cpp \
bullet/Extras/ConvexDecomposition/fitsphere.cpp
# lib HACD
FILE_LIST+= \
bullet/Extras/HACD/hacdGraph.cpp \
bullet/Extras/HACD/hacdHACD.cpp \
bullet/Extras/HACD/hacdICHull.cpp \
bullet/Extras/HACD/hacdManifoldMesh.cpp

View File

@ -12,7 +12,7 @@ LOCAL_VERSION=$(shell cat $(LOCAL_PATH)/tag)
$(info [TAG:$(LOCAL_MODULE)] $(LOCAL_VERSION))
# name of the dependency
LOCAL_LIBRARIES := etk freetype tinyxml libzip libpng parsersvg lua portaudio
LOCAL_LIBRARIES := etk freetype tinyxml libzip libpng parsersvg lua portaudio bullet
LOCAL_C_INCLUDES :=

View File

@ -22,8 +22,9 @@
widget::Scene::Scene(game::Engine* gameEngine) :
m_dynamicsWorld(NULL),
m_camera(vec3(-6,0,2), vec3(0,0,0)),
m_gameEngine(gameEngine),
//m_gameEngine(gameEngine),
m_isRunning(true),
m_lastCallTime(-1),
m_walk(0)

View File

@ -18,13 +18,16 @@
#include <ewol/game/Camera.h>
#include <ewol/widget/Widget.h>
class btDynamicsWorld;
namespace widget {
class Scene :public ewol::Widget
{
protected:
///this is the most important class
btDynamicsWorld* m_dynamicsWorld;
game::Camera m_camera; //!< Display point of view
game::Engine* m_gameEngine; //!< display engine system
//game::Engine* m_gameEngine; //!< display engine system
bool m_isRunning; //!< the display is running (not in pause)
double m_lastCallTime; //!< previous call Time
float m_ratioTime; //!< Ratio time for the speed of the game ...