コード例 #1
0
        static public double TriangleQualityFromPositions(RHVector3 p1, RHVector3 p2, RHVector3 p3)
        {
            double a        = p1.Distance(p2);
            double b        = p1.Distance(p3);
            double c        = p2.Distance(p3);
            double bc2      = 2 * b * c;
            double sinalpha = Math.Sin(Math.Acos((b * b + c * c - a * a) / (bc2)));

            return(a * (a + b + c) / (bc2 * sinalpha * sinalpha));
        }
コード例 #2
0
 public TopoVertex SearchPoint(RHVector3 vertex)
 {
     int hash = vertextHash(vertex);
     if (!list.ContainsKey(hash)) return null;
     foreach (TopoVertex v in list[hash])
     {
         if (vertex.Distance(v.pos) < TopoModel.epsilon)
             return v;
     }
     return null;
 }
コード例 #3
0
 public TopoVertex SearchPoint(RHVector3 vertex)
 {
     foreach (TopoVertex v in vertices)
     {
         if (vertex.Distance(v.pos) < TopoModel.epsilon)
         {
             return(v);
         }
     }
     return(null);
 }
コード例 #4
0
        public TopoVertex SearchPoint(RHVector3 vertex)
        {
            int hash = vertextHash(vertex);

            if (!list.ContainsKey(hash))
            {
                return(null);
            }
            foreach (TopoVertex v in list[hash])
            {
                if (vertex.Distance(v.pos) < TopoModel.epsilon)
                {
                    return(v);
                }
            }
            return(null);
        }
コード例 #5
0
 public TopoVertex SearchPoint(RHVector3 vertex)
 {
     foreach (TopoVertex v in vertices)
     {
         if (vertex.Distance(v.pos) < TopoModel.epsilon)
             return v;
     }
     return null;
 }
コード例 #6
0
 public double distance(TopoVertex vertex)
 {
     return(pos.Distance(vertex.pos));
 }