Module imp2d

Class Visitor2D

All Implemented Interfaces:
Visitor, ObjectConsumer, VoidToObjectGenerator, Serializable, Cloneable, Iterable, Collection, List, RandomAccess
Direct Known Subclasses:
PickRayVisitor, PickToolVisitor

public abstract class Visitor2D extends ObjectList implements Visitor
See Also:
  • Field Details

    • state

      protected GraphState state
    • transformation

      protected Matrix3d transformation
    • layer

      protected int layer
  • Constructor Details

    • Visitor2D

      public Visitor2D()
  • Method Details

    • init

      protected void init(GraphState gs, EdgePattern pattern, Matrix3d t)
    • getGraphState

      public GraphState getGraphState()
      Description copied from interface: Visitor
      Returns the graph state within which the visitor is operating.
      Specified by:
      getGraphState in interface Visitor
      Returns:
      graph state of visitor
    • pushTransformation

      protected final void pushTransformation(Matrix3d t)
    • popTransformation

      protected final Matrix3d popTransformation(Matrix3d t)
    • visitEnter

      public Object visitEnter(Path path, boolean node)
      Description copied from interface: Visitor
      Informs this visitor about a node or edge in the graph. path contains the path from the root up to and including the node or, in case an edge is visited, the edge and its terminal node. Later on, Visitor.visitLeave(java.lang.Object, de.grogra.graph.Path, boolean) will be invoked with the returned value of this invocation, path and node as arguments. If this method returns Visitor.STOP, the corresponding visitLeave-method will be invoked immediately after this method, i.e., the visitor does not dive more deeply in the hierarchy. Otherwise, if a node is visited and there are instantiations associated with or edges connected with it (regardless of their direction), their corresponding visitor methods will be invoked inbetween. Likewise, if an edge is visited, its indicent terminal node will be visited next.
      Specified by:
      visitEnter in interface Visitor
      Parameters:
      path - current path
      node - do we enter a node or an edge?
      Returns:
      value to pass to visitLeave, may be Visitor.STOP
    • visitEnter

      protected Object visitEnter(Object object, boolean asNode, Path path)
    • visitImpl

      protected abstract void visitImpl(Object object, boolean asNode, Path path)
    • visitLeave

      public boolean visitLeave(Object o, Path path, boolean node)
      Description copied from interface: Visitor
      Informs this visitor that a node or an edge has been processed completely. The value o is the return value of the corresponding invocation of Visitor.visitEnter(de.grogra.graph.Path, boolean). In case of a node and if this invocation returns false, no further edges of the current level of hierarchy will be passed to this visitor, i.e., the visitLeave methods for the enclosing edge and node will be invoked immediately. Likewise, in case of an edge and a return value false, no further instantiations or edges of the current level of hierarchy will be passed to this visitor, i.e., the visitLeave method for the enclosing node will be invoked immediately.
      Specified by:
      visitLeave in interface Visitor
      Parameters:
      o - returned value of visitEnter
      path - current path to node
      node - do we leave a node or an edge?
      Returns:
      true iff processing of current level shall be continued
    • visitInstanceEnter

      public Object visitInstanceEnter()
      Description copied from interface: Visitor
      Informs this visitor about the beginning of an instantiation. This method invokation is nested immediately within visitEnter/visitLeave of a node. Later on, Visitor.visitInstanceLeave(Object) will be invoked with the returned value of this invocation as argument. If this method returns Visitor.STOP, the visitInstanceLeave-method will be invoked immediately after this method, i.e., the visitor does not dive into the instantiation. Otherwise, the instantiation is performed, starting with an edge.
      Specified by:
      visitInstanceEnter in interface Visitor
      Returns:
      value to pass to visitInstanceLeave, may be Visitor.STOP
    • visitInstanceLeave

      public boolean visitInstanceLeave(Object o)
      Description copied from interface: Visitor
      Informs this visitor that an instantiation has been processed completely. The value o is the return value of the corresponding invocation of Visitor.visitInstanceEnter(). If this invocation returns false, no further instantiations or edges of the current level of hierarchy will be passed to this visitor, i.e., the visitLeave method for the enclosing node will be invoked immediately.
      Specified by:
      visitInstanceLeave in interface Visitor
      Parameters:
      o - returned value of visitInstanceEnter
      Returns:
      true iff processing of current level shall be continued