gpt4 book ai didi

c++ - 如何处理不同的包围体类型?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:33:06 26 4
gpt4 key购买 nike

我正在完成一项改进游戏引擎的大学作业。我们获得的代码将 3D 网格对象存储在 Frame 类中,该类描述了网格的边界体积。问题是引擎必须处理不同类型的包围体之间的碰撞,例如球体、AABB 和 OABB。

给定的 Frame 类的工作方式是通过拥有所有不同边界体积类型的数据成员和类型 ID 来指示它正在使用的类型。给定任何两个 Frame 对象,调用代码请求它们的类型 ID 并从那里计算出使用哪种碰撞方法。

我做的第一件事是为各种 BV 类型创建子类,因此只分配对象需要的内存。现在,我正在尝试为调用代码找出一种更好的方法来检查其中两个子类之间的冲突。让他们返回一个类型 ID 似乎是一种不好的做法。有执行此操作的标准方法吗?

最佳答案

你问的是 double-dispatch .

关于c++ - 如何处理不同的包围体类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9552407/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com