public void SetUp() { _conf = new DefaultCollisionConfiguration(); _dispatcher = new CollisionDispatcher(_conf); //_broadphase = new AxisSweep3(new Vector3(-1000, -1000, -1000), new Vector3(1000, 1000, 1000)); _broadphase = new DbvtBroadphase(); _world = new DiscreteDynamicsWorld(_dispatcher, _broadphase, null, _conf); _shape = new BoxShape(2); _sphere1 = CreateBody(0, Matrix.Translation(0, 0, 0), _shape); _sphere2 = CreateBody(1, Matrix.Translation(0, 1, 0), _shape); _callback = new CustomOverlapFilterCallback(_sphere1, _sphere2); }
protected override void OnInitializePhysics() { // collision configuration contains default setup for memory, collision setup CollisionConf = new DefaultCollisionConfiguration(); Dispatcher = new CollisionDispatcher(CollisionConf); Broadphase = new DbvtBroadphase(); World = new DiscreteDynamicsWorld(Dispatcher, Broadphase, null, CollisionConf); World.Gravity = new Vector3(0, -10, 0); CreateGround(); CreateBoxes(); }
public void SetUp() { conf = new DefaultCollisionConfiguration(); dispatcher = new CollisionDispatcher(conf); broadphase = new AxisSweep3(new Vector3(-1000, -1000, -1000), new Vector3(1000, 1000, 1000)); world = new DiscreteDynamicsWorld(dispatcher, broadphase, null, conf); action = new Action(); world.AddAction(action); world.AddAction(action); world.RemoveAction(action); world.RemoveAction(action); world.AddAction(action); }
//GUIHelperInterface m_guiHelper; public CommonMultiBodyBase() { //m_filterCallback = null; m_pairCache = null; m_broadphase = null; m_dispatcher = null; m_solver = null; m_collisionConfiguration = null; m_dynamicsWorld = null; //m_pickedBody = null; //m_pickedConstraint = null; //m_pickingMultiBodyPoint2Point = null; m_prevCanSleep = false; //m_guiHelper = null; }
public RagdollDemoSimulation() { CollisionConfiguration = new DefaultCollisionConfiguration(); Dispatcher = new CollisionDispatcher(CollisionConfiguration); Broadphase = new AxisSweep3(new Vector3(-10000, -10000, -10000), new Vector3(10000, 10000, 10000)); World = new DiscreteDynamicsWorld(Dispatcher, Broadphase, null, CollisionConfiguration); //World.DispatchInfo.UseConvexConservativeDistanceUtil = true; //World.DispatchInfo.ConvexConservativeDistanceThreshold = 0.01f; CreateGround(); SpawnRagdoll(new Vector3(1, 0.5f, 0)); SpawnRagdoll(new Vector3(-1, 0.5f, 0)); }
public void SetUp() { _conf = new DefaultCollisionConfiguration(); _dispatcher = new CollisionDispatcher(_conf); _broadphase = new DbvtBroadphase(); _solver = new SequentialImpulseConstraintSolver(); _world = new DiscreteDynamicsWorld(_dispatcher, _broadphase, _solver, _conf); _shape = new BoxShape(1); using (var bodyInfo = new RigidBodyConstructionInfo(1, null, _shape)) { _body1 = new RigidBody(bodyInfo); _body2 = new RigidBody(bodyInfo); } }
protected override void OnInitializePhysics() { // collision configuration contains default setup for memory, collision setup CollisionConf = new DefaultCollisionConfiguration(); Dispatcher = new CollisionDispatcher(CollisionConf); Broadphase = new AxisSweep3(new Vector3(-1000, -1000, -1000), new Vector3(1000, 1000, 1000)); Solver = new SequentialImpulseConstraintSolver(); World = new DiscreteDynamicsWorld(Dispatcher, Broadphase, Solver, CollisionConf); World.DispatchInfo.AllowedCcdPenetration = 0.0001f; //World.Gravity = Freelook.Up * -10.0f; Matrix startTransform = Matrix.Translation(10.210098f, -1.6433364f, 16.453260f); ghostObject = new PairCachingGhostObject(); ghostObject.WorldTransform = startTransform; Broadphase.OverlappingPairCache.SetInternalGhostPairCallback(new GhostPairCallback()); const float characterHeight = 1.75f; const float characterWidth = 1.75f; ConvexShape capsule = new CapsuleShape(characterWidth, characterHeight); ghostObject.CollisionShape = capsule; ghostObject.CollisionFlags = CollisionFlags.CharacterObject; const float stepHeight = 0.35f; character = new KinematicCharacterController(ghostObject, capsule, stepHeight); BspLoader bspLoader = new BspLoader(); //string filename = UnityEngine.Application.dataPath + "BuletSharpExamples/Demos/CharacterDemo/data/BspDemo.bsp"; bspLoader.LoadBspFile(UnityEngine.Application.dataPath + "/BulletSharpExamples/Demos/CharacterDemo/data/BspDemo.bsp"); BspConverter bsp2Bullet = new BspToBulletConverter(this); bsp2Bullet.ConvertBsp(bspLoader, 0.1f); World.AddCollisionObject(ghostObject, CollisionFilterGroups.CharacterFilter, CollisionFilterGroups.StaticFilter | CollisionFilterGroups.DefaultFilter); World.AddAction(character); Vector3 zero = Vector3.Zero; convexResultCallback = new ClosestConvexResultCallback(ref zero, ref zero); convexResultCallback.CollisionFilterMask = (short)CollisionFilterGroups.StaticFilter; cameraSphere = new SphereShape(0.2f); }
protected override void OnInitializePhysics() { // collision configuration contains default setup for memory, collision setup CollisionConf = new DefaultCollisionConfiguration(); Dispatcher = new CollisionDispatcher(CollisionConf); Broadphase = new AxisSweep3(new Vector3(-1000, -1000, -1000), new Vector3(1000, 1000, 1000)); World = new DiscreteDynamicsWorld(Dispatcher, Broadphase, null, CollisionConf); World.Gravity = new Vector3(0, -10, 0); var groundShape = new BoxShape(30, 1, 30); var ground = LocalCreateRigidBody(0, Matrix.Translation(0, -5, 0), groundShape); ground.UserObject = "metal.wav"; ground = LocalCreateRigidBody(0, Matrix.Translation(0, 0, 0) * Matrix.RotationZ((float)-Math.PI / 4), groundShape); ground.UserObject = "metal.wav"; var groundShape2 = new BoxShape(5, 1, 30); ground = LocalCreateRigidBody(0, Matrix.Translation(25, -3, 0), groundShape2); ground.UserObject = "metal.wav"; var boxShape = new BoxShape(1, 0.5f, 2); for (int i = 0; i < 4; i++) { var box = LocalCreateRigidBody(1, Matrix.Translation(i * 1.5f, i * 3 + 10, i * 3), boxShape); box.UserObject = "metal.wav"; } var sphereShape = new SphereShape(1); for (int i = 0; i < 4; i++) { var sphere = LocalCreateRigidBody(1, Matrix.Translation(i, i * 3 + 20, 0), sphereShape); sphere.UserObject = "rubber.wav"; } var cylinderShape = new CylinderShape(0.5f, 1, 0.5f); for (int i = 0; i < 4; i++) { var cylinder = LocalCreateRigidBody(1, Matrix.Translation(i, i * 3 + 20, 3), cylinderShape); cylinder.UserObject = "can.wav"; } ManifoldPoint.ContactAdded += ContactAdded; }
public ConcaveRaycastDemoSimulation() { CollisionConfiguration = new DefaultCollisionConfiguration(); Dispatcher = new CollisionDispatcher(CollisionConfiguration); Broadphase = new AxisSweep3(_worldMin, _worldMax); World = new DiscreteDynamicsWorld(Dispatcher, Broadphase, null, CollisionConfiguration); World.SolverInfo.SplitImpulse = 1; _raycastBar = new RaycastBar(4000.0f, 0.0f, -1000.0f, 10); //_raycastBar = new RaycastBar(true, 40.0f, -50.0f, 50.0f); CreateBoxes(); CreateGround(); }
public VehicleDemoSimulation() { CollisionConfiguration = new DefaultCollisionConfiguration(); Dispatcher = new CollisionDispatcher(CollisionConfiguration); Vector3 worldMin = new Vector3(-10000, -10000, -10000); Vector3 worldMax = new Vector3(10000, 10000, 10000); Broadphase = new AxisSweep3(worldMin, worldMax); //Broadphase = new DbvtBroadphase(); World = new DiscreteDynamicsWorld(Dispatcher, Broadphase, null, CollisionConfiguration); World.SetInternalTickCallback(PickingPreTickCallback, this, true); CreateScene(); }
private void Init() { var collisionConfiguration = new DefaultCollisionConfiguration(); var dispatcher = new CollisionDispatcher(collisionConfiguration); GImpactCollisionAlgorithm.RegisterAlgorithm(dispatcher); DynamicsWorld = new DiscreteDynamicsWorld( dispatcher, new DbvtBroadphase(), new SequentialImpulseConstraintSolver(), collisionConfiguration ) { Gravity = Vector3.Zero, // new TGCVector3(0, -10f, 0).ToBulletVector3(), }; }
public static void CreateInstance() { var CollisionConfiguration = new DefaultCollisionConfiguration(); var Dispatcher = new CollisionDispatcher(CollisionConfiguration); var Broadphase = new AxisSweep3(new Vector3(-10000, -10000, -10000), new Vector3(10000, 10000, 10000)); var World = new DiscreteDynamicsWorld(Dispatcher, Broadphase, null, CollisionConfiguration); World.Gravity = new Vector3(0, 0, -9.8f); //set debug draw World.DebugDrawer = new PhysicsDebugDraw(new OpenGLDrawContext()); World.DebugDrawer.DebugMode = DebugDrawModes.All; Debug.LogLine("Debug Draw Mode: {0}", World.DebugDrawer.DebugMode.ToString()); Instance = World; }
public ConcaveConvexCastDemoSimulation() { CollisionConfiguration = new DefaultCollisionConfiguration(); Dispatcher = new CollisionDispatcher(CollisionConfiguration); Broadphase = new AxisSweep3(_worldMin, _worldMax); World = new DiscreteDynamicsWorld(Dispatcher, Broadphase, null, CollisionConfiguration); World.SolverInfo.SplitImpulse = 1; _convexcastBatch = new ConvexcastBatch(40.0f, 0.0f, -10.0f, 80.0f); _callback = new ClosestConvexResultCallback(); CreateGround(); CreateBoxes(); }
public override void InitializeDemo() { //maxiterations = 10; SetCameraDistance(100f); m_cameraTargetPosition = new IndexedVector3(); m_cameraPosition = new IndexedVector3(0, 0, -m_cameraDistance); //string filename = @"E:\users\man\bullet\xna-basic-output-1.txt"; //FileStream filestream = File.Open(filename, FileMode.Create, FileAccess.Write, FileShare.Read); //BulletGlobals.g_streamWriter = new StreamWriter(filestream); ///collision configuration contains default setup for memory, collision setup m_collisionConfiguration = new DefaultCollisionConfiguration(); ///use the default collision dispatcher. For parallel processing you can use a diffent dispatcher (see Extras/BulletMultiThreaded) m_dispatcher = new CollisionDispatcher(m_collisionConfiguration); //m_broadphase = new DbvtBroadphase(); IOverlappingPairCache pairCache = null; //pairCache = new SortedOverlappingPairCache(); //m_broadphase = new SimpleBroadphase(1000, pairCache); m_broadphase = new DbvtBroadphase(); IndexedVector3 worldAabbMin = new IndexedVector3(-200, -200, -200); IndexedVector3 worldAabbMax = -worldAabbMin; //m_broadphase = new AxisSweep3Internal(ref worldAabbMin, ref worldAabbMax, 0xfffe, 0xffff, 16384, null, true); ///the default constraint solver. For parallel processing you can use a different solver (see Extras/BulletMultiThreaded) SequentialImpulseConstraintSolver sol = new SequentialImpulseConstraintSolver(); m_constraintSolver = sol; m_dynamicsWorld = new DiscreteDynamicsWorld(m_dispatcher, m_broadphase, m_constraintSolver, m_collisionConfiguration); IndexedVector3 gravity = new IndexedVector3(0, -10, 0); m_dynamicsWorld.SetGravity(ref gravity); m_profileManager = new BasicProfileManager(); BulletGlobals.g_profileManager = m_profileManager; m_profileIterator = m_profileManager.getIterator(); BuildBoard(); }
public PhysicsEngine() { collisionConfiguration = new DefaultCollisionConfiguration(); dispatcher = new CollisionDispatcher(collisionConfiguration); BroadphaseInterface overlappingPairCache = new DbvtBroadphase(); collisionWorld = new CollisionWorld(dispatcher, overlappingPairCache, collisionConfiguration); listaMisilesEnemigo = new Dictionary <int, CollisionObject>(); listaMisilesXwing = new Dictionary <int, CollisionObject>(); listaTorretas = new Dictionary <int, Torreta>(); listaObstaculos = new Dictionary <int, Obstaculo>(); listaIdMisilesQueColisionaronConXwing = new List <int>(); listaColisionesTorretaMisil = new HashSet <Colision>(new ColisionCompare()); listaColisionesObstaculoMisil = new HashSet <Colision>(new ColisionCompare()); collisionWorld.DebugDrawer = new Debug_Draw_Bullet(); collisionWorld.DebugDrawer.DebugMode = DebugDrawModes.DrawWireframe; }
/* * void MyContactCallback(object sender, ContactAddedEventArgs e) * { * if (e.CollisionObject0Wrapper.CollisionObject.CollisionShape.ShapeType == BroadphaseNativeType.CompoundShape) * { * CompoundShape compound = e.CollisionObject0Wrapper.CollisionObject.CollisionShape as CompoundShape; * CollisionShape childShape = compound.GetChildShape(e.Index0); * } * * if (e.CollisionObject1Wrapper.CollisionObject.CollisionShape.ShapeType == BroadphaseNativeType.CompoundShape) * { * CompoundShape compound = e.CollisionObject1Wrapper.CollisionObject.CollisionShape as CompoundShape; * CollisionShape childShape = compound.GetChildShape(e.Index1); * } * * e.IsContactModified = true; * } */ public void SetupEmptyDynamicsWorld() { // collision configuration contains default setup for memory, collision setup CollisionConf = new DefaultCollisionConfiguration(); Dispatcher = new CollisionDispatcher(CollisionConf); Broadphase = new AxisSweep3(new Vector3(-10000, -10000, -10000), new Vector3(10000, 10000, 10000)); Solver = new SequentialImpulseConstraintSolver(); World = new DiscreteDynamicsWorld(Dispatcher, Broadphase, Solver, CollisionConf); // create the ground CollisionShape groundShape = new BoxShape(30, 2, 30); CollisionShapes.Add(groundShape); CollisionObject ground = LocalCreateRigidBody(0, Matrix.Translation(0, -4.5f, 0), groundShape); ground.UserObject = "Ground"; }
protected override void OnInitializePhysics() { // collision configuration contains default setup for memory, collision setup CollisionConf = new DefaultCollisionConfiguration(); Dispatcher = new CollisionDispatcher(CollisionConf); Broadphase = new AxisSweep3( new Vector3(-1000, -1000, -1000), new Vector3(1000, 1000, 1000)); World = new DiscreteDynamicsWorld(Dispatcher, Broadphase, null, CollisionConf); World.Gravity = new Vector3(0, -10, 0); renderCallback = new DrawingResult(World); var boxA = new BoxShape(1.0f) { Margin = 0 }; var boxB = new BoxShape(0.5f) { Margin = 0 }; CollisionShapes.Add(boxA); CollisionShapes.Add(boxB); Quaternion rotA = new Quaternion(0.739f, -0.204f, 0.587f, 0.257f); rotA.Normalize(); objectA = new CollisionObject { CollisionShape = boxA, WorldTransform = Matrix.RotationQuaternion(rotA) * Matrix.Translation(0, 3, 0) }; objectB = new CollisionObject { CollisionShape = boxB, WorldTransform = Matrix.Translation(0, 4.248f, 0) }; //World.AddCollisionObject(objectA); World.AddCollisionObject(objectB); }
internal void Initialize() { // Build the broadphase broadphase = new DbvtBroadphase(); // Set up the collision configuration and dispatcher collisionConfiguration = new DefaultCollisionConfiguration(); dispatcher = new CollisionDispatcher(collisionConfiguration); // The actual physics solver solver = new SequentialImpulseConstraintSolver(); // The world dynamicsWorld = new DiscreteDynamicsWorld(dispatcher, broadphase, solver, collisionConfiguration); BulletSharp.Math.Vector3 grav = Gravity; dynamicsWorld.SetGravity(ref grav); collisionWorld = new CollisionWorld(dispatcher, broadphase, collisionConfiguration); }
public MotorDemoSimulation() { CollisionConfiguration = new DefaultCollisionConfiguration(); Dispatcher = new CollisionDispatcher(CollisionConfiguration); var worldAabbMin = new Vector3(-10000, -10000, -10000); var worldAabbMax = new Vector3(10000, 10000, 10000); Broadphase = new AxisSweep3(worldAabbMin, worldAabbMax); World = new DiscreteDynamicsWorld(Dispatcher, Broadphase, null, CollisionConfiguration); World.SetInternalTickCallback(MotorPreTickCallback, this, true); CreateGround(); SpawnTestRig(new Vector3(1, 0.5f, 0), false); SpawnTestRig(new Vector3(-2, 0.5f, 0), true); }
public virtual void createEmptyDynamicsWorld() { ///collision configuration contains default setup for memory, collision setup CollisionConf = new DefaultCollisionConfiguration(); ///use the default collision dispatcher. For parallel processing you can use a diffent dispatcher (see Extras/BulletMultiThreaded) Dispatcher = new CollisionDispatcher(CollisionConf); m_pairCache = new HashedOverlappingPairCache(); Broadphase = new DbvtBroadphase(m_pairCache); m_solver = new MultiBodyConstraintSolver(); World = m_dynamicsWorld = new MultiBodyDynamicsWorld(Dispatcher, Broadphase, m_solver, CollisionConf); m_dynamicsWorld.Gravity = (new BulletSharp.Math.Vector3(0, -10, 0)); }
public World() { CollisionConfiguration collisionConfiguration = new DefaultCollisionConfiguration(); var collisionDispatcher = new CollisionDispatcher(collisionConfiguration); var broadphase = new DbvtBroadphase(); _physicsWorld = new DiscreteDynamicsWorld(collisionDispatcher, broadphase, null, collisionConfiguration) { Gravity = new Vector3(0, -9.81f, 0).ToBullet() }; // Create Ground plane var groundShape = new StaticPlaneShape(Vector3.UnitY.ToBullet(), 1); _collisionShapes.Add(groundShape); CollisionObject ground = AddRigidBody(0, Matrix4.Identity, groundShape); ground.UserObject = "Ground"; }
protected override void OnInitializePhysics() { // collision configuration contains default setup for memory, collision setup CollisionConf = new DefaultCollisionConfiguration(); Dispatcher = new CollisionDispatcher(CollisionConf); Broadphase = new DbvtBroadphase(); Solver = new SequentialImpulseConstraintSolver(); World = new DiscreteDynamicsWorld(Dispatcher, Broadphase, Solver, CollisionConf); World.Gravity = new Vector3(0, -10, 0); importer = new BulletXmlWorldImporter(World); if (!importer.LoadFile(Path.Combine("data", "bullet_basic.xml"))) { //throw new FileNotFoundException(); } }
internal void CreateWorld() { CollisionShapes = new List <CollisionShape>(); BroadPhase = new DbvtBroadphase(); Collisions = new DefaultCollisionConfiguration(); Dispatcher = new CollisionDispatcher(Collisions); Solver = new SequentialImpulseConstraintSolver(); Objects = new Dictionary <Entity, RigidBody>(); World = new DiscreteDynamicsWorld(Dispatcher, BroadPhase, Solver, Collisions) { Gravity = new Vector3(0.0f, -9.8f, 0.0f) }; Status = EngineStatus.LoadedWorld; }
protected override void OnInitializePhysics() { // collision configuration contains default setup for memory, collision setup CollisionConf = new DefaultCollisionConfiguration(); Dispatcher = new CollisionDispatcher(CollisionConf); Broadphase = new AxisSweep3(new Vector3(-1000, -1000, -1000), new Vector3(1000, 1000, 1000)); Solver = new SequentialImpulseConstraintSolver(); World = new DiscreteDynamicsWorld(Dispatcher, Broadphase, Solver, CollisionConf); World.DispatchInfo.AllowedCcdPenetration = 0.0001f; //World.Gravity = Freelook.Up * -10.0f; Broadphase.OverlappingPairCache.SetInternalGhostPairCallback(new GhostPairCallback()); const float characterHeight = 1.75f; const float characterWidth = 1.75f; _capsuleShape = new CapsuleShape(characterWidth, characterHeight); _ghostObject = new PairCachingGhostObject() { CollisionShape = _capsuleShape, CollisionFlags = CollisionFlags.CharacterObject, WorldTransform = Matrix.Translation(10.210098f, -1.6433364f, 16.453260f) }; World.AddCollisionObject(_ghostObject, CollisionFilterGroups.CharacterFilter, CollisionFilterGroups.StaticFilter | CollisionFilterGroups.DefaultFilter); const float stepHeight = 0.35f; _character = new KinematicCharacterController(_ghostObject, _capsuleShape, stepHeight); World.AddAction(_character); var bspLoader = new BspLoader(); bspLoader.LoadBspFile(Path.Combine("data", "BspDemo.bsp")); var bsp2Bullet = new BspToBulletConverter(this); bsp2Bullet.ConvertBsp(bspLoader, 0.1f); _convexResultCallback = new ClosestConvexResultCallback(); _convexResultCallback.CollisionFilterMask = CollisionFilterGroups.StaticFilter; _cameraSphere = new SphereShape(0.2f); }
public UrdfDemoSimulation() { CollisionConfiguration = new DefaultCollisionConfiguration(); Dispatcher = new CollisionDispatcher(CollisionConfiguration); Broadphase = new DbvtBroadphase(); World = new DiscreteDynamicsWorld(Dispatcher, Broadphase, null, CollisionConfiguration); CreateGround(); string[] args = Environment.GetCommandLineArgs(); if (args.Length == 1) { LoadUrdf("hinge.urdf"); } else { LoadUrdf(args[1]); } }
public void SetUp() { conf = new DefaultCollisionConfiguration(); dispatcher = new CollisionDispatcher(conf); broadphase = new AxisSweep3(new Vector3(-1000, -1000, -1000), new Vector3(1000, 1000, 1000)); world = new DiscreteDynamicsWorld(dispatcher, broadphase, null, conf); broadphase.OverlappingPairUserCallback = new AxisSweepUserCallback(); boxShape = new BoxShape(1); body1 = CreateBody(10.0f, new SphereShape(1.0f), new Vector3(2, 2, 0)); body2 = CreateBody(1.0f, new SphereShape(1.0f), new Vector3(0, 2, 0)); ghostObject = new PairCachingGhostObject(); ghostObject.WorldTransform = Matrix.Translation(-1, 2, 0); ghostObject.CollisionShape = boxShape; broadphase.OverlappingPairCache.SetInternalGhostPairCallback(new GhostPairCallback()); }
public Physics() { // collision configuration contains default setup for memory, collision setup CollisionConf = new DefaultCollisionConfiguration(); Dispatcher = new CollisionDispatcher(CollisionConf); Broadphase = new DbvtBroadphase(); Solver = new SequentialImpulseConstraintSolver(); World = new DiscreteDynamicsWorld(Dispatcher, Broadphase, Solver, CollisionConf); World.Gravity = new Vector3(0, 0, -10); BspLoader bspLoader = new BspLoader(); bspLoader.LoadBspFile("BspDemo.bsp"); BspConverter bsp2Bullet = new BspToBulletConverter(this); bsp2Bullet.ConvertBsp(bspLoader, 0.1f); }
protected override void OnInitializePhysics() { // collision configuration contains default setup for memory, collision setup CollisionConf = new DefaultCollisionConfiguration(); Dispatcher = new CollisionDispatcher(CollisionConf); Vector3 worldMin = new Vector3(-1000, -1000, -1000); Vector3 worldMax = new Vector3(1000, 1000, 1000); Broadphase = new AxisSweep3(worldMin, worldMax); Solver = new SequentialImpulseConstraintSolver(); World = new DiscreteDynamicsWorld(Dispatcher, Broadphase, Solver, CollisionConf); World.SolverInfo.SplitImpulse = 1; World.Gravity = new Vector3(0, -10, 0); IsDebugDrawEnabled = true; CollisionShape colShape = new BoxShape(1); CollisionShapes.Add(colShape); for (int j = 0; j < NumDynamicBoxesX; j++) { for (int i = 0; i < NumDynamicBoxesY; i++) { //CollisionShape colShape = new CapsuleShape(0.5f,2.0f);//boxShape = new SphereShape(1.0f); Matrix startTransform = Matrix.Translation(5 * (i - NumDynamicBoxesX / 2), 10, 5 * (j - NumDynamicBoxesY / 2)); LocalCreateRigidBody(1.0f, startTransform, colShape); } } SetVertexPositions(WaveHeight, 0.0f); const bool useQuantizedAabbCompression = true; groundShape = new BvhTriangleMeshShape(indexVertexArrays, useQuantizedAabbCompression); CollisionShapes.Add(groundShape); staticBody = LocalCreateRigidBody(0.0f, Matrix.Identity, groundShape); staticBody.CollisionFlags |= CollisionFlags.StaticObject; staticBody.UserObject = "Ground"; }
public Physics() { CollisionConfiguration collisionConf = new DefaultCollisionConfiguration(); CollisionDispatcher dispatcher = new CollisionDispatcher(collisionConf); World = new DiscreteDynamicsWorld(dispatcher, new DbvtBroadphase(), null, collisionConf); World.Gravity = new Vector3(0, -10, 0); // create the ground CollisionShape groundShape = new BoxShape(50, 1, 50); CollisionObject ground = LocalCreateRigidBody(0, Matrix.Identity, groundShape); ground.UserObject = "Ground"; // create a box CollisionShape boxShape = new BoxShape(1); LocalCreateRigidBody(1.0f, Matrix.Translation(0, 20, 0), boxShape); }
protected override void OnInitializePhysics() { // collision configuration contains default setup for memory, collision setup CollisionConf = new DefaultCollisionConfiguration(); Dispatcher = new CollisionDispatcher(CollisionConf); Broadphase = new AxisSweep3(worldMin, worldMax); Solver = new SequentialImpulseConstraintSolver(); World = new DiscreteDynamicsWorld(Dispatcher, Broadphase, Solver, CollisionConf); World.SolverInfo.SplitImpulse = 1; World.Gravity = new Vector3(0, -10, 0); raycastBar = new RaycastBar(4000.0f, 0.0f, -1000.0f, 10); //raycastBar = new RaycastBar(true, 40.0f, -50.0f, 50.0f); CreateBoxes(); CreateGround(); }