Tuple <triangleMesh, float> getClosestTriangle(List <triangleMesh> triangles, Vector3 mousePos) { triangleMesh closest = null; float minDist = Mathf.Infinity; foreach (triangleMesh t in triangles) { float dist = Vector3.Distance(t.centre, mousePos); if (dist < minDist) { closest = t; minDist = dist; } } return(new Tuple <triangleMesh, float>(closest, minDist)); }
// public void _deflate(System.Type typeTri, Vector3 v1, Vector3 v2, Vector3 v3) // { // _deflate(typeTri, v1, v2, v3, mirror); // } public void _deflate(System.Type typeTri, Vector3 v1, Vector3 v2, Vector3 v3, bool mirrorImage) { this.deflationStep += 1; Material m_Material = GetComponent <Renderer>().material; GameObject obj = new GameObject(); obj.SetActive(false); MeshFilter objFil = obj.AddComponent <MeshFilter>(); MeshRenderer objRend = obj.AddComponent <MeshRenderer>(); objRend.material = m_Material; triangleMesh newTriangleMesh = (triangleMesh)obj.AddComponent(typeTri); newTriangleMesh.Init(v1, v2, v3, mirrorImage, false); obj.SetActive(true); }