Creating the Frame struct
What is a frame of data? That depends on the interpolation type. If the interpolation is constant (step) or linear, a frame is just a time and value. When the interpolation is cubic, you need to store the tangents as well.
A Hermite curve is made by connecting Hermite splines. Each control point consists of a time, a value, an incoming tangent, and an outgoing tangent. The incoming tangent is used if the control point is evaluated with the point that comes before it. The outgoing tangent is used if the control point is evaluated with the point that comes after it.
The time value stored in a frame is scalar, but what about the data and tangents? Should these values be scalar, a vector, or a quaternion? To make that decision, you have to think about how you might want to organize a collection of frames into a curve.
There are two strategies to choose from. You could create a scalar curve object, where the data and tangents are scalar values. Then,...