Beispiel #1
0
        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;
        }
Beispiel #2
0
        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;
            }
        }