de.grogra.imp3d.edit
public abstract class ToolRoot3D extends ToolRoot implements Transformation, EventListener
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.Node.AccessorBridge, Node.FieldAttributeAccessor, Node.NTypeEventListener.Bicast, EventListener.Multicaster| Modifier and Type | Field and Description |
|---|---|
static Node.NType |
$TYPE |
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_BITSDEFAULT_VALUE, EMPTY_MAP| Constructor and Description |
|---|
ToolRoot3D() |
| Modifier and Type | Method and Description |
|---|---|
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. |
executeWithWriteLock, getToolTarget, isTargetNodeaddEdgeBitsTo, addReference, appendBranchNode, appendBranchNode, appendReferencesTo, clone, clone, cloneGraph, dump, dumpTree, dup, dupUnmanagedFields, edgeChanged, fieldModified, findAdjacent, findRefinementType, get, getAccessor, getAccessor, getAttributes, getAxisParent, getBoolean, getBranch, getBranchLength, getBranchNode, getBranchTail, getByte, getChar, getCommonAncestor, getCurrentGraphState, getDirectChildCount, getDouble, getEdgeAttributeAccessor, getEdgeAttributes, getEdgeBitsTo, getEdgeTo, getExtentIndex, getFirst, getFirstEdge, getFloat, getGraph, getId, getIndex, getInstantiator, getInt, getLayer, getLong, getManageableType, getName, getNeighbor, getNext, getNType, getNTypeImpl, getObject, getOrCreateEdgeTo, getOrNull, getPersistenceManager, getPredecessor, getProvider, getShort, getSource, getStamp, getSuccessor, getSymbol, getSymbolColor, getTarget, getTransaction, getUserField, getUserFieldCount, getXClass, getXData, hasName, initProvider, initXClass, insertBranchNode, insertBranchNode, instantiateGraph, isAncestorOf, isDirection, isEncoarseOf, isManagingInstance, isMarked, isRoot, isSource, isTarget, manageableReadResolve, manageableWriteReplace, newInstance, paramString, removeAll, removeEdgeBitsTo, removeFromChain, removeFromChain, removeReference, setBranch, setBranch, setExtentIndex, setGraphForDeserialization, setLayer, setMark, setName, setSuccessor, setSuccessor, specialEdgeAdded, specialEdgeRefModified, specialEdgeRemoved, toString, writeReplaceaddEdgeBits, getBitMark, getEdgeBits, getObjectMark, getSpecialEdgeDescriptor, parseEdgeKeys, remove, removeEdgeBits, setBitMark, setEdgeBits, setObjectMark, testEdgeBitsequals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetBitMark, getObjectMark, setBitMark, setObjectMarkpublic static final Node.NType $TYPE
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)
ToolRootattributeChanged in class ToolRoota - 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 Disposablepublic 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()
ToolRoot3Dprotected final Matrix4d getTargetTransformation()
ToolRoot3Dprotected final Matrix4d getToolTransformation()
ToolRoot3Dprotected boolean initialize(Tool tool)
ToolRootToolRoot.tool with the given tool.initialize in class ToolRoottool - the tool to which this tool root is associatedtrue 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)
Transformationin
to the object's post-transformation out.postTransform in interface Transformationobject - 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)
Transformationin
to the object's transformation out.preTransform in interface Transformationobject - 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