de.grogra.ext.x3d
Class X3DExport

java.lang.Object
  extended by de.grogra.pf.io.FilterBase
      extended by de.grogra.imp3d.io.SceneGraphExport
          extended by de.grogra.ext.x3d.X3DExport
All Implemented Interfaces:
SceneTree.Visitor, FileWriterSource, Filter, FilterSource, RegistryContext, Map
Direct Known Subclasses:
ClassicVRMLExport, VRML97Export

public class X3DExport
extends SceneGraphExport
implements FileWriterSource


Nested Class Summary
 
Nested classes/interfaces inherited from class de.grogra.imp3d.io.SceneGraphExport
SceneGraphExport.NodeExport, SceneGraphExport.ObjectExport
 
Nested classes/interfaces inherited from interface de.grogra.pf.io.FilterSource
FilterSource.MetaDataKey<V>
 
Nested classes/interfaces inherited from interface de.grogra.util.Map
Map.Chain
 
Field Summary
protected  java.lang.String TRANSFORMERFACTORY_JAVA
           
protected  java.lang.String TRANSFORMERFACTORY_XALAN
           
protected  java.lang.String XSLT_PATH_X3D_TO_VRML_CLASSIC
           
protected  java.lang.String XSLT_PATH_X3D_TO_VRML97
           
 
Fields inherited from class de.grogra.imp3d.io.SceneGraphExport
files
 
Fields inherited from class de.grogra.pf.io.FilterBase
item, source
 
Fields inherited from interface de.grogra.pf.io.FilterSource
AUTO_PROGRESS, DESTINATION_FILE, DESTINATION_URL
 
Fields inherited from interface de.grogra.util.Map
DEFAULT_VALUE, EMPTY_MAP
 
Constructor Summary
X3DExport(FilterItem item, FilterSource source)
           
 
Method Summary
protected  void beginGroup(SceneTree.InnerNode group)
          This method is invoked at the beginning of every inner node group which has more than one child.
protected  SceneTree createSceneTree(View3D scene)
          The implementation of this method creates the scene tree which is to be exported by this export.
protected  void endGroup(SceneTree.InnerNode group)
          This method is invoked at the end of every inner node group which has more than one child.
 java.lang.String getDirectory()
          This method returns the base directory within SceneGraphExport.getFileSystem() to use for the export.
 SceneGraphExport.NodeExport getExportFor(java.lang.Object object, boolean asNode)
          This method is used to obtain an instance of NodeExport capable of exporting the object of a SceneTree.Leaf.
 java.lang.Object getFile(java.lang.String name)
          This method creates a file in SceneGraphExport.getDirectory().
 de.grogra.ext.x3d.xmlbeans.TransformDocument.Transform getLastTransform()
           
 java.io.File getOutFile()
           
 de.grogra.ext.x3d.xmlbeans.SceneDocument.Scene getScene()
           
 void increaseProgress()
           
 void write(java.io.File out)
          This method writes the data to out.
 
Methods inherited from class de.grogra.imp3d.io.SceneGraphExport
export, export, getExportForObject, getFiles, getFileSystem, getGraphState, getOutputStream, getPath, getPath, getView, initDirectory, initFileSystem, visit, visitEnter, visitLeave, write
 
Methods inherited from class de.grogra.pf.io.FilterBase
get, getFilter, getFlavor, getImpl, getMetaData, getRegistry, getSource, getSystemId, initProgressMonitor, setFlavor, setMetaData, setMetaData, setProgress, setSystemId, toString, toURL
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface de.grogra.pf.io.FilterSource
getFilter, getFlavor, getMetaData, getSystemId, initProgressMonitor, setMetaData, setProgress
 
Methods inherited from interface de.grogra.pf.registry.RegistryContext
getRegistry
 

Field Detail

TRANSFORMERFACTORY_JAVA

protected final java.lang.String TRANSFORMERFACTORY_JAVA
See Also:
Constant Field Values

TRANSFORMERFACTORY_XALAN

protected final java.lang.String TRANSFORMERFACTORY_XALAN
See Also:
Constant Field Values

XSLT_PATH_X3D_TO_VRML_CLASSIC

protected final java.lang.String XSLT_PATH_X3D_TO_VRML_CLASSIC

XSLT_PATH_X3D_TO_VRML97

protected final java.lang.String XSLT_PATH_X3D_TO_VRML97
Constructor Detail

X3DExport

public X3DExport(FilterItem item,
                 FilterSource source)
Method Detail

beginGroup

protected void beginGroup(SceneTree.InnerNode group)
                   throws java.io.IOException
Description copied from class: SceneGraphExport
This method is invoked at the beginning of every inner node group which has more than one child. Its children will be processed until the corresponding method SceneGraphExport.endGroup(de.grogra.imp3d.objects.SceneTree.InnerNode) is invoked. The export should write the hierarchy and transformation information of the group.

Specified by:
beginGroup in class SceneGraphExport
Parameters:
group - the group
Throws:
java.io.IOException

createSceneTree

protected SceneTree createSceneTree(View3D scene)
Description copied from class: SceneGraphExport
The implementation of this method creates the scene tree which is to be exported by this export.

Specified by:
createSceneTree in class SceneGraphExport
Parameters:
scene - the view which defines the scene to export
Returns:
scene tree for the view

endGroup

protected void endGroup(SceneTree.InnerNode group)
                 throws java.io.IOException
Description copied from class: SceneGraphExport
This method is invoked at the end of every inner node group which has more than one child. Its children have been processed completely.

Specified by:
endGroup in class SceneGraphExport
Parameters:
group - the group
Throws:
java.io.IOException
See Also:
SceneGraphExport.beginGroup(de.grogra.imp3d.objects.SceneTree.InnerNode)

getDirectory

public java.lang.String getDirectory()
Description copied from class: SceneGraphExport
This method returns the base directory within SceneGraphExport.getFileSystem() to use for the export. On first invocation, the directory is obtained from SceneGraphExport.initDirectory().

Overrides:
getDirectory in class SceneGraphExport
Returns:
directory to use for export

getExportFor

public SceneGraphExport.NodeExport getExportFor(java.lang.Object object,
                                                boolean asNode)
Description copied from class: SceneGraphExport
This method is used to obtain an instance of NodeExport capable of exporting the object of a SceneTree.Leaf. If no such export is defined, null is returned.

This implementation looks for an export defined in the registry: As name, the name of the class of object is chosen, the export is searched as a child of FilterBase.item.

Overrides:
getExportFor in class SceneGraphExport
Parameters:
object - object of the original scene graph
asNode - is object a node or an edge?
Returns:
suitable export for the object or null

getFile

public java.lang.Object getFile(java.lang.String name)
                         throws java.io.IOException
Description copied from class: SceneGraphExport
This method creates a file in SceneGraphExport.getDirectory(). The file name is based ob name: E.g., if name is test.png, the actual name could be something like test123.png. It is ensured that no file will be returned twice during a single export.

Overrides:
getFile in class SceneGraphExport
Parameters:
name - name for file
Returns:
file
Throws:
java.io.IOException

getLastTransform

public de.grogra.ext.x3d.xmlbeans.TransformDocument.Transform getLastTransform()

getOutFile

public java.io.File getOutFile()

getScene

public de.grogra.ext.x3d.xmlbeans.SceneDocument.Scene getScene()

increaseProgress

public void increaseProgress()

write

public void write(java.io.File out)
           throws java.io.IOException
Description copied from interface: FileWriterSource
This method writes the data to out.

Specified by:
write in interface FileWriterSource
Parameters:
out - the file to which data is written
Throws:
java.io.IOException