Exemplo n.º 1
0
        private void ProcessPointOnALine(PainterMesh.Vertex a, PainterMesh.Vertex b, PainterMesh.Triangle t)
        {
            if (EditorInputManager.GetMouseButtonDown(1))
            {
                SelectedLine = new PainterMesh.LineData(t, a, b);
                UpdateLocalSpaceMousePosition();
            }

            PointedLine = new PainterMesh.LineData(t, new[] { a, b });
        }
Exemplo n.º 2
0
        public bool AllVerticesShared(PainterMesh.LineData ld)
        {
            var changed = false;

            for (var i = 0; i < 2; i++)
            {
                changed |= SetAllUVsShared(ld[i]);
            }

            return(changed);
        }
Exemplo n.º 3
0
        public void NullPointedSelected()
        {
            pointedUv        = null;
            pointedLine      = null;
            pointedTriangle  = null;
            selectedUv       = null;
            selectedLine     = null;
            selectedTriangle = null;

            triVertices = 0;
        }
Exemplo n.º 4
0
        public void RemoveLine(PainterMesh.LineData ld)
        {
            var a = ld.points[0];
            var b = ld.points[1];

            for (var i = 0; i < triangles.Count; i++)
            {
                if (triangles[i].Includes(a.meshPoint, b.meshPoint))
                {
                    triangles.Remove(triangles[i]);
                    i--;
                }
            }
        }
Exemplo n.º 5
0
        public void GiveLineUniqueVerticesRefreshTriangleListing(PainterMesh.LineData ld)
        {
            var trs = ld.GetAllTriangles();

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

            ld.points[0].meshPoint.smoothNormal = true;
            ld.points[1].meshPoint.smoothNormal = true;

            trs[0].GiveUniqueVerticesAgainst(trs[1]);
            RefreshVertexTriangleList();
        }
Exemplo n.º 6
0
 public void SetLastPointed(PainterMesh.LineData l)
 {
     ClearLastPointed();
     lastFramePointedLine = l;
 }
Exemplo n.º 7
0
 public void ClearLastPointed()
 {
     lastFramePointedUv       = null;
     lastFramePointedLine     = null;
     lastFramePointedTriangle = null;
 }
Exemplo n.º 8
0
        public void DeleteLine(PainterMesh.LineData ld)
        {
            NullPointedSelected();

            RemoveLine(ld);
        }
Exemplo n.º 9
0
        public static void PutEdgeOnLine(PainterMesh.LineData ld)
        {
            var vrtA = ld.points[0].meshPoint;
            var vrtB = ld.points[1].meshPoint;

            var tris = ld.GetAllTriangles();

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

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

                foreach (var uv in vrtB.vertices)
                {
                    foreach (var t in uv.triangles)
                    {
                        var opposite = t.NumberOf(uv);
                        for (var 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.Color;
                foreach (var uvi in vrtA.vertices)
                {
                    GlobalBrush.mask.SetValuesOn(ref uvi.color, col);
                }
                foreach (var uvi in vrtB.vertices)
                {
                    GlobalBrush.mask.SetValuesOn(ref uvi.color, col);
                }
            }

            EditedMesh.Dirty = true;
        }