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
Beispiel #2
0
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
                                               )
Beispiel #3
0
 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!")
Beispiel #4
0
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

print "WORLD:=", world