package oripa.paint.bisector;
import oripa.ORIPA;
import oripa.doc.Doc;
import oripa.paint.core.PaintContext;
import oripa.paint.core.PickingLine;
import oripa.paint.creasepattern.CreasePattern;
import oripa.paint.creasepattern.Painter;
public class SelectingLineForBisector extends PickingLine {
@Override
protected void initialize() {
setPreviousClass(SelectingVertexForBisector.class);
setNextClass(SelectingVertexForBisector.class);
}
@Override
protected void undoAction(PaintContext context) {
context.popVertex();
}
@Override
protected void onResult(PaintContext context) {
if(context.getLineCount() != 1 ||
context.getVertexCount() != 3){
throw new RuntimeException();
}
Doc document = ORIPA.doc;
CreasePattern creasePattern = document.getCreasePattern();
document.pushCachedUndoInfo();
Painter painter = new Painter();
painter.addBisectorLine(
context.getVertex(0), context.getVertex(1), context.getVertex(2),
context.getLine(0),
creasePattern);
context.clear(false);
}
}