[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24182] trunk/blender: Merge of the COLLADA GSoC branch into trunk.

Arystanbek Dyussenov arystan.d at gmail.com
Fri Oct 30 16:35:50 CET 2009


Revision: 24182
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24182
Author:   kazanbas
Date:     2009-10-30 16:35:50 +0100 (Fri, 30 Oct 2009)

Log Message:
-----------
Merge of the COLLADA GSoC branch into trunk.

COLLADA code is disabled by default (it has dependencies requiring manual install).

SCons and CMake builds are supported on Windows and Linux, no Mac building yet. More on building COLLADA code: http://wiki.blender.org/index.php/User:Kazanbas/Building_Collada_Branch.

The detailed command log of the merge (can be useful for educational purposes):

branch=https://svn.blender.org/svnroot/bf-blender/branches/soc-2009-chingachgook
# collada code
svn copy $branch/source/blender/collada source/blender/collada
# operator
svn merge -c 20401,20955,21077,24077,24079 $branch/source/blender/windowmanager/intern/wm_operators.c source/blender/windowmanager/intern/wm_operators.c
# menu
svn merge -c 24079 $branch/release/scripts/ui/space_info.py release/scripts/ui/space_info.py
# scons
svn merge -c 20398 $branch/source/blender/SConscript source/blender/SConscript
svn merge -c 20398,20691,20955,22726 $branch/tools/btools.py tools/btools.py
svn merge -c 20691,20955,22726 $branch/tools/Blender.py tools/Blender.py
svn merge -c 20398,20692,20955 $branch/config/linux2-config.py config/linux2-config.py
svn merge -c 22726 $branch/config/win64-vc-config.py config/win64-vc-config.py
svn merge -c 22726 $branch/config/win32-vc-config.py config/win32-vc-config.py
svn merge -c 24077 $branch/source/blender/windowmanager/SConscript source/blender/windowmanager/SConscript
# cmake
svn merge -c 23319,23905,24077,24158 $branch/CMakeLists.txt CMakeLists.txt
svn merge -c 23319 $branch/source/blender/CMakeLists.txt source/blender/CMakeLists.txt
svn merge -c 23319 $branch/source/creator/CMakeLists.txt source/creator/CMakeLists.txt
svn merge -c 23319 $branch/CMake/macros.cmake CMake/macros.cmake
svn merge -c 24077 $branch/source/blender/windowmanager/CMakeLists.txt source/blender/windowmanager/CMakeLists.txt

Modified Paths:
--------------
    trunk/blender/CMake/macros.cmake
    trunk/blender/CMakeLists.txt
    trunk/blender/config/linux2-config.py
    trunk/blender/config/win32-vc-config.py
    trunk/blender/config/win64-vc-config.py
    trunk/blender/release/scripts/ui/space_info.py
    trunk/blender/source/blender/CMakeLists.txt
    trunk/blender/source/blender/SConscript
    trunk/blender/source/blender/windowmanager/CMakeLists.txt
    trunk/blender/source/blender/windowmanager/SConscript
    trunk/blender/source/blender/windowmanager/intern/wm_operators.c
    trunk/blender/source/creator/CMakeLists.txt
    trunk/blender/tools/Blender.py
    trunk/blender/tools/btools.py

Added Paths:
-----------
    trunk/blender/source/blender/collada/

Modified: trunk/blender/CMake/macros.cmake
===================================================================
--- trunk/blender/CMake/macros.cmake	2009-10-30 13:58:43 UTC (rev 24181)
+++ trunk/blender/CMake/macros.cmake	2009-10-30 15:35:50 UTC (rev 24182)
@@ -76,6 +76,11 @@
   IF(WITH_FFTW3)
     LINK_DIRECTORIES(${FFTW3_LIBPATH})
   ENDIF(WITH_FFTW3)
+  IF(WITH_OPENCOLLADA)
+    LINK_DIRECTORIES(${OPENCOLLADA_LIBPATH})
+    LINK_DIRECTORIES(${PCRE_LIBPATH})
+    LINK_DIRECTORIES(${EXPAT_LIBPATH})
+  ENDIF(WITH_OPENCOLLADA)
 
   IF(WIN32)
     LINK_DIRECTORIES(${PTHREADS_LIBPATH})
@@ -135,6 +140,11 @@
   IF(WITH_FFMPEG)
     TARGET_LINK_LIBRARIES(${target} ${FFMPEG_LIB})
   ENDIF(WITH_FFMPEG)
+  IF(WITH_OPENCOLLADA)
+    TARGET_LINK_LIBRARIES(${target} ${OPENCOLLADA_LIB})
+    TARGET_LINK_LIBRARIES(${target} ${PCRE_LIB})
+    TARGET_LINK_LIBRARIES(${target} ${EXPAT_LIB})
+  ENDIF(WITH_OPENCOLLADA)
   IF(WIN32)
     TARGET_LINK_LIBRARIES(${target} ${PTHREADS_LIB})
   ENDIF(WIN32)

Modified: trunk/blender/CMakeLists.txt
===================================================================
--- trunk/blender/CMakeLists.txt	2009-10-30 13:58:43 UTC (rev 24181)
+++ trunk/blender/CMakeLists.txt	2009-10-30 15:35:50 UTC (rev 24182)
@@ -80,6 +80,7 @@
 OPTION(WITH_CXX_GUARDEDALLOC "Enable GuardedAlloc for C++ memory allocation" OFF)
 OPTION(WITH_BUILDINFO     "Include extra build details" ON)
 OPTION(WITH_INSTALL       "Install accompanying scripts and language files needed to run blender" ON)
+OPTION(WITH_OPENCOLLADA		"Enable OpenCollada Support (http://www.opencollada.org/)"	OFF)
 
 IF (APPLE)
 OPTION(WITH_COCOA	  "Use Cocoa framework instead of deprecated Carbon" ON)
@@ -90,6 +91,19 @@
 	MESSAGE("WARNING: WITH_PLAYER needs WITH_GAMEENGINE")
 ENDIF(NOT WITH_GAMEENGINE AND WITH_PLAYER)
 
+IF (WITH_OPENCOLLADA)
+SET(OPENCOLLADA /usr/local/opencollada CACHE FILEPATH "OpenCollada Directory")
+SET(OPENCOLLADA_LIBPATH ${OPENCOLLADA})
+SET(OPENCOLLADA_LIB OpenCollada)
+SET(PCRE /usr CACHE FILEPATH "PCRE Directory")
+SET(PCRE_LIBPATH ${PCRE}/lib)
+SET(PCRE_LIB pcre)
+SET(EXPAT /usr CACHE FILEPATH "Expat Directory")
+SET(EXPAT_LIBPATH ${EXPAT}/lib)
+SET(EXPAT_LIB expat)
+
+ENDIF (WITH_OPENCOLLADA)
+
 # For alternate Python locations the commandline can be used to override detected/default cache settings, e.g:
 # On Unix: 
 #   cmake -D PYTHON_LIB=/usr/local/lib/python2.3/config/libpython2.3.so -D PYTHON_INC=/usr/local/include/python2.3 -D PYTHON_BINARY=/usr/local/bin/python2.3 -G "Unix Makefiles" ../blender

Modified: trunk/blender/config/linux2-config.py
===================================================================
--- trunk/blender/config/linux2-config.py	2009-10-30 13:58:43 UTC (rev 24181)
+++ trunk/blender/config/linux2-config.py	2009-10-30 15:35:50 UTC (rev 24182)
@@ -151,6 +151,20 @@
 BF_OPENGL_LIBPATH = '/usr/X11R6/lib'
 BF_OPENGL_LIB_STATIC = '${BF_OPENGL_LIBPATH}/libGL.a ${BF_OPENGL_LIBPATH}/libGLU.a ${BF_OPENGL_LIBPATH}/libXxf86vm.a ${BF_OPENGL_LIBPATH}/libX11.a ${BF_OPENGL_LIBPATH}/libXi.a ${BF_OPENGL_LIBPATH}/libXext.a ${BF_OPENGL_LIBPATH}/libXxf86vm.a'
 
+WITH_BF_COLLADA = False
+BF_COLLADA = '#source/blender/collada'
+BF_COLLADA_INC = '${BF_COLLADA}'
+BF_COLLADA_LIB = 'bf_collada'
+BF_OPENCOLLADA = ''
+BF_OPENCOLLADA_LIB = 'OpenCollada'
+BF_OPENCOLLADA_LIBPATH = '/usr/lib'
+BF_PCRE = ''
+BF_PCRE_LIB = 'pcre'
+BF_PCRE_LIBPATH = '/usr/lib'
+BF_EXPAT = '/usr'
+BF_EXPAT_LIB = 'expat'
+BF_EXPAT_LIBPATH = '/usr/lib'
+
 ##
 CC = 'gcc'
 CXX = 'g++'

Modified: trunk/blender/config/win32-vc-config.py
===================================================================
--- trunk/blender/config/win32-vc-config.py	2009-10-30 13:58:43 UTC (rev 24181)
+++ trunk/blender/config/win32-vc-config.py	2009-10-30 15:35:50 UTC (rev 24182)
@@ -138,6 +138,16 @@
 WITH_BF_REDCODE = False  
 BF_REDCODE_INC = '#extern'
 
