public static void GetPointStates(PointState[] state1, PointState[] state2, Manifold manifold1, Manifold manifold2)
{
for (int i = 0; i < Settings.MAX_MANIFOLD_POINTS; i++)
{
state1[i] = PointState.NullState;
state2[i] = PointState.NullState;
}
// Detect persists and removes.
for (int i = 0; i < manifold1.PointCount; i++)
{
ContactID id = manifold1.Points[i].Id;
state1[i] = PointState.RemoveState;
for (int j = 0; j < manifold2.PointCount; j++)
{
if (manifold2.Points[j].Id.IsEqual(id))
{
state1[i] = PointState.PersistState;
break;
}
}
}
// Detect persists and adds
for (int i = 0; i < manifold2.PointCount; i++)
{
ContactID id = manifold2.Points[i].Id;
state2[i] = PointState.AddState;
for (int j = 0; j < manifold1.PointCount; j++)
{
if (manifold1.Points[j].Id.IsEqual(id))
{
state2[i] = PointState.PersistState;
break;
}
}
}
}