Class JvxlXmlReader

All Implemented Interfaces:
VertexDataServer
Direct Known Subclasses:
JvxlReader

public class JvxlXmlReader extends VolumeFileReader
  • Field Details

    • JVXL_VERSION

      protected String JVXL_VERSION
    • surfaceDataCount

      protected int surfaceDataCount
    • edgeDataCount

      protected int edgeDataCount
    • colorDataCount

      protected int colorDataCount
    • excludedTriangleCount

      private int excludedTriangleCount
    • excludedVertexCount

      private int excludedVertexCount
    • invalidatedVertexCount

      private int invalidatedVertexCount
    • haveContourData

      protected boolean haveContourData
    • xr

      private XmlReader xr
    • isXmlFile

      protected boolean isXmlFile
    • thisInside

      protected boolean thisInside
    • tempDataXml

      String tempDataXml
    • bsVoxelBitSet

      protected javajs.util.BS bsVoxelBitSet
    • includeValueNaN

      private boolean includeValueNaN
    • valueCount

      private int valueCount
    • valueMin

      private float valueMin
    • valueRange

      private float valueRange
    • fractionPtr

      private int fractionPtr
    • colorPtr

      private int colorPtr
    • strFractionTemp

      private String strFractionTemp
    • haveReadColorData

      boolean haveReadColorData
    • jvxlColorEncodingRead

      private String jvxlColorEncodingRead
  • Constructor Details

    • JvxlXmlReader

      JvxlXmlReader()
  • Method Details

    • init2

      void init2(SurfaceGenerator sg, BufferedReader br)
      Overrides:
      init2 in class VolumeFileReader
    • init2JXR

      void init2JXR(SurfaceGenerator sg, BufferedReader br)
    • readVolumeData

      protected boolean readVolumeData(boolean isMapData)
      Overrides:
      readVolumeData in class VolumeFileReader
    • gotoAndReadVoxelData

      protected boolean gotoAndReadVoxelData(boolean isMapData)
      Overrides:
      gotoAndReadVoxelData in class SurfaceReader
    • readParameters

      protected void readParameters() throws Exception
      Specified by:
      readParameters in class VolumeFileReader
      Throws:
      Exception
    • getJVXLCutoff

      protected float getJVXLCutoff()
      Overrides:
      getJVXLCutoff in class VolumeFileReader
    • readVector

      protected void readVector(int voxelVectorIndex) throws Exception
      Throws:
      Exception
    • gotoData

      protected void gotoData(int n, int nPoints) throws Exception
      Overrides:
      gotoData in class VolumeFileReader
      Throws:
      Exception
    • jvxlSkipData

      protected void jvxlSkipData(int nPoints, boolean doSkipColorData) throws Exception
      Throws:
      Exception
    • jvxlReadSurfaceInfo

      protected void jvxlReadSurfaceInfo() throws Exception
      Throws:
      Exception
    • jvxlSetColorRanges

      protected void jvxlSetColorRanges(float dataMin, float dataMax, float red, float blue, boolean insideOut)
    • readSurfaceData

      protected void readSurfaceData(boolean isMapDataIgnored) throws Exception
      Overrides:
      readSurfaceData in class VolumeFileReader
      Throws:
      Exception
    • readSurfaceDataXML

      protected boolean readSurfaceDataXML() throws Exception
      Throws:
      Exception
    • readSurfaceDataJXR

      protected void readSurfaceDataJXR() throws Exception
      Throws:
      Exception
    • jvxlReadFractionData

      protected String jvxlReadFractionData(String type, int nPoints)
      "edge" data includes two parts -- a compressed bitset indicating exactly which edges, in order or processing by Jmol, are crossed by the surface, and a set of fractions indicating how far along that edge (good to 1 part in 8100) that surface crosses that edge. We are just reading he fractions here. "color" data comprises the corresponding sequence of data mapping values, again stored to a precision of 1 part in 8100, relative to a range of values.
      Parameters:
      type -
      nPoints -
      Returns:
      data
    • getVoxelBitSet

      protected javajs.util.BS getVoxelBitSet(int nPoints) throws Exception
      Overrides:
      getVoxelBitSet in class VolumeFileReader
      Returns:
      JVXL bitset
      Throws:
      Exception
    • getSurfacePointAndFraction

      protected float getSurfacePointAndFraction(float cutoff, boolean isCutoffAbsolute, float valueA, float valueB, javajs.util.T3 pointA, javajs.util.V3 edgeVector, int x, int y, int z, int vA, int vB, float[] fReturn, javajs.util.T3 ptReturn)
      Overrides:
      getSurfacePointAndFraction in class VolumeFileReader
    • getNextValue

      private float getNextValue()
    • setValueMinMax

      private void setValueMinMax()
    • jvxlGetNextFraction

      private float jvxlGetNextFraction(int base, int range, float fracOffset)
    • readColorData

      protected String readColorData()
      Overrides:
      readColorData in class SurfaceReader
    • getColor

      private static int getColor(String c)
    • getEncodedVertexData

      protected void getEncodedVertexData() throws Exception
      retrieve Jvxl 2.0 format vertex/triangle/edge/color data found within element
      Throws:
      Exception
    • getData

      private String getData(String sdata, String name) throws Exception
      Throws:
      Exception
    • getEncoding

      private static String getEncoding(String data)
    • jvxlDecodeVertexData

      public javajs.util.P3[] jvxlDecodeVertexData(String data, boolean asArray) throws Exception
      decode vertex data found within element as created by jvxlEncodeVertexData (see above)
      Parameters:
      data - tag and contents
      asArray - or just addVertexCopy
      Returns:
      Point3f[] if desired
      Throws:
      Exception
    • jvxlDecodeTriangleData

      void jvxlDecodeTriangleData(String tdata, String edgeData, String colorData) throws Exception
      decode triangle data found within element as created with jvxlEncodeTriangleData (see above)
      Parameters:
      tdata - tag and contents
      edgeData -
      colorData -
      Throws:
      Exception
    • jvxlDecodeContourData

      protected void jvxlDecodeContourData(JvxlData jvxlData, String data) throws Exception
      Throws:
      Exception
    • postProcessVertices

      protected void postProcessVertices()
      Overrides:
      postProcessVertices in class SurfaceReader