diff options
Diffstat (limited to 'source/blender/io/collada/AnimationImporter.h')
-rw-r--r-- | source/blender/io/collada/AnimationImporter.h | 56 |
1 files changed, 44 insertions, 12 deletions
diff --git a/source/blender/io/collada/AnimationImporter.h b/source/blender/io/collada/AnimationImporter.h index 44001366adc..a4624a18cd5 100644 --- a/source/blender/io/collada/AnimationImporter.h +++ b/source/blender/io/collada/AnimationImporter.h @@ -75,7 +75,9 @@ class AnimationImporter : private TransformReader, public AnimationImporterBase float value, eBezTriple_Interpolation ipo = BEZT_IPO_LIN); - /* create one or several fcurves depending on the number of parameters being animated */ + /** + * Create one or several fcurves depending on the number of parameters being animated. + */ void animation_to_fcurves(COLLADAFW::AnimationCurve *curve); void fcurve_deg_to_rad(FCurve *cu); @@ -143,9 +145,14 @@ class AnimationImporter : private TransformReader, public AnimationImporterBase void set_import_from_version(std::string import_from_version); bool write_animation(const COLLADAFW::Animation *anim); - /* called on post-process stage after writeVisualScenes */ + /** Called on post-process stage after writeVisualScenes. */ bool write_animation_list(const COLLADAFW::AnimationList *animlist); + /** + * \todo refactor read_node_transform to not automatically apply anything, + * but rather return the transform matrix, so caller can do with it what is + * necessary. Same for \ref get_node_mat + */ void read_node_transform(COLLADAFW::Node *node, Object *ob); #if 0 virtual void change_eul_to_quat(Object *ob, bAction *act); @@ -157,6 +164,10 @@ class AnimationImporter : private TransformReader, public AnimationImporterBase std::map<COLLADAFW::UniqueId, const COLLADAFW::Object *> FW_object_map, std::map<COLLADAFW::UniqueId, Material *> uid_material_map); + /** + * Check if object is animated by checking if animlist_map + * holds the animlist_id of node transforms. + */ AnimMix *get_animation_type( const COLLADAFW::Node *node, std::map<COLLADAFW::UniqueId, const COLLADAFW::Object *> FW_object_map); @@ -173,18 +184,31 @@ class AnimationImporter : private TransformReader, public AnimationImporterBase COLLADAFW::Node *node, COLLADAFW::Transformation *tm); + /** + * Creates the rna_paths and array indices of fcurves from animations using transformation and + * bound animation class of each animation. + */ void Assign_transform_animations(COLLADAFW::Transformation *transform, const COLLADAFW::AnimationList::AnimationBinding *binding, std::vector<FCurve *> *curves, bool is_joint, char *joint_path); + /** + * Creates the rna_paths and array indices of fcurves from animations using color and bound + * animation class of each animation. + */ void Assign_color_animations(const COLLADAFW::UniqueId &listid, ListBase *AnimCurves, const char *anim_type); void Assign_float_animations(const COLLADAFW::UniqueId &listid, ListBase *AnimCurves, const char *anim_type); + /** + * Lens animations must be stored in COLLADA by using FOV, + * while blender internally uses focal length. + * The imported animation curves must be converted appropriately. + */ void Assign_lens_animations(const COLLADAFW::UniqueId &listid, ListBase *AnimCurves, const double aspect, @@ -194,14 +218,17 @@ class AnimationImporter : private TransformReader, public AnimationImporterBase int setAnimType(const COLLADAFW::Animatable *prop, int type, int addition); + /** Sets the rna_path and array index to curve. */ void modify_fcurve(std::vector<FCurve *> *curves, const char *rna_path, int array_index, int scale = 1); void unused_fcurve(std::vector<FCurve *> *curves); - /* prerequisites: + /** + * Prerequisites: * animlist_map - map animlist id -> animlist - * curve_map - map anim id -> curve(s) */ + * curve_map - map anim id -> curve(s). + */ Object *translate_animation_OLD(COLLADAFW::Node *node, std::map<COLLADAFW::UniqueId, Object *> &object_map, std::map<COLLADAFW::UniqueId, COLLADAFW::Node *> &root_map, @@ -209,24 +236,27 @@ class AnimationImporter : private TransformReader, public AnimationImporterBase Object *par_job = NULL); void find_frames(std::vector<float> *frames, std::vector<FCurve *> *curves); + /** Is not used anymore. */ void find_frames_old(std::vector<float> *frames, COLLADAFW::Node *node, COLLADAFW::Transformation::TransformationType tm_type); - /* internal, better make it private - * warning: evaluates only rotation - * prerequisites: animlist_map, curve_map */ + /** + * Internal, better make it private + * warning: evaluates only rotation and only assigns matrix transforms now + * prerequisites: animlist_map, curve_map. + */ void evaluate_transform_at_frame(float mat[4][4], COLLADAFW::Node *node, float fra); - /* return true to indicate that mat contains a sane value */ + /** Return true to indicate that mat contains a sane value. */ bool evaluate_animation(COLLADAFW::Transformation *tm, float mat[4][4], float fra, const char *node_id); - /* gives a world-space mat of joint at rest position */ + /** Gives a world-space mat of joint at rest position. */ void get_joint_rest_mat(float mat[4][4], COLLADAFW::Node *root, COLLADAFW::Node *node); - /* gives a world-space mat, end's mat not included */ + /** * Gives a world-space mat, end's mat not included. */ bool calc_joint_parent_mat_rest(float mat[4][4], float par[4][4], COLLADAFW::Node *node, @@ -239,8 +269,10 @@ class AnimationImporter : private TransformReader, public AnimationImporterBase #endif #if 0 - /* recursively evaluates joint tree until end is found, mat then is world-space matrix of end - * mat must be identity on enter, node must be root */ + /** + * Recursively evaluates joint tree until end is found, mat then is world-space matrix of end + * mat must be identity on enter, node must be root. + */ bool evaluate_joint_world_transform_at_frame( float mat[4][4], float par[4][4], COLLADAFW::Node *node, COLLADAFW::Node *end, float fra); #endif |