Refactor Collada: combined 2 almost identical functions into one
authorGaia Clary <gaia.clary@machinimatrix.org>
Sun, 11 Mar 2018 11:44:02 +0000 (12:44 +0100)
committerGaia Clary <gaia.clary@machinimatrix.org>
Sun, 11 Mar 2018 19:59:48 +0000 (20:59 +0100)
The 2 methods add_bezt() and create_bezt() do almost the same.
I combined them both into add_bezt() and added the optional parameter
eBezTriple_Interpolation ipo

source/blender/collada/AnimationImporter.cpp
source/blender/collada/AnimationImporter.h

index ed3d953166fc8d034f16a24f57a5946b9be87ca5..533090225dcd7ee0376e457bc2e44e3e8488695b 100644 (file)
@@ -70,14 +70,15 @@ FCurve *AnimationImporter::create_fcurve(int array_index, const char *rna_path)
        fcu->array_index = array_index;
        return fcu;
 }
-       
-void AnimationImporter::create_bezt(FCurve *fcu, float frame, float output)
+
+void AnimationImporter::add_bezt(FCurve *fcu, float frame, float value, eBezTriple_Interpolation ipo)
 {
+       //float fps = (float)FPS;
        BezTriple bez;
        memset(&bez, 0, sizeof(BezTriple));
        bez.vec[1][0] = frame;
-       bez.vec[1][1] = output;
-       bez.ipo = U.ipo_new; /* use default interpolation mode here... */
+       bez.vec[1][1] = value;
+       bez.ipo = ipo; /* use default interpolation mode here... */
        bez.f1 = bez.f2 = bez.f3 = SELECT;
        bez.h1 = bez.h2 = HD_AUTO;
        insert_bezt_fcurve(fcu, &bez, 0);
@@ -401,7 +402,7 @@ virtual void AnimationImporter::change_eul_to_quat(Object *ob, bAction *act)
                                eul_to_quat(quat, eul);
 
                                for (int k = 0; k < 4; k++)
-                                       create_bezt(quatcu[k], frame, quat[k]);
+                                       create_bezt(quatcu[k], frame, quat[k], U.ipo_new);
                        }
                }
 
@@ -2006,19 +2007,6 @@ void AnimationImporter::add_bone_fcurve(Object *ob, COLLADAFW::Node *node, FCurv
        action_groups_add_channel(act, grp, fcu);
 }
 
-void AnimationImporter::add_bezt(FCurve *fcu, float fra, float value)
-{
-       //float fps = (float)FPS;
-       BezTriple bez;
-       memset(&bez, 0, sizeof(BezTriple));
-       bez.vec[1][0] = fra;
-       bez.vec[1][1] = value;
-       bez.ipo = BEZT_IPO_LIN; /* use default interpolation mode here... */
-       bez.f1 = bez.f2 = bez.f3 = SELECT;
-       bez.h1 = bez.h2 = HD_AUTO;
-       insert_bezt_fcurve(fcu, &bez, 0);
-       calchandles_fcurve(fcu);
-}
 
 void AnimationImporter::set_import_from_version(std::string import_from_version)
 {
index 15dee8ff5f46e4e817d7e3921702fe659e7a5dc9..7dc4131dd69971a672bcc28a5054ed4af6323935 100644 (file)
@@ -78,7 +78,7 @@ private:
        
        FCurve *create_fcurve(int array_index, const char *rna_path);
        
-       void create_bezt(FCurve *fcu, float frame, float output);
+       void add_bezt(FCurve *fcu, float frame, float value, eBezTriple_Interpolation ipo=BEZT_IPO_LIN);
 
        // create one or several fcurves depending on the number of parameters being animated
        void animation_to_fcurves(COLLADAFW::AnimationCurve *curve);
@@ -214,8 +214,6 @@ public:
 
        void add_bone_fcurve(Object *ob, COLLADAFW::Node *node, FCurve *fcu);
 
-       void add_bezt(FCurve *fcu, float fra, float value);
-
        void extra_data_importer(std::string elementName);
 };