/** * 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; }