public BridgeTriangleRaycastCallback(Vector3 from, Vector3 to, CollisionWorld.RayResultCallback resultCallback, CollisionObject collisionObject, TriangleMeshShape triangleMesh) : base(from, to) { _resultCallback = resultCallback; _collisionObject = collisionObject; _triangleMesh = triangleMesh; }
public virtual void UpdateActivationState(CollisionWorld world, IDispatcher dispatcher) { InitUnionFind(world.CollisionObjectsCount); // put the index into m_controllers into m_tag int index = 0; for (int i = 0; i < world.CollisionObjects.Count; i++) { world.CollisionObjects[i].IslandTag = index; world.CollisionObjects[i].HitFraction = 1; world.CollisionObjects[i].CompanionID = -1; index++; } // do the union find FindUnions(dispatcher); }
public virtual void StoreIslandActivationState(CollisionWorld world) { // put the islandId ('find' value) into m_tag int index = 0; for (int i = 0; i < world.CollisionObjects.Count; i++) { if (world.CollisionObjects[i].MergesSimulationIslands) { world.CollisionObjects[i].IslandTag = _unionFind.Find(index); world.CollisionObjects[i].CompanionID = -1; } else { world.CollisionObjects[i].IslandTag = -1; world.CollisionObjects[i].CompanionID = -2; } index++; } }