diff options
Diffstat (limited to 'source/blender/collada/AnimationExporter.h')
-rw-r--r-- | source/blender/collada/AnimationExporter.h | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/source/blender/collada/AnimationExporter.h b/source/blender/collada/AnimationExporter.h index 71d7d14a112..27474cc2b58 100644 --- a/source/blender/collada/AnimationExporter.h +++ b/source/blender/collada/AnimationExporter.h @@ -86,20 +86,22 @@ typedef enum BC_animation_source_type { BC_SOURCE_TYPE_TIMEFRAME, } BC_animation_source_type; +typedef enum BC_global_rotation_type { + BC_NO_ROTATION, + BC_OBJECT_ROTATION, + BC_DATA_ROTATION +} BC_global_rotation_type; + class AnimationExporter : COLLADASW::LibraryAnimations { private: - BlenderContext &blender_context; COLLADASW::StreamWriter *sw; - const ExportSettings *export_settings; + BCExportSettings &export_settings; + + BC_global_rotation_type get_global_rotation_type(Object *ob); public: - AnimationExporter(BlenderContext &blender_context, - COLLADASW::StreamWriter *sw, - const ExportSettings *export_settings) - : COLLADASW::LibraryAnimations(sw), - blender_context(blender_context), - sw(sw), - export_settings(export_settings) + AnimationExporter(COLLADASW::StreamWriter *sw, BCExportSettings &export_settings) + : COLLADASW::LibraryAnimations(sw), sw(sw), export_settings(export_settings) { } @@ -176,14 +178,17 @@ class AnimationExporter : COLLADASW::LibraryAnimations { std::string name, std::string target, std::string axis, - BCAnimationCurve &curve); + BCAnimationCurve &curve, + BC_global_rotation_type global_rotation_type); /* call to the low level collada exporter */ void export_collada_matrix_animation(std::string id, std::string name, std::string target, BCFrames &frames, - BCMatrixSampleMap &outmats); + BCMatrixSampleMap &outmats, + BC_global_rotation_type global_rotation_type, + Matrix &parentinv); BCAnimationCurve *get_modified_export_curve(Object *ob, BCAnimationCurve &curve, @@ -202,7 +207,10 @@ class AnimationExporter : COLLADASW::LibraryAnimations { const std::string axis_name); /* Output sources (matrix data) */ - std::string collada_source_from_values(BCMatrixSampleMap &samples, const std::string &anim_id); + std::string collada_source_from_values(BCMatrixSampleMap &samples, + const std::string &anim_id, + BC_global_rotation_type global_rotation_type, + Matrix &parentinv); /* Interpolation sources */ std::string collada_linear_interpolation_source(int tot, const std::string &anim_id); |