Gravedad relativa

He comenzado a usar el motor jMonkey recientemente, lo cual es muy bueno. Pero me estancé tratando de implementar la gravedad relativa.

Quiero hacer planetas que orbitan entre sí (no necesariamente en órbita perfectamente circular, depende de la velocidad). Así que cada objeto debe afectar a otros objetos.

Lo que tengo ahora mismo:

apagando la gravedad global

bulletAppState.getPhysicsSpace().setGravity(Vector3f.ZERO);

Inicializando esferas y añadiendo espacio a la física.

Sphere sphere = new Sphere(50, 50, 5);
Geometry sun = new Geometry("Sun", sphere);

sun.setMaterial(stone_mat);
rootNode.attachChild(sun);
sun.setLocalTranslation(0, 0, 0);

sunPhysics = new RigidBodyControl((float) (50*Math.pow(10, 5)));
sun.addControl(sunPhysics);
bulletAppState.getPhysicsSpace().add(sunPhysics);

Geometry mercury = new Geometry("Mercury", sphere);

mercury.setMaterial(stone_mat);
rootNode.attachChild(mercury);
mercury.setLocalTranslation(15f, 0, 0);

mercuryPhysics = new RigidBodyControl((float) (5));
mercury.addControl(mercuryPhysics);
bulletAppState.getPhysicsSpace().add(mercuryPhysics);

Noté que hay un método setGravity en la clase RigidBodyControl, pero solo establece la dirección. Entonces el objeto va por ese camino hasta que desaparece.

Estoy realmente esperando las respuestas.

Respuestas a la pregunta(3)

Su respuesta a la pregunta