de.grogra.turtle
Class Rotate

java.lang.Object
  extended by de.grogra.graph.impl.Edge
      extended by de.grogra.graph.impl.Node
          extended by de.grogra.turtle.Rotate
All Implemented Interfaces:
Transformation, Manageable, PersistenceCapable, Shareable, UserFields, XObject, Map, java.io.Serializable

public class Rotate
extends Node
implements Transformation

A Rotate node rotates the local coordinate system by rotateX degrees about the local x-axis, then by rotateY degrees about the local y-axis, then by rotateZ degrees about the local z-axis.
This class declares the predicate Rotate.Pattern to allow one to write Rotate(x,y,z) in a pattern of an XL query.

Author:
Ole Kniemeyer
See Also:
Serialized Form

Nested Class Summary
static class Rotate.Pattern
           
 
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 rotateX
          The rotation angle about the x-axis in degrees.
static Node.NType.Field rotateX$FIELD
           
 float rotateY
          The rotation angle about the y-axis in degrees.
static Node.NType.Field rotateY$FIELD
           
 float rotateZ
          The rotation angle about the z-axis in degrees.
static Node.NType.Field rotateZ$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
Rotate()
          Creates a new Rotate node whose angles are set to zero.
Rotate(float rotateX, float rotateY, float rotateZ)
          Create a new Rotate node which rotates according to the specified values.
 
Method Summary
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.
 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.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

rotateX

public float rotateX
The rotation angle about the x-axis in degrees.


rotateX$FIELD

public static final Node.NType.Field rotateX$FIELD

rotateY

public float rotateY
The rotation angle about the y-axis in degrees.


rotateY$FIELD

public static final Node.NType.Field rotateY$FIELD

rotateZ

public float rotateZ
The rotation angle about the z-axis in degrees.


rotateZ$FIELD

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

Rotate

public Rotate()
Creates a new Rotate node whose angles are set to zero.


Rotate

public Rotate(float rotateX,
              float rotateY,
              float rotateZ)
Create a new Rotate node which rotates according to the specified values.

Parameters:
rotateX - rotation angle about x-axis in degrees
rotateY - rotation angle about y-axis in degrees
rotateZ - rotation angle about z-axis in degrees
Method Detail

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

postTransform

public void postTransform(java.lang.Object object,
                          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:
object - 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 object,
                         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:
object - 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