CSharpGL.AxisModel.GenerateIndexes C# (CSharp) Метод

GenerateIndexes() приватный Метод

private GenerateIndexes ( int partCount ) : uint[]
partCount int
Результат uint[]
        private uint[] GenerateIndexes(int partCount)
        {
            var indexes = new uint[3 * (3 * (1 + (partCount + 1) + 1))];
            int index = 0;
            // x axis
            indexes[index++] = 0;
            for (uint i = 0; i < (partCount + 1); i++)
            {
                indexes[index++] = (uint)(i % partCount + 1);
            }
            indexes[index++] = uint.MaxValue;// seprate triangle fans.
            indexes[index++] = (uint)(1 + partCount);
            for (uint i = 0; i < (partCount + 1); i++)
            {
                indexes[index++] = (uint)(i % partCount + 1 + (1 + partCount));
            }
            indexes[index++] = uint.MaxValue;// seprate triangle fans.
            indexes[index++] = (uint)((3 + 2 * partCount - 1));
            for (uint i = 0; i < (partCount + 1); i++)
            {
                indexes[index++] = (uint)(i % partCount + 1 + (1 + partCount));
            }
            indexes[index++] = uint.MaxValue;// seprate triangle fans.
            // y axis
            for (uint i = 0; i < 3 * (1 + (partCount + 1) + 1); i++)
            {
                uint value = indexes[i];
                if (value == uint.MaxValue)
                { indexes[index++] = uint.MaxValue; }
                else
                { indexes[index++] = (uint)(value + 3 + 2 * partCount); }
            }
            // z axis
            for (uint i = 0; i < 3 * (1 + (partCount + 1) + 1); i++)
            {
                uint value = indexes[i];
                if (value == uint.MaxValue)
                { indexes[index++] = uint.MaxValue; }
                else
                { indexes[index++] = (uint)(value + 3 + 2 * partCount + 3 + 2 * partCount); }
            }

            return indexes;
        }