MCPcopy Create free account
hub / github.com/OGSR/OGSR-Engine / TransformPosition

Method TransformPosition

ogsr_engine/xrGame/PHElement.cpp:295–315  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

293}
294
295void 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}
316CPHElement::~CPHElement()
317{
318 VERIFY(!isActive());

Callers

nothing calls this directly

Calls 10

dBodyGetRotationFunction · 0.85
dBodyGetPositionFunction · 0.85
dBodySetRotationFunction · 0.85
dBodySetPositionFunction · 0.85
ResetPositionsMethod · 0.80
ResetRotationsMethod · 0.80
_validFunction · 0.50
mulMethod · 0.45
setMethod · 0.45
spatial_moveMethod · 0.45

Tested by

no test coverage detected