MCPcopy Create free account
hub / github.com/axmolengine/axmol / updateState

Method updateState

tests/cpp-tests/Source/MeshRendererTest/MeshRendererTest.cpp:642–668  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

640}
641
642void MeshRendererFakeShadowTest::updateState(float elapsedTime)
643{
644 Vec3 curPos = _orc->getPosition3D();
645 Vec3 curFaceDir;
646 _orc->getNodeToWorldTransform().getForwardVector(&curFaceDir);
647 curFaceDir = -curFaceDir;
648 curFaceDir.normalize();
649 Vec3 newFaceDir = _targetPos - curPos;
650 newFaceDir.y = 0.0f;
651 newFaceDir.normalize();
652 float cosAngle = std::fabs(Vec3::dot(curFaceDir, newFaceDir) - 1.0f);
653 float dist = curPos.distanceSquared(_targetPos);
654 if (dist <= 4.0f)
655 {
656 if (cosAngle <= 0.01f)
657 _curState = State_Idle;
658 else
659 _curState = State_Rotate;
660 }
661 else
662 {
663 if (cosAngle > 0.01f)
664 _curState = State_Rotate | State_Move;
665 else
666 _curState = State_Move;
667 }
668}
669
670bool MeshRendererFakeShadowTest::isState(unsigned int state, unsigned int bit) const
671{

Callers

nothing calls this directly

Calls 7

fabsFunction · 0.85
dotFunction · 0.50
getPosition3DMethod · 0.45
getForwardVectorMethod · 0.45
normalizeMethod · 0.45
distanceSquaredMethod · 0.45

Tested by

no test coverage detected