From 0efe4355ea2ab700a05a84e952f0388d533a3f54 Mon Sep 17 00:00:00 2001 From: Connor Riley Date: Mon, 7 Dec 2015 16:38:18 -0500 Subject: [PATCH] added keyboard methods --- main/HalfEdge.pde | 2 +- main/PointList.pde | 5 +++-- main/main.pde | 51 ++++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 53 insertions(+), 5 deletions(-) diff --git a/main/HalfEdge.pde b/main/HalfEdge.pde index 01e8e09..b6deba3 100644 --- a/main/HalfEdge.pde +++ b/main/HalfEdge.pde @@ -346,4 +346,4 @@ public class HalfEdge { } } -} \ No newline at end of file +} diff --git a/main/PointList.pde b/main/PointList.pde index a0676ef..6801f42 100644 --- a/main/PointList.pde +++ b/main/PointList.pde @@ -30,7 +30,8 @@ public class PointList { } public boolean removePoint(Point p) { - return points.remove(p); + p.deleteEdges(); + return points.remove(p); } public ArrayList getAllStructures() { @@ -50,4 +51,4 @@ public class PointList { return struct; } -} \ No newline at end of file +} diff --git a/main/main.pde b/main/main.pde index 2828011..0558fc9 100644 --- a/main/main.pde +++ b/main/main.pde @@ -1,5 +1,6 @@ boolean pointclickedbool = false; boolean linedrawn = false; +int mode = 0; Point pointclicked; PointList list = new PointList(); DrawHalfEdge drawgraph = new DrawHalfEdge(); @@ -10,7 +11,7 @@ public void setup() { fill(0,0); translate(width/2, height/2); - /*Point p1 = new Point(0, 0); + Point p1 = new Point(0, 0); list.addPoint(p1); Point p2 = new Point(100, 50); list.addPoint(p2); @@ -59,7 +60,7 @@ public void setup() { HalfEdge h13 = new HalfEdge(p7, p15); HalfEdge h14 = new HalfEdge(p8, p15); HalfEdge h15 = new HalfEdge(p9, p15); - HalfEdge h16 = new HalfEdge(p16, p17); */ + HalfEdge h16 = new HalfEdge(p16, p17); //h1.printFace(); //float f = CompGeo.signedArea(h1.gettwin()); @@ -91,9 +92,39 @@ public void setup() { void draw() { drawgraph.drawGraph(list.getPoints()); } +void keyPressed() { + switch (key) { + case 'i': + mode = 0; + break; + case 'r': + mode = 1; + break; + case 'p': + mode = 2; + break; + case 'b': + mode = 3; + break; + case 'g': + mode = 4; + break; + } + +} void mouseReleased() { float x = mouseX; float y = mouseY; + switch (mode){ + case 0: + insertMode(x,y); + break; + case 1: + removePointMode(x,y); + break; + } +} +public void insertMode(float x, float y) { if(pointclickedbool) { pointclickedbool = false; for(Point p: list.getPoints()) { @@ -124,3 +155,19 @@ void mouseReleased() { } linedrawn = false; } + +public void removePointMode(float x, float y) { + boolean removePoint= false; + Point removeThis = null; + for(Point p: list.getPoints()) { + if((p.getX() - 10 < x) && (p.getX() + + 10 > x)) { + if((p.getY() - 10 < y) && (p.getY() + 10 > y)) { + removeThis = p; + removePoint = true; + } + } + } + if(removePoint) { + list.removePoint(removeThis); + } +}