QAngle: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
mNo edit summary
No edit summary
Line 1: Line 1:
'''QAngle''' is a C++ class that represents a three-dimensional Euler angle. Each QAngle contains three [[vec_t]] ordinates:  
'''QAngle''' is a C++ class that represents a three-dimensional Euler angle. Each QAngle contains three [[vec_t]] ordinates:  


* X, for pitch (+down/-up)
* '''X''' pitch +down/-up
* Y, for yaw (+left/-right)
* '''Y''' yaw +left/-right
* Z, for roll (+right/-left)
* '''Z''' roll +right/-left


(45,10,0) means 45° down, 10° left and 0° roll.
<code>(45,10,0)</code> means 45&deg; down, 10&deg; left and 0&deg; roll.


{{note|Z is clamped to +/-50 for player viewangles.}}
{{note|Z is clamped to +/-50 for player viewangles.}}
Line 15: Line 15:
* The classname QAngle is case-sensitive.
* The classname QAngle is case-sensitive.
* You could also assign to the X, Y and Z member variables separately.
* You could also assign to the X, Y and Z member variables separately.
* The prefix ang (or sometimes just a) identifies the variable as an angle.
* The prefix <code>ang</code> (or sometimes just <code>a</code>) identifies the variable as an angle.


== Converting to a vector ==
== Converting to a vector ==

Revision as of 06:10, 7 June 2009

QAngle is a C++ class that represents a three-dimensional Euler angle. Each QAngle contains three vec_t ordinates:

  • X pitch +down/-up
  • Y yaw +left/-right
  • Z roll +right/-left

(45,10,0) means 45° down, 10° left and 0° roll.

Note.pngNote:Z is clamped to +/-50 for player viewangles.

Declaration

QAngle angMyAngle = QAngle(45,10,0);
  • The classname QAngle is case-sensitive.
  • You could also assign to the X, Y and Z member variables separately.
  • The prefix ang (or sometimes just a) identifies the variable as an angle.

Converting to a vector

As there is no specific datadesc keyfield for angles, one chosen in Hammer will arrive as a vector. Its ordinates will represent degrees of rotation and not coordinates so it must be fixed up before use:

QAngle angMyAngle = QAngle(vecFromHammer.x, vecFromHammer.y, vecFromHammer.z);

// Conversion back to a vector, if required
AngleVectors(angMyAngle, &vecFromHammer);

See also