package org.codecranachan.asteroidpush.base.visuals; import org.codecranachan.asteroidpush.base.simulation.RigidBody; import org.codecranachan.asteroidpush.utils.NewtonianState; import org.jbox2d.common.Vec2; import org.newdawn.slick.Graphics; public class BodyTrackingOffsetRepresentation implements Representation { private RigidBody trackedBody; private Representation representation; public BodyTrackingOffsetRepresentation(Representation representation, RigidBody tracked) { this.representation = representation; this.trackedBody = tracked; } public void render(Graphics g) { g.pushTransform(); NewtonianState state = trackedBody.getState(); Vec2 tail = state.getPosition(); g.translate(tail.x, tail.y); g.rotate(0, 0, state.getRotation().deg()); representation.render(g); g.popTransform(); } public int getPriority() { return representation.getPriority(); } }