去掉obi,使用自写绳索
This commit is contained in:
@@ -1,41 +0,0 @@
|
||||
#if (OBI_BURST && OBI_MATHEMATICS && OBI_COLLECTIONS)
|
||||
using Unity.Collections;
|
||||
|
||||
namespace Obi
|
||||
{
|
||||
public struct ContactProvider : IConstraintProvider
|
||||
{
|
||||
public NativeArray<BurstContact> contacts;
|
||||
public NativeArray<BurstContact> sortedContacts;
|
||||
public NativeArray<int> simplices;
|
||||
public SimplexCounts simplexCounts;
|
||||
|
||||
public int GetConstraintCount()
|
||||
{
|
||||
return contacts.Length;
|
||||
}
|
||||
|
||||
public int GetParticleCount(int constraintIndex)
|
||||
{
|
||||
simplexCounts.GetSimplexStartAndSize(contacts[constraintIndex].bodyA, out int simplexSizeA);
|
||||
simplexCounts.GetSimplexStartAndSize(contacts[constraintIndex].bodyB, out int simplexSizeB);
|
||||
return simplexSizeA + simplexSizeB;
|
||||
}
|
||||
public int GetParticle(int constraintIndex, int index)
|
||||
{
|
||||
int simplexStartA = simplexCounts.GetSimplexStartAndSize(contacts[constraintIndex].bodyA, out int simplexSizeA);
|
||||
int simplexStartB = simplexCounts.GetSimplexStartAndSize(contacts[constraintIndex].bodyB, out int simplexSizeB);
|
||||
if (index < simplexSizeA)
|
||||
return simplices[simplexStartA + index];
|
||||
else
|
||||
return simplices[simplexStartB + index - simplexSizeA];
|
||||
}
|
||||
|
||||
public void WriteSortedConstraint(int constraintIndex, int sortedIndex)
|
||||
{
|
||||
sortedContacts[sortedIndex] = contacts[constraintIndex];
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user