internal DynamicWorldImp()
        {
            //Debug.WriteLine("DynamicWorldImp");

            //Default
            // collision configuration contains default setup for memory, collision setup
            BtCollisionConf = new DefaultCollisionConfiguration();
            BtDispatcher = new CollisionDispatcher(BtCollisionConf);
            BtBroadphase = new DbvtBroadphase();
            BtSolver = new SequentialImpulseConstraintSolver();
               // BtCollisionShapes = new AlignedCollisionShapeArray();

            BtWorld = new DiscreteDynamicsWorld(BtDispatcher, BtBroadphase, BtSolver, BtCollisionConf)
            {
                Gravity = new Vector3(0, -9.81f, 0)
            };

            BtWorld.SolverInfo.NumIterations = 5;

            BtWorld.PerformDiscreteCollisionDetection();

            //GImpactCollisionAlgorithm.RegisterAlgorithm(BtDispatcher);
               // BtWorld.SetInternalTickCallback(MyTickCallBack);
            //BtWorld.SetInternalTickCallback(TickTack);

            //ManifoldPoint.ContactAdded += OnContactAdded;
            //PersistentManifold.ContactDestroyed += OnContactDestroyed;
            //PersistentManifold.ContactProcessed += OnContactProcessed;
        }
Exemple #2
0
 public DiscreteDynamicsWorldMultiThreaded(Dispatcher dispatcher, BroadphaseInterface pairCache,
                                           ConstraintSolver constraintSolver, CollisionConfiguration collisionConfiguration)
     : base(btDiscreteDynamicsWorldMt_new(dispatcher != null ? dispatcher._native : IntPtr.Zero, pairCache != null ? pairCache._native : IntPtr.Zero,
                                          constraintSolver != null ? constraintSolver._native : IntPtr.Zero, collisionConfiguration != null ? collisionConfiguration._native : IntPtr.Zero),
            dispatcher, pairCache)
 {
 }
Exemple #3
0
 /// <summary>
 /// gRally
 /// </summary>
 /// <param name="worldCreated"></param>
 /// <param name="dispatcher"></param>
 /// <param name="pairCache"></param>
 /// <param name="constraintSolver"></param>
 /// <param name="collisionConfiguration"></param>
 public DiscreteDynamicsWorld(IntPtr worldCreated, Dispatcher dispatcher, BroadphaseInterface pairCache, ConstraintSolver constraintSolver, CollisionConfiguration collisionConfiguration)
     : base(IntPtr.Zero)
 {
     _native           = worldCreated;
     _constraintSolver = constraintSolver;
     Dispatcher        = dispatcher;
     Broadphase        = pairCache;
 }
Exemple #4
0
 public DiscreteDynamicsWorld(Dispatcher dispatcher, BroadphaseInterface pairCache,
                              ConstraintSolver constraintSolver, CollisionConfiguration collisionConfiguration)
     : this(btDiscreteDynamicsWorld_new(dispatcher != null ? dispatcher.Native : IntPtr.Zero, pairCache != null ? pairCache.Native : IntPtr.Zero,
                                        constraintSolver != null ? constraintSolver.Native : IntPtr.Zero, collisionConfiguration != null ? collisionConfiguration.Native : IntPtr.Zero),
            dispatcher, pairCache)
 {
     _constraintSolver = constraintSolver;
 }
        public BulletPhysicWorld(Vector3 gravity,Dispatcher dispatcher, BroadphaseInterface pairCache, ConstraintSolver constraintSolver, CollisionConfiguration collisionConfiguration)
        {
            objs = new List<IPhysicObject>();
            ctns = new List<IPhysicConstraint>();

            world = new DiscreteDynamicsWorld(dispatcher, pairCache, constraintSolver, collisionConfiguration);
            world.Gravity = gravity;
        }
 public DiscreteDynamicsWorld(Dispatcher dispatcher, BroadphaseInterface pairCache,
                              ConstraintSolver constraintSolver, CollisionConfiguration collisionConfiguration)
     : base(btDiscreteDynamicsWorld_new(dispatcher != null ? dispatcher._native : IntPtr.Zero, pairCache != null ? pairCache._native : IntPtr.Zero,
                                        constraintSolver != null ? constraintSolver._native : IntPtr.Zero, collisionConfiguration != null ? collisionConfiguration._native : IntPtr.Zero))
 {
     _constraintSolver = constraintSolver;
     Dispatcher        = dispatcher;
     Broadphase        = pairCache;
 }
        public DiscreteDynamicsWorld(Dispatcher dispatcher, BroadphaseInterface pairCache,
            ConstraintSolver constraintSolver, CollisionConfiguration collisionConfiguration)
            : base(btDiscreteDynamicsWorld_new(dispatcher != null ? dispatcher._native : IntPtr.Zero, pairCache != null ? pairCache._native : IntPtr.Zero,
				constraintSolver != null ? constraintSolver._native : IntPtr.Zero, collisionConfiguration != null ? collisionConfiguration._native : IntPtr.Zero))
        {
            _constraintSolver = constraintSolver;
            Dispatcher = dispatcher;
            Broadphase = pairCache;
        }
