コード例 #1
0
 public ushort AddHandleRef(ref Vector3 aabbMin, ref Vector3 aabbMax, IntPtr pOwner,
     short collisionFilterGroup, short collisionFilterMask,
     Dispatcher dispatcher, IntPtr multiSapProxy)
 {
     return btAxisSweep3_addHandle(_native, ref aabbMin, ref aabbMax, pOwner,
         collisionFilterGroup, collisionFilterMask, dispatcher._native, multiSapProxy);
 }
コード例 #2
0
 public override BroadphaseProxy CreateProxy(ref Vector3 aabbMin,
     ref Vector3 aabbMax, int shapeType, IntPtr userPtr, short collisionFilterGroup,
     short collisionFilterMask, Dispatcher dispatcher, IntPtr multiSapProxy)
 {
     //throw new NotImplementedException();
     return new BroadphaseProxy(btBroadphaseInterface_createProxy(_native, ref aabbMin, ref aabbMax, shapeType, userPtr, collisionFilterGroup, collisionFilterMask, dispatcher._native, multiSapProxy));
 }
コード例 #3
0
        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;
        }
コード例 #4
0
        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;
        }
コード例 #5
0
        public MultiBodyDynamicsWorld(Dispatcher dispatcher, BroadphaseInterface pairCache, MultiBodyConstraintSolver constraintSolver, CollisionConfiguration collisionConfiguration)
            : base(btMultiBodyDynamicsWorld_new(dispatcher._native, pairCache._native, constraintSolver._native, collisionConfiguration._native))
        {
            _constraintSolver = constraintSolver;
            _dispatcher = dispatcher;
            _broadphase = pairCache;

            _bodies = new List<MultiBody>();
            _constraints = new List<MultiBodyConstraint>();
        }
コード例 #6
0
		public unsafe static void SetAabbForceUpdate(this DbvtBroadphase obj, BroadphaseProxy absproxy, ref OpenTK.Vector3 aabbMin, ref OpenTK.Vector3 aabbMax, Dispatcher __unnamed3)
		{
			fixed (OpenTK.Vector3* aabbMinPtr = &aabbMin)
			{
				fixed (OpenTK.Vector3* aabbMaxPtr = &aabbMax)
				{
					obj.SetAabbForceUpdate(absproxy, ref *(BulletSharp.Math.Vector3*)aabbMinPtr, ref *(BulletSharp.Math.Vector3*)aabbMaxPtr, __unnamed3);
				}
			}
		}
コード例 #7
0
		public unsafe static BroadphaseProxy CreateProxy(this BroadphaseInterface obj, ref OpenTK.Vector3 aabbMin, ref OpenTK.Vector3 aabbMax, int shapeType, IntPtr userPtr, short collisionFilterGroup, short collisionFilterMask, Dispatcher dispatcher, IntPtr multiSapProxy)
		{
			fixed (OpenTK.Vector3* aabbMinPtr = &aabbMin)
			{
				fixed (OpenTK.Vector3* aabbMaxPtr = &aabbMax)
				{
					return obj.CreateProxy(ref *(BulletSharp.Math.Vector3*)aabbMinPtr, ref *(BulletSharp.Math.Vector3*)aabbMaxPtr, shapeType, userPtr, collisionFilterGroup, collisionFilterMask, dispatcher, multiSapProxy);
				}
			}
		}
コード例 #8
0
ファイル: PhysicsSimulator.cs プロジェクト: weimingtom/erica
        /// <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方向
        }
コード例 #9
0
ファイル: BtWorld.cs プロジェクト: franckmolto/unity-bullet
	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;
		}
	}
コード例 #10
0
 public void DispatchAllCollisionPairs(OverlappingPairCache pairCache, DispatcherInfo dispatchInfo, Dispatcher dispatcher)
 {
     btDispatcher_dispatchAllCollisionPairs(_native, pairCache._native, dispatchInfo._native, dispatcher._native);
 }
コード例 #11
0
 ushort AddHandle(ref Vector3 aabbMin, ref Vector3 aabbMax, IntPtr owner, CollisionFilterGroups collisionFilterGroup,
     CollisionFilterGroups collisionFilterMask, Dispatcher dispatcher, IntPtr multiSapProxy)
 {
     return AddHandle(ref aabbMin, ref aabbMax, owner, collisionFilterGroup, collisionFilterMask, dispatcher, multiSapProxy);
 }
コード例 #12
0
 public override BroadphaseProxy CreateProxy(ref Vector3 aabbMin, ref Vector3 aabbMax, int shapeType, IntPtr userPtr, short collisionFilterGroup, short collisionFilterMask, Dispatcher dispatcher, IntPtr multiSapProxy)
 {
     //throw new NotImplementedException();
     return new BroadphaseProxy(btBroadphaseInterface_createProxy(_native, ref aabbMin, ref aabbMax, shapeType, userPtr, collisionFilterGroup, collisionFilterMask, dispatcher._native, multiSapProxy));
 }
コード例 #13
0
 public CollisionAlgorithmConstructionInfo(Dispatcher dispatcher, int temp)
 {
     _dispatcher1 = dispatcher;
     _native = btCollisionAlgorithmConstructionInfo_new2((dispatcher != null) ? dispatcher._native : IntPtr.Zero, temp);
 }
コード例 #14
0
ファイル: PhysicsSimulator.cs プロジェクト: weimingtom/erica
 /// <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;
     }
 }
コード例 #15
0
 void RemoveHandle(ushort handle, Dispatcher dispatcher)
 {
     btAxisSweep3_removeHandle(_native, handle, dispatcher._native);
 }
