[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49805] branches/soc-2012-bratwurst/source /blender: - bf_fbx: add settings parameter to entry point, enable the assimp log pipe by default.
Alexander Gessler
alexander.gessler at gmx.net
Sat Aug 11 15:42:44 CEST 2012
Revision: 49805
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49805
Author: aramis_acg
Date: 2012-08-11 13:42:44 +0000 (Sat, 11 Aug 2012)
Log Message:
-----------
- bf_fbx: add settings parameter to entry point, enable the assimp log pipe by default.
Modified Paths:
--------------
branches/soc-2012-bratwurst/source/blender/assimp/SceneImporter.cpp
branches/soc-2012-bratwurst/source/blender/assimp/SceneImporter.h
branches/soc-2012-bratwurst/source/blender/fbx/bfbx.cpp
branches/soc-2012-bratwurst/source/blender/fbx/bfbx.h
branches/soc-2012-bratwurst/source/blender/windowmanager/intern/wm_operators.c
Modified: branches/soc-2012-bratwurst/source/blender/assimp/SceneImporter.cpp
===================================================================
--- branches/soc-2012-bratwurst/source/blender/assimp/SceneImporter.cpp 2012-08-11 13:41:59 UTC (rev 49804)
+++ branches/soc-2012-bratwurst/source/blender/assimp/SceneImporter.cpp 2012-08-11 13:42:44 UTC (rev 49805)
@@ -103,6 +103,12 @@
}
+Assimp::Importer& SceneImporter::get_importer()
+{
+ return importer;
+}
+
+
const char* SceneImporter::get_file_path() const
{
return path;
Modified: branches/soc-2012-bratwurst/source/blender/assimp/SceneImporter.h
===================================================================
--- branches/soc-2012-bratwurst/source/blender/assimp/SceneImporter.h 2012-08-11 13:41:59 UTC (rev 49804)
+++ branches/soc-2012-bratwurst/source/blender/assimp/SceneImporter.h 2012-08-11 13:42:44 UTC (rev 49805)
@@ -102,6 +102,8 @@
SceneImporter(const char* path, bContext& C, const bassimp_import_settings& settings);
~SceneImporter();
+
+ Assimp::Importer& get_importer();
bool import();
bool apply();
Modified: branches/soc-2012-bratwurst/source/blender/fbx/bfbx.cpp
===================================================================
--- branches/soc-2012-bratwurst/source/blender/fbx/bfbx.cpp 2012-08-11 13:41:59 UTC (rev 49804)
+++ branches/soc-2012-bratwurst/source/blender/fbx/bfbx.cpp 2012-08-11 13:42:44 UTC (rev 49805)
@@ -27,6 +27,8 @@
#include <cassert>
#include "../assimp/SceneImporter.h"
+#include "bfbx.h"
+
extern "C"
{
#include "BKE_scene.h"
@@ -36,18 +38,27 @@
#include "BLI_fileops.h"
#include "BLI_path_util.h"
- int bfbx_import(bContext *C, const char *filepath)
+ int bfbx_import(bContext *C, const char *filepath, const bfbx_import_settings* settings)
{
assert(C);
assert(filepath);
- bassimp_import_settings defaults;
- defaults.enableAssimpLog = 0;
- defaults.reports = NULL;
- defaults.nolines = 0;
- defaults.triangulate = 0;
+ bfbx_import_settings defaults;
- bassimp::SceneImporter imp(filepath,*C,defaults);
+ defaults.assimp_settings.enableAssimpLog = 0;
+ defaults.assimp_settings.reports = NULL;
+ defaults.assimp_settings.nolines = 0;
+ defaults.assimp_settings.triangulate = 0;
+
+ if(!settings) {
+ settings = &defaults;
+ }
+
+ bassimp::SceneImporter imp(filepath,*C,settings->assimp_settings);
+
+ //Assimp::Importer& ai_imp = imp.get_importer();
+ //importer.SetPropertyInteger(AI_CONFIG_IMPORT_FBX_STRICT_MODE,settings->strict_mode);
+
return imp.import() != 0 && imp.apply() != 0;
}
Modified: branches/soc-2012-bratwurst/source/blender/fbx/bfbx.h
===================================================================
--- branches/soc-2012-bratwurst/source/blender/fbx/bfbx.h 2012-08-11 13:41:59 UTC (rev 49804)
+++ branches/soc-2012-bratwurst/source/blender/fbx/bfbx.h 2012-08-11 13:42:44 UTC (rev 49805)
@@ -34,11 +34,23 @@
extern "C" {
#endif
+ /* fbx import settings */
+ typedef struct bfbx_import_settings
+ {
+ /* settings for assimp */
+ bassimp_import_settings assimp_settings;
+ /* in strict mode, only the 2013 fbx format will be read. In non-strict
+ * mode the importer attempts to make the best out of the data it gets.*/
+ int strict_mode;
+
+ } bfbx_import_settings;
+
+
/* import/export functions
* both return 1 on success, 0 on error
*/
- int bfbx_import(bContext *C, const char *filepath);
+ int bfbx_import(bContext *C, const char *filepath, const bfbx_import_settings* settings);
//int bassimp_export(Scene *sce, const char *filepath, int selected, int apply_modifiers);
#ifdef __cplusplus
}
Modified: branches/soc-2012-bratwurst/source/blender/windowmanager/intern/wm_operators.c
===================================================================
--- branches/soc-2012-bratwurst/source/blender/windowmanager/intern/wm_operators.c 2012-08-11 13:41:59 UTC (rev 49804)
+++ branches/soc-2012-bratwurst/source/blender/windowmanager/intern/wm_operators.c 2012-08-11 13:42:44 UTC (rev 49805)
@@ -2233,6 +2233,7 @@
/* function used for WM_OT_save_mainfile too */
static int wm_fbx_import_exec(bContext *C, wmOperator *op)
{
+ bfbx_import_settings settings;
char filename[FILE_MAX];
if (!RNA_struct_property_is_set(op->ptr, "filepath")) {
@@ -2241,8 +2242,18 @@
}
RNA_string_get(op->ptr, "filepath", filename);
- if (bfbx_import(C, filename)) return OPERATOR_FINISHED;
+ settings.assimp_settings.reports = op->reports;
+ settings.assimp_settings.triangulate = 0;
+ settings.assimp_settings.nolines = 0;
+ settings.assimp_settings.enableAssimpLog = 1;
+
+ settings.strict_mode = 0;
+
+ if (bfbx_import(C, filename, &settings)) {
+ return OPERATOR_FINISHED;
+ }
+
BKE_report(op->reports, RPT_ERROR, "Errors found during importing. Please see console for error log.");
return OPERATOR_FINISHED;
More information about the Bf-blender-cvs
mailing list