import java.awt.*; public class EulerLine extends GeometricConstruction { void initData() { // System.out.println("Entering EulerLine.initData"); Input inp = (Input) input; Gpoint[] sites = new Gpoint[3]; if (inp.numItems() != 3) { sites[0] = new Gpoint(0.2,0.2); sites[1] = new Gpoint(0.8,0.4); sites[2] = new Gpoint(0.5,0.9); inp.addItem(sites[0]); inp.addItem(sites[1]); inp.addItem(sites[2]); } inp.rewind(); sites[0] = (Gpoint) inp.nextItem(); sites[1] = (Gpoint) inp.nextItem(); sites[2] = (Gpoint) inp.nextItem(); data[0] = sites; } boolean isControlData(int ID) { Gpoint[] sites = (Gpoint[])data[0]; return ID < sites.length; } Object updateControlData (Object o, int ID) { Gpoint[] sites = (Gpoint[])data[0]; sites[ID] = new Gpoint((Gpoint)o); return sites[ID]; } Gsegment bisector(Gpoint A, Gsegment AB, Gsegment BC, Gsegment CA) { double c=AB.length(), b=CA.length(); Gcircle cir = new Gcircle(A,(c