///<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); }