Creating quaternions
Quaternions are used to encode rotation data. In code, quaternions will have four components. They resemble vec4
in that they have an x
, y
, z
, and w
component.
As with vec4
, the w
component comes last.
The quat
structure should have two constructors. The default constructor creates an identity quaternion, (0, 0, 0, 1)
. The (0, 0, 0, 1)
identity quaternion is like 1
. Any number multiplied by 1
remains the same. Similarly, any quaternion multiplied by the identity quaternion remains the same:
Create a new file, quat.h
, to declare the quaternion structure. The quat
structure is going to be used throughout the rest of this book to represent rotations:
#ifndef _H_QUAT_ #define _H_QUAT_ #include "vec3.h" #include "mat4.h" struct quat { union { struct { float x; float...