Exemplo n.º 1
0
        /// <summary>
        /// 入力された頂点群をポリゴンとし、その外部にある三角形を取り除く
        /// Triangulate関数の後に呼び出すこと。
        /// </summary>
        void RemoveExternalTriangles(List <Vector2> points)
        {
            ForeachTriangles((Triangle2D t) => {
                if (!Utils2D.Pnpoly(points, t.g))
                {
                    tempRemoving.Add(t);
                }
            });

            SolveTempTriangles();
        }
Exemplo n.º 2
0
        /// <summary>
        /// 引数の座標群から全体を包括する三角形を作成し、返す。
        /// </summary>
        /// <returns>The huge triangle.</returns>
        /// <param name="points">Points.</param>
        Triangle2D GetHugeTriangle(List <Vector2> points)
        {
            Vector2 min, max;

            Utils2D.ComputeBound(points, out min, out max);

            Vector2 center = (min + max) * 0.5f;
            float   radius = (max - min).magnitude * 0.5f + 0.1f;               // minとmaxの差が0になるのを回避するための"0.1f"
            float   scale  = Mathf.Sqrt(3f);

            return(new Triangle2D(
                       center + new Vector2(radius * scale, radius),
                       center + new Vector2(-radius * scale, radius),
                       center + new Vector2(0f, -radius * 2f)
                       ));
        }
Exemplo n.º 3
0
 /// <summary>
 /// 頂点カラーを指定して三角形情報からメッシュに変換する。
 /// </summary>
 /// <returns>The mesh.</returns>
 /// <param name="color">Color.</param>
 public Mesh ToMesh(Color color)
 {
     return(Utils2D.TrianglesToMesh(new List <Triangle2D>(triangles), color));
 }