Havok_2014-1-0_Pc_Xs_User_Guide(2.5.3-保存接触点)

来源:互联网 发布:sql的delete语句 编辑:程序博客网 时间:2024/05/22 13:57

2.5.3 保存接触点


hkpSaveContactPointsUtil允许你为选择的身体碰撞部分或整个场景立刻保存接触信息。

对于每个碰撞入口(e例如:互相接触的一对身体)当涉及复合形状时,我们存储hkContactPoints,它们的hkpContactPointProperties和整个碰撞代理层次结构。该实用工具不支持所有现有的碰撞代理。因此在代理层次结构中遇到不支持代理时,保存的碰撞入口终止。

也有一些有限的序列化支持接触点信息,它允许您存储和恢复全部的接触信息,但是限制运行时的配置(请参阅Limitations 部分)。

Physics 2012 / Api / Dynamics / World /World Snapshot接触点是一个简单的示例演示如何保存hkpHavokSnapshotwith接触点,以及如何从磁盘加载进来。


2.5.3.1保存的方法和参数

有三个hkpSaveContactPointsUtil:saveContactPoints()函数变体让您保存全部hkpWorld的碰撞入口,hkpEntities的列表,或者一个显式的碰撞项的列表(hkpAgentNnEntry
结构表示)。 (The variation with specified list of hkpEntities attempts to save all collision entries,where at least one of the involved hkpEntities is on the input list.)

如果不能保存单个碰撞入口,(即当遇到不受支持的代理类型),它只是忽略,实用程序继续处理剩余的碰撞入口。

碰撞条目保存到hkSerializedAgentNnEntries数组,括在一个hkpPhysicsSystemWithContacts实例。谨慎的一个个保存碰撞条目,因为没有执行检查以重复检查,即multiple hkSerializedAgentNnEntries stored for one pair of bodies。

序列化的碰撞入口以后必须被链接回各自的hkpEntities。要做到这一点你可以选择直接存储hkpEntity指针,或者使用自定义惟一的id。前者解决方案是有用的if you’re saving an entire hkpHavokSnapshot with hkpRigidBodies included in it.The latter solution is helpful if you want to remove involved hkpEntities from the hkpWorld after saving, destroythem and then recreate later before you load the points again.

使用 SavePointsInput 结构在保存 hkpEntity 指针或自定义 id 之间进行选择。如果使用的



0 0