package robotinterface.plugin.cmdpack.util;
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Polygon;
import java.awt.geom.Area;
import java.awt.geom.Ellipse2D;
import robotinterface.algorithm.Command;
import static robotinterface.algorithm.procedure.DummyBlock.createSimpleBlock;
import robotinterface.algorithm.procedure.Procedure;
import robotinterface.drawable.GraphicObject;
import robotinterface.gui.panels.sidepanel.Item;
import robotinterface.interpreter.ExecutionException;
import robotinterface.interpreter.Interpreter;
import robotinterface.interpreter.ResourceManager;
import robotinterface.util.trafficsimulator.Clock;
/**
*
* @author antunes2
*/
public class StepMode extends Procedure {
private static Color myColor = Color.decode("#631864");
public StepMode() {
}
private GraphicObject resource = null;
@Override
public GraphicObject getDrawableResource() {
if (resource == null) {
resource = createSimpleBlock(this, " (toggle step mode) ", Color.black, myColor);
}
return resource;
}
@Override
public void begin(ResourceManager rm) throws ExecutionException {
Interpreter interpreter = rm.getResource(Interpreter.class);
interpreter.setTimestep((interpreter.getTimestep() == 0)? 200 : 0);
}
@Override
public Item getItem() {
Area myShape = new Area();
Polygon tmpPoly = new Polygon();
tmpPoly.addPoint(10, 0);
tmpPoly.addPoint(20, 10);
tmpPoly.addPoint(10, 20);
tmpPoly.addPoint(0, 10);
myShape.add(new Area(tmpPoly));
myShape.subtract(new Area(new Ellipse2D.Double(5, 5, 10, 10)));
tmpPoly.reset();
tmpPoly.addPoint(18, 0);
tmpPoly.addPoint(20, 2);
tmpPoly.addPoint(2, 20);
tmpPoly.addPoint(0, 18);
myShape.add(new Area(tmpPoly));
myShape.add(new Area(new Ellipse2D.Double(7, 7, 6, 6)));
return new Item("Modo passo-a-passo", myShape, myColor);
}
@Override
public void drawLines(Graphics2D g) {
}
@Override
public Object createInstance() {
return new StepMode();
}
@Override
public void toString(String ident, StringBuilder sb) {
}
}