blob: 68a39efb39083ddc5e08cc56b9b3e90501cb8545 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
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.");
}
}
}
}
|