| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- using System;
- using Microsoft.Xna.Framework.Graphics;
- namespace MonoGame.Extended.Graphics
- {
- public static class PrimitiveTypeExtensions
- {
- internal static int GetPrimitivesCount(this PrimitiveType primitiveType, int verticesCount)
- {
- switch (primitiveType)
- {
- case PrimitiveType.LineStrip:
- return verticesCount - 1;
- case PrimitiveType.LineList:
- return verticesCount/2;
- case PrimitiveType.TriangleStrip:
- return verticesCount - 2;
- case PrimitiveType.TriangleList:
- return verticesCount/3;
- default:
- throw new ArgumentException("Invalid primitive type.");
- }
- }
- internal static int GetVerticesCount(this PrimitiveType primitiveType, int primitivesCount)
- {
- switch (primitiveType)
- {
- case PrimitiveType.LineStrip:
- return primitivesCount + 1;
- case PrimitiveType.LineList:
- return primitivesCount*2;
- case PrimitiveType.TriangleStrip:
- return primitivesCount + 2;
- case PrimitiveType.TriangleList:
- return primitivesCount*3;
- default:
- throw new ArgumentException("Invalid primitive type.");
- }
- }
- }
- }
|