de.grogra.imp3d.edit
Class Scale

java.lang.Object
  extended by de.grogra.graph.impl.Edge
      extended by de.grogra.graph.impl.Node
          extended by de.grogra.imp.edit.ToolRoot
              extended by de.grogra.imp3d.edit.ToolRoot3D
                  extended by de.grogra.imp3d.edit.TransformTool
                      extended by de.grogra.imp3d.edit.Scale
All Implemented Interfaces:
Transformation, Manageable, PersistenceCapable, Shareable, UserFields, XObject, Disposable, Map, java.io.Serializable, java.util.EventListener

public class Scale
extends TransformTool

Scaling tool. There are three cubes for each axis. Clicking and dragging them allows to resize the object in that direction. There is a fourth cube in the center of the tool. Clicking and dragging the mouse allows to resize the object in all directions by the same amount. There is a minimum scale factor of 1% of the original size for resizing an object with one drag operation. Shrinking an object even further requires to finish the drag and start a new one. This prevents objects from disappearing unvoluntarily.

Author:
Reinhard Hemmerling
See Also:
Serialized Form

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.imp3d.edit.TransformTool
local
 
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
Scale()
           
 
Method Summary
protected  void adjustToolTransformation(Matrix4d t, CameraBase c)
          This method is invoked to compute an adjustment of the tool coordinates system.
protected  Node.NType getNTypeImpl()
          This method returns the Node.NType which describes the managed fields of the class of this node.
protected  Node newInstance()
          This method returns a new instance of the class of this node.
 
Methods inherited from class de.grogra.imp3d.edit.TransformTool
computeTargetTransformation, initialize, setTargetTransform
 
Methods inherited from class de.grogra.imp3d.edit.ToolRoot3D
adjustScale, attributeChanged, dispose, eventOccured, getAdjustment, getParentTransformation, getTargetTransformation, getToolTransformation, postTransform, preTransform
 
Methods inherited from class de.grogra.imp.edit.ToolRoot
executeWithWriteLock, getToolTarget, isTargetNode
 
Methods inherited from class de.grogra.graph.impl.Node
addEdgeBitsTo, addReference, appendBranchNode, appendBranchNode, appendReferencesTo, clone, clone, cloneGraph, dump, dumpTree, dup, dupUnmanagedFields, edgeChanged, fieldModified, findAdjacent, 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, 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, isManagingInstance, isMarked, isRoot, isSource, isTarget, manageableReadResolve, manageableWriteReplace, paramString, removeAll, removeEdgeBitsTo, removeFromChain, removeFromChain, removeReference, setBranch, setBranch, setExtentIndex, setGraphForDeserialization, setLayer, setMark, setName, setSuccessor, setSuccessor, specialEdgeAdded, specialEdgeRefModified, specialEdgeRemoved, toString, writeReplace
 
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

$TYPE

public static final Node.NType $TYPE
Constructor Detail

Scale

public Scale()
Method Detail

adjustToolTransformation

protected void adjustToolTransformation(Matrix4d t,
                                        CameraBase c)
Description copied from class: ToolRoot3D
This method is invoked to compute an adjustment of the tool coordinates system. The invoker sets 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.

Overrides:
adjustToolTransformation in class TransformTool
Parameters:
t - the tool transformation to be adjusted
c - the camera of the tool's 3D view

getNTypeImpl

protected Node.NType getNTypeImpl()
Description copied from class: Node
This method returns the Node.NType which describes the managed fields of the class of this node. This method has to be implemented in every concrete subclass.

Overrides:
getNTypeImpl in class Node
Returns:
type describing the managed fields of the class of this node

newInstance

protected Node newInstance()
Description copied from class: Node
This method returns a new instance of the class of this node. This method has to be implemented in every concrete subclass.

Overrides:
newInstance in class Node
Returns:
new instance of class of this node