jv.loader

## Class PgAbstractLoader

- java.lang.Object
- - jv.loader.PgAbstractLoader

- All Implemented Interfaces:
    PgLoaderIf
  Direct Known Subclasses:
    PgAbcLoader, PgAnsLoader, PgBdLoader, PgByuLoader, PgDxfLoader, PgFeLoader, PgJvfLoader, PgJvxLoader, PgMaLoader, PgMapleLoader, PgMathLoader, PgObjLoader, PgOffLoader, PgPdfLoader, PgPlyLoader, PgPovLoader, PgStlbLoader, PgStlLoader, PgU3dLoader, PgWrlLoader, PgXyzLoader

      public class PgAbstractLoader
      extends java.lang.Object
      implements PgLoaderIf

  Abstract loader for geometry files implements basic functionality of PgLoaderIf interface. This class simplifies writing of loader by simple subclassing and only implementing the parse and write methods.
  Author:
    Konrad Polthier
  Version:
    21.03.10, 1.00 created (kp) Based on PgBuyLoader.

- - ### Field Summary

    - ### Fields inherited from interface jv.loader.PgLoaderIf

      `GEOM_DATA_AUTHOR, GEOM_DATA_COLORS, GEOM_DATA_HEADER, GEOM_DATA_INFO, GEOM_DATA_NORMALS, GEOM_DATA_TEXTURE, GEOM_DATA_VECTORS`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PgAbstractLoader()` Constructor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `PgJvxSrc[][]` | `getAnimations()` Retrieve the previously loaded animations.
    `PvDisplayOption` | `getDisplayOption()` Get display options which some parsers and geometry file formats supply.
    `PgJvxSrc[]` | `getGeometries()` Retrieve the previously loaded geometries.
    `PgGeometryIf[]` | `getSpecializedGeometries()` Currently, this method always returns `null`.
    `boolean` | `isAnimation()` Determine if currently loaded data is an animation.
    `boolean` | `isEnabledOptimization()` Determines if the loaded geometry requires some optimization.
    `boolean` | `load(java.io.BufferedReader in)` Read a geometry file containing a set of geometries or animations.
    `PgJvxSrc[]` | `read(java.io.BufferedReader in)` Read a geometry file and return an array of new geometries.
    `PgJvxSrc[]` | `read(java.io.DataInputStream inReader)` Read an array of geometries from a binary input stream.
    `void` | `setAnimation(boolean flag)` Set flag whether current geometry data is an animation.
    `void` | `setDisplayOption(PvDisplayOption option)` Set the display options to be saved within the geometry file.
    `void` | `setGeometryOption(java.util.BitSet option)` Set the geometry options which indicate which parts of a geometry shall be saved.
    `boolean` | `write(java.io.DataOutputStream outWriter, PgJvxSrc[] geomArr)` Write an array of geometries into a binary output stream writer.
    `boolean` | `write(java.io.Writer writer, PgJvxSrc[] geomArr)` Write an array of geometries into an output stream writer.

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### PgAbstractLoader

          public PgAbstractLoader()

      Constructor.

  - ### Method Detail

    - #### isEnabledOptimization

          public boolean isEnabledOptimization()

      Determines if the loaded geometry requires some optimization. The method in this class prohibits optimization and always returns false.

      For example, some file formats do not store a connected mesh but provide individual vertices for each face every time the face is mentioned. In this case, a loader manager may identify equal vertices.

      A similar method in the loader manager PgLoader may override the individual settings of each loader.

      Specified by:
        `isEnabledOptimization` in interface `PgLoaderIf`
      Returns:
        `true` if loader is enabled for optimization.
      Since:
        JavaView 2.99.018
      See Also:
        `PgLoader.isEnabledOptimization()`, `PgLoader.setEnabledOptimization(boolean)`
      Version:
        06.10.03, 1.00 created (kp)

    - #### setGeometryOption

          public void setGeometryOption(java.util.BitSet option)

      Set the geometry options which indicate which parts of a geometry shall be saved. This method must be called before writing the geometry. Note, not all geometry file formats support geometry options.
      Specified by:
        `setGeometryOption` in interface `PgLoaderIf`
      Since:
        JavaView 2.68.000
      Version:
        19.04.03, 1.00 created (kp)

    - #### getDisplayOption

          public PvDisplayOption getDisplayOption()

      Get display options which some parsers and geometry file formats supply. This geometry file format does not support loading/saving of display options.
      Specified by:
        `getDisplayOption` in interface `PgLoaderIf`
      See Also:
        `PgLoaderIf.load(BufferedReader)`

    - #### setDisplayOption

          public void setDisplayOption(PvDisplayOption option)

      Set the display options to be saved within the geometry file. This method must be called before writing the geometry. This geometry file format does not support loading/saving of display options.
      Specified by:
        `setDisplayOption` in interface `PgLoaderIf`

    - #### isAnimation

          public boolean isAnimation()

      Determine if currently loaded data is an animation.

      This method may be called after successful parsing an input stream with the method `load(BufferedReader)`.

      Specified by:
        `isAnimation` in interface `PgLoaderIf`
      Returns:
        `true` if loaded data is an animation.
      See Also:
        `load(BufferedReader)`

    - #### setAnimation

          public void setAnimation(boolean flag)

      Set flag whether current geometry data is an animation.
      Specified by:
        `setAnimation` in interface `PgLoaderIf`
      Parameters:
        `flag` - `true` if loaded data is an animation.

    - #### getAnimations

          public PgJvxSrc[][] getAnimations()

      Retrieve the previously loaded animations.

      This method may be called after successful parsing an input stream with the method `load(BufferedReader)` and if `isAnimation()` returns `true`.

      Specified by:
        `getAnimations` in interface `PgLoaderIf`
      Returns:
        Double array of JVX geometries.
      See Also:
        `load(BufferedReader)`
      Author:
        Konrad Polthier
      Version:
        21.08.02, 1.00 created (kp)

    - #### getGeometries

          public PgJvxSrc[] getGeometries()

      Retrieve the previously loaded geometries.

      This method may be called after successful parsing an input stream with the method `load(BufferedReader)` and if `isAnimation()` returns `false`.

      Specified by:
        `getGeometries` in interface `PgLoaderIf`
      Returns:
        Array of JVX geometries.
      See Also:
        `load(BufferedReader)`
      Author:
        Konrad Polthier
      Version:
        21.08.02, 1.00 created (kp)

    - #### getSpecializedGeometries

          public PgGeometryIf[] getSpecializedGeometries()

      Currently, this method always returns `null`.

      Return the loaded geometry in a more specialized class. This method allows a loader to return a geometry class which best fits the data found in a geometry file.

      The loader manager `jv.loader.PgLoader` in JavaView will first check if a loader returns specialized geometries, and if not, check for a data supplied in a container class PgJvxSrc.

      This method may be called after successful parsing an input stream with the method `load(BufferedReader)` and if `isAnimation()` returns `false`.

      Specified by:
        `getSpecializedGeometries` in interface `PgLoaderIf`
      Returns:
        Array of geometries whose actual class type may vary between loaders.
      See Also:
        `getGeometries()`
      Author:
        Konrad Polthier
      Version:
        25.03.04, 1.00 created (kp)

    - #### load

          public boolean load(java.io.BufferedReader in)

      Read a geometry file containing a set of geometries or animations.

      After successful parsing retrieve the loaded geometries or animations using the methods `getGeometries()` respectively `getAnimations()` depending on the return value of the method `isAnimation()`.

      Specified by:
        `load` in interface `PgLoaderIf`
      Parameters:
        `in` - BufferedReader to read textual data from.
      Returns:
        `true` if parsing was successfull.
      See Also:
        `getAnimations()`, `getGeometries()`, `isAnimation()`
      Author:
        Konrad Polthier
      Version:
        21.08.02, 1.00 created (kp)

    - #### read

          public PgJvxSrc[] read(java.io.BufferedReader in)

      Read a geometry file and return an array of new geometries.

      The returned array of geometry may contain keyframes of an animation. This is checked with the method `isAnimation()`.

      Alternatively, one may call load(BuffereredReader) followed by getGeometries() resp. getAnimations() to have a finer control about which information one wants to use from a source. For example, optional display information must be retrieve by a subsequent call getDisplayOption() if available.

      Specified by:
        `read` in interface `PgLoaderIf`
      Parameters:
        `in` - BufferedReader to read textual data from.
      Returns:
        Array of JVX geometries.
      See Also:
        `write(Writer, PgJvxSrc [])`
      Author:
        Konrad Polthier
      Version:
        10.06.01, 1.00 revised (kp)
        10.06.01, 1.00 created (kp)

    - #### read

          public PgJvxSrc[] read(java.io.DataInputStream inReader)

      Read an array of geometries from a binary input stream.
      Parameters:
        `inReader` - Provides all data to this stream
      Returns:
        set of loaded geometries on success.
      Since:
        JavaView 3.99.061
      See Also:
        `load(BufferedReader)`, `write(Writer, PgJvxSrc [])`
      Version:
        21.03.10, 1.00 created (kp)

    - #### write

          public boolean write(java.io.Writer writer,
                               PgJvxSrc[] geomArr)
                        throws java.io.IOException

      Write an array of geometries into an output stream writer.
      Specified by:
        `write` in interface `PgLoaderIf`
      Parameters:
        `writer` - Write all data to this stream
        `geomArr` - Array with geometries to save
      Returns:
        `true` on success.
      Throws:
        `java.io.IOException`
      See Also:
        `read(BufferedReader)`, `write(DataOutputStream, PgJvxSrc [])`
      Version:
        22.03.10, 1.10 revised (kp) Method body added.
        10.06.01, 1.00 created (kp)

    - #### write

          public boolean write(java.io.DataOutputStream outWriter,
                               PgJvxSrc[] geomArr)
                        throws java.io.IOException

      Write an array of geometries into a binary output stream writer.
      Specified by:
        `write` in interface `PgLoaderIf`
      Parameters:
        `outWriter` - Write all data to this stream
        `geomArr` - Array with geometries to save
      Returns:
        `true` on success.
      Throws:
        `java.io.IOException`
      See Also:
        `read(BufferedReader)`, `read(DataInputStream)`, `write(Writer, PgJvxSrc [])`
      Version:
        30.04.06, 1.00 created (kp)

"

The software JavaView? is copyright protected. All Rights Reserved.
"