Exemplo n.º 1
0
        public void GiveLineUniqueVerticles_RefreshTrisListing(LineData ld)
        {
            List <Triangle> trs = ld.GetAllTriangles_USES_Tris_Listing();

            if (trs.Count != 2)
            {
                return;
            }

            ld.pnts[0].meshPoint.SmoothNormal = true;
            ld.pnts[1].meshPoint.SmoothNormal = true;

            trs[0].GiveUniqueVerticesAgainst(trs[1]);
            RefresVerticleTrisList();
        }
Exemplo n.º 2
0
        public static void PutEdgeOnLine(LineData ld)
        {
            var vrtA = ld.pnts[0].meshPoint;
            var vrtB = ld.pnts[1].meshPoint;

            var tris = ld.GetAllTriangles_USES_Tris_Listing();

            foreach (var t in tris)
            {
                t.edgeWeight[t.GetIndexOfNoOneIn(ld)] = ShiftInvertedVelue;// true;
            }
            float edValA = ShiftInvertedVelue;
            float edValB = ShiftInvertedVelue;

            if (editingFlexibleEdge)
            {
                foreach (var uv in vrtA.uvpoints)
                {
                    foreach (var t in uv.tris)
                    {
                        var opposite = t.NumberOf(uv);
                        for (int i = 0; i < 3; i++)
                        {
                            if (opposite != i)
                            {
                                edValA = Mathf.Max(edValA, t.edgeWeight[i]);
                            }
                        }
                    }
                }

                foreach (var uv in vrtB.uvpoints)
                {
                    foreach (var t in uv.tris)
                    {
                        var opposite = t.NumberOf(uv);
                        for (int i = 0; i < 3; i++)
                        {
                            if (opposite != i)
                            {
                                edValB = Mathf.Max(edValB, t.edgeWeight[i]);
                            }
                        }
                    }
                }
            }

            vrtA.edgeStrength = edValA;
            vrtB.edgeStrength = edValB;

            if (AlsoDoColor)
            {
                var col = GlobalBrush.colorLinear.ToGamma();
                foreach (Vertex uvi in vrtA.uvpoints)
                {
                    GlobalBrush.mask.Transfer(ref uvi._color, col);
                }
                foreach (Vertex uvi in vrtB.uvpoints)
                {
                    GlobalBrush.mask.Transfer(ref uvi._color, col);
                }
            }

            MeshMGMT.edMesh.Dirty = true;
        }