## org.apache.commons.math3.geometry.euclidean.threed
Class OutlineExtractor

    java.lang.Object
      org.apache.commons.math3.geometry.euclidean.threed.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
Version:
  $Id: OutlineExtractor.java 1416643 2012-12-03 19:37:14Z tn $

Nested Class Summary
`private class` `OutlineExtractor.BoundaryProjector` Visitor projecting the boundary facets on a plane.

Field Summary
`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).

Constructor Summary
`OutlineExtractor(Vector3D u, Vector3D v)` Build an extractor for a specific projection plane.

Method Summary
`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 neighbour 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 neighbour in an array.

  The neighbours 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 neighbours

Copyright (c) 2003-2013 Apache Software Foundation