我正在从事大学任务以改进游戏引擎。我们给出的代码将3D网格对象存储在Frame
类中,该类描述了网格的边界体积。问题是引擎必须处理不同类型的边界体积之间的碰撞,例如球体,AABB和OABB。
给定Frame
类的工作方式是使用所有不同边界卷类型的数据成员和类型ID来指示它使用的是哪一个。给定任意两个Frame
个对象,调用代码会请求它们的类型ID,并从中确定要使用的碰撞方法。
我做的第一件事就是为各种BV类型创建子类,因此只分配了对象所需的内存。现在我试图找出一种更好的方法来调用代码来检查这两个子类之间的冲突。让他们返回类型ID似乎是不好的做法。有没有一种标准的方法呢?