diff options
Diffstat (limited to 'source/blender/collada/collada.cpp')
-rw-r--r-- | source/blender/collada/collada.cpp | 103 |
1 files changed, 16 insertions, 87 deletions
diff --git a/source/blender/collada/collada.cpp b/source/blender/collada/collada.cpp index b86246c1399..64e3a4c36ce 100644 --- a/source/blender/collada/collada.cpp +++ b/source/blender/collada/collada.cpp @@ -44,100 +44,29 @@ extern "C" #include "BLI_fileops.h" #include "BLI_linklist.h" -int collada_import(bContext *C, - const char *filepath, - int import_units, - int find_chains, - int auto_connect, - int fix_orientation, - int min_chain_length, - int keep_bind_info) +int collada_import(bContext *C, ImportSettings *import_settings) { - - ImportSettings import_settings; - import_settings.filepath = (char *)filepath; - import_settings.import_units = import_units != 0; - import_settings.auto_connect = auto_connect != 0; - import_settings.find_chains = find_chains != 0; - import_settings.fix_orientation = fix_orientation != 0; - import_settings.min_chain_length = min_chain_length; - import_settings.keep_bind_info = keep_bind_info !=0; - - DocumentImporter imp(C, &import_settings); - if (imp.import()) return 1; - - return 0; + DocumentImporter imp(C, import_settings); + return (imp.import())? 1:0; } -int collada_export( - EvaluationContext *eval_ctx, - Scene *sce, - const char *filepath, - - int apply_modifiers, - BC_export_mesh_type export_mesh_type, - - int selected, - int include_children, - int include_armatures, - int include_shapekeys, - int deform_bones_only, - int include_animations, - int sampling_rate, - - int active_uv_only, - int include_material_textures, - int use_texture_copies, - - int triangulate, - int use_object_instantiation, - int use_blender_profile, - int sort_by_name, - BC_export_transformation_type export_transformation_type, - int open_sim, - int limit_precision, - int keep_bind_info) +int collada_export(EvaluationContext *eval_ctx, + Scene *sce, + ExportSettings *export_settings) { - ExportSettings export_settings; - ViewLayer *view_layer = eval_ctx->view_layer; - export_settings.filepath = (char *)filepath; - - export_settings.apply_modifiers = apply_modifiers != 0; - export_settings.export_mesh_type = export_mesh_type; - export_settings.selected = selected != 0; - export_settings.include_children = include_children != 0; - export_settings.include_armatures = include_armatures != 0; - export_settings.include_shapekeys = include_shapekeys != 0; - export_settings.deform_bones_only = deform_bones_only != 0; - export_settings.include_animations = include_animations; - export_settings.sampling_rate = sampling_rate; - - export_settings.active_uv_only = active_uv_only != 0; - export_settings.include_material_textures= include_material_textures != 0; - export_settings.use_texture_copies = use_texture_copies != 0; - - export_settings.triangulate = triangulate != 0; - export_settings.use_object_instantiation = use_object_instantiation != 0; - export_settings.use_blender_profile = use_blender_profile != 0; - export_settings.sort_by_name = sort_by_name != 0; - export_settings.export_transformation_type = export_transformation_type; - export_settings.open_sim = open_sim != 0; - export_settings.limit_precision = limit_precision != 0; - export_settings.keep_bind_info = keep_bind_info !=0; - int includeFilter = OB_REL_NONE; - if (export_settings.include_armatures) includeFilter |= OB_REL_MOD_ARMATURE; - if (export_settings.include_children) includeFilter |= OB_REL_CHILDREN_RECURSIVE; + if (export_settings->include_armatures) includeFilter |= OB_REL_MOD_ARMATURE; + if (export_settings->include_children) includeFilter |= OB_REL_CHILDREN_RECURSIVE; - eObjectSet objectSet = (export_settings.selected) ? OB_SET_SELECTED : OB_SET_ALL; - export_settings.export_set = BKE_object_relational_superset(view_layer, objectSet, (eObRelationTypes)includeFilter); + eObjectSet objectSet = (export_settings->selected) ? OB_SET_SELECTED : OB_SET_ALL; + export_settings->export_set = BKE_object_relational_superset(view_layer, objectSet, (eObRelationTypes)includeFilter); - int export_count = BLI_linklist_count(export_settings.export_set); + int export_count = BLI_linklist_count(export_settings->export_set); if (export_count == 0) { - if (export_settings.selected) { + if (export_settings->selected) { fprintf(stderr, "Collada: Found no objects to export.\nPlease ensure that all objects which shall be exported are also visible in the 3D Viewport.\n"); } else { @@ -145,14 +74,14 @@ int collada_export( } } else { - if (export_settings.sort_by_name) - bc_bubble_sort_by_Object_name(export_settings.export_set); + if (export_settings->sort_by_name) + bc_bubble_sort_by_Object_name(export_settings->export_set); } - DocumentExporter exporter(eval_ctx, &export_settings); + DocumentExporter exporter(eval_ctx, export_settings); int status = exporter.exportCurrentScene(sce); - BLI_linklist_free(export_settings.export_set, NULL); + BLI_linklist_free(export_settings->export_set, NULL); return (status) ? -1:export_count; } |