JavaView© v3.95.000

vgp.tutor.loader
Class PgAbcLoader

java.lang.Object
  extended byvgp.tutor.loader.PgAbcLoader
All Implemented Interfaces:
PgLoaderIf

public class PgAbcLoader
extends java.lang.Object
implements PgLoaderIf

Loader for geometry files given in a user defined file format.

In JavaView the file name convention is that Abc is replaced with a user defined file name extension of three characters.


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
PgAbcLoader()
           
 
Method Summary
 PgJvxSrc[][] getAnimations()
          Retrieve the previously loaded animations.
 PvDisplayOption getDisplayOption()
          Get display options which some parsers and geometry file formats supply.
 int getFirstVertexIndex()
          Vertices are assigned an index starting at the given value.
 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 an ABC geometry file and return an array of new geometries.
 PgJvxSrc[] read(java.io.BufferedReader in)
          Read an ABC geometry file and return an array of new geometries.
 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 setFirstVertexIndex(int index)
          Vertices are assigned an index starting at the given value.
 void setGeometryOption(java.util.BitSet option)
          Set the geometry options which indicate which parts of a geometry shall be saved.
 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

PgAbcLoader

public PgAbcLoader()
Method Detail

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)

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 menetioned. 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)

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

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)

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)

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 geometies, 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.
Since:
JavaView 2.53
See Also:
getGeometries()

load

public boolean load(java.io.BufferedReader in)
Read an ABC geometry file and return an array of new geometries.

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()

read

public PgJvxSrc[] read(java.io.BufferedReader in)
Read an ABC 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 [])

getFirstVertexIndex

public int getFirstVertexIndex()
Vertices are assigned an index starting at the given value. Default index counting starts at 0. For example, OBJ, OFF and JVX use index counting [0, numOfVertices-1] while BUY use indices in the range [1, numOfVertices].

The faces of a mesh are defined by referencing the vertices of a face by their index.

Returns:
index of first vertex
Since:
JavaView 2.81.000

setFirstVertexIndex

public void setFirstVertexIndex(int index)
Vertices are assigned an index starting at the given value. Default index counting starts at 0. For example, OBJ, OFF and JVX use index counting [0, numOfVertices-1] while BUY use indices in the range [1, numOfVertices].

The faces of a mesh are defined by referencing the vertices of a face by their index.

Parameters:
index - index of first vertex
Since:
JavaView 2.81.000

JavaView© v3.95.000

The software JavaView© is copyright protected. All Rights Reserved.