package com.pixelmaid.dresscode.app.ui.tools; import com.pixelmaid.dresscode.drawing.datatype.Point; import com.pixelmaid.dresscode.drawing.math.Geom; import com.pixelmaid.dresscode.drawing.primitive2d.Curve; import com.pixelmaid.dresscode.drawing.primitive2d.Drawable; import com.pixelmaid.dresscode.drawing.primitive2d.Line; import com.pixelmaid.dresscode.drawing.primitive2d.Polygon; import com.pixelmaid.dresscode.events.CustomEvent; public class CurveTool extends Tool { private boolean created; private int clickCount=0; public CurveTool(){ } public void init(){ } public void reset(){ createdDrawable = null; created = false; } @Override public void setActive(boolean a){ this.reset(); active = a; } @Override public void mouseReleased(double mouseX, double mouseY, boolean special) { } @Override public void mousePressed(double mouseX, double mouseY, boolean special) { if(clickCount==0){ created=true; createdDrawable = new Curve(new Point(mouseX+4, mouseY+6),new Point(mouseX+4, mouseY+6),new Point(mouseX+4, mouseY+6),new Point(mouseX+4, mouseY+6)); this.fireToolEvent(CustomEvent.DRAWABLE_CREATED); } else if(clickCount==1){ ((Curve)createdDrawable).setControl1(mouseX+4, mouseY+6); ((Curve)createdDrawable).setControl2(mouseX+4, mouseY+6); ((Curve)createdDrawable).setEnd(mouseX+4, mouseY+6); } else if(clickCount==2){ ((Curve)createdDrawable).setControl2(mouseX+4, mouseY+6); ((Curve)createdDrawable).setEnd(mouseX+4, mouseY+6); } else if(clickCount==3){ ((Curve)createdDrawable).setEnd(mouseX+4, mouseY+6); this.fireToolEvent(CustomEvent.CURVE_ADDED); } clickCount++; if(clickCount>3){ clickCount=0; } this.fireToolEvent(CustomEvent.REDRAW_REQUEST); } @Override public void mouseDragged(double mouseX, double mouseY, boolean special) { if(created){ double scaleX = mouseX+4; double scaleY = mouseY+5; //double theta = Geom.cartToPolar(scaleX,scaleY)[1]; //double r = Geom.cartToPolar(scaleX,scaleY)[0]; ((Line)createdDrawable).setEnd(scaleX,scaleY); this.fireToolEvent(CustomEvent.REDRAW_REQUEST); } } public Drawable getCreated(){ return this.createdDrawable; } }