Example #1
0
    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);
    }