Package geomss.geom

Class Triangle

  • All Implemented Interfaces:
    GeomElement<GeomTriangle>, PointGeometry<GeomTriangle>, Transformable<GeomTriangle>, java.io.Serializable, java.lang.Cloneable, java.lang.Comparable, javolution.lang.Immutable, javolution.lang.Reusable, javolution.lang.ValueType, javolution.xml.XMLSerializable

    public final class Triangle
    extends GeomTriangle
    implements javolution.lang.ValueType
    A concrete triangle in n-dimensional space. A triangle is represented by exactly three vertex points arranged in a counter-clockwise direction (or winding) when viewed from the "outside" (the direction the normal vector points).

    Modified by: Joseph A. Huwaldt

    Version:
    November 28, 2015
    Author:
    Joseph A. Huwaldt, Date: August 26, 2015
    See Also:
    Serialized Form
    • Method Detail

      • valueOf

        public static Triangle valueOf​(GeomPoint p1,
                                       GeomPoint p2,
                                       GeomPoint p3)
        Returns a Triangle instance with the specified corner vertices in counter-clockwise order/winding when looking down the surface normal vector. The units of the triangle will be the units of the start point.
        Parameters:
        p1 - The start (beginning) of the triangle. May not be null.
        p2 - The second point in the triangle. May not be null.
        p3 - The third and last point in the triangle. May not be null.
        Returns:
        A Triangle instance defined by the input points.
      • valueOf

        public static Triangle valueOf​(java.util.List<? extends GeomPoint> points)
        Returns a Triangle instance with the specified corner vertices in counter-clockwise order/winding when looking down the surface normal vector. The units of the triangle will be the units of the start point.
        Parameters:
        points - A list of 3 points that form the triangle. May not be null.
        Returns:
        A Triangle instance defined by the input points.
      • valueOf

        public static Triangle valueOf​(GeomPoint[] points)
        Returns a Triangle instance with the specified corner vertices in counter-clockwise order/winding when looking down the surface normal vector. The units of the triangle will be the units of the start point.
        Parameters:
        points - An array of 3 points that form the triangle. May not be null.
        Returns:
        A Triangle instance defined by the input points.
      • recycle

        public static void recycle​(Triangle instance)
        Recycles a Triangle instance immediately (on the stack when executing in a StackContext).
        Parameters:
        instance - The instance to recycle immediately.
      • getP1

        public Point getP1()
        Return the first vertex in this triangle.
        Specified by:
        getP1 in class GeomTriangle
        Returns:
        The first vertex in this triangle.
      • getP2

        public Point getP2()
        Return the second vertex in this triangle.
        Specified by:
        getP2 in class GeomTriangle
        Returns:
        The second vertex in this triangle.
      • getP3

        public Point getP3()
        Return the third and last vertex in this triangle.
        Specified by:
        getP3 in class GeomTriangle
        Returns:
        The third and last vertex in this triangle.
      • getNormal

        public Vector<javax.measure.quantity.Dimensionless> getNormal()
        Return the surface unit normal vector for this triangle. If the triangle is degenerate (zero area), then the normal vector will have zero length.
        Specified by:
        getNormal in class GeomTriangle
        Returns:
        The surface normal vector for this triangle.
      • getArea

        public Parameter<javax.measure.quantity.Area> getArea()
        Return the surface area of one side of this triangle. The returned area is always positive, but can be zero.
        Specified by:
        getArea in class GeomTriangle
        Returns:
        The surface area of one side of this triangle.
      • reverse

        public Triangle reverse()
        Return a new triangle that is identical to this one, but with the order of the points (and the surface normal direction) reversed.
        Specified by:
        reverse in class GeomTriangle
        Returns:
        A new Triangle that is identical to this one, but with the order of the points reversed.
      • getBoundsMin

        public Point getBoundsMin()
        Return the coordinate point representing the minimum bounding box corner of this geometry element (e.g.: min X, min Y, min Z).
        Specified by:
        getBoundsMin in interface GeomElement<GeomTriangle>
        Returns:
        The minimum bounding box coordinate for this geometry element.
      • getBoundsMax

        public Point getBoundsMax()
        Return the coordinate point representing the maximum bounding box corner (e.g.: max X, max Y, max Z).
        Specified by:
        getBoundsMax in interface GeomElement<GeomTriangle>
        Returns:
        The maximum bounding box coordinate for this geometry element.
      • toDimension

        public Triangle toDimension​(int newDim)
        Return a copy of this Triangle converted to the specified number of physical dimensions. If the number of dimensions is greater than this element, then zeros are added to the additional dimensions. If the number of dimensions is less than this element, then the extra dimensions are simply dropped (truncated). If the new dimensions are the same as the dimension of this element, then this element is simply returned.
        Specified by:
        toDimension in interface GeomElement<GeomTriangle>
        Parameters:
        newDim - The dimension of the Triangle to return.
        Returns:
        This Triangle converted to the new dimensions.
      • to

        public Triangle to​(javax.measure.unit.Unit<javax.measure.quantity.Length> unit)
                    throws javax.measure.converter.ConversionException
        Returns the equivalent to this element but stated in the specified unit.
        Specified by:
        to in interface GeomElement<GeomTriangle>
        Specified by:
        to in interface PointGeometry<GeomTriangle>
        Parameters:
        unit - the length unit of the element to be returned. May not be null.
        Returns:
        an equivalent to this element but stated in the specified unit.
        Throws:
        javax.measure.converter.ConversionException - if the the input unit is not a length unit.
      • copy

        public Triangle copy()
        Returns a copy of this Triangle instance allocated by the calling thread (possibly on the stack).
        Specified by:
        copy in interface GeomElement<GeomTriangle>
        Specified by:
        copy in interface javolution.lang.ValueType
        Returns:
        an identical and independent copy of this Triangle.
      • copyToReal

        public Triangle copyToReal()
        Return a copy of this object with any transformations or subranges removed (applied).
        Specified by:
        copyToReal in interface GeomElement<GeomTriangle>
        Returns:
        A copy of this object with any transformations or subranges removed (applied).
      • equals

        public boolean equals​(java.lang.Object obj)
        Compares this Triangle against the specified object for strict equality.
        Overrides:
        equals in class AbstractGeomElement<GeomTriangle>
        Parameters:
        obj - the object to compare with.
        Returns:
        true if this Triangle is identical to that Triangle; false otherwise.