de.grogra.turtle
Class Rotation

java.lang.Object
  extended by de.grogra.graph.impl.Edge
      extended by de.grogra.graph.impl.Node
          extended by de.grogra.turtle.Rotation
All Implemented Interfaces:
Transformation, Manageable, PersistenceCapable, Shareable, UserFields, XObject, Map, java.io.Serializable
Direct Known Subclasses:
RH, RL, URotation

public abstract class Rotation
extends Node
implements Transformation

This class is the base class for rotations about one of the coordinate axes. The rotation angle is specified in degrees.

Author:
Ole Kniemeyer
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.Map
Map.Chain
 
Field Summary
static Node.NType $TYPE
           
 float angle
          The rotation angle in degrees.
static Node.NType.Field angle$FIELD
           
 
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
Rotation()
           
Rotation(float angle)
           
 
Method Summary
 float getAngle()
           
 void postTransform(java.lang.Object node, 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 node, boolean asNode, Matrix4d in, Matrix4d out, GraphState gs)
          Implements the change from the parent's post-transformation in to the object's transformation out.
 void setAngle(float angle)
           
protected abstract  void transform(double cos, double sin, Matrix4d in, Matrix4d out)
           
 
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, 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, 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, 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

angle

public float angle
The rotation angle in degrees.


angle$FIELD

public static final Node.NType.Field angle$FIELD
Constructor Detail

Rotation

public Rotation()

Rotation

public Rotation(float angle)
Method Detail

getAngle

public float getAngle()

postTransform

public void postTransform(java.lang.Object node,
                          boolean asNode,
                          Matrix4d in,
                          Matrix4d out,
                          Matrix4d pre,
                          GraphState gs)
Description copied from interface: Transformation
Implements the change from object's transformation in to the object's post-transformation out.

Specified by:
postTransform in interface Transformation
Parameters:
node - the object for which the transformation is computed
asNode - is object a node or an edge?
in - the transformation of the object
out - the post-tranformation of the object to be computed
pre - the post-transformation of the object's parent
gs - the graph state in which the computation has to be done

preTransform

public void preTransform(java.lang.Object node,
                         boolean asNode,
                         Matrix4d in,
                         Matrix4d out,
                         GraphState gs)
Description copied from interface: Transformation
Implements the change from the parent's post-transformation in to the object's transformation out.

Specified by:
preTransform in interface Transformation
Parameters:
node - the object for which the transformation is computed
asNode - is object a node or an edge?
in - the post-transformation of the object's parent
out - the tranformation of the object to be computed
gs - the graph state in which the computation has to be done

setAngle

public void setAngle(float angle)

transform

protected abstract void transform(double cos,
                                  double sin,
                                  Matrix4d in,
                                  Matrix4d out)