de.grogra.turtle
Class F

java.lang.Object
  extended by de.grogra.graph.impl.Edge
      extended by de.grogra.graph.impl.Node
          extended by de.grogra.imp3d.objects.Null
              extended by de.grogra.imp3d.objects.ShadedNull
                  extended by de.grogra.imp3d.objects.AxisBase
                      extended by de.grogra.turtle.TurtleStep
                          extended by de.grogra.turtle.Shoot
                              extended by de.grogra.turtle.F
All Implemented Interfaces:
Transformation, VertexSequence.Vertex, Manageable, PersistenceCapable, Shareable, UserFields, XObject, TurtleModifier, Map, java.io.Serializable
Direct Known Subclasses:
DTGShoot, MTGNode

public class F
extends Shoot

The turtle command F(x) represents a cylinder along the local z-direction. In addition, this command translates the local coordinate system along the axis of the cylinder such that the origin of the children's coordinate system coincides with the center of the cylinder's top.
The diameter of the cylinder is diameter, if this value is non-negative, otherwise it is taken from the field localDiameter of the current TurtleState. The shader of the cylinder is defined by the color, if this value is non-negative, otherwise it is taken from the the current TurtleState. The length of the axis is defined by length.
This corresponds to the turtle command F(x) of the GROGRA software.

Author:
Ole Kniemeyer
See Also:
Serialized Form

Nested Class Summary
static class F.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
           
 int color
           
static Node.NType.Field color$FIELD
           
 float diameter
           
static Node.NType.Field diameter$FIELD
           
 float length
           
static Node.NType.Field length$FIELD
           
 
Fields inherited from class de.grogra.turtle.Shoot
localRegisters$FIELD
 
Fields inherited from class de.grogra.imp3d.objects.AxisBase
SCALE_V_MASK, scaleV$FIELD, USED_BITS
 
Fields inherited from class de.grogra.imp3d.objects.ShadedNull
INFINITE_MASK, interior, interior$FIELD, shader, shader$FIELD, treatedAsInfinite$FIELD
 
Fields inherited from class de.grogra.imp3d.objects.Null
transform, transform$FIELD, TRANSFORMING_MASK, transforming$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
 
Fields inherited from interface de.grogra.util.Map
DEFAULT_VALUE, EMPTY_MAP
 
Constructor Summary
F()
           
F(float argument)
           
F(float length, float diameter)
           
F(float length, float diameter, int color)
           
 
Method Summary
protected  float getFloat(FloatAttribute a, GraphState gs)
           
protected  int getInt(IntAttribute a, GraphState gs)
           
 float getLength(java.lang.Object node, GraphState gs)
           
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.turtle.Shoot
execute, getBoolean, getLocalRegisters, getObject, getSymbolColor, getVertexTransformation, setLocalRegisters
 
Methods inherited from class de.grogra.turtle.TurtleStep
getDouble, postTransform
 
Methods inherited from class de.grogra.imp3d.objects.AxisBase
isScaleV, setScaleV
 
Methods inherited from class de.grogra.imp3d.objects.ShadedNull
getInterior, getShader, isTreatedAsInfinite, setBackShader, setColor, setColor, setFrontShader, setInterior, setMaterial, setShader, setShaders, setTreatedAsInfinite
 
Methods inherited from class de.grogra.imp3d.objects.Null
getLocalTransformation, getTransform, getTranslation, isTransforming, preTransform, setRotation, setScale, setTransform, setTransform, setTransform, setTransform, setTransform, setTransform, setTransform, setTransform, setTransforming, setTranslation
 
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, getBranch, getBranchLength, getBranchNode, getBranchTail, getByte, getChar, getCommonAncestor, getCurrentGraphState, getDirectChildCount, getEdgeAttributeAccessor, getEdgeAttributes, getEdgeBitsTo, getEdgeTo, getExtentIndex, getFirst, getFirstEdge, getGraph, getId, getIndex, getInstantiator, getLayer, getLong, getManageableType, getName, getNeighbor, getNext, getNType, getOrCreateEdgeTo, getOrNull, getPersistenceManager, getPredecessor, getProvider, getShort, getSource, getStamp, getSuccessor, getSymbol, 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

color

public int color

color$FIELD

public static final Node.NType.Field color$FIELD

diameter

public float diameter

diameter$FIELD

public static final Node.NType.Field diameter$FIELD

length

public float length

length$FIELD

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

F

public F()

F

public F(float argument)

F

public F(float length,
         float diameter)

F

public F(float length,
         float diameter,
         int color)
Method Detail

getFloat

protected float getFloat(FloatAttribute a,
                         GraphState gs)
Overrides:
getFloat in class Shoot

getInt

protected int getInt(IntAttribute a,
                     GraphState gs)
Overrides:
getInt in class Shoot

getLength

public float getLength(java.lang.Object node,
                       GraphState gs)
Specified by:
getLength in class TurtleStep

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 ShadedNull
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 ShadedNull
Returns:
new instance of class of this node