diff options
author | Campbell Barton <ideasman42@gmail.com> | 2006-07-03 09:05:28 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2006-07-03 09:05:28 +0400 |
commit | a33feaf49bf865aa6de0a02fd2b4231bb0393757 (patch) | |
tree | 2bb9a9ad6af87b1733593abbd950b444e8ad1f17 | |
parent | acef774a610802bed2874b326ef601776bf0093e (diff) |
Lots of scripts are using Object.Get() where Scene.GetCurrent().getChildren() is what is needed.
When through and replaced the obvious ones but there are still a a few Id rather not touch without more about whats going on.
Did quite a few changes to export-iv also.
-rw-r--r-- | release/scripts/DirectX8Exporter.py | 8 | ||||
-rw-r--r-- | release/scripts/bpymodules/svg2obj.py | 2 | ||||
-rw-r--r-- | release/scripts/disp_paint.py | 2 | ||||
-rw-r--r-- | release/scripts/envelope_symmetry.py | 6 | ||||
-rw-r--r-- | release/scripts/export-iv-0.1.py | 455 | ||||
-rw-r--r-- | release/scripts/xsi_export.py | 2 |
6 files changed, 238 insertions, 237 deletions
diff --git a/release/scripts/DirectX8Exporter.py b/release/scripts/DirectX8Exporter.py index 61ab2b0b865..ffaf93e35c0 100644 --- a/release/scripts/DirectX8Exporter.py +++ b/release/scripts/DirectX8Exporter.py @@ -296,7 +296,7 @@ class xExport: #*********************************************** def analyzeScene(self): parent_list = [] - for obj in Object.Get(): + for obj in Blender.Scene.GetCurrent().getChildren(): #Object.Get(): mesh = obj.getData() if type(mesh) == Types.ArmatureType or type(mesh) == Types.NMeshType or obj.getType() == "Empty": pare = obj.getParent() @@ -307,14 +307,14 @@ class xExport: def getChildren(self,obj): children_list = [] - for object in Object.Get(): + for object in Blender.Scene.GetCurrent().getChildren(): #Object.Get(): pare = object.parent if pare == obj : children_list.append(object) return children_list def getArmChildren(self,obj): - for object in Object.Get(): + for object in Blender.Scene.GetCurrent().getChildren(): #Object.Get(): pare = object.parent if pare == obj : return object @@ -404,7 +404,7 @@ class xExport: self.file.write("} // End of the Root Frame\n") if anim : self.file.write("AnimationSet {\n") - for obj in Object.Get(): + for obj in Blender.Scene.GetCurrent().getChildren(): #Object.Get(): mesh = obj.getData() if type(mesh) == Types.NMeshType or obj.getType() == "Empty": diff --git a/release/scripts/bpymodules/svg2obj.py b/release/scripts/bpymodules/svg2obj.py index c9c951c996f..0b8db0e9728 100644 --- a/release/scripts/bpymodules/svg2obj.py +++ b/release/scripts/bpymodules/svg2obj.py @@ -439,7 +439,7 @@ def createCURVES(courbes): elif scale_==3: SCALE=r[3]-r[1] - [o.select(0) for o in Object.Get()] + [o.select(0) for o in Scene.GetCurrent().getChildren()] #[o.select(0) for o in Object.Get()] - will not work for I in courbes.ITEM: c = Curve.New() # ---------- diff --git a/release/scripts/disp_paint.py b/release/scripts/disp_paint.py index e5ce81f65f3..da255a446c0 100644 --- a/release/scripts/disp_paint.py +++ b/release/scripts/disp_paint.py @@ -280,7 +280,7 @@ def NEWMEcreation(obj): for ozero in OBJ: if ozero.getType()=='Mesh': - namelist.append(ozero.getData().name) + namelist.append(ozero.getData(name_only=1)) ozero=obj nomdelobjet=ozero.getName() diff --git a/release/scripts/envelope_symmetry.py b/release/scripts/envelope_symmetry.py index 5a4f7a31b3b..7031c1b72a9 100644 --- a/release/scripts/envelope_symmetry.py +++ b/release/scripts/envelope_symmetry.py @@ -103,13 +103,13 @@ def flipFace(v): # return object with given object name (with variable parts) and mesh name def getObjectByName(obj_name, mesh_name): - objs = Blender.Object.Get() + objs = Blender.Scene.GetCurrent().getChildren() #Blender.Object.Get() for obj in objs: if obj.getType() == "Mesh": # if obj.getName()[0:len(obj_name)] == obj_name and obj.getData().name == mesh_name: # use only mesh_name so bone name and weight (in the envelope name) # can be changed by the user and mirrored by the script. - if obj.getData().name == mesh_name: + if obj.getData(name_only=1) == mesh_name: return obj return False @@ -118,7 +118,7 @@ SUFFIX_LEN = len(REF_SUFFIX); Blender.Window.EditMode(0) count = 0 -objs = Blender.Object.Get() +objs = Blender.Scene.GetCurrent().getChildren() #objs = Blender.Object.Get() for obj in objs: if obj.getType() != 'Mesh': continue diff --git a/release/scripts/export-iv-0.1.py b/release/scripts/export-iv-0.1.py index 66fded7755b..f7abd3d2229 100644 --- a/release/scripts/export-iv-0.1.py +++ b/release/scripts/export-iv-0.1.py @@ -40,261 +40,262 @@ Note: # import Blender -import os -import math +math_pi= 3.1415926535897931 def WriteHeader(file): - file.write("#Inventor V2.1 ascii\n\n") - file.write("Separator\n") - file.write("{\n") - file.write(" ShapeHints\n") - file.write(" {\n") - file.write(" vertexOrdering COUNTERCLOCKWISE\n") - file.write(" }\n") + file.write("#Inventor V2.1 ascii\n\n") + file.write("Separator\n") + file.write("{\n") + file.write(" ShapeHints\n") + file.write(" {\n") + file.write(" vertexOrdering COUNTERCLOCKWISE\n") + file.write(" }\n") def WriteFooter(file): - file.write("}\n") + file.write("}\n") def WriteMesh(file, object): - file.write(" Separator\n") - file.write(" {\n") - file.write(" # %s\n" % object.getName()) - WriteMatrix(file, object) - mesh = object.getData() - WriteMaterials(file, mesh) - WriteTexture(file, mesh) - WriteNormals(file, mesh) - WriteVertices(file, mesh) - WriteFaces(file, mesh) - file.write(" }\n") + file.write(" Separator\n") + file.write(" {\n") + file.write(" # %s\n" % object.getName()) + WriteMatrix(file, object) + mesh = object.getData() + WriteMaterials(file, mesh) + WriteTexture(file, mesh) + WriteNormals(file, mesh) + WriteVertices(file, mesh) + WriteFaces(file, mesh) + file.write(" }\n") def WriteMatrix(file, object): - matrix = object.getMatrix() - file.write(" MatrixTransform\n") - file.write(" {\n") - file.write(" matrix\n") - for line in matrix: - file.write(" %s %s %s %s\n" % (line[0], line[1], line[2], line[3])) - file.write(" }\n") + matrix = object.getMatrix() + file.write(" MatrixTransform\n") + file.write(" {\n") + file.write(" matrix\n") + for line in matrix: + file.write(" %.6f %.6f %.6f %.6f\n" % (line[0], line[1], line[2], line[3])) + file.write(" }\n") def WriteColors(file, mesh): - file.write(" vertexProperty VertexProperty\n") - file.write(" {\n") - file.write(" orderedRGBA\n") - file.write(" [\n") - for face in mesh.faces: - for I in range(len(face.v)): - file.write(" 0x%02x%02x%02x%02x,\n" % (face.col[I].r, - face.col[I].g, face.col[I].b, face.col[I].a)) - file.write(" ]\n") - file.write(" materialBinding PER_VERTEX\n") - file.write(" }\n") + file.write(" vertexProperty VertexProperty\n") + file.write(" {\n") + file.write(" orderedRGBA\n") + file.write(" [\n") + for face in mesh.faces: + for I in xrange(len(face)): + file.write(" 0x%02x%02x%02x%02x,\n" % (face.col[I].r, + face.col[I].g, face.col[I].b, face.col[I].a)) + file.write(" ]\n") + file.write(" materialBinding PER_VERTEX\n") + file.write(" }\n") def WriteMaterials(file, mesh): - if mesh.materials: - file.write(" Material\n") - file.write(" {\n") - file.write(" ambientColor\n") - file.write(" [\n") - for mat in mesh.materials: - file.write(" %s %s %s,\n" % (mat.mirCol[0], mat.mirCol[1], - mat.mirCol[2])) - file.write(" ]\n") - file.write(" diffuseColor\n") - file.write(" [\n") - for mat in mesh.materials: - file.write(" %s %s %s,\n" % (mat.rgbCol[0], mat.rgbCol[1], - mat.rgbCol[2])) - file.write(" ]\n") - file.write(" specularColor\n") - file.write(" [\n") - for mat in mesh.materials: - file.write(" %s %s %s,\n" % (mat.specCol[0] * mat.spec / 2.0, - mat.specCol[1] * mat.spec / 2.0, mat.specCol[2] * mat.spec / 2.0)) - file.write(" ]\n") - file.write(" emissiveColor\n") - file.write(" [\n") - for mat in mesh.materials: - file.write(" %s %s %s,\n" % (mat.rgbCol[0] * mat.emit, - mat.rgbCol[1] * mat.emit, mat.rgbCol[0] * mat.emit)) - file.write(" ]\n") - file.write(" shininess\n") - file.write(" [\n") - for mat in mesh.materials: - file.write(" %s,\n" % (mat.hard / 255.0)) - file.write(" ]\n") - file.write(" transparency\n") - file.write(" [\n") - for mat in mesh.materials: - file.write(" %s,\n" % (1.0 - mat.alpha)) - file.write(" ]\n") - file.write(" }\n") - file.write(" MaterialBinding\n") - file.write(" {\n") - file.write(" value PER_FACE_INDEXED\n") - file.write(" }\n") + if mesh.materials: + file.write(" Material\n") + file.write(" {\n") + file.write(" ambientColor\n") + file.write(" [\n") + for mat in mesh.materials: + file.write(" %.6f %.6f %.6f,\n" % (mat.mirCol[0], mat.mirCol[1], + mat.mirCol[2])) + file.write(" ]\n") + file.write(" diffuseColor\n") + file.write(" [\n") + for mat in mesh.materials: + file.write(" %.6f %.6f %.6f,\n" % (mat.rgbCol[0], mat.rgbCol[1], + mat.rgbCol[2])) + file.write(" ]\n") + file.write(" specularColor\n") + file.write(" [\n") + for mat in mesh.materials: + file.write(" %.6f %.6f %.6f,\n" % (mat.specCol[0] * mat.spec / 2.0, + mat.specCol[1] * mat.spec / 2.0, mat.specCol[2] * mat.spec / 2.0)) + file.write(" ]\n") + file.write(" emissiveColor\n") + file.write(" [\n") + for mat in mesh.materials: + file.write(" %.6f %.6f %.6f,\n" % (mat.rgbCol[0] * mat.emit, + mat.rgbCol[1] * mat.emit, mat.rgbCol[0] * mat.emit)) + file.write(" ]\n") + file.write(" shininess\n") + file.write(" [\n") + for mat in mesh.materials: + file.write(" %.6f,\n" % (mat.hard / 255.0)) + file.write(" ]\n") + file.write(" transparency\n") + file.write(" [\n") + for mat in mesh.materials: + file.write(" %.6f,\n" % (1.0 - mat.alpha)) + file.write(" ]\n") + file.write(" }\n") + file.write(" MaterialBinding\n") + file.write(" {\n") + file.write(" value PER_FACE_INDEXED\n") + file.write(" }\n") def WriteTexture(file, mesh): - texture = mesh.faces[0].image - if texture: - file.write(" Texture2\n") - file.write(" {\n") - file.write(' filename "%s"\n' % texture.getName()) - file.write(" }\n") - file.write(" TextureCoordinate2\n") - file.write(" {\n") - file.write(" point\n") - file.write(" [\n") - if mesh.hasVertexUV(): - for vert in mesh.verts: - file.write(" %s %s,\n" % (vert.uvco[0], vert.uvco[1])) - file.write(" ]\n") - file.write(" }\n") - file.write(" TextureCoordinateBinding\n") - file.write(" {\n") - file.write(" value PER_VERTEX_INDEXED\n") - file.write(" }\n") - elif mesh.hasFaceUV(): - for face in mesh.faces: - for uv in face.uv: - file.write(" %s %s,\n" % (uv[0], uv[1])) - file.write(" ]\n") - file.write(" }\n") - file.write(" TextureCoordinateBinding\n") - file.write(" {\n") - file.write(" value PER_VERTEX\n") - file.write(" }\n") + texture = mesh.faces[0].image # BAD Ju Ju + if texture: + file.write(" Texture2\n") + file.write(" {\n") + file.write(' filename "%s"\n' % texture.getName()) + file.write(" }\n") + file.write(" TextureCoordinate2\n") + file.write(" {\n") + file.write(" point\n") + file.write(" [\n") + if mesh.hasVertexUV(): + for vert in mesh.verts: + file.write(" %s %s,\n" % (vert.uvco[0], vert.uvco[1])) + file.write(" ]\n") + file.write(" }\n") + file.write(" TextureCoordinateBinding\n") + file.write(" {\n") + file.write(" value PER_VERTEX_INDEXED\n") + file.write(" }\n") + elif mesh.hasFaceUV(): + for face in mesh.faces: + for uv in face.uv: + file.write(" %.6f %.6f,\n" % (uv[0], uv[1])) + file.write(" ]\n") + file.write(" }\n") + file.write(" TextureCoordinateBinding\n") + file.write(" {\n") + file.write(" value PER_VERTEX\n") + file.write(" }\n") def WriteVertices(file, mesh): - file.write(" Coordinate3\n") - file.write(" {\n") - file.write(" point\n") - file.write(" [\n") - for vert in mesh.verts: - file.write(" %s %s %s,\n" % (vert[0], vert[1], vert[2])) - file.write(" ]\n") - file.write(" }\n") + file.write(" Coordinate3\n") + file.write(" {\n") + file.write(" point\n") + file.write(" [\n") + for vert in mesh.verts: + file.write(" %.6f %.6f %.6f,\n" % (vert[0], vert[1], vert[2])) + file.write(" ]\n") + file.write(" }\n") def WriteNormals(file, mesh): - file.write(" Normal\n") - file.write(" {\n") - file.write(" vector\n") - file.write(" [\n") - - # make copy of vertex normals - normals = [] - for face in mesh.faces: - if len(face.v) in [3, 4]: - if face.smooth: - for v in face.v: - normals.append(v.no) - else: - for v in face.v: - normals.append(face.no) - - # write normals - for no in normals: - file.write(" %s %s %s,\n" % (no[0], no[1], no[2])) - file.write(" ]\n") - file.write(" }\n") - - # write way how normals are binded - file.write(" NormalBinding\n") - file.write(" {\n") - file.write(" value PER_VERTEX\n") - file.write(" }\n") + file.write(" Normal\n") + file.write(" {\n") + file.write(" vector\n") + file.write(" [\n") + + # make copy of vertex normals + normals = [] + for face in mesh.faces: + if len(face.v) in [3, 4]: + if face.smooth: + for v in face.v: + normals.append(v.no) + else: + for v in face.v: + normals.append(face.no) + + # write normals + for no in normals: + file.write(" %.6f %.6f %.6f,\n" % (no[0], no[1], no[2])) + file.write(" ]\n") + file.write(" }\n") + + # write way how normals are binded + file.write(" NormalBinding\n") + file.write(" {\n") + file.write(" value PER_VERTEX\n") + file.write(" }\n") def WriteFaces(file, mesh): - file.write(" IndexedFaceSet\n") - file.write(" {\n") - - # write vertex paint - if mesh.hasVertexColours(): - WriteColors(file, mesh) - - # write material indexes - file.write(" materialIndex\n") - file.write(" [\n") - for face in mesh.faces: - file.write(" %s,\n" % (face.mat)); - file.write(" ]\n") - - # write faces with coordinate indexes - file.write(" coordIndex\n") - file.write(" [\n") - for face in mesh.faces: - if len(face.v) == 3: - file.write(" %s, %s, %s, -1,\n" % (face.v[0].index, - face.v[1].index, face.v[2].index)) - elif len(face.v) == 4: - file.write(" %s, %s, %s, %s, -1,\n"% (face.v[0].index, - face.v[1].index, face.v[2].index, face.v[3].index)) - file.write(" ]\n") - file.write(" }\n") + file.write(" IndexedFaceSet\n") + file.write(" {\n") + + # write vertex paint + if mesh.hasVertexColours(): + WriteColors(file, mesh) + + # write material indexes + file.write(" materialIndex\n") + file.write(" [\n") + for face in mesh.faces: + file.write(" %i,\n" % face.mat); + file.write(" ]\n") + + # write faces with coordinate indexes + file.write(" coordIndex\n") + file.write(" [\n") + for face in mesh.faces: + face_v= face.v + if len(face_v) == 3: + file.write(" %i, %i, %i, -1,\n" % (face_v[0].index, + face_v[1].index, face_v[2].index)) + elif len(face_v) == 4: + file.write(" %i, %i, %i, %i, -1,\n" % (face_v[0].index, + face_v[1].index, face_v[2].index, face_v[3].index)) + file.write(" ]\n") + file.write(" }\n") def WriteCamera(file, object): - camera = object.getData(); - # perspective camera - if camera.type == 0: - file.write(" PerspectiveCamera\n") - file.write(" {\n") - file.write(" nearDistance %s\n" % (camera.clipStart)) - file.write(" farDistance %s\n" % (camera.clipEnd)) - file.write(" }\n") - # ortho camera - else: - print camera.type + camera = object.getData(); + # perspective camera + if camera.type == 0: + file.write(" PerspectiveCamera\n") + file.write(" {\n") + file.write(" nearDistance %s\n" % (camera.clipStart)) + file.write(" farDistance %s\n" % (camera.clipEnd)) + file.write(" }\n") + # ortho camera + else: + print camera.type def WriteLamp(file, object): - lamp = object.getData(); - # spot lamp - if lamp.type == 2: - file.write(" SpotLight\n") - file.write(" {\n") - file.write(" intensity %s\n" % (lamp.energy / 10.0)) - file.write(" color %s %s %s\n" % (lamp.col[0], lamp.col[1], - lamp.col[2])) - #file.write(" location %s\n" % ()) - #file.write(" direction %s\n" % ()) - file.write(" dropOffRate %s\n" % (lamp.spotBlend)) - file.write(" cutOffAngle %s\n" % (lamp.spotSize * math.pi / 180.0)) - file.write(" }\n") + lamp = object.getData(); + # spot lamp + if lamp.type == 2: + file.write(" SpotLight\n") + file.write(" {\n") + file.write(" intensity %s\n" % (lamp.energy / 10.0)) + file.write(" color %s %s %s\n" % (lamp.col[0], lamp.col[1], + lamp.col[2])) + #file.write(" location %s\n" % ()) + #file.write(" direction %s\n" % ()) + file.write(" dropOffRate %s\n" % (lamp.spotBlend)) + file.write(" cutOffAngle %s\n" % (lamp.spotSize * math_pi / 180.0)) + file.write(" }\n") # script main function def ExportToIv(file_name): - scene = Blender.Scene.GetCurrent() - file = open(file_name, "w") - - # make lists of individual object types - meshes = [] - lamps = [] - cameras = [] - for object in Blender.Object.Get(): - if object.getType() == "Mesh": - meshes.append(object); - elif object.getType() == "Lamp": - lamps.append(object); - elif object.getType() == "Camera": - cameras.append(object); - else: - print "Exporting %s objects isn't supported!" % object.getType() - - # write header, footer and groups of object types - WriteHeader(file); - #for camera in cameras: - # WriteCamera(file, camera); - #for lamp in lamps: - # WriteLamp(file, lamp) - for mesh in meshes: - WriteMesh(file, mesh) - WriteFooter(file) - - file.close() + scene = Blender.Scene.GetCurrent() + file = open(file_name, "w") + + # make lists of individual object types + meshes = [] + lamps = [] + cameras = [] + for object in scene.getChildren(): + obtype= object.getType() + if obtype == "Mesh": + meshes.append(object); + #elif obtype == "Lamp": + # lamps.append(object); + #elif obtype == "Camera": + # cameras.append(object); + #else: + # print "Exporting %s objects isn't supported!" % object.getType() + + # write header, footer and groups of object types + WriteHeader(file); + #for camera in cameras: + # WriteCamera(file, camera); + #for lamp in lamps: + # WriteLamp(file, lamp) + for mesh in meshes: + WriteMesh(file, mesh) + WriteFooter(file) + + file.close() def FileSelectorCB(file_name): - if(file_name.find('.iv', -3) <= 0): - file_name += '.iv' - ExportToIv(file_name) + if not file_name.lower().endswith('.iv'): + file_name += '.iv' + ExportToIv(file_name) -Blender.Window.FileSelector(FileSelectorCB, "Export IV") +Blender.Window.FileSelector(FileSelectorCB, "Export IV", Blender.sys.makename(ext='.iv')) diff --git a/release/scripts/xsi_export.py b/release/scripts/xsi_export.py index 0f31024c799..c180dac6cdf 100644 --- a/release/scripts/xsi_export.py +++ b/release/scripts/xsi_export.py @@ -1210,7 +1210,7 @@ def export_xsi(filename): #OBJ = Blender.Object.GetSelected() #if not OBJ: - OBJ = Blender.Object.Get() + OBJ = Blender.Scene.GetCurrent().getChildren() #Blender.Object.Get() # we need some objects, if none specified stop if not OBJ: |