def __init__(self, sceneManager): self.sceneManager = sceneManager """ bounds = ogre.AxisAlignedBox(-100.0, -100.0, -100.0, 100.0, 100.0, 100.0) self.world = dynamics.DynamicsWorld(self.sceneManager, bounds, ogre.Vector3(0.0, -9.91, 0.0)) """ self.collisionConfiguration = bullet.get_btDefaultCollisionConfiguration() self.dispatcher = bullet.get_btCollisionDispatcher1(self.collisionConfiguration) self.broadphase = bullet.btDbvtBroadphase() self.solver = bullet.btSequentialImpulseConstraintSolver() self.world = bullet.btDiscreteDynamicsWorld(self.dispatcher, self.broadphase, self.solver, self.collisionConfiguration) self.world.setGravity(bullet.btVector3(0, 0, 0)) self.bodies = [] self.shapes = [] self.cubes = [] self.motionStates = [] self.elapsedTime = 0.0 self.duration = 10.0 self.curCubeIdx = 0 self.tangentBundle = None return None
def initializePhysics(): """Start the Bullet Physics engine.""" global bullet_world global bullet_debug_drawer global bullet_collision_configuration global bullet_dispatcher global bullet_broadphase global bullet_solver bullet_collision_configuration = bullet.get_btDefaultCollisionConfiguration() bullet_dispatcher = bullet.get_btCollisionDispatcher1(bullet_collision_configuration) #bullet_broadphase = bullet.btDbvtBroadphase() bullet_broadphase = bullet.btAxisSweep3( bullet.btVector3(-10000, -10000, -10000), bullet.btVector3(10000, 10000, 10000), 1024) bullet_solver = bullet.btSequentialImpulseConstraintSolver() bullet_world = bullet.btDiscreteDynamicsWorld( bullet_dispatcher, bullet_broadphase, bullet_solver, bullet_collision_configuration) bullet_world.setGravity(bullet.btVector3(0, -10, 0)) bullet_world.getDispatchInfo().m_enableSPU = True bullet_debug_drawer = OgreBulletUtils.DebugDrawer(ogre_scene_manager) bullet_world.setDebugDrawer(bullet_debug_drawer) bullet_world.getDebugDrawer().setDebugMode( bullet.btIDebugDraw.DBG_DrawWireframe | bullet.btIDebugDraw.DBG_DrawAabb #bullet.btIDebugDraw.DBG_DrawContactPoints #bullet.btIDebugDraw.DBG_NoDebug )
def load_level(self): """Setup the bullet world""" logging.info("Loading dynamic world...") self.collisionConfiguration = bullet.get_btDefaultCollisionConfiguration() self.dispatcher = bullet.get_btCollisionDispatcher1(self.collisionConfiguration) self.broadphase = bullet.btDbvtBroadphase() self.solver = bullet.btSequentialImpulseConstraintSolver() self.dynamics_world = bullet.btDiscreteDynamicsWorld(self.dispatcher, self.broadphase, self.solver, self.collisionConfiguration) logging.info("Dynamic world loaded!")
def getDeltaTimeMicroseconds(): dt = m_clock.getTimeMicroseconds() m_clock.reset() return dt # t = bullet.btTransform() # ms = bullet.btDefaultMotionState (t) # s = bullet.btBoxShape(bullet.btVector3(10,10,10)) # body = bullet.btRigidBody(1, ms, s) # print body # collisionConfiguration = bullet.btDefaultCollisionConfiguration() collisionConfiguration = bullet.get_btDefaultCollisionConfiguration() dispatcher = bullet.get_btCollisionDispatcher1(collisionConfiguration) # worldAabbMin = bullet.btVector3(-1000,-1000,-1000) # worldAabbMax = bullet.btVector3(1000,1000,1000) # maxProxies = 32766 # broadphase = bullet.btAxisSweep3(worldAabbMin, worldAabbMax, maxProxies) # solver = bullet.btSequentialImpulseConstraintSolver() broadphase = bullet.btDbvtBroadphase() solver = bullet.btSequentialImpulseConstraintSolver() world = bullet.btDiscreteDynamicsWorld(dispatcher, broadphase, solver, collisionConfiguration) world.setGravity(bullet.btVector3(0, -10, 0)) world.getDispatchInfo().m_enableSPU = True