public void TearDown() { world.RemoveSoftBody(softBody); softBody.Dispose(); softBodyWorldInfo.Dispose(); world.Dispose(); solver.Dispose(); broadphase.Dispose(); dispatcher.Dispose(); conf.Dispose(); }
public void Destroy() { this.dynamicsWorld.DeleteAndDisposeAllConstraints(); //this.dynamicsWorld.DeleteAndDisposeAllRigidBodies(); for (int i = 0; i < this.dynamicsWorld.NumCollisionObjects; i++) { CollisionObject obj = dynamicsWorld.CollisionObjectArray[i]; if (obj is RigidBody) { RigidBody body = obj as RigidBody; dynamicsWorld.DeleteAndDisposeBody(body); } else if (obj is SoftBody) { SoftBody body = obj as SoftBody; dynamicsWorld.RemoveSoftBody(body); body.Dispose(); body.CollisionShape.Dispose(); body.Tag = null; } } dynamicsWorld.Dispose(); solver.Dispose(); overlappingPairCache.Dispose(); dispatcher.Dispose(); collisionConfiguration.Dispose(); this.bodyContainer.Clear(); this.softBodyContainer.Clear(); this.constraintContainer.Clear(); this.created = false; }