Class BSPTreePrinter<P extends Point<P>,​N extends BSPTree.Node<P,​N>>

  • Type Parameters:
    P - Point implementation type
    N - Node implementation type
    All Implemented Interfaces:
    BSPTreeVisitor<P,​N>

    final class BSPTreePrinter<P extends Point<P>,​N extends BSPTree.Node<P,​N>>
    extends java.lang.Object
    implements BSPTreeVisitor<P,​N>
    Internal class for creating simple string representations of BSP trees.
    • Field Detail

      • INDENT

        private static final java.lang.String INDENT
        Line indent string.
        See Also:
        Constant Field Values
      • NEW_LINE

        private static final java.lang.String NEW_LINE
        New line character.
        See Also:
        Constant Field Values
      • MINUS_CHILD

        private static final java.lang.String MINUS_CHILD
        Entry prefix for nodes on the minus side of their parent.
        See Also:
        Constant Field Values
      • PLUS_CHILD

        private static final java.lang.String PLUS_CHILD
        Entry prefix for nodes on the plus side of their parent.
        See Also:
        Constant Field Values
      • ELLIPSIS

        private static final java.lang.String ELLIPSIS
        Ellipsis for truncated representations.
        See Also:
        Constant Field Values
      • maxDepth

        private final int maxDepth
        Maximum depth of nodes that will be printed.
      • output

        private final java.lang.StringBuilder output
        Contains the string output.
    • Constructor Detail

      • BSPTreePrinter

        BSPTreePrinter​(int maxDepth)
        Simple constructor.
        Parameters:
        maxDepth - maximum depth of nodes to be printed
    • Method Detail

      • visit

        public BSPTreeVisitor.Result visit​(N node)
        Visit a node in a BSP tree. This method is called for both internal nodes and leaf nodes.
        Specified by:
        visit in interface BSPTreeVisitor<P extends Point<P>,​N extends BSPTree.Node<P,​N>>
        Parameters:
        node - the node being visited
        Returns:
        the result of the visit operation
      • startLine

        private void startLine​(N node)
        Start a line for the given node.
        Parameters:
        node - the node to begin a line for
      • writeNode

        private void writeNode​(N node)
        Writes the given node to the output.
        Parameters:
        node - the node to write
      • write

        private void write​(java.lang.String str)
        Add the given string to the output.
        Parameters:
        str - the string to add
      • toString

        public java.lang.String toString()
        Return the string representation of the visited tree.
        Overrides:
        toString in class java.lang.Object