The original version was written by Stephen Thompson. I replaced Eigen math by Bullet LinearMath, and added a dedicated 6x6 matrix solver. Also I integrated support for collisions/contact constraints between btMultiBody and btRigidBody, and de-activation support. See Demos/FeatherstoneMultiBodyDemo/Win32FeatherstoneMultiBodyDemo.cpp for example usage. There is currently only support for contact constraints for btMultiBody. Next on the list will be adding support for joint limit constraint for btMultiBody. The implementation is still experimental/untested, the quality will improve in upcoming Bullet releases.
102 lines
3.0 KiB
Lua
102 lines
3.0 KiB
Lua
|
|
|
|
|
|
function createDemos( demos, incdirs, linknames)
|
|
for _, name in ipairs(demos) do
|
|
|
|
project ( "App_" .. name )
|
|
|
|
kind "ConsoleApp"
|
|
targetdir ".."
|
|
|
|
includedirs {incdirs}
|
|
|
|
configuration { "Windows" }
|
|
defines { "GLEW_STATIC"}
|
|
links { "opengl32" }
|
|
includedirs{ "../Glut" }
|
|
libdirs {"../Glut"}
|
|
files { "../build/bullet.rc" }
|
|
|
|
configuration {"Windows", "x32"}
|
|
links {"glew32s","glut32"}
|
|
configuration {"Windows", "x64"}
|
|
links {"glew64s", "glut64"}
|
|
|
|
configuration {"MacOSX"}
|
|
--print "hello"
|
|
linkoptions { "-framework Carbon -framework OpenGL -framework AGL -framework Glut" }
|
|
|
|
configuration {"not Windows", "not MacOSX"}
|
|
links {"GL","GLU","glut"}
|
|
configuration{}
|
|
|
|
links {
|
|
linknames
|
|
}
|
|
|
|
files {
|
|
"./" .. name .. "/*.cpp" ,
|
|
"./" .. name .. "/*.h"
|
|
}
|
|
end
|
|
end
|
|
|
|
-- "CharacterDemo", fixme: it includes BspDemo files
|
|
|
|
local localdemos = {
|
|
"BasicDemo",
|
|
"Box2dDemo",
|
|
"BspDemo",
|
|
"CcdPhysicsDemo",
|
|
"CollisionDemo",
|
|
"CollisionInterfaceDemo",
|
|
"ConcaveConvexcastDemo",
|
|
"ConcaveDemo",
|
|
"ConcaveRaycastDemo",
|
|
"ConstraintDemo",
|
|
"ContinuousConvexCollision",
|
|
"ConvexHullDistance",
|
|
"DynamicControlDemo",
|
|
"EPAPenDepthDemo",
|
|
"ForkLiftDemo",
|
|
"FeatherstoneMultiBodyDemo",
|
|
"FractureDemo",
|
|
"GenericJointDemo",
|
|
"GimpactTestDemo",
|
|
"GjkConvexCastDemo",
|
|
"GyroscopicDemo",
|
|
"InternalEdgeDemo",
|
|
"MovingConcaveDemo",
|
|
"MultiMaterialDemo",
|
|
"RagdollDemo",
|
|
"Raytracer",
|
|
"RaytestDemo",
|
|
"RollingFrictionDemo",
|
|
"SimplexDemo",
|
|
"SliderConstraintDemo",
|
|
"TerrainDemo",
|
|
"UserCollisionAlgorithm",
|
|
"VehicleDemo",
|
|
"VoronoiFractureDemo"
|
|
}
|
|
|
|
-- the following demos require custom include or link settings
|
|
|
|
createDemos({"HelloWorld"},{"../src"},{"BulletDynamics","BulletCollision","LinearMath"})
|
|
|
|
createDemos(localdemos,{"../src","OpenGL"},{"OpenGLSupport","BulletDynamics", "BulletCollision", "LinearMath"})
|
|
|
|
createDemos({"ConvexDecompositionDemo"},{"../Extras/HACD","../Extras/ConvexDecomposition","../src","OpenGL"},{"OpenGLSupport","BulletDynamics", "BulletCollision", "LinearMath","HACD","ConvexDecomposition"})
|
|
|
|
createDemos({"SoftDemo"},{"../src","OpenGL"}, {"OpenGLSupport","BulletSoftBody", "BulletDynamics", "BulletCollision", "LinearMath"})
|
|
|
|
createDemos({"SerializeDemo"},{"../Extras/Serialize/BulletFileLoader","../Extras/Serialize/BulletWorldImporter","../src","OpenGL"},{"OpenGLSupport","BulletWorldImporter", "BulletFileLoader", "BulletSoftBody", "BulletDynamics", "BulletCollision", "LinearMath"})
|
|
|
|
createDemos({"BulletXmlImportDemo"},{"../Extras/Serialize/BulletFileLoader","../Extras/Serialize/BulletXmlWorldImporter", "../Extras/Serialize/BulletWorldImporter","../src","OpenGL"},{"OpenGLSupport","BulletXmlWorldImporter","BulletWorldImporter", "BulletFileLoader", "BulletSoftBody", "BulletDynamics", "BulletCollision", "LinearMath"})
|
|
|
|
|
|
include "OpenGL"
|
|
|
|
|