org.apache.commons.math3.geometry.partitioning

## Interface SubHyperplane<S extends Space>

- Type Parameters:
    `S` - Type of the embedding space.
  All Known Implementing Classes:
    AbstractSubHyperplane, SubCircle, SubLimitAngle, SubLine, SubOrientedPoint, SubPlane

      public interface SubHyperplane<S extends Space>

  This interface represents the remaining parts of an hyperplane after other parts have been chopped off.

  sub-hyperplanes are obtained when parts of an `hyperplane` are chopped off by other hyperplanes that intersect it. The remaining part is a convex region. Such objects appear in `BSP trees` as the intersection of a cut hyperplane with the convex region which it splits, the chopping hyperplanes are the cut hyperplanes closer to the tree root.

  Note that this interface is not intended to be implemented by Apache Commons Math users, it is only intended to be implemented within the library itself. New methods may be added even for minor versions, which breaks compatibility for external implementations.

  Since:
    3.0
  Version:
    $Id: SubHyperplane.java 1566416 2014-02-09 20:56:55Z luc $

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface and Description
    --- | ---
    `static class` | `SubHyperplane.SplitSubHyperplane<U extends Space>` Class holding the results of the `split` method.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `SubHyperplane<S>` | `copySelf()` Copy the instance.
    `Hyperplane<S>` | `getHyperplane()` Get the underlying hyperplane.
    `double` | `getSize()` Get the size of the instance.
    `boolean` | `isEmpty()` Check if the instance is empty.
    `SubHyperplane<S>` | `reunite(SubHyperplane<S> other)` Compute the union of the instance and another sub-hyperplane.
    `Side` | `side(Hyperplane<S> hyperplane)` Compute the relative position of the instance with respect to an hyperplane.
    `SubHyperplane.SplitSubHyperplane<S>` | `split(Hyperplane<S> hyperplane)` Split the instance in two parts by an hyperplane.

- - ### Method Detail

    - #### copySelf

          SubHyperplane<S> copySelf()

      Copy the instance.

      The instance created is completely independent of the original one. A deep copy is used, none of the underlying objects are shared (except for the nodes attributes and immutable objects).

      Returns:
        a new sub-hyperplane, copy of the instance

    - #### getHyperplane

          Hyperplane<S> getHyperplane()

      Get the underlying hyperplane.
      Returns:
        underlying hyperplane

    - #### isEmpty

          boolean isEmpty()

      Check if the instance is empty.
      Returns:
        true if the instance is empty

    - #### getSize

          double getSize()

      Get the size of the instance.
      Returns:
        the size of the instance (this is a length in 1D, an area in 2D, a volume in 3D ...)

    - #### side

          Side side(Hyperplane<S> hyperplane)

      Compute the relative position of the instance with respect to an hyperplane.
      Parameters:
        `hyperplane` - hyperplane to check instance against
      Returns:
        one of `Side.PLUS`, `Side.MINUS`, `Side.BOTH`, `Side.HYPER`

    - #### split

          SubHyperplane.SplitSubHyperplane<S> split(Hyperplane<S> hyperplane)

      Split the instance in two parts by an hyperplane.
      Parameters:
        `hyperplane` - splitting hyperplane
      Returns:
        an object containing both the part of the instance on the plus side of the hyperplane and the part of the instance on the minus side of the hyperplane

    - #### reunite

          SubHyperplane<S> reunite(SubHyperplane<S> other)

      Compute the union of the instance and another sub-hyperplane.
      Parameters:
        `other` - other sub-hyperplane to union (must be in the same hyperplane as the instance)
      Returns:
        a new sub-hyperplane, union of the instance and other

Copyright © 2003–2014 The Apache Software Foundation. All rights reserved.