[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