Example #1
0
        private static void EnsureClockwiseWinding(List <int> indices, List <Vector3> vertices)
        {
            if (indices == null || indices.Count < 3)
            {
                return;
            }
            if (vertices == null || vertices.Count < 1)
            {
                return;
            }

            for (var i = 0; i < indices.Count; i += 3)
            {
                var vert0 = vertices[indices[i + 0]];
                var vert1 = vertices[indices[i + 1]];
                var vert2 = vertices[indices[i + 2]];

                if (!GeometryHelpers.IsCounterClockwiseXY(vert0, vert1, vert2))
                {
                    continue;
                }

                var temp = indices[i + 1];
                indices[i + 1] = indices[i + 2];
                indices[i + 2] = temp;
            }
        }