package org.codecranachan.asteroidpush.content.behaviors; import java.util.Collection; import java.util.LinkedList; import org.codecranachan.asteroidpush.base.simulation.PrismaticJointData; import org.codecranachan.asteroidpush.base.visuals.Representation; import org.codecranachan.asteroidpush.base.workshop.actor.Behavior; import org.codecranachan.asteroidpush.base.workshop.assembly.BehaviorFactory; import org.codecranachan.asteroidpush.content.visuals.JointRepresentation; import org.codecranachan.asteroidpush.utils.Arrow; import org.newdawn.slick.Color; public class PrismaticConstraintBehaviorFactory implements BehaviorFactory { PrismaticJointData data; public PrismaticConstraintBehaviorFactory(PrismaticJointData data) { this.data = data; } public Collection<Representation> getRepresentations() { Collection<Representation> reps = new LinkedList<Representation>(); reps.add(new JointRepresentation(data.getAnchorA(), data.getAnchorB(), Color.green)); return reps; } public Behavior createBehavior(Arrow offset, float scale) { PrismaticJointData transformed = new PrismaticJointData(data); transformed.transformBy(offset, scale); PrismaticConstraintBehavior behavior = new PrismaticConstraintBehavior( transformed); return behavior; } }