Class OutlineExtractor

java.lang.Object
org.apache.commons.math3.geometry.euclidean.threed.OutlineExtractor

public class OutlineExtractor extends Object
Extractor for polyhedrons sets outlines.

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

Since:
3.0
  • Field Details

    • 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 Details

    • 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 Details

    • 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