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); }
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)); }
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 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>(); }
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); } } }
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); } } }
/// <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方向 }
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; } }
public void DispatchAllCollisionPairs(OverlappingPairCache pairCache, DispatcherInfo dispatchInfo, Dispatcher dispatcher) { btDispatcher_dispatchAllCollisionPairs(_native, pairCache._native, dispatchInfo._native, dispatcher._native); }
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); }
public CollisionAlgorithmConstructionInfo(Dispatcher dispatcher, int temp) { _dispatcher1 = dispatcher; _native = btCollisionAlgorithmConstructionInfo_new2((dispatcher != null) ? dispatcher._native : IntPtr.Zero, temp); }
/// <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; } }
void RemoveHandle(ushort handle, Dispatcher dispatcher) { btAxisSweep3_removeHandle(_native, handle, dispatcher._native); }
public CollisionWorld(Dispatcher dispatcher, BroadphaseInterface broadphasePairCache, CollisionConfiguration collisionConfiguration) : this(btCollisionWorld_new(dispatcher._native, broadphasePairCache._native, collisionConfiguration._native)) { _dispatcher = dispatcher; Broadphase = broadphasePairCache; }
public void RemoveOverlappingObjectInternal(BroadphaseProxy otherProxy, Dispatcher dispatcher, BroadphaseProxy thisProxy) { btGhostObject_removeOverlappingObjectInternal2(_native, otherProxy._native, dispatcher._native, thisProxy._native); }
public override void RemoveOverlappingPairsContainingProxy(BroadphaseProxy proxy0, Dispatcher dispatcher) { throw new NotImplementedException(); }
public override IntPtr RemoveOverlappingPair(BroadphaseProxy proxy0, BroadphaseProxy proxy1, Dispatcher dispatcher) { return IntPtr.Zero; }
public void SetAabbRef(BroadphaseProxy proxy, ref Vector3 aabbMin, ref Vector3 aabbMax, Dispatcher dispatcher) { btBroadphaseInterface_setAabb(_native, proxy._native, ref aabbMin, ref aabbMax, dispatcher._native); }
void RemoveHandle(uint handle, Dispatcher dispatcher) { bt32BitAxisSweep3_removeHandle(_native, handle, dispatcher._native); }
public void SortOverlappingPairs(Dispatcher dispatcher) { btOverlappingPairCache_sortOverlappingPairs(_native, dispatcher._native); }
void UpdateHandle(ushort handle, Vector3 aabbMin, Vector3 aabbMax, Dispatcher dispatcher) { btAxisSweep3_updateHandle(_native, handle, ref aabbMin, ref aabbMax, dispatcher._native); }
public override void RemoveOverlappingPairsContainingProxy(BroadphaseProxy proxy0, Dispatcher dispatcher) { btOverlappingPairCallback_removeOverlappingPairsContainingProxy(_native, proxy0._native, dispatcher._native); }
public void CleanProxyFromPairs(BroadphaseProxy proxy, Dispatcher dispatcher) { btOverlappingPairCache_cleanProxyFromPairs(_native, proxy._native, dispatcher._native); }
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); }
public void BuildAndProcessIslands(Dispatcher dispatcher, CollisionWorld collisionWorld, IslandCallback callback) { btSimulationIslandManager_buildAndProcessIslands(_native, dispatcher._native, collisionWorld._native, callback._native); }
public override IntPtr RemoveOverlappingPair(BroadphaseProxy proxy0, BroadphaseProxy proxy1, Dispatcher dispatcher) { return btOverlappingPairCallback_removeOverlappingPair(_native, proxy0._native, proxy1._native, dispatcher._native); }
public void BuildIslands(Dispatcher dispatcher, CollisionWorld colWorld) { btSimulationIslandManager_buildIslands(_native, dispatcher._native, colWorld._native); }
public void CleanOverlappingPair(BroadphasePair pair, Dispatcher dispatcher) { btOverlappingPairCache_cleanOverlappingPair(_native, pair._native, dispatcher._native); }
public void FindUnions(Dispatcher dispatcher, CollisionWorld colWorld) { btSimulationIslandManager_findUnions(_native, dispatcher._native, colWorld._native); }
public void UpdateActivationState(CollisionWorld colWorld, Dispatcher dispatcher) { btSimulationIslandManager_updateActivationState(_native, colWorld._native, dispatcher._native); }