de.grogra.imp3d.objects
Class SceneTreeWithShader
java.lang.Object
de.grogra.imp3d.objects.SceneTree
de.grogra.imp3d.objects.SceneTreeWithShader
- All Implemented Interfaces:
- Visitor, javax.swing.tree.TreeModel
- Direct Known Subclasses:
- Tree
public abstract class SceneTreeWithShader
- extends SceneTree
This class extends SceneTree
and keeps track of the current
shader and interior. These additional parameters are stored in the
corresponding fields of the Leaf
class.
- Author:
- Ole Kniemeyer
Nested Class Summary |
static class |
SceneTreeWithShader.Leaf
This subclass of SceneTree.Leaf stores the shader
and interior which are associated with the object of the leaf. |
Fields inherited from interface de.grogra.graph.Visitor |
STOP |
Methods inherited from class de.grogra.imp3d.objects.SceneTree |
accept, acceptLeaf, addTreeModelListener, createInnerNode, createLeaf, createTree, createTree, getChild, getChildCount, getGraphState, getIndexOfChild, getRoot, isLeaf, removeTreeModelListener, valueForPathChanged, visitEnter, visitInstanceEnter, visitInstanceLeave |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
SceneTreeWithShader
public SceneTreeWithShader(GraphState gs,
EdgePattern pattern)
SceneTreeWithShader
public SceneTreeWithShader(View3D scene)
getCurrentInterior
protected Interior getCurrentInterior()
getCurrentShader
protected Shader getCurrentShader()
init
protected void init(SceneTree.Leaf leaf)
- Description copied from class:
SceneTree
- This method has to be invoked whenever a new
SceneTree.Leaf
is created
as a leaf of this tree. The tree may perform some initialization tasks
on the leaf
.
- Overrides:
init
in class SceneTree
- Parameters:
leaf
- a newly created Leaf
to be initialized
resolveShader
protected Shader resolveShader(Shader shader)
visitLeave
public boolean visitLeave(java.lang.Object o,
Path path,
boolean node)
- Description copied from interface:
Visitor
- Informs this visitor that a node or an edge has been processed
completely. The value
o
is the return value
of the corresponding invocation of Visitor.visitEnter(de.grogra.graph.Path, boolean)
.
In case of a node and if this invocation returns false
, no further
edges of the current level of hierarchy will be passed to this
visitor, i.e., the visitLeave
methods for the enclosing
edge and node will be invoked immediately.
Likewise, in case of an edge and a return value false
, no further
instantiations or edges of the current level of hierarchy
will be passed to this
visitor, i.e., the visitLeave
method for the enclosing
node will be invoked immediately.
- Specified by:
visitLeave
in interface Visitor
- Overrides:
visitLeave
in class SceneTree
- Parameters:
o
- returned value of visitEnter
path
- current path to node
node
- do we leave a node or an edge?
- Returns:
true
iff processing of current level shall be continued