Я работаю над университетским заданием по улучшению игрового движка.Код, который мы получили, хранит трехмерные объекты сетки внутри класса Frame
, который описывает ограничивающий объем для сетки.Проблема заключается в том, что движок должен обрабатывать коллизии между различными типами ограничивающих томов, такими как сферы, AABB и OABB.
Способ работы данного класса Frame
заключается в наличии элементов данных для всех различных ограничивающих элементов.типы тома и идентификатор типа, чтобы указать, какой из них он использует.Для любых двух Frame
объектов вызывающий код запрашивает их идентификаторы типов и определяет, какой метод коллизий использовать оттуда.
Первое, что я сделал, было создание подклассов для различных типов BV, поэтому только памятьобъект потребности выделяется.Теперь я пытаюсь найти лучший способ для вызывающего кода проверить наличие коллизий между этими двумя подклассами.Когда они возвращают идентификатор типа, это кажется плохой практикой.Есть ли стандартный способ сделать это?