コード例 #1
0
 // 检查相交情况
 public bool Crossing(TensionSpline other)
 {
     if (this == other) // 自交检查
     {
         for (int i = 0; i < segments.Length - 2; i++)
         {
             for (int j = i + 2; j < segments.Length; j++)
             {
                 if ((looping && (i != 0 || j != segments.Length - 1)) && // 循环时不检查首尾
                     segments[i].Crossing(segments[j]))
                 {
                     return(true);
                 }
             }
         }
         return(false);
     }
     foreach (var seg1 in segments)
     {
         foreach (var seg2 in other.segments)
         {
             if (seg1.Crossing(seg2))
             {
                 return(true);
             }
         }
     }
     return(false);
 }
コード例 #2
0
 public TensionNode(TensionSpline origin, int idx)
 {
     parent = origin;
     index  = idx;
     Reset();
 }