Revision control

++
++ This document explains the format of QQuickTimeline binary keyframes.
++ Timeline KeyframeGroup 'keyframeSource' property can be used to load
++ these keyframes into KeyframeGroup.
++
++ Binary format is using CBOR binary data serialization format: https://cbor.io
++
++ The format of keyframes CBOR data is following:
++
++ [
++ "QTimelineKeyframes", // string
++ version, // integer
++ propertyType, // integer
++ [
++ frame, // double
++ easing, // integer
++ [n items depending on propertyType]
++ frame,
++ ...
++ ]
++ ]
++
++ The content of keyframes array depend on propertyType. So for qreal
++ each dataset is 3 numbers (frame + easing + qreal), for QVector3D
++ 5 numbers (frame + easing + QVector3D) and for QQuartenion
++ 6 numbers (frame + easing + QQuartenion).
++
++ Value of propertyType is the QMetaType::Type of the keyframe property.
++
++ Value of frame (time) is double.
++
++ Value of easing is the QEasingCurve::Type of the keyframe easing.
++
++
++ Example 1. CBOR content for qreal property (e.g. Item opacity):
++
++ [
++ "QTimelineKeyframes",
++ 1,
++ 6,
++ [
++ 0,
++ 0,
++ 0.0,
++ 500,
++ 0,
++ 0.2,
++ 1000,
++ 0,
++ 1.0
++ ]
++ ]
++
++
++ Example 2. CBOR content for QVector3D property (e.g. Node position):
++
++ [
++ "QTimelineKeyframes",
++ 1,
++ 83,
++ [
++ 0,
++ 0,
++ 0.123,
++ 0.123,
++ 0.123,
++ 10,
++ 0,
++ 0.234,
++ 0.123,
++ 0.123,
++ 20,
++ 0,
++ 0.334,
++ 0.334,
++ 0.334,
++ ...
++ ]
++ ]