Files
MonoGame.Extended/source/MonoGame.Extended.Graphics/PrimitiveTypeExtensions.cs
T
2024-05-18 19:59:41 -04:00

42 lines
1.4 KiB
C#

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.");
}
}
}
}