vectorNavigator derived from ygCAVENavigator

Description: a navigator that takes a direction and rotation vector

notes:
Category: User
Author: Alex Hill
Revision: 12/05/03

    Messages
direction three floats set the direction vector
rotation three floats set the rotation vector
orientation three floats set the absolute orientation
    Comments

constructor vectorNavigator

destructor ~vectorNavigator

method reset

1 set directon vector to 0,0,0
2 set rotation vector to 0,0,0

method message

1 set the direction vector
2 set the rotation vector
3 set the absolute orientation

method app

1 process direction and orientation input
2 if fly mode is false then adjust height to any ground collision
3 if collision detection is on then test for object collisions

method checkInput

1 extract X and Z vector components
2 add X and Z components to forward vector (0,1,0)
3 transform direction vector by current navigation matrix and normalize
4 multiply existing navigation matrix by new heading and pitch matrix
5 use Y vector component to create rotation matrix
6 multiply existing navigation matrix by new roll matrix
7 calculate translation component
8 if fly mode is false then zero the Z component
9 transform the direction vector by the user matrix
10 multiply existing navigation matrix by new translation matrix
11 update navigation coordinates