private void UpdatePoints() { ValidateRawLocalPoints(); if (Valid) { ConvertRawLocalPointsToLocalPoints(); IsConvex = LocalPoints.IsConvex(); Indices.Clear(); if (IsConvex) { int numTriangles = LocalPoints.Count - 2; for (int i = numTriangles - 1; i >= 0; i--) { Indices.Add(0); Indices.Add(i + 2); Indices.Add(i + 1); } } else { Triangulator.Process(LocalPoints, Indices); } _worldDirty = true; } _pointsDirty = false; }
private void UpdatePoints() { if (_pointsDirty) { IsConvex = LocalPoints.IsConvex(); Indices.Clear(); if (IsConvex) { int numTriangles = LocalPoints.Count - 2; for (int i = numTriangles - 1; i >= 0; i--) { Indices.Add(0); Indices.Add(i + 2); Indices.Add(i + 1); } } else { Triangulator.Process(LocalPoints, Indices); } _pointsDirty = false; } }