Model_save_load. Step 3. lib/evas/common/evas_model_<action>.c is added. Functions are renamed similar to functions in image_save_load process.

This commit is contained in:
Bogdan Devichev 2014-11-27 15:16:03 +02:00
parent 2f502b7f0e
commit 291291e027
12 changed files with 90 additions and 42 deletions

View File

@ -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 \

View File

@ -777,24 +777,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
@ -811,21 +794,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

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -1636,6 +1636,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;

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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;

View File

@ -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);

View File

@ -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);

View File

@ -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;