diff options
author | Harvey Harrison <[email protected]> | 2012-06-26 23:25:09 -0700 |
---|---|---|
committer | Harvey Harrison <[email protected]> | 2012-06-26 23:25:09 -0700 |
commit | 7fd13b4c009ae51f21a538d665db84c042d0ced9 (patch) | |
tree | 1cd99fea4b3aa8e6c76c93028727f7c922563715 /src/classes | |
parent | 92f2e99d9c3ea94019b0ed8be0dfc59715cb2816 (diff) |
j3dcore: more code cleanup related to ModelClips
Signed-off-by: Harvey Harrison <[email protected]>
Diffstat (limited to 'src/classes')
-rw-r--r-- | src/classes/share/javax/media/j3d/RenderingEnvironmentStructure.java | 74 |
1 files changed, 31 insertions, 43 deletions
diff --git a/src/classes/share/javax/media/j3d/RenderingEnvironmentStructure.java b/src/classes/share/javax/media/j3d/RenderingEnvironmentStructure.java index 0d0975a..bc164a3 100644 --- a/src/classes/share/javax/media/j3d/RenderingEnvironmentStructure.java +++ b/src/classes/share/javax/media/j3d/RenderingEnvironmentStructure.java @@ -862,55 +862,43 @@ FogRetained getInfluencingFog(RenderAtom ra, View view) { return numFogs; } - ModelClipRetained getInfluencingModelClip(RenderAtom ra, View view) { - ModelClipRetained modelClip = null; - int j, nModelClips; - Bounds closestBounds; - ArrayList globalModelClips; - +ModelClipRetained getInfluencingModelClip(RenderAtom ra, View view) { + if (ra.geometryAtom.source.inBackgroundGroup) + return null; - - if (ra.geometryAtom.source.inBackgroundGroup) { - return null; - } // Need to lock lockObj, since on a multi-processor // system with 2 views on a single universe, there might // be councurrent access - synchronized(lockObj) { - Bounds bounds = ra.localeVwcBounds; - nModelClips = 0; - if (intersectedBounds.length < numberOfModelClips) - intersectedBounds = new Bounds[numberOfModelClips]; - - if ((globalModelClips = (ArrayList)viewScopedModelClips.get(view)) != null) { - nModelClips = processModelClips(globalModelClips, ra, nModelClips); - } - - // now process the common clips - nModelClips = processModelClips(nonViewScopedModelClips, ra, nModelClips); - - - - - - modelClip = null; - if (nModelClips == 1) - modelClip = intersectedModelClips[0]; - else if (nModelClips > 1) { - closestBounds = bounds.closestIntersection(intersectedBounds); - for (j= 0; j < nModelClips; j++) { - if (intersectedBounds[j] == closestBounds) { - modelClip = intersectedModelClips[j]; - break; - } + synchronized (lockObj) { + Bounds bounds = ra.localeVwcBounds; + int nModelClips = 0; + if (intersectedBounds.length < numberOfModelClips) + intersectedBounds = new Bounds[numberOfModelClips]; + + ArrayList<ModelClipRetained> globalModelClips = viewScopedModelClips.get(view); + if (globalModelClips != null) + nModelClips = processModelClips(globalModelClips, ra, nModelClips); + + // now process the common clips + nModelClips = processModelClips(nonViewScopedModelClips, ra, nModelClips); + + ModelClipRetained modelClip = null; + if (nModelClips == 1) + modelClip = intersectedModelClips[0]; + else if (nModelClips > 1) { + Bounds closestBounds = bounds.closestIntersection(intersectedBounds); + for (int j = 0; j < nModelClips; j++) { + if (intersectedBounds[j] == closestBounds) { + modelClip = intersectedModelClips[j]; + break; + } + } } - } - return (modelClip); + return modelClip; } +} - } - - int processModelClips(ArrayList globalModelClips, RenderAtom ra, int nModelClips) { +int processModelClips(ArrayList<ModelClipRetained> globalModelClips, RenderAtom ra, int nModelClips) { int size = globalModelClips.size(); int i, k, n; ModelClipRetained modelClip; @@ -919,7 +907,7 @@ FogRetained getInfluencingFog(RenderAtom ra, View view) { if (size > 0) { for (i = 0; i < size; i++) { - modelClip = (ModelClipRetained) globalModelClips.get(i); + modelClip = globalModelClips.get(i); if (modelClip.enableFlag == true && modelClip.region != null && modelClip.switchState.currentSwitchOn) { if (modelClip.region.intersect(bounds) == true) { |