[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [14760] branches/apricot: merge from trunk
Campbell Barton
ideasman42 at gmail.com
Fri May 9 13:10:37 CEST 2008
Revision: 14760
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14760
Author: campbellbarton
Date: 2008-05-09 13:10:37 +0200 (Fri, 09 May 2008)
Log Message:
-----------
merge from trunk
Modified Paths:
--------------
branches/apricot/release/scripts/bpymodules/colladaImEx/collada.py
branches/apricot/release/scripts/bpymodules/colladaImEx/cstartup.py
branches/apricot/release/scripts/bpymodules/colladaImEx/cutils.py
branches/apricot/release/scripts/bpymodules/colladaImEx/translator.py
branches/apricot/release/scripts/bpymodules/dxfReader.py
branches/apricot/release/scripts/colladaImport14.py
branches/apricot/release/scripts/vrml97_export.py
branches/apricot/source/Makefile
branches/apricot/source/blender/blenkernel/intern/anim.c
branches/apricot/source/blender/blenkernel/intern/ipo.c
branches/apricot/source/blender/blenkernel/intern/mball.c
branches/apricot/source/blender/include/BDR_editface.h
branches/apricot/source/blender/include/BIF_interface.h
branches/apricot/source/blender/makesdna/DNA_scene_types.h
branches/apricot/source/blender/nodes/intern/CMP_nodes/CMP_hueSatVal.c
branches/apricot/source/blender/nodes/intern/SHD_nodes/SHD_hueSatVal.c
branches/apricot/source/blender/python/BPY_interface.c
branches/apricot/source/blender/src/buttons_editing.c
branches/apricot/source/blender/src/drawimasel.c
branches/apricot/source/blender/src/drawnla.c
branches/apricot/source/blender/src/editface.c
branches/apricot/source/blender/src/editmesh_mods.c
branches/apricot/source/blender/src/editseq.c
branches/apricot/source/blender/src/header_seq.c
branches/apricot/source/blender/src/interface.c
branches/apricot/source/blender/src/interface_draw.c
branches/apricot/source/blender/src/parametrizer.c
branches/apricot/source/blender/src/parametrizer.h
branches/apricot/source/blender/src/parametrizer_intern.h
branches/apricot/source/blender/src/sequence.c
branches/apricot/source/blender/src/space.c
branches/apricot/source/blender/src/unwrapper.c
branches/apricot/source/gameengine/GamePlayer/Makefile
branches/apricot/source/nan_definitions.mk
Modified: branches/apricot/release/scripts/bpymodules/colladaImEx/collada.py
===================================================================
--- branches/apricot/release/scripts/bpymodules/colladaImEx/collada.py 2008-05-09 10:26:49 UTC (rev 14759)
+++ branches/apricot/release/scripts/bpymodules/colladaImEx/collada.py 2008-05-09 11:10:37 UTC (rev 14760)
@@ -4,6 +4,7 @@
# ***** BEGIN GPL LICENSE BLOCK *****
#
# Copyright (C) 2006: Illusoft - colladablender at illusoft.com
+# 2008.05.08 some bugfix for debug mode by migius (AKA Remigiusz Fiedler)
#
# 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
@@ -32,18 +33,18 @@
# TODO: Collada API: finish DaeDocument
class DaeDocument(object):
-
+
def __init__(self, debugM = False):
global debugMode
debugMode = debugM
-
+
self.colladaVersion = '1.4.0'
self.version = ''
self.xmlns = ''
self.asset = DaeAsset()
self.extras = []
-
-
+
+
# create all the libraries
self.animationsLibrary = DaeLibrary(DaeSyntax.LIBRARY_ANIMATIONS,DaeAnimation,DaeSyntax.ANIMATION)
self.animationClipsLibrary = DaeLibrary(DaeSyntax.LIBRARY_ANIMATION_CLIPS,DaeAnimationClip,DaeSyntax.ANIMATION_CLIP)
@@ -56,38 +57,38 @@
self.materialsLibrary = DaeLibrary(DaeSyntax.LIBRARY_MATERIALS,DaeFxMaterial,DaeFxSyntax.MATERIAL)
self.nodesLibrary = DaeLibrary(DaeSyntax.LIBRARY_NODES, DaeNode, DaeSyntax.NODE)
self.visualScenesLibrary = DaeLibrary(DaeSyntax.LIBRARY_VISUAL_SCENES,DaeVisualScene,DaeSyntax.VISUAL_SCENE)
-
+
# Physics Support
- self.physicsMaterialsLibrary = DaeLibrary(DaeSyntax.LIBRARY_PHYSICS_MATERIALS, DaePhysicsMaterial, DaePhysicsSyntax.PHYSICS_MATERIAL)
- self.physicsScenesLibrary = DaeLibrary(DaeSyntax.LIBRARY_PHYSICS_SCENES, DaePhysicsScene, DaePhysicsSyntax.PHYSICS_SCENE)
-
+ self.physicsMaterialsLibrary = DaeLibrary(DaeSyntax.LIBRARY_PHYSICS_MATERIALS, DaePhysicsMaterial, DaePhysicsSyntax.PHYSICS_MATERIAL)
+ self.physicsScenesLibrary = DaeLibrary(DaeSyntax.LIBRARY_PHYSICS_SCENES, DaePhysicsScene, DaePhysicsSyntax.PHYSICS_SCENE)
+
self.physicsModelsLibrary = DaeLibrary(DaeSyntax.LIBRARY_PHYSICS_MODELS, DaePhysicsModel, DaePhysicsSyntax.PHYSICS_MODEL)
-
+
self.scene = None
self.physicsScene = None
-
+
def LoadDocumentFromFile(self, filename):
global debugMode
# Build DOM tree
doc = parse( filename )
-
+
# Get COLLADA element
- colladaNode = doc.documentElement
-
- # Get Attributes
+ colladaNode = doc.documentElement
+
+ # Get Attributes
self.version = colladaNode.getAttribute(DaeSyntax.VERSION)
if not IsVersionOk(self.version, self.colladaVersion):
Debug.Debug('The version of the file (%s) is older then the version supported by this plugin(%s).'%(self.version, self.colladaVersion),'ERROR')
doc.unlink()
- return
+ return
self.xmlns = colladaNode.getAttribute(DaeSyntax.XMLNS)
-
+
# get the assets element
self.asset.LoadFromXml(self,xmlUtils.FindElementByTagName(colladaNode,DaeSyntax.ASSET))
-
+
# get the extra elements
self.extras = CreateObjectsFromXml(self,colladaNode,DaeSyntax.EXTRA,DaeExtra)
-
+
# parse all the libraries
self.imagesLibrary.LoadFromXml(self,xmlUtils.FindElementByTagName(colladaNode,DaeSyntax.LIBRARY_IMAGES))
self.animationsLibrary.LoadFromXml(self, xmlUtils.FindElementByTagName(colladaNode,DaeSyntax.LIBRARY_ANIMATIONS))
@@ -100,42 +101,46 @@
self.materialsLibrary.LoadFromXml(self,xmlUtils.FindElementByTagName(colladaNode,DaeSyntax.LIBRARY_MATERIALS))
self.nodesLibrary.LoadFromXml(self,xmlUtils.FindElementByTagName(colladaNode,DaeSyntax.LIBRARY_NODES))
self.visualScenesLibrary.LoadFromXml(self, xmlUtils.FindElementByTagName(colladaNode, DaeSyntax.LIBRARY_VISUAL_SCENES))
-
+
self.physicsMaterialsLibrary.LoadFromXml(self, xmlUtils.FindElementByTagName(colladaNode, DaeSyntax.LIBRARY_PHYSICS_MATERIALS))
self.physicsModelsLibrary.LoadFromXml(self, xmlUtils.FindElementByTagName(colladaNode, DaeSyntax.LIBRARY_PHYSICS_MODELS))
self.physicsScenesLibrary.LoadFromXml(self, xmlUtils.FindElementByTagName(colladaNode, DaeSyntax.LIBRARY_PHYSICS_SCENES))
-
+
# Get the sceneNodes
sceneNodes = colladaNode.getElementsByTagName(DaeSyntax.SCENE)
-
+
# Get the scene
sceneNode = xmlUtils.FindElementByTagName(colladaNode, DaeSyntax.SCENE)
if sceneNode != None:
scene = DaeScene()
scene.LoadFromXml(self, sceneNode)
self.scene = scene
-
+
doc.unlink()
-
+
if debugMode:
Debug.Debug('Directly exporting this DaeDocument...','DEBUG')
- self.SaveDocumentToFile(filename+'_out.dae')
-
+ filename0 = filename[:-4]
+ self.SaveDocumentToFile(filename0+'_out.dae')
+
def SaveDocumentToFile(self, filename):
self.version = '1.4.0'
self.xmlns = 'http://www.collada.org/2005/11/COLLADASchema'
colladaNode = Element(DaeSyntax.COLLADA)
colladaNode.setAttribute(DaeSyntax.VERSION, self.version)
colladaNode.setAttribute(DaeSyntax.XMLNS, self.xmlns)
-
+
colladaNode.appendChild(self.asset.SaveToXml(self))
-
- # add the labraries
+
+ # add the libraries
+# print '\ndeb:SaveDocumentToFile self.controllersLibrary=', self.controllersLibrary #------
+# print '\ndeb:SaveDocumentToFile dir(self)', dir(self) #------
+# print '\ndeb:SaveDocumentToFile self.effectsLibrary=', self.effectsLibrary #------
AppendChild(self,colladaNode,self.animationsLibrary)
AppendChild(self,colladaNode,self.animationClipsLibrary)
AppendChild(self,colladaNode,self.camerasLibrary)
AppendChild(self,colladaNode,self.controllersLibrary)
- AppendChild(self,colladaNode,self.effectsLibrary)
+ AppendChild(self,colladaNode,self.effectsLibrary)
AppendChild(self,colladaNode,self.imagesLibrary)
AppendChild(self,colladaNode,self.lightsLibrary)
AppendChild(self,colladaNode,self.materialsLibrary)
@@ -144,17 +149,17 @@
AppendChild(self,colladaNode,self.visualScenesLibrary)
AppendChild(self,colladaNode,self.physicsMaterialsLibrary)
AppendChild(self,colladaNode,self.physicsModelsLibrary)
- AppendChild(self,colladaNode,self.physicsScenesLibrary)
-
+ AppendChild(self,colladaNode,self.physicsScenesLibrary)
+
AppendChild(self,colladaNode,self.scene)
-
+
# write xml to the file
fileref = open(filename, 'w')
fileref.write(xmlUtils.ToXml(colladaNode))
fileref.flush()
fileref.close()
colladaNode.unlink()
-
+
def GetItemCount(self):
return (##self.animationClipsLibrary.GetItemCount()+
##self.animationsLibrary.GetItemCount()+
@@ -167,46 +172,46 @@
self.nodesLibrary.GetItemCount()##+
##self.visualScenesLibrary.GetItemCount()
)
-
+
def __str__(self):
return '%s version: %s, xmlns: %s, asset: %s, extras: %s, scene: %s'%(type(self), self.version, self.xmlns, self.asset, self.extras, self.scene)
-
+
class DaeEntity(object):
def __init__(self):
self.syntax = 'UNKNOWN'
-
+
def LoadFromXml(self, daeDocument, xmlNode):
Debug.Debug('DaeEntity: Override this method for %s'%(type(self)),'WARNING')
-
+
def SaveToXml(self, daeDocument):
node = Element(self.syntax)
return node
-
+
def GetType(self):
return self.syntax
-
+
class DaeElement(DaeEntity):
-
+
def __init__(self):
super(DaeElement,self).__init__()
-
+
self.id = ''
self.name = ''
-
-
+
+
def LoadFromXml(self,daeDocument, xmlNode):
if xmlNode is None:
return
-
+
self.id = xmlNode.getAttribute(DaeSyntax.ID)
self.name = xmlNode.getAttribute(DaeSyntax.NAME)
-
+
def SaveToXml(self, daeDocument):
node = super(DaeElement,self).SaveToXml(daeDocument)
SetAttribute(node,DaeSyntax.ID,StripString(self.id))
SetAttribute(node,DaeSyntax.NAME, StripString(self.name))
return node
-
+
def __str__(self):
return super(DaeElement,self).__str__()+'id: %s, name: %s'%(self.id, self.name)
@@ -214,25 +219,25 @@
class DaeLibrary(DaeElement):
def __init__(self, syntax, objectType, objectSyntax):
super(DaeLibrary,self).__init__()
-
+
self.extras = []
self.asset = None
self.items = []
-
+
self.__objectSyntax = objectSyntax
-
+
self.syntax = syntax
self.__objectType = objectType
-
+
def LoadFromXml(self,daeDocument, xmlNode):
if xmlNode is None:
return
super(DaeLibrary,self).LoadFromXml(daeDocument, xmlNode)
-
+
self.extras = CreateObjectsFromXml(daeDocument, xmlNode, DaeSyntax.EXTRA, DaeExtra)
self.asset = CreateObjectFromXml(daeDocument, xmlNode, DaeSyntax.ASSET, DaeAsset)
self.items = CreateObjectsFromXml(daeDocument, xmlNode, self.__objectSyntax, self.__objectType)
-
+
def SaveToXml(self,daeDocument):
if len(self.items) > 0:
node = super(DaeLibrary,self).SaveToXml(daeDocument)
@@ -247,19 +252,19 @@
return None
def GetItemCount(self):
return len(self.items)
-
+
def FindObject(self,url):
for i in self.items:
if i.id == url:
return i
return None
-
+
def AddItem(self,item):
self.items.append(item)
-
+
def __str__(self):
return super(DaeLibrary,self).__str__() + 'extras: %s, asset: %s, items: %s'%(self.extras, self.asset, self.items)
-
+
class DaeAsset(DaeEntity):
def __init__(self):
super(DaeAsset,self).__init__()
@@ -272,9 +277,9 @@
self.keywords = []
self.unit = DaeUnit()
self.upAxis = 'Y_UP'
-
+
self.syntax = DaeSyntax.ASSET
-
+
def LoadFromXml(self, daeDocument, xmlNode):
if xmlNode is None:
return
@@ -296,7 +301,7 @@
self.unit.LoadFromXml(daeDocument, xmlUtils.FindElementByTagName(xmlNode, DaeSyntax.UNIT))
# Get upAxis
self.upAxis = xmlUtils.ReadContents(xmlUtils.FindElementByTagName(xmlNode,DaeSyntax.UP_AXIS))
-
+
def SaveToXml(self, daeDocument):
node = Element(DaeSyntax.ASSET)
AppendChilds(daeDocument,node, self.contributors)
@@ -307,15 +312,15 @@
AppendTextChild(node, DaeSyntax.SUBJECT, self.subject)
AppendChild(daeDocument, node, self.unit)
AppendTextChild(node, DaeSyntax.UP_AXIS, self.upAxis)
-
-
-
+
+
+
return node
-
-
+
+
def __str__(self):
return super(DaeAsset,self).__str__()+'contributors: %s, created: %s, modified: %s, revision: %s, title: %s, subject: %s, keywords: %s, unit: %s, upAxis: %s'%(self.contributors, self.created, self.modified, self.revision, self.title, self.subject, self.keywords, self.unit, self.upAxis)
-
+
# TODO: Collada API: finish DaeScene
class DaeScene(DaeEntity):
def __init__(self):
@@ -325,62 +330,62 @@
self.iPhysicsScenes = []
self.syntax = DaeSyntax.SCENE
-
+
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list