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

Method FlyTo

ogsr_engine/xrGame/CharacterPhysicsSupport.cpp:902–931  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

900}
901
902void CCharacterPhysicsSupport::FlyTo(const Fvector& disp)
903{
904 VERIFY(m_pPhysicsShell);
905 float ammount = disp.magnitude();
906 if (fis_zero(ammount, EPS_L))
907 return;
908 ph_world->Freeze();
909 bool g = m_pPhysicsShell->get_ApplyByGravity();
910 m_pPhysicsShell->set_ApplyByGravity(false);
911 m_pPhysicsShell->add_ObjectContactCallback(StaticEnvironmentCB);
912 void* cd = m_pPhysicsShell->get_CallbackData();
913 m_pPhysicsShell->set_CallbackData(m_pPhysicsShell->PIsland());
914 m_pPhysicsShell->UnFreeze();
915 Fvector vel;
916 vel.set(disp);
917 const u16 steps_num = 10;
918 const float fsteps_num = steps_num;
919 vel.mul(1.f / fsteps_num / fixed_step);
920
921 for (u16 i = 0; steps_num > i; ++i)
922 {
923 m_pPhysicsShell->set_LinearVel(vel);
924 ph_world->Step();
925 }
926 // u16 step_num=disp.magnitude()/fixed_step;
927 m_pPhysicsShell->set_ApplyByGravity(g);
928 m_pPhysicsShell->set_CallbackData(cd);
929 m_pPhysicsShell->remove_ObjectContactCallback(StaticEnvironmentCB);
930 ph_world->UnFreeze();
931}
932
933void CCharacterPhysicsSupport::TestForWounded()
934{

Callers

nothing calls this directly

Calls 15

fis_zeroFunction · 0.85
PIslandMethod · 0.80
magnitudeMethod · 0.45
FreezeMethod · 0.45
get_ApplyByGravityMethod · 0.45
set_ApplyByGravityMethod · 0.45
get_CallbackDataMethod · 0.45
set_CallbackDataMethod · 0.45
UnFreezeMethod · 0.45
setMethod · 0.45
mulMethod · 0.45

Tested by

no test coverage detected