I'm doing c++ blender file parser, and I faced a problem with reading fcurves arrays for an actionGroup (that is mainly pointer to a bone). The thing is we can insert keyframes via multiple options: location, rotation, scale, location & rotatiopn & scale, location & scale and so on - the problem is FCurve structure has no evident member to define which type of keyframes insertion was done. It has a ".flag" parameter that can be 1 for most fcurves but when I delete them and re-insert again it turns into 3, for example, for all main types of insertion (L, R, S, L & R & S, L & R).
How is that possible to define a transformation type for a single curve to properly read BezTriples after? Or Blender distinguish the fcurves on its own special logic? Becuase if I have 7 Fcurves for a bone, how do I get their bone transformation types? One is obviously a rotation (4 fcurves) but the other or others - location or scale? And if I have them just 3? What are these - location or scale?
(the only clear FCurve structure parameter is array index that is useful for follwoing BezTriples reading, rotation is revealed by 0, 1, 2, 3 indices, but location and scale both have 0, 1, 2)