|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object de.grogra.graph.impl.Edge de.grogra.graph.impl.Node de.grogra.imp.edit.ToolRoot de.grogra.imp3d.edit.ToolRoot3D
public abstract class ToolRoot3D
This class is the base class for roots of tool graphs which manipulate 3D objects (the latter are called tool targets). It defines three coordinate systems:
computeTargetTransformation(Matrix4d, Matrix4d)
based
on the global transformation of the parent coordinate system.
Transformation
such that its local coordinates correspond to the tool coordinate system.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class de.grogra.graph.impl.Node |
---|
Node.AccessorBridge, Node.FieldAttributeAccessor, Node.NType |
Nested classes/interfaces inherited from interface de.grogra.util.EventListener |
---|
EventListener.Bicast, EventListener.Multicaster |
Nested classes/interfaces inherited from interface de.grogra.util.Map |
---|
Map.Chain |
Field Summary | |
---|---|
static Node.NType |
$TYPE
|
Fields inherited from class de.grogra.imp.edit.ToolRoot |
---|
tool |
Fields inherited from class de.grogra.graph.impl.Node |
---|
ADDITIONAL_FIELDS, bits, DELETED, EXTENT_BIT, EXTENT_MASK, extentIndex$FIELD, extentTail$FIELD, HAS_OBSERVERS, IS_INTERPRETIVE, isInterpretive$FIELD, LAST_EXTENT_INDEX, layer$FIELD, MARK, mark$FIELD, MIME_TYPE, MIN_UNUSED_SPECIAL_OF_SOURCE, MIN_UNUSED_SPECIAL_OF_TARGET, name$FIELD, USED_BITS |
Fields inherited from interface de.grogra.util.Map |
---|
DEFAULT_VALUE, EMPTY_MAP |
Constructor Summary | |
---|---|
ToolRoot3D()
|
Method Summary | |
---|---|
protected static void |
adjustScale(Matrix4d t,
CameraBase c,
float scale)
|
protected void |
adjustToolTransformation(Matrix4d t,
CameraBase c)
This method is invoked to compute an adjustment of the tool coordinates system. |
protected void |
attributeChanged(Attribute[] a)
This method is invoked to notify the tool root about modifications of attributes of the tool target. |
protected abstract void |
computeTargetTransformation(Matrix4d t,
Matrix4d parent)
This method is invoked to compute the transformation matrix from target coordinates to world coordinates, based on the transformation matrix from parent coordinates to world coordinates. |
void |
dispose()
|
void |
eventOccured(java.util.EventObject e)
This method implements the EventListener -interface. |
protected Matrix4d |
getAdjustment()
This method returns the adjustment matrix from tool coordinates to target coordinates. |
protected Matrix4d |
getParentTransformation()
This method returns the transformation matrix from parent coordinates to world coordinates. |
protected Matrix4d |
getTargetTransformation()
This method returns the transformation matrix from target coordinates to world coordinates. |
protected Matrix4d |
getToolTransformation()
This method returns the transformation matrix from tool coordinates to world coordinates. |
protected boolean |
initialize(Tool tool)
Initializes this tool root. |
void |
postTransform(java.lang.Object object,
boolean asNode,
Matrix4d in,
Matrix4d out,
Matrix4d pre,
GraphState gs)
Implements the change from object's transformation in
to the object's post-transformation out . |
void |
preTransform(java.lang.Object object,
boolean asNode,
Matrix4d in,
Matrix4d out,
GraphState gs)
Implements the change from the parent's post-transformation in
to the object's transformation out . |
Methods inherited from class de.grogra.imp.edit.ToolRoot |
---|
executeWithWriteLock, getToolTarget, isTargetNode |
Methods inherited from class de.grogra.graph.impl.Edge |
---|
addEdgeBits, getBitMark, getEdgeBits, getObjectMark, getSpecialEdgeDescriptor, parseEdgeKeys, remove, removeEdgeBits, setBitMark, setEdgeBits, setObjectMark, testEdgeBits |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface de.grogra.persistence.PersistenceCapable |
---|
getBitMark, getObjectMark, setBitMark, setObjectMark |
Field Detail |
---|
public static final Node.NType $TYPE
Constructor Detail |
---|
public ToolRoot3D()
Method Detail |
---|
protected static final void adjustScale(Matrix4d t, CameraBase c, float scale)
protected void adjustToolTransformation(Matrix4d t, CameraBase c)
t
to the
transformation matrix from target coordinates to world
coordinates. Implementations of this method may adjust
t
, e.g., they may set a certain scaling factor
between tool coordinates and camera coordinates in order to
ensure a fixed size of tool nodes on the 3D view.
t
- the tool transformation to be adjustedc
- the camera of the tool's 3D viewprotected void attributeChanged(Attribute[] a)
ToolRoot
attributeChanged
in class ToolRoot
a
- an array of attributes which have changedprotected abstract void computeTargetTransformation(Matrix4d t, Matrix4d parent)
t
- the computed matrix has to be placed in hereparent
- the global transformation of parent coordinatespublic void dispose()
dispose
in interface Disposable
public void eventOccured(java.util.EventObject e)
EventListener
-interface.
If this method is overriden, it has to be invoked by the
overriding method.
e
- an eventprotected final Matrix4d getAdjustment()
protected final Matrix4d getParentTransformation()
ToolRoot3D
protected final Matrix4d getTargetTransformation()
ToolRoot3D
protected final Matrix4d getToolTransformation()
ToolRoot3D
protected boolean initialize(Tool tool)
ToolRoot
ToolRoot.tool
with the given tool
.
initialize
in class ToolRoot
tool
- the tool to which this tool root is associated
true
if this tool root actually shall be used
for the tool, false
if it shall not be used (e.g., if
the actual tool target cannot be manipulated by the tool graph
of this tool root).public void postTransform(java.lang.Object object, boolean asNode, Matrix4d in, Matrix4d out, Matrix4d pre, GraphState gs)
Transformation
in
to the object's post-transformation out
.
postTransform
in interface Transformation
object
- the object for which the transformation is computedasNode
- is object
a node or an edge?in
- the transformation of the objectout
- the post-tranformation of the object to be computedpre
- the post-transformation of the object's parentgs
- the graph state in which the computation has to be donepublic void preTransform(java.lang.Object object, boolean asNode, Matrix4d in, Matrix4d out, GraphState gs)
Transformation
in
to the object's transformation out
.
preTransform
in interface Transformation
object
- the object for which the transformation is computedasNode
- is object
a node or an edge?in
- the post-transformation of the object's parentout
- the tranformation of the object to be computedgs
- the graph state in which the computation has to be done
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |