Revision: 48390
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48390
Author:   aramis_acg
Date:     2012-06-28 23:31:50 +0000 (Thu, 28 Jun 2012)
Log Message:
-----------
- bf_fbx: FBX gets its own module, menu item and file handling (even though the 
import function currently just invokes bf_assimp).

Modified Paths:
--------------
    branches/soc-2012-bratwurst/CMakeLists.txt
    branches/soc-2012-bratwurst/release/scripts/startup/bl_ui/space_info.py
    branches/soc-2012-bratwurst/source/blender/CMakeLists.txt
    branches/soc-2012-bratwurst/source/blender/editors/space_file/file_draw.c
    branches/soc-2012-bratwurst/source/blender/editors/space_file/filelist.c
    branches/soc-2012-bratwurst/source/blender/editors/space_file/filesel.c
    branches/soc-2012-bratwurst/source/blender/makesdna/DNA_space_types.h
    branches/soc-2012-bratwurst/source/blender/windowmanager/CMakeLists.txt
    
branches/soc-2012-bratwurst/source/blender/windowmanager/intern/wm_operators.c
    branches/soc-2012-bratwurst/source/creator/CMakeLists.txt

Added Paths:
-----------
    branches/soc-2012-bratwurst/source/blender/fbx/
    branches/soc-2012-bratwurst/source/blender/fbx/CMakeLists.txt
    branches/soc-2012-bratwurst/source/blender/fbx/bfbx.cpp
    branches/soc-2012-bratwurst/source/blender/fbx/bfbx.h

Modified: branches/soc-2012-bratwurst/CMakeLists.txt
===================================================================
--- branches/soc-2012-bratwurst/CMakeLists.txt  2012-06-28 22:42:12 UTC (rev 
48389)
+++ branches/soc-2012-bratwurst/CMakeLists.txt  2012-06-28 23:31:50 UTC (rev 
48390)
@@ -213,6 +213,7 @@
 # disable opencollada on non-apple unix because opencollada has no package for 
debian
 option(WITH_OPENCOLLADA                "Enable OpenCollada Support 
(http://www.opencollada.org)"       OFF)
 option(WITH_ASSIMP             "Enable Assimp Support 
(http://www.assimp.sourceforge.net)"     OFF)
+option(WITH_FBX                        "Enable FBX support using Assimp"       
OFF)
 
 # Sound output
 option(WITH_SDL           "Enable SDL for sound and joystick support" ON)
@@ -354,6 +355,10 @@
        message(FATAL_ERROR "WITH_MOD_OCEANSIM requires WITH_FFTW3 to be ON")
 endif()
 
+if(NOT WITH_ASSIMP AND WITH_FBX)
+       message(FATAL_ERROR "WITH_FBX requires WITH_ASSIMP")
+endif()
+
 # may as well build python module without a UI
 if(WITH_PYTHON_MODULE)
        set(WITH_HEADLESS ON)
@@ -1792,6 +1797,7 @@
        info_cfg_option(WITH_IK_ITASC)
        info_cfg_option(WITH_OPENCOLLADA)
        info_cfg_option(WITH_ASSIMP)
+       info_cfg_option(WITH_FBX)
        info_cfg_option(WITH_FFTW3)
        info_cfg_option(WITH_INTERNATIONAL)
        info_cfg_option(WITH_INPUT_NDOF)

Modified: 
branches/soc-2012-bratwurst/release/scripts/startup/bl_ui/space_info.py
===================================================================
--- branches/soc-2012-bratwurst/release/scripts/startup/bl_ui/space_info.py     
2012-06-28 22:42:12 UTC (rev 48389)
+++ branches/soc-2012-bratwurst/release/scripts/startup/bl_ui/space_info.py     
2012-06-28 23:31:50 UTC (rev 48390)
@@ -159,6 +159,8 @@
             self.layout.operator("wm.collada_import", text="Collada (Default) 
(.dae)")
         if hasattr(bpy.types, "WM_OT_assimp_import"):
             self.layout.operator("wm.assimp_import", text="Open Asset Import 
Library (Default) (multiple)")
+        if hasattr(bpy.types, "WM_OT_fbx_import"):
+            self.layout.operator("wm.fbx_import", text="FBX (.fbx)")
 
 
 class INFO_MT_file_export(Menu):

Modified: branches/soc-2012-bratwurst/source/blender/CMakeLists.txt
===================================================================
--- branches/soc-2012-bratwurst/source/blender/CMakeLists.txt   2012-06-28 
22:42:12 UTC (rev 48389)
+++ branches/soc-2012-bratwurst/source/blender/CMakeLists.txt   2012-06-28 
23:31:50 UTC (rev 48390)
@@ -135,3 +135,7 @@
 if(WITH_ASSIMP)
        add_subdirectory(assimp)
 endif()
+
+if(WITH_FBX)
+       add_subdirectory(fbx)
+endif()

Modified: 
branches/soc-2012-bratwurst/source/blender/editors/space_file/file_draw.c
===================================================================
--- branches/soc-2012-bratwurst/source/blender/editors/space_file/file_draw.c   
2012-06-28 22:42:12 UTC (rev 48389)
+++ branches/soc-2012-bratwurst/source/blender/editors/space_file/file_draw.c   
2012-06-28 23:31:50 UTC (rev 48390)
@@ -274,6 +274,8 @@
                return ICON_FILE_BLANK;
        else if (file->flags & ASSIMPFILE) 
                return ICON_FILE_BLANK;
+       else if (file->flags & FBXFILE) 
+               return ICON_FILE_BLANK;
        else
                return ICON_FILE_BLANK;
 }

Modified: 
branches/soc-2012-bratwurst/source/blender/editors/space_file/filelist.c
===================================================================
--- branches/soc-2012-bratwurst/source/blender/editors/space_file/filelist.c    
2012-06-28 22:42:12 UTC (rev 48389)
+++ branches/soc-2012-bratwurst/source/blender/editors/space_file/filelist.c    
2012-06-28 23:31:50 UTC (rev 48390)
@@ -790,6 +790,9 @@
        else if (BLI_testextensie(relname, ".dae")) {
                return COLLADAFILE;
        }
+       else if (BLI_testextensie(relname, ".fbx")) {
+               return FBXFILE;
+       }
        else if (BLI_testextensie_array(relname, imb_ext_image) ||
                 (G.have_quicktime && BLI_testextensie_array(relname, 
imb_ext_image_qt)))
        {
@@ -839,8 +842,10 @@
                return ICON_FILE_BLANK;
        else if (type == COLLADAFILE)
                return ICON_FILE_BLANK;
-       else if (type ==  ASSIMPFILE) 
+       else if (type == ASSIMPFILE) 
                return ICON_FILE_BLANK;
+       else if (type == FBXFILE) 
+               return ICON_FILE_BLANK;
        
        return ICON_FILE_BLANK;
 }

Modified: 
branches/soc-2012-bratwurst/source/blender/editors/space_file/filesel.c
===================================================================
--- branches/soc-2012-bratwurst/source/blender/editors/space_file/filesel.c     
2012-06-28 22:42:12 UTC (rev 48389)
+++ branches/soc-2012-bratwurst/source/blender/editors/space_file/filesel.c     
2012-06-28 23:31:50 UTC (rev 48390)
@@ -183,6 +183,8 @@
                        params->filter |= RNA_boolean_get(op->ptr, 
"filter_collada") ? COLLADAFILE : 0;
                if (RNA_struct_find_property(op->ptr, "filter_assimp"))
                        params->filter |= RNA_boolean_get(op->ptr, 
"filter_assimp") ? ASSIMPFILE : 0;
+               if (RNA_struct_find_property(op->ptr, "filter_fbx"))
+                       params->filter |= RNA_boolean_get(op->ptr, 
"filter_fbx") ? FBXFILE : 0;
                if (RNA_struct_find_property(op->ptr, "filter_glob")) {
                        RNA_string_get(op->ptr, "filter_glob", 
params->filter_glob);
                        params->filter |= (OPERATORFILE | FOLDERFILE);

Added: branches/soc-2012-bratwurst/source/blender/fbx/CMakeLists.txt
===================================================================
--- branches/soc-2012-bratwurst/source/blender/fbx/CMakeLists.txt               
                (rev 0)
+++ branches/soc-2012-bratwurst/source/blender/fbx/CMakeLists.txt       
2012-06-28 23:31:50 UTC (rev 48390)
@@ -0,0 +1,54 @@
+# ***** BEGIN GPL LICENSE BLOCK *****
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# The Original Code is Copyright (C) 2006, Blender Foundation
+# All rights reserved.
+#
+# The Original Code is: all of this file.
+#
+# Contributor(s): Alexander Gessler.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+remove_strict_flags()
+
+set(INC
+       .
+       ../blenkernel
+       ../blenlib
+       ../blenloader
+       ../editors/include
+       ../makesdna
+       ../makesrna
+       ../windowmanager
+       ../../../intern/guardedalloc
+)
+
+
+set(INC_SYS
+)
+
+set(SRC
+
+       bfbx.cpp
+       bfbx.h
+)
+
+if(WITH_BUILDINFO)
+       add_definitions(-DWITH_BUILDINFO)
+endif()
+
+blender_add_lib(bf_fbx "${SRC}" "${INC}" "${INC_SYS}")

Added: branches/soc-2012-bratwurst/source/blender/fbx/bfbx.cpp
===================================================================
--- branches/soc-2012-bratwurst/source/blender/fbx/bfbx.cpp                     
        (rev 0)
+++ branches/soc-2012-bratwurst/source/blender/fbx/bfbx.cpp     2012-06-28 
23:31:50 UTC (rev 48390)
@@ -0,0 +1,55 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor(s): Alexander Gessler
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/assimp/bfbx.cpp
+ *  \ingroup fbx
+ */
+
+#include <cassert>
+#include "../assimp/SceneImporter.h"
+
+extern "C"
+{
+#include "BKE_scene.h"
+#include "BKE_context.h"
+
+/* make dummy file */
+#include "BLI_fileops.h"
+#include "BLI_path_util.h"
+
+       int bfbx_import(bContext *C, const char *filepath)
+       {
+               assert(C);
+               assert(filepath);
+
+               bassimp::SceneImporter imp(filepath,*C);
+               return imp.import() != 0 && imp.apply() != 0;
+       }
+
+       /*
+    // export to fbx not currently implemented
+       int bfbx_export(Scene *sce, const char *filepath, int selected, int 
apply_modifiers)
+       {
+               
+               return 0;
+       } */
+}

Added: branches/soc-2012-bratwurst/source/blender/fbx/bfbx.h
===================================================================
--- branches/soc-2012-bratwurst/source/blender/fbx/bfbx.h                       
        (rev 0)
+++ branches/soc-2012-bratwurst/source/blender/fbx/bfbx.h       2012-06-28 
23:31:50 UTC (rev 48390)
@@ -0,0 +1,47 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor(s): Alexander Gessler.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file bfbx.h
+ *  \ingroup fbx
+ */
+
+#ifndef INCLUDED_BFBX_H
+#define INCLUDED_BFBX_H
+
+struct bContext;
+struct Scene;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+       /* import/export functions
+        * both return 1 on success, 0 on error
+        */
+       int bfbx_import(bContext *C, const char *filepath);
+       //int bassimp_export(Scene *sce, const char *filepath, int selected, 
int apply_modifiers);
+#ifdef __cplusplus
+}
+#endif
+
+#endif

Modified: branches/soc-2012-bratwurst/source/blender/makesdna/DNA_space_types.h
===================================================================
--- branches/soc-2012-bratwurst/source/blender/makesdna/DNA_space_types.h       
2012-06-28 22:42:12 UTC (rev 48389)

@@ Diff output truncated at 10240 characters. @@
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to