| 640 | } |
| 641 | |
| 642 | void 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 | |
| 670 | bool MeshRendererFakeShadowTest::isState(unsigned int state, unsigned int bit) const |
| 671 | { |
nothing calls this directly
no test coverage detected