diff --git a/src/java/org/web3d/vrml/nodes/VRMLWorldRootChildNodeType.java b/src/java/org/web3d/vrml/nodes/VRMLWorldRootChildNodeType.java index 9a5e5ec24bebdbf1d6da5c193f3253ab45eac6c2..1e84f9e97d4178c8766ae717b33f918394184425 100644 --- a/src/java/org/web3d/vrml/nodes/VRMLWorldRootChildNodeType.java +++ b/src/java/org/web3d/vrml/nodes/VRMLWorldRootChildNodeType.java @@ -18,8 +18,8 @@ package org.web3d.vrml.nodes; // None /** - * An abstract representation of the a node that can be used directly at the - * root of the scene graph. + * An abstract representation of a node that can be used directly at the root of + * the scene graph. * <p> * * Only X3DChildNode and LayerSet nodes can appear at the root level of a diff --git a/src/java/org/web3d/vrml/renderer/DefaultNodeFactory.java b/src/java/org/web3d/vrml/renderer/DefaultNodeFactory.java index c55149ae5f8ebd2a4c2dacc08725254375f34c0b..80f19068bbc8fed06c7878e29ad74924feffef47 100644 --- a/src/java/org/web3d/vrml/renderer/DefaultNodeFactory.java +++ b/src/java/org/web3d/vrml/renderer/DefaultNodeFactory.java @@ -107,7 +107,7 @@ public class DefaultNodeFactory private static final int INC_SIZE = 4; /** The class listing for the constructor for clone copying */ - private static final Class<?>[] NODE_CLASS = { VRMLNodeType.class }; + private static final Class<?> NODE_CLASS = VRMLNodeType.class; /** Message if the spec version number for VRML is not 2.0 */ private static final String INVALID_VRML_SPEC_VERSION = @@ -338,7 +338,7 @@ public class DefaultNodeFactory * Set specification version * @param major 2 (VRML97), 3, or 4 * @param minor 0, 1, 2, 3 - * @throws UnsupportedSpecVersionException + * @throws UnsupportedSpecVersionException */ @Override public void setSpecVersion(int major, int minor) throws UnsupportedSpecVersionException diff --git a/src/java/org/web3d/vrml/renderer/ProtoCopier.java b/src/java/org/web3d/vrml/renderer/ProtoCopier.java index 932b1944cfc154192141aee4ea828ed2550eacc8..0969ab5ecabad86005edd3da398b464a04dcf5cc 100644 --- a/src/java/org/web3d/vrml/renderer/ProtoCopier.java +++ b/src/java/org/web3d/vrml/renderer/ProtoCopier.java @@ -146,10 +146,10 @@ public class ProtoCopier implements SceneGraphTraversalSimpleObserver { if(scn == null) throw new NullPointerException("No scene supplied"); - scene = scn; - protoInstance = src; - majorVersion = major; - minorVersion = minor; + this.scene = scn; + this.protoInstance = src; + this.majorVersion = major; + this.minorVersion = minor; this.nodeMap = nodeMap; this.staticNodes = staticNodes; } @@ -210,17 +210,19 @@ public class ProtoCopier implements SceneGraphTraversalSimpleObserver { protoInstance.addBodyChild(out_kid); } else { VRMLNodeType out_parent = (VRMLNodeType)nodeMap.get(parent); - VRMLFieldDeclaration decl = parent.getFieldDeclaration(field); + if (out_parent != null) { + VRMLFieldDeclaration decl = parent.getFieldDeclaration(field); - int idx = out_parent.getFieldIndex(decl.getName()); + int idx = out_parent.getFieldIndex(decl.getName()); - try { - out_parent.setValue(idx, out_kid); - } catch(FieldException ife) { - errorReporter.warningReport( - "ProtoCopier error setting copied node! Parent:" + - parent.getClass() + " child: " + child.getClass() + - " field " + field, ife); + try { + out_parent.setValue(idx, out_kid); + } catch (FieldException ife) { + errorReporter.warningReport( + "ProtoCopier error setting copied node! Parent:" + + parent.getClass() + " child: " + child.getClass() + + " field " + field, ife); + } } } } @@ -322,7 +324,11 @@ public class ProtoCopier implements SceneGraphTraversalSimpleObserver { break; case TypeConstants.ScriptNodeType: -System.out.println("ProtoCopier can't handle script fields containing protos. Must fix"); + System.err.println("ProtoCopier can't handle script fields containing protos. Must fix"); + break; + + default: + break; } } } diff --git a/src/java/org/web3d/vrml/renderer/common/nodes/shape/BaseShape.java b/src/java/org/web3d/vrml/renderer/common/nodes/shape/BaseShape.java index 2745c34c339a6bd237b3fc61bf1bebf7903df943..4155c083bf9aa912718dc2d25c2c0c16bcc6bdad 100644 --- a/src/java/org/web3d/vrml/renderer/common/nodes/shape/BaseShape.java +++ b/src/java/org/web3d/vrml/renderer/common/nodes/shape/BaseShape.java @@ -49,13 +49,13 @@ public abstract class BaseShape extends AbstractNode /** Index for the bboxCenter field */ private static final int FIELD_BBOX_CENTER = LAST_NODE_INDEX + 4; - + /** Index for the bboxDisplay field */ private static final int FIELD_BBOX_DISPLAY = LAST_NODE_INDEX + 5; - + /** Index for the visible field */ private static final int FIELD_VISIBLE = LAST_NODE_INDEX + 6; - + /** Index for the castShadow field */ private static final int FIELD_CASTSHADOW = LAST_NODE_INDEX + 7; @@ -119,13 +119,13 @@ public abstract class BaseShape extends AbstractNode /** SFVec3f bboxSize NULL */ protected float[] vfBboxSize; - + /** SFBool bboxDisplay false */ protected boolean vfBboxDisplay; - + /** SFBool visible true */ protected boolean vfVisible; - + /** SFBool castShadow true */ protected boolean vfCastShadow; @@ -196,7 +196,7 @@ public abstract class BaseShape extends AbstractNode fieldMap.put("bboxDisplay", FIELD_BBOX_DISPLAY); fieldMap.put("visible", FIELD_VISIBLE); fieldMap.put("castShadow", FIELD_CASTSHADOW); - + forceLighting = PropertyTools.fetchSystemProperty(FORCE_LIGHTING_PROP, DEFAULT_FORCE_LIGHTING); } @@ -224,7 +224,7 @@ public abstract class BaseShape extends AbstractNode * @param node The node to copy * @throws IllegalArgumentException Incorrect node type */ - protected BaseShape(BaseShape node) { + protected BaseShape(VRMLNodeType node) { this(); // invoke default constructor checkNodeType(node); @@ -240,12 +240,12 @@ public abstract class BaseShape extends AbstractNode vfBboxSize[0] = field[0]; vfBboxSize[1] = field[1]; vfBboxSize[2] = field[2]; - + boolean b = ((VRMLBoundedNodeType)node).getBboxDisplay(); vfBboxDisplay = b; b = ((VRMLBoundedNodeType)node).getVisible(); vfVisible = b; - b = node.getCastShadow(); + b = ((BaseShape)node).getCastShadow(); vfCastShadow = b; } @@ -417,17 +417,17 @@ public abstract class BaseShape extends AbstractNode public float[] getBboxSize() { return vfBboxSize; } - + @Override public boolean getBboxDisplay() { return vfBboxDisplay; } - + @Override public boolean getVisible() { return vfVisible; } - + public boolean getCastShadow() { return vfCastShadow; } @@ -488,7 +488,7 @@ public abstract class BaseShape extends AbstractNode //---------------------------------------------------------- // Methods defined by LocalColorsListener //---------------------------------------------------------- - + /** * The localColors state has change. * @@ -628,21 +628,21 @@ public abstract class BaseShape extends AbstractNode fieldData.dataType = VRMLFieldData.FLOAT_ARRAY_DATA; fieldData.numElements = 1; break; - + case FIELD_BBOX_DISPLAY: fieldData.clear(); fieldData.booleanValue = vfBboxDisplay; fieldData.dataType = VRMLFieldData.BOOLEAN_DATA; fieldData.numElements = 1; break; - + case FIELD_VISIBLE: fieldData.clear(); fieldData.booleanValue = vfVisible; fieldData.dataType = VRMLFieldData.BOOLEAN_DATA; fieldData.numElements = 1; break; - + case FIELD_CASTSHADOW: fieldData.clear(); fieldData.booleanValue = vfCastShadow; @@ -703,7 +703,7 @@ public abstract class BaseShape extends AbstractNode ifve.getMessage()); } } - + @Override public void setValue(int index, boolean value) { switch(index) @@ -711,15 +711,15 @@ public abstract class BaseShape extends AbstractNode case FIELD_BBOX_DISPLAY: setBboxDisplay(value); break; - + case FIELD_VISIBLE: setVisible(value); break; - + case FIELD_CASTSHADOW: setCastShadow(value); break; - + default: super.setValue(index, value); } @@ -828,30 +828,30 @@ public abstract class BaseShape extends AbstractNode vfBboxSize[1] = newBboxSize[1]; vfBboxSize[2] = newBboxSize[2]; } - - /** Set the bounding box display for this node. Only used by the field + + /** Set the bounding box display for this node. Only used by the field * parser - * + * * @param val the display value to set */ @Override public void setBboxDisplay(boolean val) { vfBboxDisplay = val; } - - /** Set visible field for this node. Only used by the field + + /** Set visible field for this node. Only used by the field * parser - * + * * @param val the display value to set */ @Override public void setVisible(boolean val) { vfVisible = val; } - - /** Set castShadow field for this node. Only used by the field + + /** Set castShadow field for this node. Only used by the field * parser - * + * * @param val the display value to set */ public void setCastShadow(boolean val) { diff --git a/src/java/org/web3d/vrml/renderer/ogl/nodes/shape/OGLShape.java b/src/java/org/web3d/vrml/renderer/ogl/nodes/shape/OGLShape.java index e04de74cc212159bd406bf2d66909c159f684ab8..68d6ce39258ff0d8057135affff82739830395ae 100644 --- a/src/java/org/web3d/vrml/renderer/ogl/nodes/shape/OGLShape.java +++ b/src/java/org/web3d/vrml/renderer/ogl/nodes/shape/OGLShape.java @@ -76,6 +76,7 @@ public class OGLShape extends BaseShape * Construct a new default shape node implementation. */ public OGLShape() { + super(); checkMaterialListener = false; shareCount = 0; } @@ -88,7 +89,7 @@ public class OGLShape extends BaseShape * @param node The node to copy * @throws IllegalArgumentException Incorrect node type */ - public OGLShape(BaseShape node) { + public OGLShape(VRMLNodeType node) { super(node); checkMaterialListener = false; }