FarseerPhysics.Dynamics.BreakableBody.decompose C# (CSharp) Method

decompose() public method

public decompose ( ) : void
return void
		void decompose()
		{
			// Unsubsribe from the PostSolve delegate
			_world.contactManager.onPostSolve -= onPostSolve;

			for( int i = 0; i < parts.Count; i++ )
			{
				var oldFixture = parts[i];

				var shape = oldFixture.shape.clone();
				object userData = oldFixture.userData;

				mainBody.destroyFixture( oldFixture );

				var body = BodyFactory.CreateBody( _world, mainBody.position, mainBody.rotation, BodyType.Dynamic, mainBody.userData );

				var newFixture = body.createFixture( shape );
				newFixture.userData = userData;
				parts[i] = newFixture;

				body.angularVelocity = _angularVelocitiesCache[i];
				body.linearVelocity = _velocitiesCache[i];
			}

			_world.removeBody( mainBody );
			_world.removeBreakableBody( this );
		}