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. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to