42 lines
1.5 KiB
Java
42 lines
1.5 KiB
Java
// A representation of a system of bodies with associated forces. Provides methods
|
|
// for computing current mutual forces, updating the positions of bodies and drawing
|
|
// the bodies in a CodeDraw object.
|
|
//
|
|
public interface CosmicSystem extends Drawable {
|
|
|
|
// Returns a readable representation of this system.
|
|
String toString();
|
|
|
|
// Returns the mass center of this system.
|
|
Vector3 getMassCenter();
|
|
|
|
// Returns the overall mass of this system.
|
|
double getMass();
|
|
|
|
// Returns the overall number of bodies contained in this system.
|
|
int numberOfBodies();
|
|
|
|
// Returns the distance between the mass centers of 'this' and the specified system.
|
|
//Precondition: cs != null
|
|
double distanceTo(CosmicSystem cs);
|
|
|
|
// Adds the force that the specified body exerts on each of this systems bodies to each of this
|
|
// systems bodies.
|
|
// Precondition: b != null
|
|
void addForceFrom(Body b);
|
|
|
|
// Adds the force that this system exerts on each of the bodies of 'cs' to the bodies in 'cs'.
|
|
// For exact computations this means that for each body of 'this' its force on each body of
|
|
// 'cs' is added to this body of 'cs'.
|
|
// Precondition: cs != null
|
|
void addForceTo(CosmicSystem cs);
|
|
|
|
// Returns a list with all the bodies of 'this'. The order is not defined.
|
|
BodyLinkedList getBodies();
|
|
|
|
// Moves each of the bodies of 'this' according to the previously accumulated forces and
|
|
// resets all forces to zero.
|
|
void update();
|
|
|
|
}
|