Interface Transform<S extends Space,​P extends Point<S,​P>,​H extends Hyperplane<S,​P,​H,​I>,​I extends SubHyperplane<S,​P,​H,​I>,​T extends Space,​Q extends Point<T,​Q>,​F extends Hyperplane<T,​Q,​F,​J>,​J extends SubHyperplane<T,​Q,​F,​J>>

  • Type Parameters:
    S - Type of the origin space.
    P - Type of the points in the origin space.
    H - Type of the hyperplane in the origin space.
    I - Type of the sub-hyperplane in the origin space.
    T - Type of the destination sub-space.
    Q - Type of the points in the destination sub-space.
    F - Type of the hyperplane in the destination sub-space.
    J - Type of the sub-hyperplane in the destination sub-space.

    public interface Transform<S extends Space,​P extends Point<S,​P>,​H extends Hyperplane<S,​P,​H,​I>,​I extends SubHyperplane<S,​P,​H,​I>,​T extends Space,​Q extends Point<T,​Q>,​F extends Hyperplane<T,​Q,​F,​J>,​J extends SubHyperplane<T,​Q,​F,​J>>
    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(Point) 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
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      H apply​(H hyperplane)
      Transform an hyperplane of a space.
      J apply​(J sub, H original, H transformed)
      Transform a sub-hyperplane embedded in an hyperplane.
      P apply​(P point)
      Transform a point of a space.
    • Method Detail

      • apply

        P apply​(P point)
        Transform a point of a space.
        Parameters:
        point - point to transform
        Returns:
        a new object representing the transformed point
      • apply

        H apply​(H hyperplane)
        Transform an hyperplane of a space.
        Parameters:
        hyperplane - hyperplane to transform
        Returns:
        a new object representing the transformed hyperplane
      • apply

        J apply​(J sub,
                H original,
                H 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