2011-01-28 12:56:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*
  
						 
					
						
							
								
									
										
										
										
											2010-06-03 17:41:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  * * * * *  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 ) :  Chingiz  Dyussenov ,  Arystanbek  Dyussenov ,  Nathan  Letwory . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  * * * * *  END  GPL  LICENSE  BLOCK  * * * * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 20:30:35 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/** \file blender/collada/DocumentImporter.cpp
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ ingroup  collada 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-11-29 14:38:50 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								// TODO:
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// * name imported objects
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// * import object rotation as euler
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-10-05 00:05:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  <string> 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  <map> 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  <algorithm>   // sort()
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# include  "COLLADAFWRoot.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "COLLADAFWStableHeaders.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "COLLADAFWColorOrTexture.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "COLLADAFWIndexList.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "COLLADAFWMeshPrimitiveWithFaceVertexCount.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "COLLADAFWPolygons.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "COLLADAFWSampler.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "COLLADAFWTypes.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "COLLADAFWVisualScene.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "COLLADAFWArrayPrimitiveType.h" 
  
						 
					
						
							
								
									
										
										
										
											2010-09-04 19:27:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "COLLADAFWLibraryNodes.h" 
  
						 
					
						
							
								
									
										
										
										
											2010-12-14 21:46:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "COLLADAFWCamera.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "COLLADAFWLight.h" 
  
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "COLLADASaxFWLLoader.h" 
  
						 
					
						
							
								
									
										
										
										
											2011-03-23 14:25:35 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "COLLADASaxFWLIExtraDataCallbackHandler.h" 
  
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 21:25:29 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								extern  " C "  {  
						 
					
						
							
								
									
										
										
										
											2011-01-07 18:36:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "BLI_listbase.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "BLI_math.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "BLI_string.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "BLI_utildefines.h" 
  
						 
					
						
							
								
									
										
										
										
											2013-02-13 16:00:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "BLI_fileops.h" 
  
						 
					
						
							
								
									
										
										
										
											2011-01-07 18:36:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-11-05 13:00:39 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "BKE_camera.h" 
  
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# include  "BKE_main.h" 
  
						 
					
						
							
								
									
										
										
										
											2011-11-05 13:11:49 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "BKE_lamp.h" 
  
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# include  "BKE_library.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "BKE_texture.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "BKE_fcurve.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "BKE_depsgraph.h" 
  
						 
					
						
							
								
									
										
										
										
											2009-11-29 14:38:50 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "BKE_scene.h" 
  
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# include  "BKE_global.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "BKE_material.h" 
  
						 
					
						
							
								
									
										
										
										
											2010-10-05 00:05:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "BKE_image.h" 
  
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-09-03 22:04:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "BLI_path_util.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# include  "DNA_camera_types.h" 
  
						 
					
						
							
								
									
										
										
										
											2010-10-05 00:05:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "DNA_lamp_types.h" 
  
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-10-09 21:17:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "RNA_access.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# include  "MEM_guardedalloc.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-08 19:52:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "WM_api.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "WM_types.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 21:25:29 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-23 14:25:35 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "ExtraHandler.h" 
  
						 
					
						
							
								
									
										
										
										
											2011-09-05 20:41:58 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "ErrorHandler.h" 
  
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# include  "DocumentImporter.h" 
  
						 
					
						
							
								
									
										
										
										
											2011-03-09 14:16:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "TransformReader.h" 
  
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-23 14:25:35 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "collada_internal.h" 
  
						 
					
						
							
								
									
										
										
										
											2010-10-05 00:05:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "collada_utils.h" 
  
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-10-05 00:05:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*
  
						 
					
						
							
								
									
										
										
										
											2012-10-04 13:26:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  COLLADA  Importer  limitations : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  -  no  multiple  scene  import ,  all  objects  are  added  to  active  scene 
							 
						 
					
						
							
								
									
										
										
										
											2010-10-05 00:05:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2010-02-15 16:18:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-10-05 00:05:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								// #define COLLADA_DEBUG
  
						 
					
						
							
								
									
										
										
										
											2010-02-15 16:18:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								// creates empties for each imported bone on layer 2, for debugging
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// #define ARMATURE_TEST
  
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-09 16:19:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								DocumentImporter : : DocumentImporter ( bContext  * C ,  const  ImportSettings  * import_settings )  :  
						 
					
						
							
								
									
										
										
										
											2013-02-10 17:06:05 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									import_settings ( import_settings ) , 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									mImportStage ( General ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									mContext ( C ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									armature_importer ( & unit_converter ,  & mesh_importer ,  & anim_importer ,  CTX_data_scene ( C ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									mesh_importer ( & unit_converter ,  & armature_importer ,  CTX_data_scene ( C ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									anim_importer ( & unit_converter ,  & armature_importer ,  CTX_data_scene ( C ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 11:07:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								DocumentImporter : : ~ DocumentImporter ( )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2011-03-28 09:31:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									TagsMap : : iterator  etit ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 11:07:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									etit  =  uid_tags_map . begin ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									while  ( etit  ! =  uid_tags_map . end ( ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 11:07:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										delete  etit - > second ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										etit + + ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								bool  DocumentImporter : : import ( )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2011-09-05 20:41:58 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ErrorHandler  errorHandler ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									COLLADASaxFWL : : Loader  loader ( & errorHandler ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									COLLADAFW : : Root  root ( & loader ,  this ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-14 16:15:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ExtraHandler  * ehandler  =  new  ExtraHandler ( this ,  & ( this - > anim_importer ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									loader . registerExtraDataCallbackHandler ( ehandler ) ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-05-03 21:32:49 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// deselect all to select new objects
 
							 
						 
					
						
							
								
									
										
										
										
											2012-05-05 14:33:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									BKE_scene_base_deselect_all ( CTX_data_scene ( mContext ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-05-03 21:32:49 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-09 16:19:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									std : : string  mFilename  =  std : : string ( this - > import_settings - > filepath ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-09 00:23:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  std : : string  encodedFilename  =  bc_url_encode ( mFilename ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( ! root . loadDocument ( encodedFilename ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2012-03-17 06:37:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										fprintf ( stderr ,  " COLLADAFW::Root::loadDocument() returned false on 1st pass \n " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										return  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-03-17 06:37:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
									
										
										
										
											2012-03-24 07:52:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( errorHandler . hasError ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-09-05 20:41:58 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/** TODO set up scene graph and such here */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									mImportStage  =  Controller ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									COLLADASaxFWL : : Loader  loader2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									COLLADAFW : : Root  root2 ( & loader2 ,  this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
									
										
										
										
											2013-02-09 00:23:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( ! root2 . loadDocument ( encodedFilename ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2012-03-17 06:37:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										fprintf ( stderr ,  " COLLADAFW::Root::loadDocument() returned false on 2nd pass \n " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										return  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-03-17 06:37:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									delete  ehandler ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-05-03 21:32:49 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									mesh_importer . bmeshConversion ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  DocumentImporter : : cancel ( const  COLLADAFW : : String &  errorMessage )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// TODO: if possible show error info
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									//
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Should we get rid of invisible Meshes that were created so far
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// or maybe create objects at coordinate space origin?
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									//
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// The latter sounds better.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-05-03 21:32:49 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  DocumentImporter : : start ( )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  DocumentImporter : : finish ( )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( mImportStage  ! =  General ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										return ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-17 18:33:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									Main  * bmain  =  CTX_data_main ( mContext ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// TODO: create a new scene except the selected <visual_scene> - use current blender scene for it
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									Scene  * sce  =  CTX_data_scene ( mContext ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/** TODO Break up and put into 2-pass parsing of DAE */ 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									std : : vector < const  COLLADAFW : : VisualScene  * > : : iterator  it ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									for  ( it  =  vscenes . begin ( ) ;  it  ! =  vscenes . end ( ) ;  it + + )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										PointerRNA  sceneptr ,  unit_settings ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										PropertyRNA  * system ,  * scale ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-28 12:56:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										// for scene unit settings: system, scale_length
 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-09 16:19:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										RNA_id_pointer_create ( & sce - > id ,  & sceneptr ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										unit_settings  =  RNA_pointer_get ( & sceneptr ,  " unit_settings " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										system  =  RNA_struct_find_property ( & unit_settings ,  " system " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										scale  =  RNA_struct_find_property ( & unit_settings ,  " scale_length " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-09 16:19:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( this - > import_settings - > import_units )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											switch  ( unit_converter . isMetricSystem ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												case  UnitConverter : : Metric : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													RNA_property_enum_set ( & unit_settings ,  system ,  USER_UNIT_METRIC ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												case  UnitConverter : : Imperial : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													RNA_property_enum_set ( & unit_settings ,  system ,  USER_UNIT_IMPERIAL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												default : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													RNA_property_enum_set ( & unit_settings ,  system ,  USER_UNIT_NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											float  unit_factor  =  unit_converter . getLinearMeter ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											RNA_property_float_set ( & unit_settings ,  scale ,  unit_factor ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											fprintf ( stdout ,  " Collada: Adjusting Blender units to Importset units: %f. \n " ,  unit_factor ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-09 16:19:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										// Write nodes to scene
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										const  COLLADAFW : : NodePointerArray &  roots  =  ( * it ) - > getRootNodes ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										for  ( unsigned  int  i  =  0 ;  i  <  roots . getCount ( ) ;  i + + )  { 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-10 22:14:56 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											std : : vector < Object  * >  * objects_done ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											objects_done  =  write_node ( roots [ i ] ,  NULL ,  sce ,  NULL ,  false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( ! this - > import_settings - > import_units )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												// Match incoming scene with current unit settings
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												bc_match_scale ( objects_done ,  * sce ,  unit_converter ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-04 19:27:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-08 19:52:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-09 16:19:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										// update scene
 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-08 19:52:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										DAG_scene_sort ( bmain ,  sce ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										DAG_ids_flush_update ( bmain ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										WM_event_add_notifier ( mContext ,  NC_OBJECT  |  ND_TRANSFORM ,  NULL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2012-08-12 17:13:07 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-01-21 13:45:49 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									mesh_importer . optimize_material_assignements ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-08-12 17:13:07 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-07-26 18:28:07 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									armature_importer . set_tags_map ( this - > uid_tags_map ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									armature_importer . make_armatures ( mContext ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-01-21 13:45:49 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									armature_importer . make_shape_keys ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-17 18:33:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									DAG_scene_sort ( bmain ,  sce ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									DAG_ids_flush_update ( bmain ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-04 19:27:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-11-29 14:38:50 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#if 0 
  
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									armature_importer . fix_animation ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-29 14:38:50 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# endif 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									for  ( std : : vector < const  COLLADAFW : : VisualScene  * > : : iterator  it  =  vscenes . begin ( ) ;  it  ! =  vscenes . end ( ) ;  it + + )  { 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										const  COLLADAFW : : NodePointerArray &  roots  =  ( * it ) - > getRootNodes ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-29 14:38:50 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-20 00:06:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										for  ( unsigned  int  i  =  0 ;  i  <  roots . getCount ( ) ;  i + + )  { 
							 
						 
					
						
							
								
									
										
										
										
											2012-04-29 15:47:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											translate_anim_recursive ( roots [ i ] ,  NULL ,  NULL ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-20 00:06:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-29 14:38:50 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( libnode_ob . size ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Scene  * sce  =  CTX_data_scene ( mContext ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-04 19:27:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										fprintf ( stderr ,  " got %d library nodes to free \n " ,  ( int ) libnode_ob . size ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// free all library_nodes
 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										std : : vector < Object  * > : : iterator  it ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										for  ( it  =  libnode_ob . begin ( ) ;  it  ! =  libnode_ob . end ( ) ;  it + + )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											Object  * ob  =  * it ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-05-05 14:33:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											Base  * base  =  BKE_scene_base_find ( sce ,  ob ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											if  ( base )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												BLI_remlink ( & sce - > base ,  base ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-05-05 14:03:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												BKE_libblock_free_us ( & G . main - > object ,  base - > object ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												if  ( sce - > basact  = =  base ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													sce - > basact  =  NULL ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												MEM_freeN ( base ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-04 19:27:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										libnode_ob . clear ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-17 18:33:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										DAG_scene_sort ( bmain ,  sce ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										DAG_ids_flush_update ( bmain ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-29 14:38:50 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2009-11-29 14:38:50 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  DocumentImporter : : translate_anim_recursive ( COLLADAFW : : Node  * node ,  COLLADAFW : : Node  * par  =  NULL ,  Object  * parob  =  NULL )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2012-03-22 13:35:52 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// The split in #29246, rootmap must point at actual root when
 
							 
						 
					
						
							
								
									
										
										
										
											2013-01-21 13:45:49 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// calculating bones in apply_curves_as_matrix. - actual root is the root node.
 
							 
						 
					
						
							
								
									
										
										
										
											2012-03-22 13:35:52 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// This has to do with inverse bind poses being world space
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// (the sources for skinned bones' restposes) and the way
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// non-skinning nodes have their "restpose" recursively calculated.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// XXX TODO: design issue, how to support unrelated joints taking
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// part in skinning.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( par )  {  // && par->getType() == COLLADAFW::Node::JOINT) {
 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										// par is root if there's no corresp. key in root_map
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( root_map . find ( par - > getUniqueId ( ) )  = =  root_map . end ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2013-01-21 13:45:49 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											root_map [ node - > getUniqueId ( ) ]  =  node ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											root_map [ node - > getUniqueId ( ) ]  =  root_map [ par - > getUniqueId ( ) ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-29 14:38:50 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#if 0 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									COLLADAFW : : Transformation : : TransformationType  types [ ]  =  { 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										COLLADAFW : : Transformation : : ROTATE , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										COLLADAFW : : Transformation : : SCALE , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										COLLADAFW : : Transformation : : TRANSLATE , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										COLLADAFW : : Transformation : : MATRIX 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-29 14:38:50 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Object  * ob ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# endif 
  
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									unsigned  int  i ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-29 14:38:50 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-20 00:06:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-06-14 20:42:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									//for (i = 0; i < 4; i++)
 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									//    ob =
 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-17 18:29:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									anim_importer . translate_Animations ( node ,  root_map ,  object_map ,  FW_object_map ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-29 14:38:50 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-20 00:06:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( node - > getType ( )  = =  COLLADAFW : : Node : : JOINT  & &  par  = =  NULL )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										translate_anim_recursive ( node ,  node ,  parob ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										COLLADAFW : : NodePointerArray  & children  =  node - > getChildNodes ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										for  ( i  =  0 ;  i  <  children . getCount ( ) ;  i + + )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											translate_anim_recursive ( children [ i ] ,  node ,  NULL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/** When this method is called, the writer must write the global document asset.
  
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ return  The  writer  should  return  true ,  if  writing  succeeded ,  false  otherwise . */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								bool  DocumentImporter : : writeGlobalAsset ( const  COLLADAFW : : FileInfo  * asset )  
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									unit_converter . read_asset ( asset ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/** When this method is called, the writer must write the scene.
  
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ return  The  writer  should  return  true ,  if  writing  succeeded ,  false  otherwise . */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								bool  DocumentImporter : : writeScene ( const  COLLADAFW : : Scene  * scene )  
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// XXX could store the scene id, but do nothing for now
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Object  * DocumentImporter : : create_camera_object ( COLLADAFW : : InstanceCamera  * camera ,  Scene  * sce )  
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  COLLADAFW : : UniqueId &  cam_uid  =  camera - > getInstanciatedObjectId ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-10-21 05:46:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( uid_camera_map . find ( cam_uid )  = =  uid_camera_map . end ( ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2012-08-05 10:23:34 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										// fprintf(stderr, "Couldn't find camera by UID.\n");
 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										return  NULL ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2012-05-03 21:32:49 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									Object  * ob  =  bc_add_object ( sce ,  OB_CAMERA ,  NULL ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Camera  * cam  =  uid_camera_map [ cam_uid ] ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Camera  * old_cam  =  ( Camera  * ) ob - > data ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ob - > data  =  cam ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									old_cam - > id . us - - ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( old_cam - > id . us  = =  0 ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-05-05 14:03:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										BKE_libblock_free ( & G . main - > camera ,  old_cam ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									return  ob ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Object  * DocumentImporter : : create_lamp_object ( COLLADAFW : : InstanceLight  * lamp ,  Scene  * sce )  
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  COLLADAFW : : UniqueId &  lamp_uid  =  lamp - > getInstanciatedObjectId ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-10-21 05:46:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( uid_lamp_map . find ( lamp_uid )  = =  uid_lamp_map . end ( ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2012-03-31 00:59:17 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										fprintf ( stderr ,  " Couldn't find lamp by UID. \n " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										return  NULL ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2012-05-03 21:32:49 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									Object  * ob  =  bc_add_object ( sce ,  OB_LAMP ,  NULL ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Lamp  * la  =  uid_lamp_map [ lamp_uid ] ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Lamp  * old_lamp  =  ( Lamp  * ) ob - > data ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ob - > data  =  la ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									old_lamp - > id . us - - ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( old_lamp - > id . us  = =  0 ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-05-05 14:03:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										BKE_libblock_free ( & G . main - > lamp ,  old_lamp ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									return  ob ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Object  * DocumentImporter : : create_instance_node ( Object  * source_ob ,  COLLADAFW : : Node  * source_node ,  COLLADAFW : : Node  * instance_node ,  Scene  * sce ,  bool  is_library_node )  
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2012-03-22 13:35:52 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									fprintf ( stderr ,  " create <instance_node> under node id=%s from node id=%s \n " ,  instance_node  ?  instance_node - > getOriginalId ( ) . c_str ( )  :  NULL ,  source_node  ?  source_node - > getOriginalId ( ) . c_str ( )  :  NULL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-05-05 14:03:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Object  * obn  =  BKE_object_copy ( source_ob ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									obn - > recalc  | =  OB_RECALC_OB  |  OB_RECALC_DATA  |  OB_RECALC_TIME ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-05-05 14:33:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									BKE_scene_base_add ( sce ,  obn ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( instance_node )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										anim_importer . read_node_transform ( instance_node ,  obn ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// if we also have a source_node (always ;), take its
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// transformation matrix and apply it to the newly instantiated
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// object to account for node hierarchy transforms in
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// .dae
 
							 
						 
					
						
							
								
									
										
										
										
											2012-03-24 07:52:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  ( source_node )  { 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											COLLADABU : : Math : : Matrix4  mat4  =  source_node - > getTransformationMatrix ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											COLLADABU : : Math : : Matrix4  bmat4  =  mat4 . transpose ( ) ;  // transpose to get blender row-major order
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											float  mat [ 4 ] [ 4 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											for  ( int  i  =  0 ;  i  <  4 ;  i + + )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												for  ( int  j  =  0 ;  j  <  4 ;  j + + )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													mat [ i ] [ j ]  =  bmat4 [ i ] [ j ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											// calc new matrix and apply
 
							 
						 
					
						
							
								
									
										
										
											
												Math lib: matrix multiplication order fix for two functions that were
inconsistent with similar functions & math notation:
mul_m4_m4m4(R, B, A) => mult_m4_m4m4(R, A, B)
mul_m3_m3m4(R, B, A) => mult_m3_m3m4(R, A, B)
For branch maintainers, it should be relatively simple to fix things manually,
it's also possible run this script after merging to do automatic replacement:
http://www.pasteall.org/27459/python
											 
										 
										
											2011-12-16 19:53:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											mult_m4_m4m4 ( obn - > obmat ,  obn - > obmat ,  mat ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-05-05 14:03:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											BKE_object_apply_mat4 ( obn ,  obn - > obmat ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										anim_importer . read_node_transform ( source_node ,  obn ) ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-04 19:27:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-01-21 13:45:49 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*DAG_scene_sort(CTX_data_main(mContext), sce);
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									DAG_ids_flush_update ( CTX_data_main ( mContext ) ,  0 ) ; */ 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									COLLADAFW : : NodePointerArray  & children  =  source_node - > getChildNodes ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( children . getCount ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										for  ( unsigned  int  i  =  0 ;  i  <  children . getCount ( ) ;  i + + )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											COLLADAFW : : Node  * child_node  =  children [ i ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											const  COLLADAFW : : UniqueId &  child_id  =  child_node - > getUniqueId ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( object_map . find ( child_id )  = =  object_map . end ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												continue ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											COLLADAFW : : InstanceNodePointerArray  & inodes  =  child_node - > getInstanceNodes ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											Object  * new_child  =  NULL ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( inodes . getCount ( ) )  {  // \todo loop through instance nodes
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												const  COLLADAFW : : UniqueId &  id  =  inodes [ 0 ] - > getInstanciatedObjectId ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-16 09:16:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												fprintf ( stderr ,  " Doing %d child nodes \n " ,  ( int ) node_map . count ( id ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-04-30 23:51:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												new_child  =  create_instance_node ( object_map . find ( id ) - > second ,  node_map [ id ] ,  child_node ,  sce ,  is_library_node ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-09 14:16:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											else  { 
							 
						 
					
						
							
								
									
										
										
										
											2012-04-30 23:51:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												new_child  =  create_instance_node ( object_map . find ( child_id ) - > second ,  child_node ,  NULL ,  sce ,  is_library_node ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											bc_set_parent ( new_child ,  obn ,  mContext ,  true ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-04 19:27:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											if  ( is_library_node ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												libnode_ob . push_back ( new_child ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-04 19:27:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-03-17 06:37:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									return  obn ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2010-09-04 19:27:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-01-21 13:45:49 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								// to create constraints off node <extra> tags. Assumes only constraint data in
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// current <extra> with blender profile.
  
						 
					
						
							
								
									
										
										
										
											2013-02-10 17:06:05 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  DocumentImporter : : create_constraints ( ExtraTags  * et ,  Object  * ob )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( et  & &  et - > isProfile ( " blender " ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2013-01-21 13:45:49 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										std : : string  name ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										short *  type  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " type " ,  type ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-01 15:17:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										BKE_add_ob_constraint ( ob ,  " Test_con " ,  * type ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-01-21 13:45:49 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-10 22:14:56 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								std : : vector < Object  * >  * DocumentImporter : : write_node ( COLLADAFW : : Node  * node ,  COLLADAFW : : Node  * parent_node ,  Scene  * sce ,  Object  * par ,  bool  is_library_node )  
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									Object  * ob  =  NULL ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									bool  is_joint  =  node - > getType ( )  = =  COLLADAFW : : Node : : JOINT ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-03-17 06:37:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									bool  read_transform  =  true ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-08 19:52:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									std : : string  id    =  node - > getOriginalId ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									std : : string  name  =  node - > getName ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-04 19:27:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-01-21 13:45:49 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									std : : vector < Object  * >  * objects_done  =  new  std : : vector < Object  * > ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-04 00:18:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-08 19:52:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									fprintf ( stderr , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											" Writing node id='%s', name='%s' \n " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											id . c_str ( ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											name . c_str ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( is_joint )  { 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-20 00:06:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  ( parent_node  = =  NULL )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											par  =  bc_add_object ( sce ,  OB_ARMATURE ,  std : : string ( " Armature " ) . c_str ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											//anim_importer.read_node_transform(node, par);
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											objects_done - > push_back ( par ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											object_map . insert ( std : : make_pair < COLLADAFW : : UniqueId ,  Object  * > ( node - > getUniqueId ( ) ,  par ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											node_map [ node - > getUniqueId ( ) ]  =  node ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-19 04:20:43 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										armature_importer . add_joint ( node ,  parent_node  = =  NULL  | |  parent_node - > getType ( )  ! =  COLLADAFW : : Node : : JOINT ,  par ,  sce ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-20 00:06:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( parent_node  = =  NULL )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  objects_done ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-04 19:27:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										COLLADAFW : : InstanceGeometryPointerArray  & geom  =  node - > getInstanceGeometries ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										COLLADAFW : : InstanceCameraPointerArray  & camera  =  node - > getInstanceCameras ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										COLLADAFW : : InstanceLightPointerArray  & lamp  =  node - > getInstanceLights ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										COLLADAFW : : InstanceControllerPointerArray  & controller  =  node - > getInstanceControllers ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										COLLADAFW : : InstanceNodePointerArray  & inst_node  =  node - > getInstanceNodes ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-20 10:50:17 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										size_t  geom_done  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										size_t  camera_done  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										size_t  lamp_done  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										size_t  controller_done  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										size_t  inst_done  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// XXX linking object with the first <instance_geometry>, though a node may have more of them...
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// maybe join multiple <instance_...> meshes into 1, and link object with it? not sure...
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// <instance_geometry>
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										while  ( geom_done  <  geom . getCount ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											ob  =  mesh_importer . create_mesh_object ( node ,  geom [ geom_done ] ,  false ,  uid_material_map , 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											                                      material_texture_mapping_map ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-08 00:28:58 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											if  ( ob  = =  NULL )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												fprintf ( stderr , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														" <node id= \" %s \" , name= \" %s \"  >...contains a reference to an unknown instance_mesh. \n " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														id . c_str ( ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														name . c_str ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												objects_done - > push_back ( ob ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2011-09-04 22:14:28 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											+ + geom_done ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										while  ( camera_done  <  camera . getCount ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											ob  =  create_camera_object ( camera [ camera_done ] ,  sce ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-08-05 10:23:34 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											if  ( ob  = =  NULL )  { 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-08 00:28:58 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												std : : string  id    =  node - > getOriginalId ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-08-05 10:23:34 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												std : : string  name  =  node - > getName ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												fprintf ( stderr ,  " <node id= \" %s \" , name= \" %s \"  >...contains a reference to an unknown instance_camera. \n " ,  id . c_str ( ) ,  name . c_str ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												objects_done - > push_back ( ob ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-09-04 22:14:28 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											+ + camera_done ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										while  ( lamp_done  <  lamp . getCount ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											ob  =  create_lamp_object ( lamp [ lamp_done ] ,  sce ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-04-30 23:51:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											objects_done - > push_back ( ob ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-09-04 22:14:28 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											+ + lamp_done ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										while  ( controller_done  <  controller . getCount ( ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											COLLADAFW : : InstanceGeometry  * geom  =  ( COLLADAFW : : InstanceGeometry  * ) controller [ controller_done ] ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											ob  =  mesh_importer . create_mesh_object ( node ,  geom ,  true ,  uid_material_map ,  material_texture_mapping_map ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-04-30 23:51:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											objects_done - > push_back ( ob ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											+ + controller_done ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// XXX instance_node is not supported yet
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										while  ( inst_done  <  inst_node . getCount ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											const  COLLADAFW : : UniqueId &  node_id  =  inst_node [ inst_done ] - > getInstanciatedObjectId ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( object_map . find ( node_id )  = =  object_map . end ( ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2012-03-22 13:35:52 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												fprintf ( stderr ,  " Cannot find object for node referenced by <instance_node name= \" %s \" >. \n " ,  inst_node [ inst_done ] - > getName ( ) . c_str ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												ob  =  NULL ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											else  { 
							 
						 
					
						
							
								
									
										
										
										
											2012-05-01 20:08:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												std : : pair < std : : multimap < COLLADAFW : : UniqueId ,  Object  * > : : iterator ,  std : : multimap < COLLADAFW : : UniqueId ,  Object  * > : : iterator >  pair_iter  =  object_map . equal_range ( node_id ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												for  ( std : : multimap < COLLADAFW : : UniqueId ,  Object  * > : : iterator  it2  =  pair_iter . first ;  it2  ! =  pair_iter . second ;  it2 + + )  { 
							 
						 
					
						
							
								
									
										
										
										
											2012-04-30 23:51:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													Object  * source_ob  =  ( Object  * ) it2 - > second ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													COLLADAFW : : Node  * source_node  =  node_map [ node_id ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													ob  =  create_instance_node ( source_ob ,  source_node ,  node ,  sce ,  is_library_node ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2012-05-01 20:08:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											if  ( ob  ! =  NULL )  objects_done - > push_back ( ob ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											+ + inst_done ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-03-17 06:37:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											read_transform  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2013-01-21 13:45:49 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										// if node is empty - create empty object
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// XXX empty node may not mean it is empty object, not sure about this
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  (  ( geom_done  +  camera_done  +  lamp_done  +  controller_done  +  inst_done )  <  1 )  { 
							 
						 
					
						
							
								
									
										
										
										
											2013-01-21 13:45:49 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											//Check if Object is armature, by checking if immediate child is a JOINT node.
 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-10 17:06:05 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											if  ( is_armature ( node ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-17 18:33:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												ob  =  bc_add_object ( sce ,  OB_ARMATURE ,  name . c_str ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-10 17:06:05 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												ob  =  bc_add_object ( sce ,  OB_EMPTY ,  NULL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2012-04-30 23:51:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											objects_done - > push_back ( ob ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-17 18:33:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										
							 
						 
					
						
							
								
									
										
										
										
											2012-03-17 06:37:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										// XXX: if there're multiple instances, only one is stored
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-10 22:14:56 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  ( ! ob )  return  objects_done ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-05-01 20:08:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										for  ( std : : vector < Object  * > : : iterator  it  =  objects_done - > begin ( ) ;  it  ! =  objects_done - > end ( ) ;  + + it )  { 
							 
						 
					
						
							
								
									
										
										
										
											2012-04-30 23:51:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											ob  =  * it ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											std : : string  nodename  =  node - > getName ( ) . size ( )  ?  node - > getName ( )  :  node - > getOriginalId ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											rename_id ( & ob - > id ,  ( char  * ) nodename . c_str ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-05-01 20:08:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											object_map . insert ( std : : make_pair < COLLADAFW : : UniqueId ,  Object  * > ( node - > getUniqueId ( ) ,  ob ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-04-30 23:51:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											node_map [ node - > getUniqueId ( ) ]  =  node ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-29 14:38:50 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-04-30 23:51:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											if  ( is_library_node ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												libnode_ob . push_back ( ob ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-04 19:27:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-10 22:14:56 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-01-21 13:45:49 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										//create_constraints(et,ob);
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-05-01 20:08:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									for  ( std : : vector < Object  * > : : iterator  it  =  objects_done - > begin ( ) ;  it  ! =  objects_done - > end ( ) ;  + + it )  { 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										ob  =  * it ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-04-30 23:51:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  ( read_transform ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											anim_importer . read_node_transform ( node ,  ob ) ;   // overwrites location set earlier
 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-08 11:57:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-04-30 23:51:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  ( ! is_joint )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											// if par was given make this object child of the previous
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( par  & &  ob ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												bc_set_parent ( ob ,  par ,  mContext ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// if node has child nodes write them
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									COLLADAFW : : NodePointerArray  & child_nodes  =  node - > getChildNodes ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-11 20:21:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-08 12:23:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( objects_done - > size ( )  >  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ob  =  * objects_done - > begin ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-11 20:21:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ob  =  NULL ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									for  ( unsigned  int  i  =  0 ;  i  <  child_nodes . getCount ( ) ;  i + + )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										write_node ( child_nodes [ i ] ,  node ,  sce ,  ob ,  is_library_node ) ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-10 22:14:56 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  objects_done ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/** When this method is called, the writer must write the entire visual scene.
  
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ return  The  writer  should  return  true ,  if  writing  succeeded ,  false  otherwise . */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								bool  DocumentImporter : : writeVisualScene ( const  COLLADAFW : : VisualScene  * visualScene )  
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( mImportStage  ! =  General ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// this method called on post process after writeGeometry, writeMaterial, etc.
 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// for each <node> in <visual_scene>:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// create an Object
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// if Mesh (previously created in writeGeometry) to which <node> corresponds exists, link Object with that mesh
 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// update: since we cannot link a Mesh with Object in
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// writeGeometry because <geometry> does not reference <node>,
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// we link Objects with Meshes here
 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									vscenes . push_back ( visualScene ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/** When this method is called, the writer must handle all nodes contained in the 
  
						 
					
						
							
								
									
										
										
										
											2012-11-18 01:22:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  library  nodes . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ return  The  writer  should  return  true ,  if  writing  succeeded ,  false  otherwise . */ 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								bool  DocumentImporter : : writeLibraryNodes ( const  COLLADAFW : : LibraryNodes  * libraryNodes )  
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( mImportStage  ! =  General ) 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										return  true ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									Scene  * sce  =  CTX_data_scene ( mContext ) ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  COLLADAFW : : NodePointerArray &  nodes  =  libraryNodes - > getNodes ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-04 19:27:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									for  ( unsigned  int  i  =  0 ;  i  <  nodes . getCount ( ) ;  i + + )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										write_node ( nodes [ i ] ,  NULL ,  sce ,  NULL ,  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-04 19:27:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2010-09-04 19:27:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/** When this method is called, the writer must write the geometry.
  
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ return  The  writer  should  return  true ,  if  writing  succeeded ,  false  otherwise . */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								bool  DocumentImporter : : writeGeometry ( const  COLLADAFW : : Geometry  * geom )  
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( mImportStage  ! =  General ) 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										return  true ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  mesh_importer . write_geometry ( geom ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/** When this method is called, the writer must write the material.
  
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ return  The  writer  should  return  true ,  if  writing  succeeded ,  false  otherwise . */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								bool  DocumentImporter : : writeMaterial ( const  COLLADAFW : : Material  * cmat )  
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( mImportStage  ! =  General ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										return  true ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										
							 
						 
					
						
							
								
									
										
										
										
											2011-06-20 12:43:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  std : : string &  str_mat_id  =  cmat - > getName ( ) . size ( )  ?  cmat - > getName ( )  :  cmat - > getOriginalId ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-05 13:04:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Material  * ma  =  BKE_material_add ( G . main ,  ( char  * ) str_mat_id . c_str ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									this - > uid_effect_map [ cmat - > getInstantiatedEffect ( ) ]  =  ma ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									this - > uid_material_map [ cmat - > getUniqueId ( ) ]  =  ma ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-24 20:27:27 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// create mtex, create texture, set texture image
  
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								MTex  * DocumentImporter : : create_texture ( COLLADAFW : : EffectCommon  * ef ,  COLLADAFW : : Texture  & ctex ,  Material  * ma ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                       int  i ,  TexIndexTextureArrayMap  & texindex_texarray_map ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									COLLADAFW : : SamplerPointerArray &  samp_array  =  ef - > getSamplerPointerArray ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									COLLADAFW : : Sampler  * sampler  =  samp_array [ ctex . getSamplerId ( ) ] ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  COLLADAFW : : UniqueId &  ima_uid  =  sampler - > getSourceImage ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( uid_image_map . find ( ima_uid )  = =  uid_image_map . end ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										fprintf ( stderr ,  " Couldn't find an image by UID. \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										return  NULL ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ma - > mtex [ i ]  =  add_mtex ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ma - > mtex [ i ] - > texco  =  TEXCO_UV ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-05 13:04:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ma - > mtex [ i ] - > tex  =  add_texture ( G . main ,  " Texture " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ma - > mtex [ i ] - > tex - > type  =  TEX_IMAGE ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ma - > mtex [ i ] - > tex - > ima  =  uid_image_map [ ima_uid ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									texindex_texarray_map [ ctex . getTextureMapId ( ) ] . push_back ( ma - > mtex [ i ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  ma - > mtex [ i ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  DocumentImporter : : write_profile_COMMON ( COLLADAFW : : EffectCommon  * ef ,  Material  * ma )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									COLLADAFW : : EffectCommon : : ShaderType  shader  =  ef - > getShaderType ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// blinn
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( shader  = =  COLLADAFW : : EffectCommon : : SHADER_BLINN )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ma - > spec_shader  =  MA_SPEC_BLINN ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ma - > spec  =  ef - > getShininess ( ) . getFloatValue ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// phong
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									else  if  ( shader  = =  COLLADAFW : : EffectCommon : : SHADER_PHONG )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ma - > spec_shader  =  MA_SPEC_PHONG ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ma - > har  =  ef - > getShininess ( ) . getFloatValue ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// lambert
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									else  if  ( shader  = =  COLLADAFW : : EffectCommon : : SHADER_LAMBERT )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ma - > diff_shader  =  MA_DIFF_LAMBERT ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// default - lambert
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ma - > diff_shader  =  MA_DIFF_LAMBERT ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										fprintf ( stderr ,  " Current shader type is not supported, default to lambert. \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// reflectivity
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ma - > ray_mirror  =  ef - > getReflectivity ( ) . getFloatValue ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// index of refraction
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ma - > ang  =  ef - > getIndexOfRefraction ( ) . getFloatValue ( ) ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									int  i  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									COLLADAFW : : Color  col ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									MTex  * mtex  =  NULL ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									TexIndexTextureArrayMap  texindex_texarray_map ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// DIFFUSE
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// color
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( ef - > getDiffuse ( ) . isColor ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										col  =  ef - > getDiffuse ( ) . getColor ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ma - > r  =  col . getRed ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ma - > g  =  col . getGreen ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ma - > b  =  col . getBlue ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// texture
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									else  if  ( ef - > getDiffuse ( ) . isTexture ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										COLLADAFW : : Texture  ctex  =  ef - > getDiffuse ( ) . getTexture ( ) ;  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										mtex  =  create_texture ( ef ,  ctex ,  ma ,  i ,  texindex_texarray_map ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( mtex  ! =  NULL )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											mtex - > mapto  =  MAP_COL ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											ma - > texact  =  ( int ) i ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											i + + ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// AMBIENT
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// color
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( ef - > getAmbient ( ) . isColor ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										col  =  ef - > getAmbient ( ) . getColor ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ma - > ambr  =  col . getRed ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ma - > ambg  =  col . getGreen ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ma - > ambb  =  col . getBlue ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// texture
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									else  if  ( ef - > getAmbient ( ) . isTexture ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										COLLADAFW : : Texture  ctex  =  ef - > getAmbient ( ) . getTexture ( ) ;  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										mtex  =  create_texture ( ef ,  ctex ,  ma ,  i ,  texindex_texarray_map ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( mtex  ! =  NULL )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											mtex - > mapto  =  MAP_AMB ;  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											i + + ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// SPECULAR
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// color
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( ef - > getSpecular ( ) . isColor ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										col  =  ef - > getSpecular ( ) . getColor ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ma - > specr  =  col . getRed ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ma - > specg  =  col . getGreen ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ma - > specb  =  col . getBlue ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// texture
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									else  if  ( ef - > getSpecular ( ) . isTexture ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										COLLADAFW : : Texture  ctex  =  ef - > getSpecular ( ) . getTexture ( ) ;  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										mtex  =  create_texture ( ef ,  ctex ,  ma ,  i ,  texindex_texarray_map ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( mtex  ! =  NULL )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											mtex - > mapto  =  MAP_SPEC ;  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											i + + ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// REFLECTIVE
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// color
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( ef - > getReflective ( ) . isColor ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										col  =  ef - > getReflective ( ) . getColor ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ma - > mirr  =  col . getRed ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ma - > mirg  =  col . getGreen ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ma - > mirb  =  col . getBlue ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// texture
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									else  if  ( ef - > getReflective ( ) . isTexture ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										COLLADAFW : : Texture  ctex  =  ef - > getReflective ( ) . getTexture ( ) ;  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										mtex  =  create_texture ( ef ,  ctex ,  ma ,  i ,  texindex_texarray_map ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( mtex  ! =  NULL )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											mtex - > mapto  =  MAP_REF ;  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											i + + ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// EMISSION
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// color
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( ef - > getEmission ( ) . isColor ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// XXX there is no emission color in blender
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// but I am not sure
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// texture
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									else  if  ( ef - > getEmission ( ) . isTexture ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										COLLADAFW : : Texture  ctex  =  ef - > getEmission ( ) . getTexture ( ) ;  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										mtex  =  create_texture ( ef ,  ctex ,  ma ,  i ,  texindex_texarray_map ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( mtex  ! =  NULL )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											mtex - > mapto  =  MAP_EMIT ;  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											i + + ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-20 10:28:37 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
									
										
										
										
											2012-03-24 07:52:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( ef - > getOpacity ( ) . isTexture ( ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-20 10:28:37 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										COLLADAFW : : Texture  ctex  =  ef - > getOpacity ( ) . getTexture ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										mtex  =  create_texture ( ef ,  ctex ,  ma ,  i ,  texindex_texarray_map ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-03-24 07:52:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  ( mtex  ! =  NULL )  { 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-20 10:28:37 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											mtex - > mapto  =  MAP_ALPHA ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											i + + ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											ma - > spectra  =  ma - > alpha  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											ma - > mode  | =  MA_ZTRANSP  |  MA_TRANSP ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-20 10:28:37 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// TRANSPARENT
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// color
 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#if 0 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( ef - > getOpacity ( ) . isColor ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// XXX don't know what to do here
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// texture
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									else  if  ( ef - > getOpacity ( ) . isTexture ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ctex  =  ef - > getOpacity ( ) . getTexture ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( mtex  ! =  NULL )  mtex - > mapto  & =  MAP_ALPHA ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											mtex  =  create_texture ( ef ,  ctex ,  ma ,  i ,  texindex_texarray_map ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( mtex  ! =  NULL )  mtex - > mapto  =  MAP_ALPHA ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# endif 
  
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									material_texture_mapping_map [ ma ]  =  texindex_texarray_map ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/** When this method is called, the writer must write the effect.
  
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ return  The  writer  should  return  true ,  if  writing  succeeded ,  false  otherwise . */ 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								bool  DocumentImporter : : writeEffect ( const  COLLADAFW : : Effect  * effect )  
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( mImportStage  ! =  General ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  COLLADAFW : : UniqueId &  uid  =  effect - > getUniqueId ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-23 20:49:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( uid_effect_map . find ( uid )  = =  uid_effect_map . end ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										fprintf ( stderr ,  " Couldn't find a material by UID. \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										return  true ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Material  * ma  =  uid_effect_map [ uid ] ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									std : : map < COLLADAFW : : UniqueId ,  Material  * > : : iterator  iter ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									for  ( iter  =  uid_material_map . begin ( ) ;  iter  ! =  uid_material_map . end ( ) ;  iter + + )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( iter - > second  = =  ma )  { 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-23 20:49:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											this - > FW_object_map [ iter - > first ]  =  effect ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									COLLADAFW : : CommonEffectPointerArray  common_efs  =  effect - > getCommonEffects ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( common_efs . getCount ( )  <  1 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										fprintf ( stderr ,  " Couldn't find <profile_COMMON>. \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// XXX TODO: Take all <profile_common>s
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Currently only first <profile_common> is supported
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									COLLADAFW : : EffectCommon  * ef  =  common_efs [ 0 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									write_profile_COMMON ( ef ,  ma ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-18 19:32:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									this - > FW_object_map [ effect - > getUniqueId ( ) ]  =  effect ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-23 20:49:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/** When this method is called, the writer must write the camera.
  
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ return  The  writer  should  return  true ,  if  writing  succeeded ,  false  otherwise . */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								bool  DocumentImporter : : writeCamera ( const  COLLADAFW : : Camera  * camera )  
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( mImportStage  ! =  General ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										return  true ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Camera  * cam  =  NULL ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									std : : string  cam_id ,  cam_name ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									cam_id  =  camera - > getOriginalId ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									cam_name  =  camera - > getName ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-05 13:04:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( cam_name . size ( ) )  cam  =  ( Camera  * ) BKE_camera_add ( G . main ,  ( char  * ) cam_name . c_str ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									else  cam  =  ( Camera  * ) BKE_camera_add ( G . main ,  ( char  * ) cam_id . c_str ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( ! cam )  { 
							 
						 
					
						
							
								
									
										
										
										
											2012-03-31 00:59:17 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										fprintf ( stderr ,  " Cannot create camera. \n " ) ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									cam - > clipsta  =  camera - > getNearClippingPlane ( ) . getValue ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									cam - > clipend  =  camera - > getFarClippingPlane ( ) . getValue ( ) ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									COLLADAFW : : Camera : : CameraType  type  =  camera - > getCameraType ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-04-28 06:31:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									switch  ( type )  { 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										case  COLLADAFW : : Camera : : ORTHOGRAPHIC : 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											cam - > type  =  CAM_ORTHO ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										break ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										case  COLLADAFW : : Camera : : PERSPECTIVE : 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											cam - > type  =  CAM_PERSP ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										break ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										case  COLLADAFW : : Camera : : UNDEFINED_CAMERATYPE : 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2012-03-31 00:59:17 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											fprintf ( stderr ,  " Current camera type is not supported. \n " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											cam - > type  =  CAM_PERSP ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
									
										
										
										
											2012-04-28 06:31:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									switch  ( camera - > getDescriptionType ( ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										case  COLLADAFW : : Camera : : ASPECTRATIO_AND_Y : 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2012-04-28 06:31:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											switch  ( cam - > type )  { 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												case  CAM_ORTHO : 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												{ 
							 
						 
					
						
							
								
									
										
										
										
											2012-08-04 22:18:56 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													double  ymag  =  2  *  camera - > getYMag ( ) . getValue ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													double  aspect  =  camera - > getAspectRatio ( ) . getValue ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													double  xmag  =  aspect  *  ymag ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													cam - > ortho_scale  =  ( float ) xmag ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												break ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												case  CAM_PERSP : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												default : 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													double  yfov  =  camera - > getYFov ( ) . getValue ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													double  aspect  =  camera - > getAspectRatio ( ) . getValue ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-09-03 17:54:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													// NOTE: Needs more testing (As we curretnly have no official test data for this)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													double  xfov  =  2.0f  *  atanf ( aspect  *  tanf ( DEG2RADF ( yfov )  *  0.5f ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													cam - > lens  =  fov_to_focallength ( xfov ,  cam - > sensor_x ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												break ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										break ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										/* XXX correct way to do following four is probably to get also render
 
							 
						 
					
						
							
								
									
										
										
										
											2012-10-04 13:26:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										 *  size  and  determine  proper  settings  from  that  somehow  */ 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										case  COLLADAFW : : Camera : : ASPECTRATIO_AND_X : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										case  COLLADAFW : : Camera : : SINGLE_X : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										case  COLLADAFW : : Camera : : X_AND_Y : 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2012-04-28 06:31:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											switch  ( cam - > type )  { 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												case  CAM_ORTHO : 
							 
						 
					
						
							
								
									
										
										
										
											2012-08-04 22:18:56 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													cam - > ortho_scale  =  ( float ) camera - > getXMag ( ) . getValue ( )  *  2 ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												case  CAM_PERSP : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												default : 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													double  x  =  camera - > getXFov ( ) . getValue ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													// x is in degrees, cam->lens is in millimiters
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													cam - > lens  =  fov_to_focallength ( DEG2RADF ( x ) ,  cam - > sensor_x ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												break ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-28 08:01:20 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										break ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										case  COLLADAFW : : Camera : : SINGLE_Y : 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2012-04-28 06:31:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											switch  ( cam - > type )  { 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												case  CAM_ORTHO : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													cam - > ortho_scale  =  ( float ) camera - > getYMag ( ) . getValue ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												case  CAM_PERSP : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												default : 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												{ 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													double  yfov  =  camera - > getYFov ( ) . getValue ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													// yfov is in degrees, cam->lens is in millimiters
 
							 
						 
					
						
							
								
									
										
										
										
											2011-11-04 14:36:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													cam - > lens  =  fov_to_focallength ( DEG2RADF ( yfov ) ,  cam - > sensor_x ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												break ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-28 08:01:20 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										break ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										case  COLLADAFW : : Camera : : UNDEFINED : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											// read nothing, use blender defaults.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											break ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									this - > uid_camera_map [ camera - > getUniqueId ( ) ]  =  cam ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-06 18:09:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									this - > FW_object_map [ camera - > getUniqueId ( ) ]  =  camera ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// XXX import camera options
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/** When this method is called, the writer must write the image.
  
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ return  The  writer  should  return  true ,  if  writing  succeeded ,  false  otherwise . */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								bool  DocumentImporter : : writeImage ( const  COLLADAFW : : Image  * image )  
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( mImportStage  ! =  General ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										return  true ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										
							 
						 
					
						
							
								
									
										
										
										
											2013-02-13 16:00:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  std : : string &  imagepath  =  image - > getImageURI ( ) . toNativePath ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									char  dir [ FILE_MAX ] ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-13 16:00:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									char  absolute_path [ FILE_MAX ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  char  * workpath ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									BLI_split_dir_part ( this - > import_settings - > filepath ,  dir ,  sizeof ( dir ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									BLI_join_dirfile ( absolute_path ,  sizeof ( absolute_path ) ,  dir ,  imagepath . c_str ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( BLI_exists ( absolute_path ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										workpath  =  absolute_path ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									}  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// Maybe imagepath was already absolute ?
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( ! BLI_exists ( imagepath . c_str ( ) ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											fprintf ( stderr ,  " Image not found: %s. \n " ,  imagepath . c_str ( )  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										workpath  =  imagepath . c_str ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									Image  * ima  =  BKE_image_load_exists ( workpath ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( ! ima )  { 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-13 16:00:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										fprintf ( stderr ,  " Cannot create image: %s \n " ,  workpath ) ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									this - > uid_image_map [ image - > getUniqueId ( ) ]  =  ima ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/** When this method is called, the writer must write the light.
  
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ return  The  writer  should  return  true ,  if  writing  succeeded ,  false  otherwise . */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								bool  DocumentImporter : : writeLight ( const  COLLADAFW : : Light  * light )  
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( mImportStage  ! =  General ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										return  true ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-30 10:51:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Lamp  * lamp  =  NULL ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									std : : string  la_id ,  la_name ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-30 10:51:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-01-21 13:45:49 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ExtraTags  * et  =  getExtraTags ( light - > getUniqueId ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/*TagsMap::iterator etit;
 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-28 09:31:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ExtraTags  * et  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									etit  =  uid_tags_map . find ( light - > getUniqueId ( ) . toAscii ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-03-24 07:52:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( etit  ! =  uid_tags_map . end ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2013-01-21 13:45:49 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										et  =  etit - > second ; */ 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-30 10:51:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									la_id  =  light - > getOriginalId ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									la_name  =  light - > getName ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-05 13:04:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( la_name . size ( ) )  lamp  =  ( Lamp  * ) BKE_lamp_add ( G . main ,  ( char  * ) la_name . c_str ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									else  lamp  =  ( Lamp  * ) BKE_lamp_add ( G . main ,  ( char  * ) la_id . c_str ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-30 10:51:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( ! lamp )  { 
							 
						 
					
						
							
								
									
										
										
										
											2012-03-31 00:59:17 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										fprintf ( stderr ,  " Cannot create lamp. \n " ) ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-30 10:51:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// if we find an ExtraTags for this, use that instead.
 
							 
						 
					
						
							
								
									
										
										
										
											2012-03-24 07:52:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( et  & &  et - > isProfile ( " blender " ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-28 09:31:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										et - > setData ( " type " ,  & ( lamp - > type ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " flag " ,  & ( lamp - > flag ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " mode " ,  & ( lamp - > mode ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " gamma " ,  & ( lamp - > k ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-30 10:51:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										et - > setData ( " red " ,  & ( lamp - > r ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " green " ,  & ( lamp - > g ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " blue " ,  & ( lamp - > b ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-28 09:31:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										et - > setData ( " shadow_r " ,  & ( lamp - > shdwr ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " shadow_g " ,  & ( lamp - > shdwg ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " shadow_b " ,  & ( lamp - > shdwb ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " energy " ,  & ( lamp - > energy ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " dist " ,  & ( lamp - > dist ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " spotsize " ,  & ( lamp - > spotsize ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " spotblend " ,  & ( lamp - > spotblend ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " halo_intensity " ,  & ( lamp - > haint ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " att1 " ,  & ( lamp - > att1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " att2 " ,  & ( lamp - > att2 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " falloff_type " ,  & ( lamp - > falloff_type ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " clipsta " ,  & ( lamp - > clipsta ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " clipend " ,  & ( lamp - > clipend ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " shadspotsize " ,  & ( lamp - > shadspotsize ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " bias " ,  & ( lamp - > bias ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " soft " ,  & ( lamp - > soft ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " compressthresh " ,  & ( lamp - > compressthresh ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " bufsize " ,  & ( lamp - > bufsize ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " samp " ,  & ( lamp - > samp ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " buffers " ,  & ( lamp - > buffers ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " filtertype " ,  & ( lamp - > filtertype ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " bufflag " ,  & ( lamp - > bufflag ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " buftype " ,  & ( lamp - > buftype ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " ray_samp " ,  & ( lamp - > ray_samp ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " ray_sampy " ,  & ( lamp - > ray_sampy ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " ray_sampz " ,  & ( lamp - > ray_sampz ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " ray_samp_type " ,  & ( lamp - > ray_samp_type ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " area_shape " ,  & ( lamp - > area_shape ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " area_size " ,  & ( lamp - > area_size ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " area_sizey " ,  & ( lamp - > area_sizey ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " area_sizez " ,  & ( lamp - > area_sizez ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " adapt_thresh " ,  & ( lamp - > adapt_thresh ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " ray_samp_method " ,  & ( lamp - > ray_samp_method ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " shadhalostep " ,  & ( lamp - > shadhalostep ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " sun_effect_type " ,  & ( lamp - > shadhalostep ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " skyblendtype " ,  & ( lamp - > skyblendtype ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " horizon_brightness " ,  & ( lamp - > horizon_brightness ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " spread " ,  & ( lamp - > spread ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " sun_brightness " ,  & ( lamp - > sun_brightness ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " sun_size " ,  & ( lamp - > sun_size ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " backscattered_light " ,  & ( lamp - > backscattered_light ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " sun_intensity " ,  & ( lamp - > sun_intensity ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " atm_turbidity " ,  & ( lamp - > atm_turbidity ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " atm_extinction_factor " ,  & ( lamp - > atm_extinction_factor ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " atm_distance_factor " ,  & ( lamp - > atm_distance_factor ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " skyblendfac " ,  & ( lamp - > skyblendfac ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " sky_exposure " ,  & ( lamp - > sky_exposure ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										et - > setData ( " sky_colorspace " ,  & ( lamp - > sky_colorspace ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-30 10:51:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										float  constatt  =  light - > getConstantAttenuation ( ) . getValue ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										float  linatt  =  light - > getLinearAttenuation ( ) . getValue ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										float  quadatt  =  light - > getQuadraticAttenuation ( ) . getValue ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										float  d  =  25.0f ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										float  att1  =  0.0f ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										float  att2  =  0.0f ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										float  e  =  1.0f ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( light - > getColor ( ) . isValid ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											COLLADAFW : : Color  col  =  light - > getColor ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											lamp - > r  =  col . getRed ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											lamp - > g  =  col . getGreen ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											lamp - > b  =  col . getBlue ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-03-24 07:52:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  ( IS_EQ ( linatt ,  0.0f )  & &  quadatt  >  0.0f )  { 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-30 10:51:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											att2  =  quadatt ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											d  =  sqrt ( 1.0f  /  quadatt ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-30 10:51:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// linear light
 
							 
						 
					
						
							
								
									
										
										
										
											2012-03-24 07:52:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										else  if  ( IS_EQ ( quadatt ,  0.0f )  & &  linatt  >  0.0f )  { 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-30 10:51:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											att1  =  linatt ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											d  =  ( 1.0f  /  linatt ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-03-24 06:38:07 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else  if  ( IS_EQ ( constatt ,  1.0f ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-30 10:51:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											att1  =  1.0f ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-03-24 06:38:07 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else  { 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-30 10:51:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											// assuming point light (const att = 1.0);
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											att1  =  1.0f ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										d  * =  ( 1.0f  /  unit_converter . getLinearMeter ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-30 10:51:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										lamp - > energy  =  e ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										lamp - > dist  =  d ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										COLLADAFW : : Light : : LightType  type  =  light - > getLightType ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-04-28 06:31:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										switch  ( type )  { 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-30 10:51:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											case  COLLADAFW : : Light : : AMBIENT_LIGHT : 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												lamp - > type  =  LA_HEMI ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											break ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-30 10:51:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											case  COLLADAFW : : Light : : SPOT_LIGHT : 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												lamp - > type  =  LA_SPOT ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												lamp - > att1  =  att1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												lamp - > att2  =  att2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( IS_EQ ( att1 ,  0.0f )  & &  att2  >  0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													lamp - > falloff_type  =  LA_FALLOFF_INVSQUARE ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( IS_EQ ( att2 ,  0.0f )  & &  att1  >  0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													lamp - > falloff_type  =  LA_FALLOFF_INVLINEAR ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												lamp - > spotsize  =  light - > getFallOffAngle ( ) . getValue ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												lamp - > spotblend  =  light - > getFallOffExponent ( ) . getValue ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											break ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-30 10:51:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											case  COLLADAFW : : Light : : DIRECTIONAL_LIGHT : 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												/* our sun is very strong, so pick a smaller energy level */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												lamp - > type  =  LA_SUN ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												lamp - > mode  | =  LA_NO_SPEC ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											break ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-30 10:51:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											case  COLLADAFW : : Light : : POINT_LIGHT : 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												lamp - > type  =  LA_LOCAL ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												lamp - > att1  =  att1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												lamp - > att2  =  att2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( IS_EQ ( att1 ,  0.0f )  & &  att2  >  0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													lamp - > falloff_type  =  LA_FALLOFF_INVSQUARE ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( IS_EQ ( att2 ,  0.0f )  & &  att1  >  0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													lamp - > falloff_type  =  LA_FALLOFF_INVLINEAR ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											break ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-30 10:51:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											case  COLLADAFW : : Light : : UNDEFINED : 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												fprintf ( stderr ,  " Current lamp type is not supported. \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												lamp - > type  =  LA_LOCAL ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											break ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-30 10:51:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									this - > uid_lamp_map [ light - > getUniqueId ( ) ]  =  lamp ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-03 11:07:34 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									this - > FW_object_map [ light - > getUniqueId ( ) ]  =  light ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								// this function is called only for animations that pass COLLADAFW::validate
  
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								bool  DocumentImporter : : writeAnimation ( const  COLLADAFW : : Animation  * anim )  
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( mImportStage  ! =  General ) 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										return  true ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// return true;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  anim_importer . write_animation ( anim ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								// called on post-process stage after writeVisualScenes
  
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								bool  DocumentImporter : : writeAnimationList ( const  COLLADAFW : : AnimationList  * animationList )  
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( mImportStage  ! =  General ) 
							 
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										return  true ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// return true;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  anim_importer . write_animation_list ( animationList ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/** When this method is called, the writer must write the skin controller data.
  
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ return  The  writer  should  return  true ,  if  writing  succeeded ,  false  otherwise . */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								bool  DocumentImporter : : writeSkinControllerData ( const  COLLADAFW : : SkinControllerData  * skin )  
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  armature_importer . write_skin_controller_data ( skin ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// this is called on postprocess, before writeVisualScenes
  
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								bool  DocumentImporter : : writeController ( const  COLLADAFW : : Controller  * controller )  
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( mImportStage  ! =  General ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  armature_importer . write_controller ( controller ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								bool  DocumentImporter : : writeFormulas ( const  COLLADAFW : : Formulas  * formulas )  
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
											 
										
											
												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
											 
										 
										
											2009-10-30 15:35:50 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								bool  DocumentImporter : : writeKinematicsScene ( const  COLLADAFW : : KinematicsScene  * kinematicsScene )  
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2010-12-14 21:46:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								ExtraTags  * DocumentImporter : : getExtraTags ( const  COLLADAFW : : UniqueId  & uid )  
						 
					
						
							
								
									
										
										
										
											2011-03-25 11:07:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( uid_tags_map . find ( uid . toAscii ( ) )  = =  uid_tags_map . end ( ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 11:07:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										return  NULL ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-28 09:31:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									return  uid_tags_map [ uid . toAscii ( ) ] ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 11:07:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-06-12 22:05:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								bool  DocumentImporter : : addExtraTags ( const  COLLADAFW : : UniqueId  & uid ,  ExtraTags  * extra_tags )  
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2011-03-28 09:31:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									uid_tags_map [ uid . toAscii ( ) ]  =  extra_tags ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-25 09:52:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2010-12-14 21:46:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-02-10 17:06:05 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								bool  DocumentImporter : : is_armature ( COLLADAFW : : Node  * node )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2013-01-21 13:45:49 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									COLLADAFW : : NodePointerArray  & child_nodes  =  node - > getChildNodes ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-10 17:06:05 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									for  ( unsigned  int  i  =  0 ;  i  <  child_nodes . getCount ( ) ;  i + + )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( child_nodes [ i ] - > getType ( )  = =  COLLADAFW : : Node : : JOINT )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											continue ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2013-01-21 13:45:49 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2013-02-04 00:18:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-01-21 13:45:49 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									//no child is JOINT
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}