Class SoLDMReader

  • All Implemented Interfaces:
    SafeDisposable
    Direct Known Subclasses:
    SoVRLdmFileReader

    public class SoLDMReader
    extends SoVolumeReader
    Base class for LDM data set readers. This is the base class for specific LDM readers.

    See SoVRLdmFileReader for a specific implementation.

    This class retrieves the XML tags from an LDM header file (usually a .ldm file) that are general to all LDM files, i.e. the tags that are interpreted by VolumeViz.

    Custom tags for classes derived from SoLDMReader can be retrieved by overriding the handleHeader method.

    General tags common for all LDM Readers are:

     <?xml version="1.0" encoding="utf-8" ?>
     <VolumeInformation>
       <OriginalFile>3dhead.vol</OriginalFile>
       <Size> //or dimension//
         <U>256</U>
         <V>256</V>
         <W>109</W>
       </Size>
       <TileSize>
         <U>64</U>
         <V>64</V>
         <W>64</W>
       </TileSize>
       <DataType>
          <Type>n</Type><Num>m</Num>
          ...
       <DataType>
       <DataFilename>3DHEAD.dat</DataFilename>//separate datafile//
       <WordFormat>1</WordFormat>//data stored in little/big endian//
       <CompletionFilename>3dhead.fcp</CompletionFilename>//if the conversion was interrupted, refer to this file
     
       <RectilinearMapping>
        <mapping axis="U">
         <map>-180</map>
         <map>-160</map>
         ... one entry per voxel on U axis
        </mapping>
         ... repeat for V, W axis
       </RectilinearMapping>
    Note that the minimum tags that MUST be in the LDM header are <Size> or <Dimension> and <TileSize>. Otherwise the reader will throw a "tag missing" exception.
    • Constructor Detail

      • SoLDMReader

        public SoLDMReader()
        Constructor.
    • Method Detail

      • getCenter

        public SbVec3f getCenter​(int fileId)
        Returns the center of the data associated with the specified file ID. If returns false, not supported.
      • getSize

        public SbBox3f getSize()
        Returns the bounding box of the total data in world coordinates.
      • getBbox

        public SbBox3f getBbox​(int fileId)
        Returns the bounding box of the data associated with the specified file ID. The file ID corresponds to the tile ID in an LDM data file. If returns false, not supported.
      • getXmlTag

        public SbXmlTag getXmlTag​(java.lang.String tagName)
        Gets the first occurrence of the XML element whose tag name is specified by tagName. Then the associated value or subtags can be fetched using the SbXmlElement methods. Custom XML tags can be added to the LDM header file by using the method SoLDMConverter.setXmlCallback().
      • getDimension

        public SbVec3i32 getDimension()
        Returns the dimension of the data.
      • isLittleEndian

        public boolean isLittleEndian()
        Returns whether the bytes of the data are stored in big or little endian order. The order is little endian if the function returns true.