47 lines
1.2 KiB
C#
47 lines
1.2 KiB
C#
![]() |
using UnityEngine;
|
|||
|
using System.Collections;
|
|||
|
|
|||
|
|
|||
|
namespace Obi
|
|||
|
{
|
|||
|
public struct SimplexCounts
|
|||
|
{
|
|||
|
public int pointCount;
|
|||
|
public int edgeCount;
|
|||
|
public int triangleCount;
|
|||
|
|
|||
|
public int simplexCount
|
|||
|
{
|
|||
|
get { return pointCount + edgeCount + triangleCount; }
|
|||
|
}
|
|||
|
|
|||
|
public SimplexCounts(int pointCount, int edgeCount, int triangleCount)
|
|||
|
{
|
|||
|
this.pointCount = pointCount;
|
|||
|
this.edgeCount = edgeCount;
|
|||
|
this.triangleCount = triangleCount;
|
|||
|
}
|
|||
|
|
|||
|
public int GetSimplexStartAndSize(int index, out int size)
|
|||
|
{
|
|||
|
if (index < triangleCount)
|
|||
|
{
|
|||
|
size = 3;
|
|||
|
return index * 3;
|
|||
|
}
|
|||
|
else if (index < triangleCount + edgeCount)
|
|||
|
{
|
|||
|
size = 2;
|
|||
|
return triangleCount * 3 + (index - triangleCount) * 2;
|
|||
|
}
|
|||
|
else if (index < simplexCount)
|
|||
|
{
|
|||
|
size = 1;
|
|||
|
return triangleCount * 3 + edgeCount * 2 + (index - triangleCount - edgeCount);
|
|||
|
}
|
|||
|
size = 0;
|
|||
|
return 0;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|