+WITH_BF_COLLADA = False
+BF_COLLADA = '#source/blender/collada'
+BF_COLLADA_INC = '${BF_COLLADA}'
+BF_COLLADA_LIB = 'bf_collada'
+
+BF_OPENCOLLADA = LIBDIR + '/opencollada'
+BF_OPENCOLLADA_INC = '${BF_OPENCOLLADA}/include'
+BF_OPENCOLLADA_LIB = 'opencollada'
+BF_OPENCOLLADA_LIBPATH = '${BF_OPENCOLLADA}/lib'
+
 WITH_BF_STATICOPENGL = False
 BF_OPENGL_INC = '${BF_OPENGL}/include'
 BF_OPENGL_LIBINC = '${BF_OPENGL}/lib'

Modified: trunk/blender/config/win64-vc-config.py
===================================================================
--- trunk/blender/config/win64-vc-config.py	2009-10-30 13:58:43 UTC (rev 24181)
+++ trunk/blender/config/win64-vc-config.py	2009-10-30 15:35:50 UTC (rev 24182)
@@ -151,6 +151,16 @@
 WITH_BF_REDCODE = False  
 BF_REDCODE_INC = '#extern'
 
+WITH_BF_COLLADA = False
+BF_COLLADA = '#source/blender/collada'
+BF_COLLADA_INC = '${BF_COLLADA}'
+BF_COLLADA_LIB = 'bf_collada'
+
+BF_OPENCOLLADA = LIBDIR + '/opencollada'
+BF_OPENCOLLADA_INC = '${BF_OPENCOLLADA}/include'
+BF_OPENCOLLADA_LIB = 'opencollada'
+BF_OPENCOLLADA_LIBPATH = '${BF_OPENCOLLADA}/lib'
+
 WITH_BF_STATICOPENGL = False
 BF_OPENGL_INC = '${BF_OPENGL}/include'
 BF_OPENGL_LIBINC = '${BF_OPENGL}/lib'

Modified: trunk/blender/release/scripts/ui/space_info.py
===================================================================
--- trunk/blender/release/scripts/ui/space_info.py	2009-10-30 13:58:43 UTC (rev 24181)
+++ trunk/blender/release/scripts/ui/space_info.py	2009-10-30 15:35:50 UTC (rev 24182)
@@ -99,13 +99,13 @@
 	__label__ = "Import"
 
 	def draw(self, context):
-		pass # dynamic menu
+		self.layout.itemO("WM_OT_collada_import", text="COLLADA (.dae)...")
 
 class INFO_MT_file_export(dynamic_menu.DynMenu):
 	__label__ = "Export"
 
 	def draw(self, context):
-		pass # dynamic menu
+		self.layout.itemO("WM_OT_collada_export", text="COLLADA (.dae)...")
 
 class INFO_MT_file_external_data(bpy.types.Menu):
 	__label__ = "External Data"

Modified: trunk/blender/source/blender/CMakeLists.txt
===================================================================
--- trunk/blender/source/blender/CMakeLists.txt	2009-10-30 13:58:43 UTC (rev 24181)
+++ trunk/blender/source/blender/CMakeLists.txt	2009-10-30 15:35:50 UTC (rev 24182)
@@ -58,3 +58,7 @@
 	ADD_SUBDIRECTORY(python)
 ENDIF(WITH_PYTHON)
 
+IF(WITH_OPENCOLLADA)
+  ADD_SUBDIRECTORY(collada)
+ENDIF(WITH_OPENCOLLADA)
+

Modified: trunk/blender/source/blender/SConscript
===================================================================
--- trunk/blender/source/blender/SConscript	2009-10-30 13:58:43 UTC (rev 24181)
+++ trunk/blender/source/blender/SConscript	2009-10-30 15:35:50 UTC (rev 24182)
@@ -33,3 +33,6 @@
 
 if env['WITH_BF_QUICKTIME']:
     SConscript (['quicktime/SConscript'])
+
+if env['WITH_BF_COLLADA']:
+    SConscript (['collada/SConscript'])

Copied: trunk/blender/source/blender/collada (from rev 24159, branches/soc-2009-chingachgook/source/blender/collada)

Modified: trunk/blender/source/blender/windowmanager/CMakeLists.txt
===================================================================
--- trunk/blender/source/blender/windowmanager/CMakeLists.txt	2009-10-30 13:58:43 UTC (rev 24181)
+++ trunk/blender/source/blender/windowmanager/CMakeLists.txt	2009-10-30 15:35:50 UTC (rev 24182)
@@ -50,6 +50,10 @@
 	ADD_DEFINITIONS(-DWITH_OPENEXR)
 ENDIF(WITH_OPENEXR)
 
