예제 #1
0
        /// <summary>
        /// Computes the angle defect at the given vertex
        /// </summary>
        /// <param name="vertex">Vertex to compute angle defect.</param>
        /// <returns>Number representing the deviation of the current vertex from $2\PI$</returns>
        public static double AngleDefect(HE_Vertex vertex)
        {
            double angleSum = 0.0;

            foreach (HE_Corner c in vertex.adjacentCorners())
            {
                angleSum += Angle(c);
            }
            //if (vertex.OnBoundary()) angleSum = Math.PI - angleSum;

            return(vertex.OnBoundary() ? Math.PI - angleSum : 2 * Math.PI - angleSum);
        }