Example #1
0
        public void TearDown()
        {
            world.RemoveSoftBody(softBody);
            softBody.Dispose();
            softBodyWorldInfo.Dispose();

            world.Dispose();
            solver.Dispose();
            broadphase.Dispose();
            dispatcher.Dispose();
            conf.Dispose();
        }
Example #2
0
        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;
        }