public void addRigidBody(RigidBody rigidBody, Node geometryNode,
			Node wireframeGeometryNode) {
		// Set up transform group
		TransformGroup transformNode = new TransformGroup();
		transformNode.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
		transformNode.setTransform(rigidBody.getGraphicsTransform());
		transformNode.addChild(geometryNode);

		BranchGroup group = new BranchGroup();
		group.setCapability(BranchGroup.ALLOW_DETACH);
		group.addChild(transformNode);

		// Set up wireframe transform group
		TransformGroup wireframeTransformNode = null;
		if (wireframeGeometryNode != null) {
			wireframeTransformNode = new TransformGroup();
			wireframeTransformNode
					.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
			wireframeTransformNode.setTransform(rigidBody
					.getGraphicsTransform());
			wireframeTransformNode.addChild(wireframeGeometryNode);

			BranchGroup wireframeGroup = new BranchGroup();
			wireframeGroup.setCapability(BranchGroup.ALLOW_DETACH);
			wireframeGroup.addChild(wireframeTransformNode);
			wireframeRigidBodiesBranchGroup.addChild(wireframeGroup);
		}

		// Add rigid body to system
		rigidBodiesBranchGroup.addChild(group);

		rigidBodies.add(rigidBody);
		physicsController.addRigidBody(rigidBody);
		graphicsController.addRigidBody(rigidBody, group, transformNode,
				wireframeTransformNode);
	}