public TriangleData CreateNeighbour(int i,
                                                Plane[] planes,
                                                string name)
            {
                if (neighbour[i] != null)
                {
                    return(null);
                }

                VerticeData v0 = this[i];
                VerticeData v1 = this[i + 1];
                VerticeData v2 = this[i + 2];

                Vector3 p2 = v0.pos + v1.pos - v2.pos;

                bool newPointIsVisible = IsVisible(p2, planes);

                if (!(newPointIsVisible || v0.isVisible || v1.isVisible))
                {
                    return(null);
                }

                var n = new TriangleData(this, p[i], p[(i + 1) % 3], p2, name);

                n[2].isVisible = newPointIsVisible;
                return(n);
            }
Beispiel #2
0
    public void AddVAngleCostilla(VerticeAngle originalAngle, Vector3 pos)
    {
        pos.z = 0;
        VerticeAngle go = Instantiate(verticeAngle_to_add, pos, Quaternion.identity, container);

        all.Insert(originalAngle.id, go);
        lineAsset.Refresh(this);
        go.Init(false);
        VerticeData vd = new VerticeData();

        vd.angle = 179.99f;
        int id = originalAngle.id - 1;

        if (id < 0)
        {
            id = data.Count - 1;
        }
        vd.distance        = data[id].distance / 2;
        vd.angleChecked    = true;
        vd.angleLocked     = true;
        vd.distanceChecked = true;
        data.Insert(id, vd);
        angleDistanceRemapping.Calculate();
    }