Class FileSurfaceXML_J3D.SurfaceXMLHandler

java.lang.Object
org.xml.sax.helpers.DefaultHandler
gov.nih.mipav.view.renderer.J3D.model.file.FileSurfaceXML_J3D.SurfaceXMLHandler
All Implemented Interfaces:
ContentHandler, DTDHandler, EntityResolver, ErrorHandler
Enclosing class:
FileSurfaceXML_J3D

private class FileSurfaceXML_J3D.SurfaceXMLHandler extends DefaultHandler
Used by the XML Parser to parse the Surface.XML header.
  • Field Details

    • currentKey

      String currentKey
      Current XML keyword:.
    • elementBuffer

      String elementBuffer
      Current buffer:.
    • fileInfo

      fileInfo data structure for reading the surface information into:.
    • m_aiIndex

      private int[] m_aiIndex
      Triangle mesh connectivity (index) array.
    • m_akColors

      private javax.vecmath.Color4f[] m_akColors
      Triangle mesh colors (may be null).
    • m_akNormals

      private javax.vecmath.Vector3f[] m_akNormals
      Triangle mesh normals (may be null).
    • m_akVertices

      private javax.vecmath.Point3f[] m_akVertices
      Vertex, Normal, and Connectivity arrays to read into from the file:.
  • Constructor Details

    • SurfaceXMLHandler

      public SurfaceXMLHandler(FileInfoSurfaceXML_J3D fInfo)
      Creates a new SurfaceXMLHandler object.
      Parameters:
      fInfo - FileInfo for storing the file data into.
  • Method Details

    • characters

      public void characters(char[] ch, int start, int length)
      Text data callback from parser. If the parser is not validating, this method can report whitespace. We ignore strings that are entirely whitespace.
      Specified by:
      characters in interface ContentHandler
      Overrides:
      characters in class DefaultHandler
      Parameters:
      ch - Character array
      start - Start of data in array.
      length - Length of data in array.
    • endDocument

      public void endDocument() throws SAXException
      Do nothing.
      Specified by:
      endDocument in interface ContentHandler
      Overrides:
      endDocument in class DefaultHandler
      Throws:
      SAXException - never happens
    • endElement

      public void endElement(String namespaceURI, String localName, String qName) throws SAXException
      Called by parser when the end of an element is reached in the document.
      Specified by:
      endElement in interface ContentHandler
      Overrides:
      endElement in class DefaultHandler
      Parameters:
      namespaceURI - the namespace uri
      localName - the element name
      qName - the qualified name
      Throws:
      SAXException - if a problem is encountered during parsing
    • getColorString

      public String getColorString(javax.vecmath.Color3f kColor)
      Called when writing the surface.xml file: Converts the input Color3f to a String for writing:
      Parameters:
      kColor - color object
      Returns:
      the color in string format
    • getColorString

      public String getColorString(javax.vecmath.Color4f[] akColors)
      Called when writing the surface.xml file: Converts the input array of Color4f[] to a String for writing:
      Parameters:
      akColors - array of Color4f, representing the surface triangle mesh per-vertex colors.
      Returns:
      colors array in string format
    • getIndexString

      public String getIndexString(int[] aiConnectivity)
      Called when writing the surface.xml file: Converts the input array of int[] to a String for writing:
      Parameters:
      aiConnectivity - the connectivity array
      Returns:
      the connectivity array in string format
    • getNormalString

      public String getNormalString(javax.vecmath.Vector3f[] akNormals)
      Called when writing the surface.xml file: Converts the input array of Vector3f[] to a String for writing:
      Parameters:
      akNormals - normals array
      Returns:
      normals array in string format
    • getVertexString

      public String getVertexString(javax.vecmath.Point3f[] akVertices)
      Called when writing the surface.xml file: Converts the input array of Point3f[] to a String for writing:
      Parameters:
      akVertices - mesh coordinate array
      Returns:
      mesh coordinate array in string format
    • skippedEntity

      public void skippedEntity(String name)
      Do nothing but show the entity we skipped.
      Specified by:
      skippedEntity in interface ContentHandler
      Overrides:
      skippedEntity in class DefaultHandler
      Parameters:
      name - the skipped entity name
    • startElement

      public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException
      Parser calls this for the beginning of each element in the document.
      Specified by:
      startElement in interface ContentHandler
      Overrides:
      startElement in class DefaultHandler
      Parameters:
      namespaceURI - the namespace uri
      localName - the element name
      qName - the qualified name
      atts - the attached attributes
      Throws:
      SAXException - if a problem is encountered during parsing
    • getColor

      private javax.vecmath.Color3f getColor(String kParseString)
      Called when reading the input surface.xml file: Parses the input string into a Color3f variable:
      Parameters:
      kParseString - input string containing the material color
      Returns:
      the material color in Color3f format
    • getColors

      private void getColors(String kParseString)
      Called when reading the input surface.xml file: Parses the input string into a an array of Color4f[], representing the mesh per-vertex colors:
      Parameters:
      kParseString - input sting containing per-vertex color information.
    • getConnectivity

      private void getConnectivity(String kParseString)
      Called when reading the input surface.xml file: Parses the input string into a an array of int[] to represent the mesh connectivity:
      Parameters:
      kParseString - the string containing the connectivity information
    • getNormals

      private void getNormals(String kParseString)
      Called when reading the input surface.xml file: Parses the input string into a an array of Vector3f[], representing the mesh normals:
      Parameters:
      kParseString - string containing mesh normals
    • getVertices

      private void getVertices(String kParseString)
      Called when reading the input surface.xml file: Parses the input string into a an array of Point3f[], representing the mesh vertices:
      Parameters:
      kParseString - string containing mesh coordinates