Группировка тел из контрольного набора

При контроле столкновений часто требуется искать столкновения не для всех пар из контрольного набора тел, а только между группами тел. Например, можно повысить быстродействие, если не тратить время на тесты пересечения, когда известно, что тела внутри группы не пересекаются, либо по какой-то причине проверки внутри группы не требуется. Организовать такую группировку можно двумя способами.

Первый способ – передавать одно и то же значение appItem при добавлении тел одной группы в метод AddItem. Этот способ удобен, когда тела группируются естественным образом по их принадлежности некоторому «монолитному» объекту на стороне пользовательского приложения.

Второй способ – настроить запрос cdet_query, позволяющий пропускать тест пересечения для пары тел, принадлежащих одной и той же группе. Пример этого можно увидеть в исходном коде класса cdet_collided_faces. Для этого нужно в методе обратного вызова вернуть CBACK_SKIP по событию CDET_STARTED для пары тел, принадлежащей одной и той же группе.