Cleanup: commas at the end of enums
[blender.git] / source / blender / collada / AnimationImporter.h
index 18303eb2f0bda524598f4f83cde51e0a25f0a630..9d763ea391df2617dfe55262c038f00d7da64c4b 100644 (file)
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * ***** BEGIN GPL LICENSE BLOCK *****
  *
  * This program is free software; you can redistribute it and/or
  * along with this program; if not, write to the Free Software Foundation,
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * Contributor(s): Chingiz Dyussenov, Arystanbek Dyussenov, Nathan Letwory , Sukhitha Jayathilake.
+ * Contributor(s): Chingiz Dyussenov, Arystanbek Dyussenov, Nathan Letwory, Sukhitha Jayathilake.
  *
  * ***** END GPL LICENSE BLOCK *****
  */
+
 /** \file AnimationImporter.h
  *  \ingroup collada
  */
 
-#ifndef __BC_ANIMATIONIMPORTER_H__
-#define __BC_ANIMATIONIMPORTER_H__
+#ifndef __ANIMATIONIMPORTER_H__
+#define __ANIMATIONIMPORTER_H__
 
 #include <map>
 #include <vector>
 #include "COLLADAFWEffect.h"
 #include "COLLADAFWInstanceGeometry.h"
 
+extern "C" {
 #include "DNA_anim_types.h"
 #include "DNA_object_types.h"
 #include "DNA_scene_types.h"
 #include "DNA_lamp_types.h"
 #include "DNA_camera_types.h"
+}
 
 //#include "ArmatureImporter.h"
 #include "TransformReader.h"
@@ -75,26 +75,31 @@ private:
        std::map<COLLADAFW::UniqueId, const COLLADAFW::AnimationList*> animlist_map;
        std::vector<FCurve*> unused_curves;
        std::map<COLLADAFW::UniqueId, Object*> joint_objects;
-       
+
        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);
 
        void fcurve_deg_to_rad(FCurve *cu);
 
-       void add_fcurves_to_object(Object *ob, std::vector<FCurve*>& curves, char *rna_path, int array_index, Animation *animated);
-       
+       void fcurve_is_used(FCurve *fcu);
+
+       void add_fcurves_to_object(Main *bmain, Object *ob, std::vector<FCurve*>& curves, char *rna_path, int array_index, Animation *animated);
+
+
        int typeFlag;
-    
+
+       std::string import_from_version;
+
        enum lightAnim
        {
 //             INANIMATE = 0,
                LIGHT_COLOR     = 2,
                LIGHT_FOA = 4,
-               LIGHT_FOE = 8
+               LIGHT_FOE = 8,
        };
 
        enum cameraAnim
@@ -102,8 +107,10 @@ private:
 //             INANIMATE = 0,
                CAMERA_XFOV = 2,
                CAMERA_XMAG = 4,
-               CAMERA_ZFAR = 8,
-               CAMERA_ZNEAR = 16
+               CAMERA_YFOV = 8,
+               CAMERA_YMAG = 16,
+               CAMERA_ZFAR = 32,
+               CAMERA_ZNEAR = 64,
        };
 
        enum matAnim
@@ -112,9 +119,9 @@ private:
                MATERIAL_SPEC_COLOR = 4,
                MATERIAL_DIFF_COLOR = 1 << 3,
                MATERIAL_TRANSPARENCY = 1 << 4,
-               MATERIAL_IOR = 1 << 5
+               MATERIAL_IOR = 1 << 5,
        };
