Skip to content

Commit c96efaa

Browse files
committed
Added clearAnchors to Tracker
1 parent 10b825b commit c96efaa

File tree

4 files changed

+22
-19
lines changed

4 files changed

+22
-19
lines changed

debug/apps/arscene/src/main/java/arscene/Sketch.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ public class Sketch extends PApplet {
99
float angle;
1010
Anchor selAnchor;
1111
ArrayList<Anchor> regAnchors;
12+
ArrayList<Anchor> delAnchors;
1213

1314
Tracker tracker;
1415

@@ -20,6 +21,7 @@ public void setup() {
2021
tracker = new Tracker(this);
2122
tracker.start();
2223
regAnchors = new ArrayList<Anchor>();
24+
delAnchors = new ArrayList<Anchor>();
2325
}
2426

2527
public void draw() {
@@ -44,11 +46,7 @@ public void draw() {
4446
if (anchor.isTracking()) drawBox(anchor, 255, 255, 255);
4547
if (anchor.isStopped()) anchor.dispose();
4648
}
47-
48-
// for (int i = : regAnchors){
49-
// if (status == PAR.STOPPED) anchor.dispose();
50-
// }
51-
49+
tracker.clearAnchors(regAnchors);
5250

5351
if (selAnchor != null) {
5452
drawBox(selAnchor, 255, 0, 0);

mode/libraries/ar/src/processing/ar/Anchor.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,10 @@ public Anchor(Tracker tracker, int mx, int my) {
2222
}
2323

2424
public void dispose() {
25-
g.deleteAnchor(id);
26-
disposed = true;
25+
if (!disposed) {
26+
g.deleteAnchor(id);
27+
disposed = true;
28+
}
2729
}
2830

2931
public String id() {

mode/libraries/ar/src/processing/ar/Trackable.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,6 @@ public boolean isSelected(int mx, int my) {
3939
return g.trackableSelected(idx, mx, my);
4040
}
4141

42-
// public int status() {
43-
// int idx = g.trackableIndex(id);
44-
// return g.trackableStatus(idx);
45-
// }
46-
4742
public boolean isNew() {
4843
int idx = g.trackableIndex(id);
4944
return g.trackableNew(idx);
@@ -64,11 +59,6 @@ public boolean isStopped() {
6459
return g.trackableStatus(idx) == STOPPED;
6560
}
6661

67-
// public int type() {
68-
// int idx = g.trackableIndex(id);
69-
// return g.trackableType(idx);
70-
// }
71-
7262
public boolean isPlane() {
7363
return true;
7464
}

mode/libraries/ar/src/processing/ar/Tracker.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package processing.ar;
22

33
import java.lang.reflect.Method;
4+
import java.util.ArrayList;
5+
import java.util.Collection;
46
import java.util.HashMap;
57
import java.util.Set;
68

@@ -10,9 +12,9 @@ public class Tracker implements PAR {
1012
protected PApplet p;
1113
protected PGraphicsAR g;
1214

13-
private Method trackableEventMethod;
14-
1515
private HashMap<String, Trackable> trackables = new HashMap<String, Trackable>();
16+
private ArrayList<Anchor> toRemove = new ArrayList<Anchor>();
17+
private Method trackableEventMethod;
1618

1719
public Tracker(PApplet parent) {
1820
this.p = parent;
@@ -60,6 +62,17 @@ protected void create(int idx) {
6062
}
6163
}
6264

65+
public void clearAnchors(Collection<Anchor> anchors) {
66+
for (Anchor anchor : anchors) {
67+
if (anchor.isStopped() || anchor.isDisposed()) {
68+
anchor.dispose();
69+
toRemove.add(anchor);
70+
}
71+
}
72+
anchors.removeAll(toRemove);
73+
toRemove.clear();
74+
}
75+
6376
protected void cleanup() {
6477
// Remove any inactive trackables left over in the tracker.
6578
Set<String> ids = trackables.keySet();

0 commit comments

Comments
 (0)