| 293 | } |
| 294 | |
| 295 | void CPHElement::TransformPosition(const Fmatrix& form) |
| 296 | { |
| 297 | if (!isActive()) |
| 298 | return; |
| 299 | VERIFY(_valid(form)); |
| 300 | R_ASSERT2(m_body, "body is not created"); |
| 301 | Fmatrix bm; |
| 302 | PHDynamicData::DMXPStoFMX(dBodyGetRotation(m_body), dBodyGetPosition(m_body), bm); |
| 303 | Fmatrix new_bm; |
| 304 | new_bm.mul(form, bm); |
| 305 | dMatrix3 dBM; |
| 306 | PHDynamicData::FMXtoDMX(new_bm, dBM); |
| 307 | dBodySetRotation(m_body, dBM); |
| 308 | VERIFY_BOUNDARIES2(new_bm.c, phBoundaries, PhysicsRefObject(), "TransformPosition dest pos") |
| 309 | dBodySetPosition(m_body, new_bm.c.x, new_bm.c.y, new_bm.c.z); |
| 310 | CPHDisablingFull::Reinit(); |
| 311 | m_body_interpolation.ResetPositions(); |
| 312 | m_body_interpolation.ResetRotations(); |
| 313 | m_flags.set(flUpdate, TRUE); |
| 314 | m_shell->spatial_move(); |
| 315 | } |
| 316 | CPHElement::~CPHElement() |
| 317 | { |
| 318 | VERIFY(!isActive()); |
nothing calls this directly
no test coverage detected