[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [20090] trunk/blender/release/scripts/ bpymodules/colladaImEx: Collada scripts updated, new version number 0.3.161

Remigiusz Fiedler migius at 4d-vectors.de
Thu May 7 02:12:38 CEST 2009


Revision: 20090
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20090
Author:   migius
Date:     2009-05-07 02:12:37 +0200 (Thu, 07 May 2009)

Log Message:
-----------
Collada scripts updated, new version number 0.3.161
patch commited by Jan Smith (collad) 
[18549] "COLLADA Export Patch, adding export meshes with modifiers"
# 2009.04.16 by jan:
# - Added the possibility to export models with modifiers (mirrors, transformers, etc.).
# - Added helpful messages for users in case something goes wrong, so they know how and
#	where to fix their model.
# - The patch from 2008.08.31, implementing the patch from Dmitri was incomplete.
#	The joints were renamed (replace('.','_')), but not the vertex group names!

Modified Paths:
--------------
    trunk/blender/release/scripts/bpymodules/colladaImEx/collada.py
    trunk/blender/release/scripts/bpymodules/colladaImEx/cstartup.py
    trunk/blender/release/scripts/bpymodules/colladaImEx/cutils.py
    trunk/blender/release/scripts/bpymodules/colladaImEx/translator.py

Modified: trunk/blender/release/scripts/bpymodules/colladaImEx/collada.py
===================================================================
--- trunk/blender/release/scripts/bpymodules/colladaImEx/collada.py	2009-05-06 22:16:28 UTC (rev 20089)
+++ trunk/blender/release/scripts/bpymodules/colladaImEx/collada.py	2009-05-07 00:12:37 UTC (rev 20090)
@@ -1821,6 +1821,7 @@
 	def SaveToXml(self, daeDocument):
 		node = super(DaeControllerInstance,self).SaveToXml(daeDocument)
 		for skeleton in self.skeletons:
+			skeleton = AdjustName(skeleton)
 #org			AppendTextChild(node, DaeSyntax.SKELETON, "#"+skeleton)
 			if not skeleton.startswith('#'): skeleton = "#"+skeleton
 			AppendTextChild(node, DaeSyntax.SKELETON, skeleton)
@@ -3508,4 +3509,4 @@
 				for daeTechnique in daeExtra.techniques:
 					if daeTechnique.profile == 'Blender':
 						return daeTechnique
-	return None
\ No newline at end of file
+	return None

Modified: trunk/blender/release/scripts/bpymodules/colladaImEx/cstartup.py
===================================================================
--- trunk/blender/release/scripts/bpymodules/colladaImEx/cstartup.py	2009-05-06 22:16:28 UTC (rev 20089)
+++ trunk/blender/release/scripts/bpymodules/colladaImEx/cstartup.py	2009-05-07 00:12:37 UTC (rev 20090)
@@ -36,7 +36,7 @@
 	print "Error! Could not find Blender modules!"
 	_ERROR = True
 
-__version__ = '0.3.160'
+__version__ = '0.3.161'
 
 # Show the wait cursor in blender
 Blender.Window.WaitCursor(1)
@@ -256,9 +256,14 @@
 toggleUseUV = None
 toggleSampleAnimation = None
 toggleOnlyMainScene = None
+toggleApplyModifiers = None
 
 def LoadDefaultVals():
-	global toggleLookAt, toggleBakeMatrix, toggleSampleAnimation, toggleNewScene, toggleClearScene, toggleTriangles, togglePolygons, toggleExportSelection, scriptsLocation, doImport, defaultFilename, fileButton, valsLoaded, togglePhysics, toggleExportCurrentScene, toggleExportRelativePaths, toggleUseUV, toggleOnlyMainScene
+	global toggleLookAt, toggleBakeMatrix, toggleSampleAnimation, toggleNewScene, \
+	toggleClearScene, toggleTriangles, togglePolygons, toggleExportSelection, \
+	scriptsLocation, doImport, defaultFilename, fileButton, valsLoaded, \
+	togglePhysics, toggleExportCurrentScene, toggleExportRelativePaths, \
+	toggleUseUV, toggleOnlyMainScene, toggleApplyModifiers
 
 	if valsLoaded:
 		return None
@@ -310,10 +315,17 @@
 			toggleExportRelativePaths.val = colladaReg.get('exportRelativePaths', True)
 			toggleSampleAnimation.val = colladaReg.get('sampleAnimation', False)
 			toggleUseUV.val = colladaReg.get('useUV', False)
+			#TODO: "toggleOnlyMainScene" left out intentionally by the original plugin author?
+			toggleApplyModifiers.val = colladaReg.get('applyModifiers', True)
 	valsLoaded = True
 
 def Gui():
-	global toggleLookAt, toggleBakeMatrix, toggleSampleAnimation, toggleNewScene, toggleClearScene, toggleTriangles, togglePolygons, toggleExportSelection, scriptsLocation, doImport, defaultFilename, fileButton, togglePhysics, toggleExportCurrentScene, toggleExportRelativePaths, toggleUseUV, toggleOnlyMainScene
+	global toggleLookAt, toggleBakeMatrix, toggleSampleAnimation, toggleNewScene, \
+	toggleClearScene, toggleTriangles, togglePolygons, toggleExportSelection, \
+	scriptsLocation, doImport, defaultFilename, fileButton, togglePhysics, \
+	toggleExportCurrentScene, toggleExportRelativePaths, toggleUseUV, \
+	toggleOnlyMainScene, toggleApplyModifiers
+	
 	Blender.BGL.glClearColor(0.898,0.910,0.808,1) # Set BG Color1
 	Blender.BGL.glClear(Blender.BGL.GL_COLOR_BUFFER_BIT)
 	Blender.BGL.glColor3f(0.835,0.848,0.745) # BG Color 2
@@ -455,6 +467,7 @@
 
 		toggleUseUV = Blender.Draw.Toggle('Use UV Image Mats',15,45, yval, 150, 20, toggleUseUVVal, 'Use UV Image instead of the material textures. Use this if you did not use the Material Textures window. Note: If you reimport this file, they will have moved to the materials section!!')
 
+		##yval = yval - 40
 		# Create Lookat  Option
 		if not (toggleLookAt is None):
 			toggleLookAtVal = toggleLookAt.val
@@ -462,6 +475,14 @@
 			toggleLookAtVal = 0
 
 		##toggleLookAt = Blender.Draw.Toggle('Camera as Lookat',14,45, yval, 150, 20, toggleLookAtVal, 'Export the transformation of camera\'s as lookat')
+		
+		yval = yval - 40
+		if not (toggleApplyModifiers is None):
+			toggleApplyModifiersVal = toggleApplyModifiers.val
+		else:
+			toggleApplyModifiersVal = 0
+		
+		toggleApplyModifiers = Blender.Draw.Toggle('Apply modifiers',14,45, yval, 150, 20, toggleApplyModifiersVal, 'Apply modifiers, like mirroring, transformations, etc.')
 
 		Blender.Draw.PushButton(importExportText, 12, 45+55+35+100+35, 10, 55, 20, importExportText)
 	else: # IMPORT GUI
@@ -507,7 +528,12 @@
 	pass
 
 def ButtonEvent(evt):
-	global toggleLookAt, toggleBakeMatrix, toggleExportSelection,toggleNewScene, toggleClearScene, toggleTriangles, togglePolygons, doImport, defaultFilename, fileSelectorShown, fileButton, valsLoaded, togglePhysics, toggleExportCurrentScene, toggleExportRelativePaths, toggleUseUV, toggleSampleAnimation, toggleOnlyMainScene
+	global toggleLookAt, toggleBakeMatrix, toggleExportSelection,toggleNewScene, \
+	toggleClearScene, toggleTriangles, togglePolygons, doImport, defaultFilename, \
+	fileSelectorShown, fileButton, valsLoaded, togglePhysics, \
+	toggleExportCurrentScene, toggleExportRelativePaths, toggleUseUV, \
+	toggleSampleAnimation, toggleOnlyMainScene
+	
 	checkImportButtons = False
 	if evt == 1:
 		toggle = 1 - toggle
@@ -605,6 +631,11 @@
 			sampleAnimation = False
 		else:
 			sampleAnimation = bool(toggleSampleAnimation.val)
+			
+		if toggleApplyModifiers is None:
+			applyModifiers = False
+		else:
+			applyModifiers = bool(toggleApplyModifiers.val)
 
 
 		d = Blender.Registry.GetKey('collada',True)
@@ -627,6 +658,7 @@
 			d['exportRelativePaths'] = exportRelativePaths
 			d['useUV'] = useUV
 			d['sampleAnimation'] = sampleAnimation
+			d['applyModifiers'] = applyModifiers
 
 		Blender.Registry.SetKey('collada',d, True)
 
@@ -636,7 +668,12 @@
 			importExportText = "Export"
 
 		try:
-			transl = translator.Translator(doImport,__version__,debug,fileName, useTriangles, usePolygons, bakeMatrices, exportSelection, newScene, clearScene, lookAt, usePhysics, exportCurrentScene, exportRelativePaths, useUV, sampleAnimation, onlyMainScene)
+			transl = translator.Translator(doImport,__version__,debug,fileName, \
+										useTriangles, usePolygons, bakeMatrices,\
+										exportSelection, newScene, clearScene,  \
+										lookAt, usePhysics, exportCurrentScene, \
+										exportRelativePaths, useUV, sampleAnimation, \
+										onlyMainScene, applyModifiers)
 			# Redraw al 3D windows.
 			Blender.Window.RedrawAll()
 

Modified: trunk/blender/release/scripts/bpymodules/colladaImEx/cutils.py
===================================================================
--- trunk/blender/release/scripts/bpymodules/colladaImEx/cutils.py	2009-05-06 22:16:28 UTC (rev 20089)
+++ trunk/blender/release/scripts/bpymodules/colladaImEx/cutils.py	2009-05-07 00:12:37 UTC (rev 20090)
@@ -314,4 +314,11 @@
 	newMat = Matrix(matrix).transpose()
 	print name,"loc:   ", newMat.translationPart()
 	print name,"euler: ", newMat.toEuler()
-	print name,"scale: ", newMat.scalePart()
\ No newline at end of file
+	print name,"scale: ", newMat.scalePart()
+	
+def AdjustName(adjustedName):
+	'''Adjust every name to fit to collada.py's StripString renaming (. -> _) and making 
+	sure the name starts with a letter.'''
+	if len(adjustedName) > 0 and not adjustedName[0].isalpha():
+		adjustedName = "i"+adjustedName
+	return adjustedName.replace('.', '_')

Modified: trunk/blender/release/scripts/bpymodules/colladaImEx/translator.py
===================================================================
--- trunk/blender/release/scripts/bpymodules/colladaImEx/translator.py	2009-05-06 22:16:28 UTC (rev 20089)
+++ trunk/blender/release/scripts/bpymodules/colladaImEx/translator.py	2009-05-07 00:12:37 UTC (rev 20090)
@@ -24,6 +24,12 @@
 # --------------------------------------------------------------------------
 
 # History
+# 2009.04.16 by jan:
+# - Added the possibility to export models with modifiers (mirrors, transformers, etc.).
+# - Added helpful messages for users in case something goes wrong, so they know how and
+#	where to fix their model.
+# - The patch from 2008.08.31, implementing the patch from Dmitri was incomplete.
+#	The joints were renamed (replace('.','_')), but not the vertex group names!
 # 2008.09.20 by migius:
 # - bugfix meshes with more than 16 materials: material index bigger than 15 replaced with 15.
 # 2008.08.31 by migius:
@@ -44,14 +50,26 @@
 import datetime
 from helperObjects import *
 
+import BPyMesh
+import BPyObject
+
 debprn = 0 #--- print debug "print 'deb: ..."
 dmitri = 0 #switch for testing patch from Dmitri
 
 class Translator(object):
 	isImporter = False
 
-	def __init__(self, isImporter, version, debugM, fileName, _useTriangles, _usePolygons, _bakeMatrices, _exportSelection, _createNewScene, _clearScene, _lookAt, _exportPhysics, _exportCurrentScene, _exportRelativePaths, _useUV, _sampleAnimation, _onlyMainScene):
-		global __version__, debugMode, usePhysics, useTriangles, usePolygons, bakeMatrices, exportSelection, createNewScene, clearScene, lookAt, replaceNames, exportPhysics, exportCurrentScene, useRelativePaths, useUV, sampleAnimation, onlyMainScene
+	def __init__(self, isImporter, version, debugM, fileName, _useTriangles, \
+				_usePolygons, _bakeMatrices, _exportSelection, _createNewScene, \
+				_clearScene, _lookAt, _exportPhysics, _exportCurrentScene, \
+				_exportRelativePaths, _useUV, _sampleAnimation, _onlyMainScene, \
+				_applyModifiers):
+		
+		global __version__, debugMode, usePhysics, useTriangles, usePolygons, \
+		bakeMatrices, exportSelection, createNewScene, clearScene, lookAt, \
+		replaceNames, exportPhysics, exportCurrentScene, useRelativePaths, \
+		useUV, sampleAnimation, onlyMainScene, applyModifiers
+		
 		#if debprn: print 'deb:class_Translator isImporter=', isImporter #deb---------
 		__version__ = version
 		debugMode = debugM
@@ -70,6 +88,7 @@
 		useUV = _useUV
 		sampleAnimation = _sampleAnimation
 		onlyMainScene= _onlyMainScene
+		applyModifiers= _applyModifiers
 
 		replaceNames = clearScene
 
@@ -351,10 +370,29 @@
 
 		daeScene = collada.DaeScene()
 
+		#---------- Copied from export OBJ -----------------------------
+		# Get Container Mesh

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list