/** * Get the value of a field. If the field is a primitive type, it will return a class representing * the value. For arrays or nodes it will return the instance directly. * * @param index The index of the field to change. * @return The class representing the field value * @throws InvalidFieldException The field index is not known */ public VRMLFieldData getFieldValue(int index) throws InvalidFieldException { VRMLFieldData fieldData = fieldLocalData.get(); switch (index) { case FIELD_BBOX_SIZE: fieldData.clear(); fieldData.floatArrayValue = bboxSize; fieldData.dataType = VRMLFieldData.FLOAT_ARRAY_DATA; fieldData.numElements = 1; break; case FIELD_BBOX_CENTER: fieldData.clear(); fieldData.floatArrayValue = bboxCenter; fieldData.dataType = VRMLFieldData.FLOAT_ARRAY_DATA; fieldData.numElements = 1; break; case FIELD_CHILDREN: fieldData.clear(); VRMLNodeType[] kids = new VRMLNodeType[vfChildren.size()]; vfChildren.toArray(kids); fieldData.nodeArrayValue = kids; fieldData.dataType = VRMLFieldData.NODE_ARRAY_DATA; fieldData.numElements = childCount; break; default: super.getFieldValue(index); } return fieldData; }
/** * Get the value of a field. If the field is a primitive type, it will return a class representing * the value. For arrays or nodes it will return the instance directly. * * @param index The index of the field to change. * @return The class representing the field value * @throws InvalidFieldException The field index is not known */ public VRMLFieldData getFieldValue(int index) throws InvalidFieldException { VRMLFieldData fieldData = fieldLocalData.get(); switch (index) { case FIELD_SPEED: fieldData.clear(); fieldData.floatValue = vfSpeed; fieldData.dataType = VRMLFieldData.FLOAT_DATA; break; case FIELD_REPEAT_S: fieldData.clear(); fieldData.booleanValue = vfRepeatS; fieldData.dataType = VRMLFieldData.BOOLEAN_DATA; break; case FIELD_REPEAT_T: fieldData.clear(); fieldData.booleanValue = vfRepeatT; fieldData.dataType = VRMLFieldData.BOOLEAN_DATA; break; case FIELD_URL: fieldData.clear(); fieldData.stringArrayValue = vfURL; fieldData.dataType = VRMLFieldData.STRING_ARRAY_DATA; fieldData.numElements = vfURL.length; break; case FIELD_DURATION: fieldData.clear(); fieldData.doubleValue = vfDuration; fieldData.dataType = VRMLFieldData.DOUBLE_DATA; break; case FIELD_IS_ACTIVE: fieldData.clear(); fieldData.booleanValue = vfIsActive; fieldData.dataType = VRMLFieldData.BOOLEAN_DATA; break; case FIELD_TEXTURE_PROPERTIES: if (vrmlMajorVersion <= 3 && vrmlMinorVersion < 2) { InvalidFieldException ife = new InvalidFieldException(TEXPROPS_VERSION_MSG); ife.setFieldName("TextureProperties"); throw ife; } fieldData.clear(); if (pTextureProperties != null) fieldData.nodeValue = pTextureProperties; else fieldData.nodeValue = vfTextureProperties; fieldData.dataType = VRMLFieldData.NODE_DATA; break; default: super.getFieldValue(index); } return fieldData; }
/** * Get the value of a field. If the field is a primitive type, it will return a class representing * the value. For arrays or nodes it will return the instance directly. * * @param index The index of the field to change. * @return The class representing the field value * @throws InvalidFieldException The field index is not known */ public VRMLFieldData getFieldValue(int index) throws InvalidFieldException { VRMLFieldData fieldData = fieldLocalData.get(); switch (index) { case FIELD_BOUNDARY_COLOR: fieldData.clear(); fieldData.floatArrayValue = vfBoundaryColor; fieldData.dataType = VRMLFieldData.FLOAT_ARRAY_DATA; fieldData.numElements = 1; break; case FIELD_BOUNDARY_WIDTH: fieldData.clear(); fieldData.intValue = vfBoundaryWidth; fieldData.dataType = VRMLFieldData.INT_DATA; break; case FIELD_MAGNIFICATION_FILTER: fieldData.clear(); fieldData.stringValue = vfMagnificationFilter; fieldData.dataType = VRMLFieldData.STRING_DATA; break; case FIELD_MINIFICATION_FILTER: fieldData.clear(); fieldData.stringValue = vfMinificationFilter; fieldData.dataType = VRMLFieldData.STRING_DATA; break; case FIELD_GENERATE_MIPMAPS: fieldData.clear(); fieldData.booleanValue = vfGenerateMipMaps; fieldData.dataType = VRMLFieldData.BOOLEAN_DATA; break; case FIELD_ANISOTROPIC_MODE: fieldData.clear(); fieldData.stringValue = vfAnisotropicMode; fieldData.dataType = VRMLFieldData.STRING_DATA; break; case FIELD_ANISOTROPIC_FILTER_DEGREE: fieldData.clear(); fieldData.floatValue = vfAnisotropicFilterDegree; fieldData.dataType = VRMLFieldData.FLOAT_DATA; break; default: return (super.getFieldValue(index)); } return fieldData; }
/** * Get the value of a field. If the field is a primitive type, it will return a class representing * the value. For arrays or nodes it will return the instance directly. * * @param index The index of the field to change. * @return The class representing the field value * @throws InvalidFieldException The field index is not known */ public VRMLFieldData getFieldValue(int index) throws InvalidFieldException { VRMLFieldData fieldData = fieldLocalData.get(); switch (index) { case FIELD_NAME: fieldData.clear(); fieldData.numElements = 1; fieldData.dataType = VRMLFieldData.STRING_DATA; fieldData.stringValue = vfName; break; case FIELD_SHAPE: fieldData.clear(); if (pShape != null) fieldData.nodeValue = pShape; else fieldData.nodeValue = vfShape; fieldData.dataType = VRMLFieldData.NODE_DATA; break; case FIELD_BBOX_SIZE: fieldData.clear(); fieldData.floatArrayValue = vfBboxSize; fieldData.dataType = VRMLFieldData.FLOAT_ARRAY_DATA; fieldData.numElements = 1; break; case FIELD_BBOX_CENTER: fieldData.clear(); fieldData.floatArrayValue = vfBboxCenter; fieldData.dataType = VRMLFieldData.FLOAT_ARRAY_DATA; fieldData.numElements = 1; break; default: super.getFieldValue(index); } return fieldData; }
/** * Get the value of a field. If the field is a primitive type, it will return a class representing * the value. For arrays or nodes it will return the instance directly. * * @param index The index of the field to change. * @return The class representing the field value * @throws InvalidFieldException The field index is not known */ public VRMLFieldData getFieldValue(int index) throws InvalidFieldException { VRMLFieldData fieldData = fieldLocalData.get(); switch (index) { case FIELD_MODE: fieldData.clear(); fieldData.stringArrayValue = vfMode; fieldData.dataType = VRMLFieldData.STRING_ARRAY_DATA; fieldData.numElements = vfMode.length; break; case FIELD_SOURCE: fieldData.clear(); fieldData.stringArrayValue = vfSource; fieldData.dataType = VRMLFieldData.STRING_ARRAY_DATA; fieldData.numElements = vfSource.length; break; case FIELD_FUNCTION: fieldData.clear(); fieldData.stringArrayValue = vfFunction; fieldData.dataType = VRMLFieldData.STRING_ARRAY_DATA; fieldData.numElements = vfFunction.length; break; case FIELD_TEXTURE: VRMLNodeType kids[] = new VRMLNodeType[vfTexture.size()]; vfTexture.toArray(kids); fieldData.clear(); fieldData.nodeArrayValue = kids; fieldData.dataType = VRMLFieldData.NODE_ARRAY_DATA; fieldData.numElements = kids.length; break; case FIELD_COLOR: fieldData.clear(); fieldData.floatArrayValue = vfColor; fieldData.dataType = VRMLFieldData.FLOAT_ARRAY_DATA; fieldData.numElements = 1; break; case FIELD_ALPHA: fieldData.clear(); fieldData.floatValue = vfAlpha; fieldData.dataType = VRMLFieldData.FLOAT_DATA; fieldData.numElements = 1; break; default: super.getFieldValue(index); } return fieldData; }
/** * Get the value of a field. If the field is a primitive type, it will return a class representing * the value. For arrays or nodes it will return the instance directly. * * @param index The index of the field to change. * @return The class representing the field value * @throws InvalidFieldException The field index is not known */ public VRMLFieldData getFieldValue(int index) throws InvalidFieldException { VRMLFieldData fieldData = fieldLocalData.get(); switch (index) { case FIELD_PICKING_GEOMETRY: fieldData.clear(); if (pPickingGeometry != null) fieldData.nodeValue = pPickingGeometry; else fieldData.nodeValue = vfPickingGeometry; fieldData.dataType = VRMLFieldData.NODE_DATA; break; case FIELD_PICK_TARGET: fieldData.clear(); fieldData.nodeArrayValue = vfPickTarget; fieldData.dataType = VRMLFieldData.NODE_ARRAY_DATA; fieldData.numElements = numPickTarget; break; case FIELD_PICKED_GEOMETRY: fieldData.clear(); fieldData.nodeArrayValue = vfPickedGeometry; fieldData.dataType = VRMLFieldData.NODE_ARRAY_DATA; fieldData.numElements = numPickedGeometry; break; case FIELD_INTERSECTION_TYPE: fieldData.clear(); fieldData.stringValue = vfIntersectionType; fieldData.dataType = VRMLFieldData.STRING_DATA; break; case FIELD_SORT_ORDER: fieldData.clear(); fieldData.stringValue = vfSortOrder; fieldData.dataType = VRMLFieldData.STRING_DATA; break; case FIELD_OBJECT_TYPE: fieldData.clear(); fieldData.numElements = vfObjectType.length; fieldData.stringArrayValue = vfObjectType; fieldData.dataType = fieldData.STRING_ARRAY_DATA; break; default: super.getFieldValue(index); } return fieldData; }