+IF(WITH_OPENCOLLADA)
+	ADD_DEFINITIONS(-DWITH_COLLADA)
+ENDIF(WITH_OPENCOLLADA)
+
 IF(WITH_QUICKTIME)
 	SET(INC ${INC} ../quicktime ${QUICKTIME_INC})
 	ADD_DEFINITIONS(-DWITH_QUICKTIME)

Modified: trunk/blender/source/blender/windowmanager/SConscript
===================================================================
--- trunk/blender/source/blender/windowmanager/SConscript	2009-10-30 13:58:43 UTC (rev 24181)
+++ trunk/blender/source/blender/windowmanager/SConscript	2009-10-30 15:35:50 UTC (rev 24182)
@@ -19,6 +19,9 @@
 if not env['WITH_BF_PYTHON']:
 	defs.append('DISABLE_PYTHON')
 
+if env['WITH_BF_COLLADA']:
+	defs.append('WITH_COLLADA')
+
 if env['OURPLATFORM'] == 'linux2':
 	cflags='-pthread'
     	incs += ' ../../../extern/binreloc/include'

Modified: trunk/blender/source/blender/windowmanager/intern/wm_operators.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_operators.c	2009-10-30 13:58:43 UTC (rev 24181)
+++ trunk/blender/source/blender/windowmanager/intern/wm_operators.c	2009-10-30 15:35:50 UTC (rev 24182)
@@ -1345,6 +1345,105 @@
 }
 
 
+/* XXX: move these collada operators to a more appropriate place */
+#ifdef WITH_COLLADA
+
+#include "../../collada/collada.h"
+
+static int wm_collada_export_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+	//char name[FILE_MAX];
+	//BLI_strncpy(name, G.sce, FILE_MAX);
+	//untitled(name);
+
+	/* RNA_string_set(op->ptr, "path", "/tmp/test.dae"); */
+	
+	WM_event_add_fileselect(C, op);
+
+	return OPERATOR_RUNNING_MODAL;
+}
+
+/* function used for WM_OT_save_mainfile too */
+static int wm_collada_export_exec(bContext *C, wmOperator *op)
+{
+	char filename[FILE_MAX];
+	
+	if(RNA_property_is_set(op->ptr, "path"))
+		RNA_string_get(op->ptr, "path", filename);
+	else {
+		BLI_strncpy(filename, G.sce, FILE_MAX);
+		untitled(filename);
+	}
+	
+	//WM_write_file(C, filename, op->reports);
+	collada_export(CTX_data_scene(C), filename);
+	
+	/* WM_event_add_notifier(C, NC_WM|ND_FILESAVE, NULL); */
+
+	return OPERATOR_FINISHED;
+}
+
+static void WM_OT_collada_export(wmOperatorType *ot)
+{
+	ot->name= "Export COLLADA";
+	ot->idname= "WM_OT_collada_export";
+	
+	ot->invoke= wm_collada_export_invoke;
+	ot->exec= wm_collada_export_exec;
+	ot->poll= WM_operator_winactive;
+	
+	ot->flag= 0;
+	
+	RNA_def_property(ot->srna, "path", PROP_STRING, PROP_FILEPATH);
+}
+
+static int wm_collada_import_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+	/* RNA_string_set(op->ptr, "path", "/tmp/test.dae"); */
+	
+	WM_event_add_fileselect(C, op);
+
+	return OPERATOR_RUNNING_MODAL;
+}
+
+/* function used for WM_OT_save_mainfile too */
+static int wm_collada_import_exec(bContext *C, wmOperator *op)
+{
+	char filename[FILE_MAX];
+	
+	if(RNA_property_is_set(op->ptr, "path"))
+		RNA_string_get(op->ptr, "path", filename);
+	else {
+		BLI_strncpy(filename, G.sce, FILE_MAX);
+		untitled(filename);
+	}
+	
+	//WM_write_file(C, filename, op->reports);
+	collada_import(C, filename);
+	
+	/* WM_event_add_notifier(C, NC_WM|ND_FILESAVE, NULL); */
+
+	return OPERATOR_FINISHED;
+}
+
+static void WM_OT_collada_import(wmOperatorType *ot)
+{
+	ot->name= "Import COLLADA";
+	ot->idname= "WM_OT_collada_import";
+	
+	ot->invoke= wm_collada_import_invoke;
+	ot->exec= wm_collada_import_exec;

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list