Class OutlineExtractor


  • public class OutlineExtractor
    extends java.lang.Object
    Extractor for polyhedrons sets outlines.

    This class extracts the 2D outlines from {polyhedrons sets in a specified projection plane.

    Since:
    3.0
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      private class  OutlineExtractor.BoundaryProjector
      Visitor projecting the boundary facets on a plane.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private Vector3D u
      Abscissa axis of the projection plane.
      private Vector3D v
      Ordinate axis of the projection plane.
      private Vector3D w
      Normal of the projection plane (viewing direction).
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      Vector2D[][] getOutline​(PolyhedronsSet polyhedronsSet)
      Extract the outline of a polyhedrons set.
      private boolean pointIsBetween​(Vector2D[] loop, int n, int i)
      Check if a point is geometrically between its neighbor in an array.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • u

        private Vector3D u
        Abscissa axis of the projection plane.
      • v

        private Vector3D v
        Ordinate axis of the projection plane.
      • w

        private Vector3D w
        Normal of the projection plane (viewing direction).
    • Constructor Detail

      • OutlineExtractor

        public OutlineExtractor​(Vector3D u,
                                Vector3D v)
        Build an extractor for a specific projection plane.
        Parameters:
        u - abscissa axis of the projection point
        v - ordinate axis of the projection point
    • Method Detail

      • getOutline

        public Vector2D[][] getOutline​(PolyhedronsSet polyhedronsSet)
        Extract the outline of a polyhedrons set.
        Parameters:
        polyhedronsSet - polyhedrons set whose outline must be extracted
        Returns:
        an outline, as an array of loops.
      • pointIsBetween

        private boolean pointIsBetween​(Vector2D[] loop,
                                       int n,
                                       int i)
        Check if a point is geometrically between its neighbor in an array.

        The neighbors are computed considering the array is a loop (i.e. point at index (n-1) is before point at index 0)

        Parameters:
        loop - points array
        n - number of points to consider in the array
        i - index of the point to check (must be between 0 and n-1)
        Returns:
        true if the point is exactly between its neighbors