QAngle: Difference between revisions
Jump to navigation
Jump to search
Note:Z is clamped to +/-50 for player viewangles.
TomEdwards (talk | contribs) m (wth?) |
TomEdwards (talk | contribs) (redone; the diagram was wrong) |
||
Line 1: | Line 1: | ||
'''QAngle''' is a C++ class that represents a three-dimensional Euler angle. Each QAngle contains three [[vec_t]] ordinates: | |||
* X, for pitch (+down/-up) | |||
| | * Y, for yaw (+left/-right) | ||
* Z, for roll (+right/-left) | |||
(45,10,0) means 45° down, 10° left and 0° roll. | |||
{{note|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 == | == Converting to a vector == | ||
As there is no specific [[Data Descriptions#DEFINE_FIELD|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: | |||
<source lang=cpp> | |||
QAngle angMyAngle = QAngle(vecFromHammer.x, vecFromHammer.y, vecFromHammer.z); | |||
// Conversion back to a vector, if required | |||
Vector vecDirection; | |||
AngleVectors(angMyAngle, &vecDirection);</source> | |||
== See also == | |||
< | * [[Wikipedia:Yaw, pitch, and roll]] | ||
* [[getpos|getpos and setang]] | |||
* [[Vector]] | |||
* <code>[[AngleVectors()]]</code> and <code>[[VectorAngles()]]</code> | |||
[[Category:Glossary]] | [[Category:Glossary]] | ||
[[Category: | [[Category:Variables]] | ||
Revision as of 06:00, 7 June 2009
QAngle is a C++ class that represents a three-dimensional Euler angle. Each QAngle contains three vec_t ordinates:
- X, for pitch (+down/-up)
- Y, for yaw (+left/-right)
- Z, for roll (+right/-left)
(45,10,0) means 45° down, 10° left and 0° roll.

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
Vector vecDirection;
AngleVectors(angMyAngle, &vecDirection);