From 02c85b9fe8d9acb2802210eb65bca450f21c5712 Mon Sep 17 00:00:00 2001 From: Bogdan Devichev Date: Thu, 27 Nov 2014 15:16:03 +0200 Subject: [PATCH] evas: add lib/evas/common/evas_model_.c. Functions are renamed similar to functions in image_save_load process. --- src/Makefile_Evas.am | 2 ++ src/lib/evas/canvas/evas_3d_mesh.c | 35 ++----------------- src/lib/evas/common/evas_model_load.c | 34 ++++++++++++++++++ src/lib/evas/common/evas_model_save.c | 32 +++++++++++++++++ src/lib/evas/include/evas_private.h | 11 ++++++ .../model_loaders/eet/evas_model_load_eet.c | 2 +- .../model_loaders/md2/evas_model_load_md2.c | 2 +- .../model_loaders/obj/evas_model_load_obj.c | 2 +- .../model_loaders/ply/evas_model_load_ply.c | 2 +- .../model_savers/eet/evas_model_save_eet.c | 6 ++-- .../model_savers/obj/evas_model_save_obj.c | 2 +- .../model_savers/ply/evas_model_save_ply.c | 2 +- 12 files changed, 90 insertions(+), 42 deletions(-) create mode 100644 src/lib/evas/common/evas_model_load.c create mode 100644 src/lib/evas/common/evas_model_save.c diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am index 57bdc67fb4..6de4860960 100644 --- a/src/Makefile_Evas.am +++ b/src/Makefile_Evas.am @@ -234,6 +234,8 @@ lib/evas/common/evas_image_save.c \ lib/evas/common/evas_image_main.c \ lib/evas/common/evas_image_data.c \ lib/evas/common/evas_image_scalecache.c \ +lib/evas/common/evas_model_load.c \ +lib/evas/common/evas_model_save.c \ lib/evas/common/evas_line_main.c \ lib/evas/common/evas_polygon_main.c \ lib/evas/common/evas_rectangle_main.c \ diff --git a/src/lib/evas/canvas/evas_3d_mesh.c b/src/lib/evas/canvas/evas_3d_mesh.c index 81b9117628..572da9dd04 100644 --- a/src/lib/evas/canvas/evas_3d_mesh.c +++ b/src/lib/evas/canvas/evas_3d_mesh.c @@ -809,24 +809,7 @@ _evas_3d_mesh_file_set(Eo *obj, Evas_3D_Mesh_Data *pd, Evas_3D_Mesh_File_Type ty if (file == NULL) return; - switch (type) - { - case EVAS_3D_MESH_FILE_TYPE_MD2: - evas_3d_mesh_file_md2_set(obj, file); - break; - case EVAS_3D_MESH_FILE_TYPE_OBJ: - evas_3d_mesh_file_obj_set(obj, file); - break; - case EVAS_3D_MESH_FILE_TYPE_EET: - evas_3d_mesh_file_eet_set(obj, file); - break; - case EVAS_3D_MESH_FILE_TYPE_PLY: - evas_3d_mesh_file_ply_set(obj, file); - break; - default: - ERR("Invalid mesh file type."); - break; - } + evas_common_load_model_to_file(obj, file, type); } EOLIAN static void @@ -843,21 +826,7 @@ _evas_3d_mesh_save(Eo *obj, Evas_3D_Mesh_Data *pd, Evas_3D_Mesh_File_Type type, return; } - switch (type) - { - case EVAS_3D_MESH_FILE_TYPE_OBJ: - evas_3d_mesh_save_obj(obj, file, f);//file without extension! - break; - case EVAS_3D_MESH_FILE_TYPE_EET: - evas_3d_mesh_save_eet(obj, file, f); - break; - case EVAS_3D_MESH_FILE_TYPE_PLY: - evas_3d_mesh_save_ply(obj, file, f); - break; - default: - ERR("Invalid mesh file type."); - break; - } + evas_common_save_model_to_file(obj, file, f, type); } static inline void diff --git a/src/lib/evas/common/evas_model_load.c b/src/lib/evas/common/evas_model_load.c new file mode 100644 index 0000000000..1f35cb0d97 --- /dev/null +++ b/src/lib/evas/common/evas_model_load.c @@ -0,0 +1,34 @@ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "evas_options.h" + +#include "evas_common_private.h" +#include "evas_private.h" + + +void +evas_common_load_model_to_file(Evas_3D_Mesh *model, + const char *file, + Evas_3D_Mesh_File_Type type) +{ + switch (type) + { + case EVAS_3D_MESH_FILE_TYPE_MD2: + evas_model_load_file_md2(model, file); + break; + case EVAS_3D_MESH_FILE_TYPE_OBJ: + evas_model_load_file_obj(model, file); + break; + case EVAS_3D_MESH_FILE_TYPE_EET: + evas_model_load_file_eet(model, file); + break; + case EVAS_3D_MESH_FILE_TYPE_PLY: + evas_model_load_file_ply(model, file); + break; + default: + ERR("Invalid mesh file type."); + break; + } +} diff --git a/src/lib/evas/common/evas_model_save.c b/src/lib/evas/common/evas_model_save.c new file mode 100644 index 0000000000..85b9b4113f --- /dev/null +++ b/src/lib/evas/common/evas_model_save.c @@ -0,0 +1,32 @@ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "evas_options.h" + +#include "evas_common_private.h" +#include "evas_private.h" + + +void +evas_common_save_model_to_file(Evas_3D_Mesh *model, + const char *file, + Evas_3D_Mesh_Frame *f, + Evas_3D_Mesh_File_Type type) +{ + switch (type) + { + case EVAS_3D_MESH_FILE_TYPE_OBJ: + evas_model_save_file_obj(model, file, f); + break; + case EVAS_3D_MESH_FILE_TYPE_EET: + evas_model_save_file_eet(model, file, f); + break; + case EVAS_3D_MESH_FILE_TYPE_PLY: + evas_model_save_file_ply(model, file, f); + break; + default: + ERR("Invalid mesh file type."); + break; + } +} diff --git a/src/lib/evas/include/evas_private.h b/src/lib/evas/include/evas_private.h index c00cc50f1c..62fd186e57 100644 --- a/src/lib/evas/include/evas_private.h +++ b/src/lib/evas/include/evas_private.h @@ -1646,6 +1646,17 @@ void _evas_3d_eet_file_init(void); void _evas_3d_eet_descriptor_shutdown(void); void _evas_3d_eet_file_free(void); +/* Temporary save/load functions */ +void evas_common_load_model_to_file(Evas_3D_Mesh *model, const char *file, Evas_3D_Mesh_File_Type type); +void evas_common_save_model_to_file(Evas_3D_Mesh *model, const char *file, Evas_3D_Mesh_Frame *f, Evas_3D_Mesh_File_Type type); +void evas_model_load_file_eet(Evas_3D_Mesh *mesh, const char *file); +void evas_model_load_file_md2(Evas_3D_Mesh *mesh, const char *file); +void evas_model_load_file_obj(Evas_3D_Mesh *mesh, const char *file); +void evas_model_load_file_ply(Evas_3D_Mesh *mesh, const char *file); +void evas_model_save_file_eet(Evas_3D_Mesh *mesh, const char *file, Evas_3D_Mesh_Frame *f); +void evas_model_save_file_obj(Evas_3D_Mesh *mesh, const char *file, Evas_3D_Mesh_Frame *f); +void evas_model_save_file_ply(Evas_3D_Mesh *mesh, const char *file, Evas_3D_Mesh_Frame *f); + extern int _evas_alloc_error; extern int _evas_event_counter; diff --git a/src/modules/evas/model_loaders/eet/evas_model_load_eet.c b/src/modules/evas/model_loaders/eet/evas_model_load_eet.c index 26c3569e04..fadd6aacd9 100644 --- a/src/modules/evas/model_loaders/eet/evas_model_load_eet.c +++ b/src/modules/evas/model_loaders/eet/evas_model_load_eet.c @@ -104,7 +104,7 @@ _set_material_to_mesh_from_eet_file(Evas_3D_Mesh *mesh, } void -evas_3d_mesh_file_eet_set(Evas_3D_Mesh *mesh, const char *file) +evas_model_load_file_eet(Evas_3D_Mesh *mesh, const char *file) { Eet_File *ef; diff --git a/src/modules/evas/model_loaders/md2/evas_model_load_md2.c b/src/modules/evas/model_loaders/md2/evas_model_load_md2.c index 4a356b75c3..11d28451f5 100644 --- a/src/modules/evas/model_loaders/md2/evas_model_load_md2.c +++ b/src/modules/evas/model_loaders/md2/evas_model_load_md2.c @@ -343,7 +343,7 @@ error: } void -evas_3d_mesh_file_md2_set(Evas_3D_Mesh *mesh, const char *file) +evas_model_load_file_md2(Evas_3D_Mesh *mesh, const char *file) { MD2_Loader loader; int i, j, k; diff --git a/src/modules/evas/model_loaders/obj/evas_model_load_obj.c b/src/modules/evas/model_loaders/obj/evas_model_load_obj.c index c6733a7c3a..36977464ba 100644 --- a/src/modules/evas/model_loaders/obj/evas_model_load_obj.c +++ b/src/modules/evas/model_loaders/obj/evas_model_load_obj.c @@ -202,7 +202,7 @@ _count_elements(char *start, long length)//count elements of mesh in .obj } void -evas_3d_mesh_file_obj_set(Evas_3D_Mesh *mesh, const char *file) +evas_model_load_file_obj(Evas_3D_Mesh *mesh, const char *file) { long length, i; char * start = _file_to_buf(file, &length); diff --git a/src/modules/evas/model_loaders/ply/evas_model_load_ply.c b/src/modules/evas/model_loaders/ply/evas_model_load_ply.c index b4bbe18c28..a294f6eb0a 100644 --- a/src/modules/evas/model_loaders/ply/evas_model_load_ply.c +++ b/src/modules/evas/model_loaders/ply/evas_model_load_ply.c @@ -198,7 +198,7 @@ _read_header(char *start)//Check properties of mesh in .ply file. } void -evas_3d_mesh_file_ply_set(Evas_3D_Mesh *mesh, const char *file) +evas_model_load_file_ply(Evas_3D_Mesh *mesh, const char *file) { long length; Evas_3D_Mesh_Data *pd; diff --git a/src/modules/evas/model_savers/eet/evas_model_save_eet.c b/src/modules/evas/model_savers/eet/evas_model_save_eet.c index c801ac1025..e445dca249 100644 --- a/src/modules/evas/model_savers/eet/evas_model_save_eet.c +++ b/src/modules/evas/model_savers/eet/evas_model_save_eet.c @@ -148,9 +148,9 @@ _set_frame_to_eet_file_from_mesh(Evas_3D_Mesh_Eet *eet_mesh) } void -evas_3d_mesh_save_eet(Evas_3D_Mesh *mesh, - const char *file, - Evas_3D_Mesh_Frame *f) +evas_model_save_file_eet(Evas_3D_Mesh *mesh, + const char *file, + Evas_3D_Mesh_Frame *f) { Evas_3D_Mesh_Data *pd = eo_data_scope_get(mesh, EVAS_3D_MESH_CLASS); Eet_File *ef = eet_open(file, EET_FILE_MODE_WRITE); diff --git a/src/modules/evas/model_savers/obj/evas_model_save_obj.c b/src/modules/evas/model_savers/obj/evas_model_save_obj.c index c7699b3292..35773e304f 100644 --- a/src/modules/evas/model_savers/obj/evas_model_save_obj.c +++ b/src/modules/evas/model_savers/obj/evas_model_save_obj.c @@ -129,7 +129,7 @@ _save_material(Evas_3D_Mesh_Data *pd EINA_UNUSED, const char *file, Evas_3D_Mesh } void -evas_3d_mesh_save_obj(Evas_3D_Mesh *mesh, const char *file, Evas_3D_Mesh_Frame *f) +evas_model_save_file_obj(Evas_3D_Mesh *mesh, const char *file, Evas_3D_Mesh_Frame *f) { Evas_3D_Mesh_Data *pd = eo_data_scope_get(mesh, EVAS_3D_MESH_CLASS); _save_mesh(pd, file, f); diff --git a/src/modules/evas/model_savers/ply/evas_model_save_ply.c b/src/modules/evas/model_savers/ply/evas_model_save_ply.c index a0ba9457d3..b99f080eec 100644 --- a/src/modules/evas/model_savers/ply/evas_model_save_ply.c +++ b/src/modules/evas/model_savers/ply/evas_model_save_ply.c @@ -10,7 +10,7 @@ #include "evas_private.h" void -evas_3d_mesh_save_ply(Evas_3D_Mesh *mesh, const char *file, Evas_3D_Mesh_Frame *f) +evas_model_save_file_ply(Evas_3D_Mesh *mesh, const char *file, Evas_3D_Mesh_Frame *f) { float *src_pos, *src_nor, *src_tex, *src_col; int i;