コード例 #16
0
		public CollisionWorld(Dispatcher dispatcher, BroadphaseInterface broadphasePairCache,
			CollisionConfiguration collisionConfiguration)
            : this(btCollisionWorld_new(dispatcher._native, broadphasePairCache._native,
                collisionConfiguration._native))
		{
			_dispatcher = dispatcher;
			Broadphase = broadphasePairCache;
		}
コード例 #17
0
 public void RemoveOverlappingObjectInternal(BroadphaseProxy otherProxy, Dispatcher dispatcher, BroadphaseProxy thisProxy)
 {
     btGhostObject_removeOverlappingObjectInternal2(_native, otherProxy._native, dispatcher._native, thisProxy._native);
 }
コード例 #18
0
 public override void RemoveOverlappingPairsContainingProxy(BroadphaseProxy proxy0, Dispatcher dispatcher)
 {
     throw new NotImplementedException();
 }
コード例 #19
0
 public override IntPtr RemoveOverlappingPair(BroadphaseProxy proxy0, BroadphaseProxy proxy1, Dispatcher dispatcher)
 {
     return IntPtr.Zero;
 }
コード例 #20
0
 void RemoveHandle(ushort handle, Dispatcher dispatcher)
 {
     btAxisSweep3_removeHandle(_native, handle, dispatcher._native);
 }
コード例 #21
0
 public void SetAabbRef(BroadphaseProxy proxy, ref Vector3 aabbMin, ref Vector3 aabbMax, Dispatcher dispatcher)
 {
     btBroadphaseInterface_setAabb(_native, proxy._native, ref aabbMin, ref aabbMax, dispatcher._native);
 }
コード例 #22
0
 void RemoveHandle(uint handle, Dispatcher dispatcher)
 {
     bt32BitAxisSweep3_removeHandle(_native, handle, dispatcher._native);
 }
コード例 #23
0
 ushort AddHandle(ref Vector3 aabbMin, ref Vector3 aabbMax, IntPtr owner, CollisionFilterGroups collisionFilterGroup,
     CollisionFilterGroups collisionFilterMask, Dispatcher dispatcher, IntPtr multiSapProxy)
 {
     return AddHandle(ref aabbMin, ref aabbMax, owner, collisionFilterGroup, collisionFilterMask, dispatcher, multiSapProxy);
 }
コード例 #24
0
		public void SortOverlappingPairs(Dispatcher dispatcher)
		{
			btOverlappingPairCache_sortOverlappingPairs(_native, dispatcher._native);
		}
コード例 #25
0
 void UpdateHandle(ushort handle, Vector3 aabbMin, Vector3 aabbMax, Dispatcher dispatcher)
 {
     btAxisSweep3_updateHandle(_native, handle, ref aabbMin, ref aabbMax, dispatcher._native);
 }
コード例 #26
0
 public override void RemoveOverlappingPairsContainingProxy(BroadphaseProxy proxy0, Dispatcher dispatcher)
 {
     btOverlappingPairCallback_removeOverlappingPairsContainingProxy(_native, proxy0._native, dispatcher._native);
 }
コード例 #27
0
		public void CleanProxyFromPairs(BroadphaseProxy proxy, Dispatcher dispatcher)
		{
			btOverlappingPairCache_cleanProxyFromPairs(_native, proxy._native, dispatcher._native);
		}
コード例 #28
0
 ushort AddHandle(ref Vector3 aabbMin, ref Vector3 aabbMax, IntPtr owner, short collisionFilterGroup,
     short collisionFilterMask, Dispatcher dispatcher, IntPtr multiSapProxy)
 {
     return btAxisSweep3_addHandle(_native, ref aabbMin, ref aabbMax, owner, collisionFilterGroup, collisionFilterMask, dispatcher._native, multiSapProxy);
 }
コード例 #29
0
		public void BuildAndProcessIslands(Dispatcher dispatcher, CollisionWorld collisionWorld,
			IslandCallback callback)
		{
			btSimulationIslandManager_buildAndProcessIslands(_native, dispatcher._native,
				collisionWorld._native, callback._native);
		}
コード例 #30
0
 void UpdateHandle(ushort handle, Vector3 aabbMin, Vector3 aabbMax, Dispatcher dispatcher)
 {
     btAxisSweep3_updateHandle(_native, handle, ref aabbMin, ref aabbMax, dispatcher._native);
 }
コード例 #31
0
 public override IntPtr RemoveOverlappingPair(BroadphaseProxy proxy0, BroadphaseProxy proxy1, Dispatcher dispatcher)
 {
     return btOverlappingPairCallback_removeOverlappingPair(_native, proxy0._native, proxy1._native, dispatcher._native);
 }
コード例 #32
0
		public void BuildIslands(Dispatcher dispatcher, CollisionWorld colWorld)
		{
			btSimulationIslandManager_buildIslands(_native, dispatcher._native, colWorld._native);
		}
コード例 #33
0
		public void CleanOverlappingPair(BroadphasePair pair, Dispatcher dispatcher)
		{
			btOverlappingPairCache_cleanOverlappingPair(_native, pair._native, dispatcher._native);
		}
コード例 #34
0
		public void FindUnions(Dispatcher dispatcher, CollisionWorld colWorld)
		{
			btSimulationIslandManager_findUnions(_native, dispatcher._native, colWorld._native);
		}
コード例 #35
0
		public void UpdateActivationState(CollisionWorld colWorld, Dispatcher dispatcher)
		{
			btSimulationIslandManager_updateActivationState(_native, colWorld._native,
				dispatcher._native);
		}
コード例 #36
0
 void RemoveHandle(uint handle, Dispatcher dispatcher)
 {
     bt32BitAxisSweep3_removeHandle(_native, handle, dispatcher._native);
 }