From 7b7c49ca2f0643b1024ed26f52dbadf3e5978fbc Mon Sep 17 00:00:00 2001 From: Harvey Harrison Date: Mon, 9 Jan 2012 23:09:49 -0800 Subject: j3dcore: Canvas3D and Screen3D list annotations in View Signed-off-by: Harvey Harrison --- src/classes/share/javax/media/j3d/View.java | 48 +++++++++++++---------------- 1 file changed, 22 insertions(+), 26 deletions(-) (limited to 'src/classes/share') diff --git a/src/classes/share/javax/media/j3d/View.java b/src/classes/share/javax/media/j3d/View.java index 18d58b8..d42016e 100644 --- a/src/classes/share/javax/media/j3d/View.java +++ b/src/classes/share/javax/media/j3d/View.java @@ -995,12 +995,12 @@ private Vector canvases = new Vector(3); // boolean localEyeLightingEnable = false; - // Array Lists to track the screens and canvases associated with this View. - // use getScreens() to access this - private ArrayList screenList = new ArrayList(); +// Array Lists to track the screens and canvases associated with this View. +// use getScreens() to access this +private ArrayList screenList = new ArrayList(); - // use getCanvasList() to access this - private ArrayList canvasList = new ArrayList(); +// use getCanvasList() to access this +private ArrayList> canvasList = new ArrayList>(); private Canvas3D[][] cachedCanvasList; private Canvas3D[] cachedCanvases; @@ -1814,7 +1814,7 @@ private Vector canvases = new Vector(3); // get the calculated userHeadToVworld transform // from the view cache. // grab the first canvas -- not sure for multiple canvases - Canvas3D canvas = (Canvas3D) this.canvases.firstElement(); + Canvas3D canvas = this.canvases.firstElement(); synchronized(canvas.canvasViewCache) { t.set(canvas.canvasViewCache.getHeadToVworld()); } @@ -2076,7 +2076,7 @@ private Vector canvases = new Vector(3); */ public void getSensorToVworld(Sensor sensor, Transform3D t) { // grab the first canvas -- not sure for multiple canvases - Canvas3D canvas = (Canvas3D) this.canvases.firstElement(); + Canvas3D canvas = this.canvases.firstElement(); Transform3D localTrans = new Transform3D(); synchronized(canvas.canvasViewCache) { t.set(canvas.canvasViewCache.getVworldToTrackerBase()); @@ -2097,7 +2097,6 @@ private Vector canvases = new Vector(3); public void getSensorHotspotInVworld(Sensor sensor, Point3f position) { - Canvas3D canvas = (Canvas3D) this.canvases.firstElement(); Transform3D sensorToVworld = new Transform3D(); Point3d hotspot3d = new Point3d(); @@ -2118,7 +2117,6 @@ private Vector canvases = new Vector(3); public void getSensorHotspotInVworld(Sensor sensor, Point3d position) { - Canvas3D canvas = (Canvas3D) this.canvases.firstElement(); Transform3D sensorToVworld = new Transform3D(); getSensorToVworld(sensor, sensorToVworld); @@ -2176,7 +2174,7 @@ private Vector canvases = new Vector(3); * @return the Canvas3D at the sprcified index position */ public Canvas3D getCanvas3D(int index){ - return (Canvas3D) this.canvases.elementAt(index); + return this.canvases.elementAt(index); } /** @@ -2343,16 +2341,14 @@ private Vector canvases = new Vector(3); * @since Java 3D 1.3 */ public void removeAllCanvas3Ds() { - LinkedList tmpCanvases = new LinkedList(); + LinkedList tmpCanvases = new LinkedList(); synchronized(canvasList) { int numCanvases = canvases.size(); // Remove in reverse order to ensure valid indices for (int index = numCanvases - 1; index >= 0; index--) { - Canvas3D cv; - - cv = (Canvas3D) canvases.elementAt(index); + Canvas3D cv = canvases.elementAt(index); // Record list of canvases to be deleted; tmpCanvases.add(cv); @@ -2366,9 +2362,9 @@ private Vector canvases = new Vector(3); // ISSUE 83: postRequest must *not* be called while holding // canvasList lock. Holding the lock can cause a deadlock. - Iterator iterator = tmpCanvases.iterator(); + Iterator iterator = tmpCanvases.iterator(); while (iterator.hasNext()) { - Canvas3D cv = (Canvas3D)iterator.next(); + Canvas3D cv = iterator.next(); // reset canvas will set view to null also VirtualUniverse.mc.postRequest(MasterControl.RESET_CANVAS, @@ -2395,9 +2391,9 @@ private Vector canvases = new Vector(3); private void addToCanvasList(Canvas3D c) { for (int i=screenList.size()-1; i>=0; i--) { - if ((Screen3D)screenList.get(i) == c.screen) { + if (screenList.get(i) == c.screen) { // This is the right screen slot - ((ArrayList)canvasList.get(i)).add(c); + canvasList.get(i).add(c); canvasesDirty = true; return; } @@ -2405,7 +2401,7 @@ private Vector canvases = new Vector(3); // Add a screen slot screenList.add(c.screen); - ArrayList clist = new ArrayList(); + ArrayList clist = new ArrayList(); canvasList.add(clist); clist.add(c); canvasesDirty = true; @@ -2416,9 +2412,9 @@ private Vector canvases = new Vector(3); private void removeFromCanvasList(Canvas3D c) { for (int i=screenList.size()-1; i>=0; i--) { - if ((Screen3D) screenList.get(i) == c.screen) { + if (screenList.get(i) == c.screen) { // This is the right screen slot - ArrayList clist = (ArrayList)canvasList.get(i); + ArrayList clist = canvasList.get(i); clist.remove(clist.indexOf(c)); if (clist.size() == 0) { @@ -2435,7 +2431,7 @@ private Vector canvases = new Vector(3); void computeCanvasesCached() { synchronized (canvasList) { - ArrayList cv; + ArrayList cv; int len = canvases.size(); Canvas3D newCachedCanvases[] = new Canvas3D[len]; @@ -2450,11 +2446,11 @@ private Vector canvases = new Vector(3); longestScreenList = 0; cachedCanvasList = new Canvas3D[canvasList.size()][0]; for (int i=0; i < cachedCanvasList.length; i++) { - cv = (ArrayList) canvasList.get(i); + cv = canvasList.get(i); len = cv.size(); cachedCanvasList[i] = new Canvas3D[len]; for (int j=0; j < len; j++) { - cachedCanvasList[i][j] = (Canvas3D) cv.get(j); + cachedCanvasList[i][j] = cv.get(j); } if (len > longestScreenList) { @@ -2465,7 +2461,7 @@ private Vector canvases = new Vector(3); Screen3D newCachedScreens[] = new Screen3D[len]; for (int i=0; i < len; i++) { - newCachedScreens[i] = (Screen3D) screenList.get(i); + newCachedScreens[i] = screenList.get(i); } // Do this in one instruction so there is no need to // synchronized getScreens() @@ -2505,7 +2501,7 @@ private Vector canvases = new Vector(3); Canvas3D getFirstCanvas() { synchronized (canvasList) { if (canvases.size() > 0) { - return (Canvas3D) canvases.elementAt(0); + return canvases.elementAt(0); } return null; } -- cgit v1.2.3