Esempio n. 1
0
        private void SmoothPatches(Polygon vertices, float smoothAmount)
        {
            for (var i = 0; i < vertices.Vertices.Count; i++)
            {
                var point    = vertices.Vertices[i];
                var prev     = vertices.GetPreviousVertex(point);
                var next     = vertices.GetNextVertex(point);
                var smoothed = GeometryHelpers.SmoothVertex(point, prev, next, smoothAmount);

                var affected = Patches.Where(p => p.Shape.Vertices.Contains(point)).ToList();
                foreach (var patch in affected)
                {
                    patch.Shape.ReplaceVertex(point, smoothed);
                }

                vertices.Vertices[i] = smoothed;
            }
        }