summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarvey Harrison <[email protected]>2012-10-10 00:29:53 -0700
committerHarvey Harrison <[email protected]>2012-10-10 00:40:54 -0700
commitf24a01217f39df3b02a01444ac1a720994f090c8 (patch)
tree3f1ed24ddcd14aa547c9276b9e32d97e5e300766
parent9a040a3b9c72a307e3f19078483ede534f289bd0 (diff)
j3dcore: fix fatal bug in Shape3DCompileRetained intersect()
This code must not be being triggered as the type annotation uncovered it mixing up Geometry and GeometryRetained, this likely looks like the Geometry should have been getting its .retained member used instead, do that here, it can't be any worse than what was there before. Signed-off-by: Harvey Harrison <[email protected]>
-rw-r--r--src/classes/share/javax/media/j3d/Shape3DCompileRetained.java10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/classes/share/javax/media/j3d/Shape3DCompileRetained.java b/src/classes/share/javax/media/j3d/Shape3DCompileRetained.java
index c77fd77..7b5f863 100644
--- a/src/classes/share/javax/media/j3d/Shape3DCompileRetained.java
+++ b/src/classes/share/javax/media/j3d/Shape3DCompileRetained.java
@@ -65,7 +65,6 @@ Shape3DCompileRetained(Shape3DRetained[] shapes, int nShapes, int compileFlags)
// Remove the null that was added by Shape3DRetained constructor
geometryList.remove(0);
- int geoIndex = 0;
// Assign the fields for this compile shape
boundsAutoCompute = shapes[0].boundsAutoCompute;
@@ -316,8 +315,8 @@ Bounds getBounds(int childIndex) {
}
- boolean intersect(PickInfo pickInfo, PickShape pickShape, int flags,
- ArrayList geometryList) {
+boolean intersect(PickInfo pickInfo, PickShape pickShape, int flags,
+ ArrayList<Geometry> geometryList) {
Transform3D localToVworld = pickInfo.getLocalToVWorldRef();
@@ -327,14 +326,13 @@ Bounds getBounds(int childIndex) {
int geomListSize = geometryList.size();
GeometryRetained geometry;
-
if (((flags & PickInfo.CLOSEST_INTERSECTION_POINT) == 0) &&
((flags & PickInfo.CLOSEST_DISTANCE) == 0) &&
((flags & PickInfo.CLOSEST_GEOM_INFO) == 0) &&
((flags & PickInfo.ALL_GEOM_INFO) == 0)) {
for (int i=0; i < geomListSize; i++) {
- geometry = (GeometryRetained) geometryList.get(i);
+ geometry = (GeometryRetained) geometryList.get(i).retained;
if (geometry != null) {
if (geometry.mirrorGeometry != null) {
geometry = geometry.mirrorGeometry;
@@ -355,7 +353,7 @@ Bounds getBounds(int childIndex) {
Point3d iPntVW = new Point3d();
for (int i=0; i < geomListSize; i++) {
- geometry = (GeometryRetained) geometryList.get(i);
+ geometry = (GeometryRetained) geometryList.get(i).retained;
if (geometry != null) {
if (geometry.mirrorGeometry != null) {
geometry = geometry.mirrorGeometry;