Files
EP2/src/CosmicSystem.java
2022-04-25 12:04:51 +02:00

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();
}