/// <summary> /// Computes the barycentric dual area around a given mesh vertex. /// </summary> /// <returns>The dual area.</returns> /// <param name="vertex">Vertex.</param> public static double BarycentricDualArea(HE_Vertex vertex) { double area = 0.0; foreach (HE_Face f in vertex.adjacentFaces()) { area += Area(f); } return(area); }
/// <summary> /// Computes the equally weighted normal arround the specified vertex /// </summary> /// <returns>The normal vector at that vertex.</returns> /// <param name="vertex">Vertex.</param> public static Vector3d VertexNormalEquallyWeighted(HE_Vertex vertex) { Vector3d n = new Vector3d(); foreach (HE_Face f in vertex.adjacentFaces()) { n += FaceNormal(f); } return(n.Unit()); }
/// <summary> /// Computes the area weighted normal arround the specified vertex /// </summary> /// <returns>The normal vector at that vertex.</returns> /// <param name="vertex">Vertex.</param> public static Vector3d VertexNormalAreaWeighted(HE_Vertex vertex) { Vector3d n = new Vector3d(); foreach (HE_Face f in vertex.adjacentFaces()) { Vector3d normal = FaceNormal(f); double area = Area(f); n += (normal * area); } return(n.Unit()); }