///<summary>
        /// add object
        /// </summary>
        private void AddObject(Tetra tetra)
        {
            Debug.Log("AddVertex");
            var verts = _mesh.Vertices;

            var t = tetra;

            Debug.Log("AddVertexSuccessful");
            var p0 = (Vector3)verts[t.A].Position;
            var p1 = (Vector3)verts[t.B].Position;
            var p2 = (Vector3)verts[t.C].Position;
            var p3 = (Vector3)verts[t.D].Position;

            //add edge
            var e0 = Instantiate(_edgeObject);

            e0.localPosition = (p0 + p1) / 2;
            e0.localRotation = Quaternion.FromToRotation(e0.up, p1 - p0);
            e0.localScale    = new Vector3(0.05f, (p1 - p0).magnitude / 2, 0.05f);

            var e1 = Instantiate(_edgeObject);

            e1.localPosition = (p0 + p2) / 2;
            e1.localRotation = Quaternion.FromToRotation(e1.up, p2 - p0);
            e1.localScale    = new Vector3(0.05f, (p2 - p0).magnitude / 2, 0.05f);

            var e2 = Instantiate(_edgeObject);

            e2.localPosition = (p2 + p1) / 2;
            e2.localRotation = Quaternion.FromToRotation(e2.up, p2 - p1);
            e2.localScale    = new Vector3(0.05f, (p2 - p1).magnitude / 2, 0.05f);

            var e3 = Instantiate(_edgeObject);

            e3.localPosition = (p0 + p3) / 2;
            e3.localRotation = Quaternion.FromToRotation(e3.up, p3 - p0);
            e3.localScale    = new Vector3(0.05f, (p3 - p0).magnitude / 2, 0.05f);

            var e4 = Instantiate(_edgeObject);

            e4.localPosition = (p3 + p1) / 2;
            e4.localRotation = Quaternion.FromToRotation(e4.up, p3 - p1);
            e4.localScale    = new Vector3(0.05f, (p3 - p1).magnitude / 2, 0.05f);

            var e5 = Instantiate(_edgeObject);

            e5.localPosition = (p2 + p3) / 2;
            e5.localRotation = Quaternion.FromToRotation(e5.up, p3 - p2);
            e5.localScale    = new Vector3(0.05f, (p3 - p2).magnitude / 2, 0.05f);
        }
        /// <summary>
        ///
        /// </summary>
        private void AddTetrahedron(HeMesh3d.Halfedge hedge)
        {
            var v3 = hedge.Twin.Previous.Start;

            var v0 = hedge.Start;

            hedge = hedge.Next;
            var v1 = hedge.Start;

            hedge = hedge.Next;
            var v2 = hedge.Start;

            var t = new Tetra(v3, v2, v1, v0);

            _tetrahedra.Add(t);

            //AddObject(t);
        }