org.apache.commons.math3.geometry.partitioning

## Interface Transform<S extends Space,T extends Space>

- Type Parameters:
    `S` - Type of the embedding space.
    `T` - Type of the embedded sub-space.
  All Known Implementing Classes:
    Line.LineTransform, PolyhedronsSet.RotationTransform, PolyhedronsSet.TranslationTransform

      public interface Transform<S extends Space,T extends Space>

  This interface represents an inversible affine transform in a space.

  Inversible affine transform include for example scalings, translations, rotations.

  Transforms are dimension-specific. The consistency rules between the three `apply` methods are the following ones for a transformed defined for dimension D:

  - the transform can be applied to a point in the D-dimension space using its `apply(Vector)` method
  - the transform can be applied to a (D-1)-dimension hyperplane in the D-dimension space using its `apply(Hyperplane)` method
  - the transform can be applied to a (D-2)-dimension sub-hyperplane in a (D-1)-dimension hyperplane using its `apply(SubHyperplane, Hyperplane, Hyperplane)` method
  Since:
    3.0
  Version:
    $Id: Transform.java 1416643 2012-12-03 19:37:14Z tn $

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Hyperplane<S>` | `apply(Hyperplane<S> hyperplane)` Transform an hyperplane of a space.
    `SubHyperplane<T>` | `apply(SubHyperplane<T> sub, Hyperplane<S> original, Hyperplane<S> transformed)` Transform a sub-hyperplane embedded in an hyperplane.
    `Vector<S>` | `apply(Vector<S> point)` Transform a point of a space.

- - ### Method Detail

    - #### apply

          Vector<S> apply(Vector<S> point)

      Transform a point of a space.
      Parameters:
        `point` - point to transform
      Returns:
        a new object representing the transformed point

    - #### apply

          Hyperplane<S> apply(Hyperplane<S> hyperplane)

      Transform an hyperplane of a space.
      Parameters:
        `hyperplane` - hyperplane to transform
      Returns:
        a new object representing the transformed hyperplane

    - #### apply

          SubHyperplane<T> apply(SubHyperplane<T> sub,
                               Hyperplane<S> original,
                               Hyperplane<S> transformed)

      Transform a sub-hyperplane embedded in an hyperplane.
      Parameters:
        `sub` - sub-hyperplane to transform
        `original` - hyperplane in which the sub-hyperplane is defined (this is the original hyperplane, the transform has not been applied to it)
        `transformed` - hyperplane in which the sub-hyperplane is defined (this is the transformed hyperplane, the transform has been applied to it)
      Returns:
        a new object representing the transformed sub-hyperplane

Copyright (c) 2003-2013 Apache Software Foundation