public void SetUp() { conf = new SoftBodyRigidBodyCollisionConfiguration(); dispatcher = new CollisionDispatcher(conf); broadphase = new AxisSweep3(new Vector3(-1000, -1000, -1000), new Vector3(1000, 1000, 1000)); solver = new DefaultSoftBodySolver(); world = new SoftRigidDynamicsWorld(dispatcher, broadphase, null, conf, solver); softBodyWorldInfo = new SoftBodyWorldInfo(); softBody = new SoftBody(softBodyWorldInfo); world.AddSoftBody(softBody); }
static void TestSoftBody() { var softBodyWorldInfo = new SoftBodyWorldInfo(); var softBody = new SoftBody(softBodyWorldInfo); var softBodyCollisionConf = new SoftBodyRigidBodyCollisionConfiguration(); var softBodySolver = new DefaultSoftBodySolver(); var dispatcher = new CollisionDispatcher(softBodyCollisionConf); var broadphase = new AxisSweep3(new Vector3(-1000, -1000, -1000), new Vector3(1000, 1000, 1000)); var softBodyWorld = new SoftRigidDynamicsWorld(dispatcher, broadphase, null, softBodyCollisionConf, softBodySolver); softBodyWorld.AddSoftBody(softBody); if (!object.ReferenceEquals(softBody.SoftBodySolver, softBodySolver)) { Console.WriteLine("SoftBody: body and world SoftBodySolvers don't match!"); } AddToDisposeQueue(softBodyWorldInfo); AddToDisposeQueue(softBody); AddToDisposeQueue(softBodyCollisionConf); AddToDisposeQueue(softBodySolver); AddToDisposeQueue(dispatcher); AddToDisposeQueue(broadphase); AddToDisposeQueue(softBodyWorld); softBodyWorldInfo = null; softBody = null; softBodyCollisionConf = null; softBodySolver = null; dispatcher = null; broadphase = null; softBodyWorld.Dispose(); softBodyWorld = null; GC.Collect(GC.MaxGeneration, GCCollectionMode.Forced); GC.WaitForPendingFinalizers(); TestWeakRefs(); disposeQueue.Clear(); }
public override void Run() { var softBodyWorldInfo = new SoftBodyWorldInfo(); var softBody = new SoftBody(softBodyWorldInfo); var softBodyCollisionConf = new SoftBodyRigidBodyCollisionConfiguration(); var softBodySolver = new DefaultSoftBodySolver(); var dispatcher = new CollisionDispatcher(softBodyCollisionConf); var broadphase = new AxisSweep3(new Vector3(-1000, -1000, -1000), new Vector3(1000, 1000, 1000)); var softBodyWorld = new SoftRigidDynamicsWorld(dispatcher, broadphase, null, softBodyCollisionConf, softBodySolver); softBodyWorld.AddSoftBody(softBody); if (!object.ReferenceEquals(softBody.SoftBodySolver, softBodySolver)) { Console.WriteLine("SoftBody: body and world SoftBodySolvers don't match!"); } AddToDisposeQueue(softBodyWorldInfo); AddToDisposeQueue(softBody); AddToDisposeQueue(softBodyCollisionConf); AddToDisposeQueue(softBodySolver); AddToDisposeQueue(dispatcher); AddToDisposeQueue(broadphase); AddToDisposeQueue(softBodyWorld); softBodyWorldInfo = null; softBody = null; softBodyCollisionConf = null; softBodySolver = null; dispatcher = null; broadphase = null; softBodyWorld.Dispose(); softBodyWorld = null; ForceGC(); TestWeakRefs(); ClearRefs(); }