GetAngle
Revision as of 15:19, 13 August 2010 by imported>JT (I really hated the "world standard interpretation of angles" concept; bearings are more commonly understood (particularly by gamers), while trigonometric angles are esoteric to math only)
< [[::Category:Functions|Category:Functions]]
Link to TES4 Construction Set Wiki: GetAngle.
A function included in the GECK version 1.1.0.36.
Description
Returns the angle of the calling object relative to the world on the specified axis (X, Y, or Z).
Syntax
(float) [Object].GetAngle Axis:char{X, Y, Z}
Example
ActorRef.GetAngle Z Player.GetAngle X
Notes
- Special Notes (relative to GetAngle called upon the player)
- 'Player.GetAngle X' returns a value (theorically) from -90 to 90. The true in-game range is -89 to 89, with -89 if the player is looking above himself, and 89 if player is looking at his feet. Note that the player actually is looking 89 degrees above or below horizontal - you cannot look exactly up or exactly down in game.
- 'Player.GetAngle' Z returns a value from 0 to 360 depending on the player's current heading. Z angle is measured with the positive y-axis as 0 and increasing clockwise from there. In the Wasteland worldspace, this is North, however, the same is not true of interiors (other exterior worldspaces have not been tested) - GetAngle is based on the game's coordinate system and the Compass is based on the NorthMarker object in each cell. Therefore, GetAngle Z is only useful for determining compass directions in the exterior Wasteland worldspace.
- The angles returned are the common layman's understanding of angles, properly termed bearings. They increase clockwise, from 0 at the north to 90 in the east. These are not the same as the standard mathematical/trigonometric "angle", which increase counterclockwise, from 0 at the east to 90 at the north. Trigonometry with the Z angle could be done using the following conversion formula:
float GetAngleZ ;the game's version float TrigAngleZ ;the rest of the world's interpretation of the same set GetAngleZ to player.GetAngle Z if ( GetAngleZ < 90 ) set TrigAngleZ to 90 - GetAngleZ else set TrigAngleZ to 450 - GetAngleZ endif