Class ShadedTriangle


  • class ShadedTriangle
    extends java.lang.Object
    This is an assistant class for accomplishing type 4, 5, 6 and 7 shading. It describes a triangle actually, which is used to compose a patch. It contains the degenerated cases, a triangle degenerates to a line or to a point. This was done as part of GSoC2014, Tilman Hausherr is the mentor.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private double area  
      protected float[][] color  
      protected java.awt.geom.Point2D[] corner  
      private int degree  
      private Line line  
      private double v0  
      private double v1  
      private double v2  
    • Constructor Summary

      Constructors 
      Constructor Description
      ShadedTriangle​(java.awt.geom.Point2D[] p, float[][] c)
      Constructor.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      float[] calcColor​(java.awt.geom.Point2D p)
      Calculate the color of a point.
      private int calcDeg​(java.awt.geom.Point2D[] p)
      Calculate the degree value of a triangle.
      boolean contains​(java.awt.geom.Point2D p)
      Whether a point is contained in this ShadedTriangle.
      private double edgeEquationValue​(java.awt.geom.Point2D p, java.awt.geom.Point2D p1, java.awt.geom.Point2D p2)  
      private double getArea​(java.awt.geom.Point2D a, java.awt.geom.Point2D b, java.awt.geom.Point2D c)  
      int[] getBoundary()
      get the boundary of a triangle.
      int getDeg()  
      Line getLine()
      Get the line of a triangle.
      private boolean overlaps​(java.awt.geom.Point2D p0, java.awt.geom.Point2D p1)  
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • corner

        protected final java.awt.geom.Point2D[] corner
      • color

        protected final float[][] color
      • area

        private final double area
      • degree

        private final int degree
      • line

        private final Line line
      • v0

        private final double v0
      • v1

        private final double v1
      • v2

        private final double v2
    • Constructor Detail

      • ShadedTriangle

        ShadedTriangle​(java.awt.geom.Point2D[] p,
                       float[][] c)
        Constructor.
        Parameters:
        p - an array of the 3 vertices of a triangle
        c - an array of color corresponding the vertex array p
    • Method Detail

      • calcDeg

        private int calcDeg​(java.awt.geom.Point2D[] p)
        Calculate the degree value of a triangle.
        Parameters:
        p - 3 vertices coordinates
        Returns:
        number of unique points in the 3 vertices of a triangle, 3, 2 or 1
      • getDeg

        public int getDeg()
      • getBoundary

        public int[] getBoundary()
        get the boundary of a triangle.
        Returns:
        {xmin, xmax, ymin, ymax}
      • getLine

        public Line getLine()
        Get the line of a triangle.
        Returns:
        points of the line, or null if this triangle isn't a line
      • contains

        public boolean contains​(java.awt.geom.Point2D p)
        Whether a point is contained in this ShadedTriangle.
        Parameters:
        p - the target point
        Returns:
        false if p is outside of this triangle, otherwise true
      • overlaps

        private boolean overlaps​(java.awt.geom.Point2D p0,
                                 java.awt.geom.Point2D p1)
      • edgeEquationValue

        private double edgeEquationValue​(java.awt.geom.Point2D p,
                                         java.awt.geom.Point2D p1,
                                         java.awt.geom.Point2D p2)
      • getArea

        private double getArea​(java.awt.geom.Point2D a,
                               java.awt.geom.Point2D b,
                               java.awt.geom.Point2D c)
      • calcColor

        public float[] calcColor​(java.awt.geom.Point2D p)
        Calculate the color of a point.
        Parameters:
        p - the target point
        Returns:
        an array denotes the point's color
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object