-       
+
        enum AnimationType
                {
                        INANIMATE = 0,
@@ -135,8 +142,9 @@ public:
 
        ~AnimationImporter();
 
+       void set_import_from_version(std::string import_from_version);
        bool write_animation(const COLLADAFW::Animation* anim);
-       
+
        // called on post-process stage after writeVisualScenes
        bool write_animation_list(const COLLADAFW::AnimationList* animlist);
 
@@ -144,37 +152,43 @@ public:
 #if 0
        virtual void change_eul_to_quat(Object *ob, bAction *act);
 #endif
-  
-       void translate_Animations( COLLADAFW::Node * Node , 
-                                                                                                  std::map<COLLADAFW::UniqueId, COLLADAFW::Node*>& root_map,
-                                                                                                  std::map<COLLADAFW::UniqueId, Object*>& object_map ,
-                                                                                                  std::map<COLLADAFW::UniqueId, const COLLADAFW::Object*> FW_object_map);
-
-       AnimMix* get_animation_type( const COLLADAFW::Node * node , std::map<COLLADAFW::UniqueId,const COLLADAFW::Object*> FW_object_map ) ;
-
-       void apply_matrix_curves( Object * ob, std::vector<FCurve*>& animcurves, COLLADAFW::Node* root ,COLLADAFW::Node* node,
-                                                                       COLLADAFW::Transformation * tm );
-
-       void Assign_transform_animations(COLLADAFW::Transformation* transform , 
-                                                                        const COLLADAFW::AnimationList::AnimationBinding * binding,
-                                                                        std::vector<FCurve*>* curves, bool is_joint, char * joint_path);
-
-       void Assign_color_animations(const COLLADAFW::UniqueId& listid, ListBase *AnimCurves ,char * anim_type);
-       void Assign_float_animations(const COLLADAFW::UniqueId& listid, ListBase *AnimCurves, char * anim_type);
-    
-       int setAnimType ( const COLLADAFW::Animatable * prop , int type, int addition);
-       
-       void modify_fcurve(std::vector<FCurve*>* curves , char* rna_path , int array_index );
+
+       void translate_Animations(Main *bmain, COLLADAFW::Node * Node,
+                                 std::map<COLLADAFW::UniqueId, COLLADAFW::Node*>& root_map,
+                                 std::multimap<COLLADAFW::UniqueId, Object*>& object_map,
+                                 std::map<COLLADAFW::UniqueId, const COLLADAFW::Object*> FW_object_map,
+                                 std::map<COLLADAFW::UniqueId, Material*> uid_material_map);
+
+       AnimMix* get_animation_type( const COLLADAFW::Node * node, std::map<COLLADAFW::UniqueId, const COLLADAFW::Object*> FW_object_map );
+
+       void apply_matrix_curves(Main *bmain, Object *ob, std::vector<FCurve*>& animcurves, COLLADAFW::Node* root, COLLADAFW::Node* node,
+                                COLLADAFW::Transformation * tm );
+
+       void add_bone_animation_sampled(Main *bmain, Object *ob, std::vector<FCurve*>& animcurves, COLLADAFW::Node* root, COLLADAFW::Node* node, COLLADAFW::Transformation * tm);
+
+       void Assign_transform_animations(COLLADAFW::Transformation* transform,
+                                        const COLLADAFW::AnimationList::AnimationBinding *binding,
+                                        std::vector<FCurve*>* curves, bool is_joint, char *joint_path);
+
+       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);
+       void Assign_lens_animations(const COLLADAFW::UniqueId& listid, ListBase *AnimCurves, const double aspect, Camera *cam, const char *anim_type, int fov_type);
+
+       int setAnimType ( const COLLADAFW::Animatable * prop, int type, int addition);
+
+       void modify_fcurve(std::vector<FCurve*>* curves, const char *rna_path, int array_index );
+       void unused_fcurve(std::vector<FCurve*>* curves );
        // prerequisites:
        // animlist_map - map animlist id -> animlist
        // 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,
-                                                               COLLADAFW::Transformation::TransformationType tm_type,
-                                                               Object *par_job = NULL);
-       
-       void find_frames( std::vector<float>* frames , std::vector<FCurve*>* curves );
+       Object *translate_animation_OLD(
+               Main *bmain, COLLADAFW::Node *node,
+               std::map<COLLADAFW::UniqueId, Object*>& object_map,
+               std::map<COLLADAFW::UniqueId, COLLADAFW::Node*>& root_map,
+               COLLADAFW::Transformation::TransformationType tm_type,
+               Object *par_job = NULL);
+
+       void find_frames( std::vector<float>* frames, std::vector<FCurve*>* curves );
        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
@@ -190,6 +204,8 @@ public:
        // 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, COLLADAFW::Node *end);
 
+       float convert_to_focal_length(float in_xfov, int fov_type, float aspect, float sensorx);
+
 #ifdef ARMATURE_TEST
        Object *get_joint_object(COLLADAFW::Node *root, COLLADAFW::Node *node, Object *par_job);
 #endif
@@ -202,9 +218,7 @@ 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);
 };
- #endif
+
+#endif