Class SceneGraphFileReader

java.lang.Object
com.sun.j3d.utils.scenegraph.io.SceneGraphFileReader

public class SceneGraphFileReader extends Object
Read Java3D BranchGraphs and/or Universe from a file. Individual branchgraphs or an entire Universe can be read and references (shared nodes and components) between the graphs are handled correctly.
  • Constructor Details

    • SceneGraphFileReader

      public SceneGraphFileReader(File file) throws IOException
      Creates new SceneGraphFileReader.
      Throws:
      IOException
  • Method Details

    • readUniverse

      public ConfiguredUniverse readUniverse(boolean attachBranchGraphs) throws IOException
      Create and return a ConfiguredUniverse with the PlatformGeometry, ViewerAvatar, and Locales saved in the file. The MultiTransformGroup between the ViewingPlatform and the View is also restored. Universe configuration information is retrieved via ConfiguredUniverse.getConfigURL().

      If the file does not contain universe information, null is returned.

      Parameters:
      attachBranchGraphs - load and attach all the branchgraphs to the universe.
      Throws:
      IOException
      See Also:
    • setClassLoader

      public void setClassLoader(ClassLoader classLoader)
      Set the ClassLoader used to load the scene graph objects and deserialize user data
    • getClassLoader

      public ClassLoader getClassLoader()
      Get the ClassLoader used to load the scene graph objects and deserialize user data
    • readUniverse

      public ConfiguredUniverse readUniverse(boolean attachBranchGraphs, Canvas3D canvas) throws IOException
      Create and return a ConfiguredUniverse with the PlatformGeometry, ViewerAvatar, and Locales saved in the file. The MultiTransformGroup between the ViewingPlatform and the View is also restored.

      If the file does not contain universe information, null is returned.

      Parameters:
      attachBranchGraphs - load and attach all the branchgraphs to the universe.
      canvas - The canvas to be associated with the Universe.
      Throws:
      IOException
    • readUserData

      public Object readUserData() throws IOException
      Get the UserData in the File header
      Throws:
      IOException
    • readDescription

      public String readDescription() throws IOException
      Get the Description of this file's contents
      Throws:
      IOException
    • getBranchGraphCount

      public int getBranchGraphCount()
      Return the number of BranchGraphs in the file
    • readBranchGraph

      public BranchGroup[] readBranchGraph(int index) throws IOException
      Read the BranchGraph at index in the file. If the graph contains references to nodes in other BranchGraphs that have not already been loaded, they will also be loaded and returned.

      The requested graph will always be the first element in the array.

      The file index of all the Graphs can be discovered using getBranchGraphPosition.

      Parameters:
      index - The index of the Graph in the file. First graph is at index 0
      Throws:
      IOException
      See Also:
    • readAllBranchGraphs

      public BranchGroup[] readAllBranchGraphs() throws IOException
      Read and return all the branchgraphs in the file
      Throws:
      IOException
    • dereferenceBranchGraph

      public void dereferenceBranchGraph(BranchGroup graph)
      Remove the IO system's reference to this branchgraph and all its nodes.

      References to all loaded graphs are maintained by the IO system in order to facilitate node and component sharing between the graphs.

      This call removes the references to graph index

      NOT CURRENTLY IMPLEMENTED

    • getBranchGraphPosition

      public int getBranchGraphPosition(BranchGroup graph)
      Given a BranchGraph that has been loaded return the index of the graph in the file. The the Branchgroup isn't found, -1 is returned.
    • readBranchGraphUserData

      public Object readBranchGraphUserData(int index) throws IOException
      Read the userdata for the branchgraph at 'index' in the file
      Parameters:
      index - the index of the graph in the file
      Throws:
      IOException
    • getNames

      public String[] getNames()
      Return the names of all the named objects
    • getNamedObject

      Return the named object.
      Parameters:
      name - The name of the object
      Throws:
      NamedObjectException - is thrown if the name is not known to the system
      ObjectNotLoadedException - is thrown if the named object has not been loaded yet
    • close

      public void close() throws IOException
      Close the file and cleanup internal data structures
      Throws:
      IOException