From 01f732d97b2196b3569ee6f9a7ff66f51cc12029 Mon Sep 17 00:00:00 2001 From: Gaia Clary Date: Wed, 28 Feb 2018 15:53:00 +0100 Subject: Collada: Moved structure definitions for export settings to the exportSettings.h Also make typedefs for import/export structures. --- source/blender/collada/DocumentExporter.h | 2 +- source/blender/collada/ExportSettings.h | 30 ++++++++++++++++++++++++++---- source/blender/collada/ImportSettings.h | 7 ++----- source/blender/collada/collada.h | 18 ++++-------------- 4 files changed, 33 insertions(+), 24 deletions(-) (limited to 'source/blender/collada') diff --git a/source/blender/collada/DocumentExporter.h b/source/blender/collada/DocumentExporter.h index b2d8214212c..1bc4851da3d 100644 --- a/source/blender/collada/DocumentExporter.h +++ b/source/blender/collada/DocumentExporter.h @@ -27,7 +27,7 @@ #ifndef __DOCUMENTEXPORTER_H__ #define __DOCUMENTEXPORTER_H__ -#include "ExportSettings.h" +#include "collada.h" extern "C" { #include "DNA_customdata_types.h" diff --git a/source/blender/collada/ExportSettings.h b/source/blender/collada/ExportSettings.h index 73a101108a9..fa6751bef60 100644 --- a/source/blender/collada/ExportSettings.h +++ b/source/blender/collada/ExportSettings.h @@ -27,10 +27,28 @@ #ifndef __EXPORTSETTINGS_H__ #define __EXPORTSETTINGS_H__ -#include "collada.h" +#ifdef __cplusplus +extern "C" { +#endif + +#include "BLI_linklist.h" + +typedef enum BC_export_mesh_type { + BC_MESH_TYPE_VIEW, + BC_MESH_TYPE_RENDER +} BC_export_mesh_type; + +typedef enum BC_export_transformation_type { + BC_TRANSFORMATION_TYPE_MATRIX, + BC_TRANSFORMATION_TYPE_TRANSROTLOC +} BC_export_transformation_type; -struct ExportSettings { -public: +typedef enum BC_export_texture_type { + BC_TEXTURE_TYPE_MAT, + BC_TEXTURE_TYPE_UV +} BC_export_texture_type; + +typedef struct ExportSettings { bool apply_modifiers; BC_export_mesh_type export_mesh_type; @@ -58,6 +76,10 @@ public: char *filepath; LinkNode *export_set; -}; +} ExportSettings; + +#ifdef __cplusplus +} +#endif #endif diff --git a/source/blender/collada/ImportSettings.h b/source/blender/collada/ImportSettings.h index 4a2d4e8046a..fb4277b048f 100644 --- a/source/blender/collada/ImportSettings.h +++ b/source/blender/collada/ImportSettings.h @@ -27,10 +27,7 @@ #ifndef __IMPORTSETTINGS_H__ #define __IMPORTSETTINGS_H__ -#include "collada.h" - -struct ImportSettings { -public: +typedef struct ImportSettings { bool import_units; bool find_chains; bool auto_connect; @@ -38,6 +35,6 @@ public: int min_chain_length; char *filepath; bool keep_bind_info; -}; +} ImportSettings; #endif diff --git a/source/blender/collada/collada.h b/source/blender/collada/collada.h index 09b46c1de58..cc975abd198 100644 --- a/source/blender/collada/collada.h +++ b/source/blender/collada/collada.h @@ -28,6 +28,10 @@ #define __COLLADA_H__ #include + +#include "ImportSettings.h" +#include "ExportSettings.h" + #ifdef __cplusplus extern "C" { #endif @@ -37,20 +41,6 @@ extern "C" { #include "BLI_path_util.h" #include "RNA_types.h" -typedef enum BC_export_mesh_type { - BC_MESH_TYPE_VIEW, - BC_MESH_TYPE_RENDER -} BC_export_mesh_type; - -typedef enum BC_export_transformation_type { - BC_TRANSFORMATION_TYPE_MATRIX, - BC_TRANSFORMATION_TYPE_TRANSROTLOC -} BC_export_transformation_type; - -typedef enum BC_export_texture_type { - BC_TEXTURE_TYPE_MAT, - BC_TEXTURE_TYPE_UV -} BC_export_texture_type; struct EvaluationContext; struct bContext; -- cgit v1.2.3 From 91c3cfbb6f116e7caf311a0038c0112aa76210ab Mon Sep 17 00:00:00 2001 From: Gaia Clary Date: Wed, 28 Feb 2018 15:59:49 +0100 Subject: collada: call from operator to Collada exporter/importer now uses structures instead of passing many parameters --- source/blender/collada/DocumentExporter.h | 1 + source/blender/collada/collada.cpp | 97 +++++-------------------------- source/blender/collada/collada.h | 35 +---------- 3 files changed, 17 insertions(+), 116 deletions(-) (limited to 'source/blender/collada') diff --git a/source/blender/collada/DocumentExporter.h b/source/blender/collada/DocumentExporter.h index 1bc4851da3d..00f64070b25 100644 --- a/source/blender/collada/DocumentExporter.h +++ b/source/blender/collada/DocumentExporter.h @@ -31,6 +31,7 @@ extern "C" { #include "DNA_customdata_types.h" +#include "BKE_depsgraph.h" } struct Scene; diff --git a/source/blender/collada/collada.cpp b/source/blender/collada/collada.cpp index 7f723aae710..3794b6aefac 100644 --- a/source/blender/collada/collada.cpp +++ b/source/blender/collada/collada.cpp @@ -42,96 +42,27 @@ 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, - BC_export_texture_type export_texture_type, - 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) + ExportSettings *export_settings) { - ExportSettings export_settings; - - 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.export_texture_type = export_texture_type; - 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(sce, objectSet, (eObRelationTypes)includeFilter); - int export_count = BLI_linklist_count(export_settings.export_set); + eObjectSet objectSet = (export_settings->selected) ? OB_SET_SELECTED : OB_SET_ALL; + export_settings->export_set = BKE_object_relational_superset(sce, objectSet, (eObRelationTypes)includeFilter); + 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 { @@ -139,14 +70,14 @@ int collada_export(EvaluationContext *eval_ctx, } } 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(&export_settings); + DocumentExporter exporter(export_settings); int status = exporter.exportCurrentScene(eval_ctx, sce); - BLI_linklist_free(export_settings.export_set, NULL); + BLI_linklist_free(export_settings->export_set, NULL); return (status) ? -1:export_count; } diff --git a/source/blender/collada/collada.h b/source/blender/collada/collada.h index cc975abd198..312f11d4ba9 100644 --- a/source/blender/collada/collada.h +++ b/source/blender/collada/collada.h @@ -50,42 +50,11 @@ struct Scene; * both return 1 on success, 0 on error */ int collada_import(struct 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); + ImportSettings *import_settings); int collada_export(struct EvaluationContext *eval_ctx, struct 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, - BC_export_texture_type export_texture_type, - 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); + ExportSettings *export_settings); #ifdef __cplusplus } -- cgit v1.2.3 From a363324f7fbba599522d93c4b20d7ada209967d9 Mon Sep 17 00:00:00 2001 From: Gaia Clary Date: Wed, 28 Feb 2018 16:05:18 +0100 Subject: Collada: Make EvaluationContext const as its only used for reading here --- source/blender/collada/DocumentExporter.cpp | 2 +- source/blender/collada/DocumentExporter.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender/collada') diff --git a/source/blender/collada/DocumentExporter.cpp b/source/blender/collada/DocumentExporter.cpp index 2b5d5692871..d4eb6b477db 100644 --- a/source/blender/collada/DocumentExporter.cpp +++ b/source/blender/collada/DocumentExporter.cpp @@ -181,7 +181,7 @@ static COLLADABU::NativeString make_temp_filepath(const char *name, const char * // COLLADA allows this through multiple s in . // For this to work, we need to know objects that use a certain action. -int DocumentExporter::exportCurrentScene(EvaluationContext *eval_ctx, Scene *sce) +int DocumentExporter::exportCurrentScene(const EvaluationContext *eval_ctx, Scene *sce) { PointerRNA sceneptr, unit_settings; PropertyRNA *system; /* unused , *scale; */ diff --git a/source/blender/collada/DocumentExporter.h b/source/blender/collada/DocumentExporter.h index 00f64070b25..60e5deb0e31 100644 --- a/source/blender/collada/DocumentExporter.h +++ b/source/blender/collada/DocumentExporter.h @@ -40,7 +40,7 @@ class DocumentExporter { public: DocumentExporter(const ExportSettings *export_settings); - int exportCurrentScene(EvaluationContext *eval_ctx, Scene *sce); + int exportCurrentScene(const EvaluationContext *eval_ctx, Scene *sce); void exportScenes(const char *filename); private: const ExportSettings *export_settings; -- cgit v1.2.3