Exemple #8
0
        /// <summary>
        /// コンストラクター
        /// </summary>
        public PhysicsSimulator()
        {
            var cc = new DefaultCollisionConfiguration ();

            this.dispatcher = new CollisionDispatcher (cc);
            this.broadphase = new DbvtBroadphase ();
            this.solver = new SequentialImpulseConstraintSolver ();
            this.wld = new DiscreteDynamicsWorld (dispatcher, broadphase, solver, cc);

            this.wld.Gravity = new BulletSharp.Vector3 (0, -9.8f, 0);   // 重力は-Y方向
        }
        public DiscreteDynamicsWorld(Dispatcher dispatcher, BroadphaseInterface pairCache,
                                     ConstraintSolver constraintSolver, CollisionConfiguration collisionConfiguration)
        {
            IntPtr native = btDiscreteDynamicsWorld_new(
                dispatcher != null ? dispatcher.Native : IntPtr.Zero,
                pairCache != null ? pairCache.Native : IntPtr.Zero,
                constraintSolver != null ? constraintSolver.Native : IntPtr.Zero,
                collisionConfiguration != null ? collisionConfiguration.Native : IntPtr.Zero);

            InitializeUserOwned(native);
            InitializeMembers(dispatcher, pairCache, constraintSolver);
        }
        public BulletPhysicWorld(Vector3 gravity)
        {
            collisionConf = new DefaultCollisionConfiguration();
            Dispatcher = new CollisionDispatcher(collisionConf);
            Broadphase = new DbvtBroadphase();
            constraintSolver = new SequentialImpulseConstraintSolver();

            objs = new List<IPhysicObject>();
            ctns = new List<IPhysicConstraint>();

            world = new DiscreteDynamicsWorld(Dispatcher, Broadphase ,constraintSolver, collisionConf);
            world.Gravity = gravity;            
        }
Exemple #11
0
	void Awake ()
	{
		if (BtWorld.main == null || gameObject.tag.Equals ("main"))
			BtWorld.main = this;
		
		// TODO: expose in editor?
		broadphase = new BulletSharp.DbvtBroadphase ();
		collisionConfiguration = new BulletSharp.DefaultCollisionConfiguration ();
		dispatcher = new BulletSharp.CollisionDispatcher (collisionConfiguration);
		solver = new BulletSharp.SequentialImpulseConstraintSolver ();
		world = new BulletSharp.DiscreteDynamicsWorld (dispatcher, broadphase, solver, collisionConfiguration);
		
		world.Gravity = new BulletSharp.Vector3 (gravity.x, gravity.y, gravity.z);
		world.DebugDrawer = new UnityDebugDrawer ();
		world.DebugDrawer.DebugMode = BulletSharp.DebugDrawModes.None;
		foreach (BulletSharp.DebugDrawModes drawMode in debugDrawModes) {
			world.DebugDrawer.DebugMode |= drawMode;
		}
	}
Exemple #12
0
 /// <inheritdoc/>
 void System.IDisposable.Dispose()
 {
     if (wld != null) {
         dispatcher.Dispose ();
         broadphase.Dispose ();
         solver.Dispose ();
         wld.Dispose ();
         this.dispatcher = null;
         this.broadphase = null;
         this.solver = null;
         this.wld = null;
     }
 }
Exemple #13
0
 protected internal void InitializeMembers(Dispatcher dispatcher, BroadphaseInterface pairCache, ConstraintSolver constraintSolver)
 {
     InitializeMembers(dispatcher, pairCache);
     _constraintSolver = constraintSolver;
 }
Exemple #14
0
        public BulletSharpPhysicsComponent(Game game, BulletSharpPhysics.CollisionConfiguration collisionConf, BulletSharpPhysics.ConstraintSolver solver, Vector3 gravity)
            : base(game)
        {
            BulletSharpPhysics.CollisionDispatcher Dispatcher = new BulletSharpPhysics.CollisionDispatcher(collisionConf);

            World = new BulletSharpPhysics.DiscreteDynamicsWorld(Dispatcher, new BulletSharpPhysics.DbvtBroadphase(), solver, collisionConf);
            //World = new BulletSharpPhysics.DiscreteDynamicsWorld(Dispatcher, new BulletSharpPhysics.AxisSweep3(new Vector3(-1000),new Vector3(1000),16384), solver, collisionConf);
            World.Gravity = gravity;
        }