package sim.app.beadwire; import sim.engine.*; import sim.field.continuous.*; import ec.util.*; import sim.physics2D.PhysicsEngine2D; import sim.physics2D.util.*; import sim.util.Double2D; public class BeadWire extends SimState { public double xMin = 0; public double xMax = 100; public double yMin = 0; public double yMax = 100; public Continuous2D fieldEnvironment; public BeadWire(long seed) { this(seed, 200, 200); } public BeadWire(long seed, int width, int height) { super(seed); xMax = width; yMax = height; createGrids(); } void createGrids() { fieldEnvironment = new Continuous2D(25, (xMax - xMin), (yMax - yMin)); } boolean applyConstraints = true; public boolean getApplyConstraints() { return applyConstraints; } public void setApplyConstraints(boolean val) { applyConstraints = val; } // Resets and starts a simulation public void start() { super.start(); // clear out the schedule createGrids(); PhysicsEngine2D objPE = new PhysicsEngine2D(); Wire wire = new Wire(); fieldEnvironment.setObjectLocation(wire, new sim.util.Double2D(0, 0)); Bead bead = new Bead(new Double2D(50, 50), new Double2D(0, 0), 3); bead.applyConstraints = applyConstraints; fieldEnvironment.setObjectLocation(bead, new sim.util.Double2D(50, 50)); schedule.scheduleRepeating(bead); objPE.register(bead); schedule.scheduleRepeating(objPE); } public static void main(String[] args) { doLoop(BeadWire.class, args); System.exit(0); } }