Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2007-01-27 07:58:09 +0300
committerCampbell Barton <ideasman42@gmail.com>2007-01-27 07:58:09 +0300
commit8f075f9518c8173523e3726b436fa02de6fea994 (patch)
treea32c7b56c76132e2ecc4a84bac8913bd8d1ef4e0 /release
parent853785782e5fea7805b05ce834a661271fd24358 (diff)
minor tweaks from testing scripts. correction in my last commit.
Diffstat (limited to 'release')
-rw-r--r--release/scripts/DirectX8Importer.py6
-rw-r--r--release/scripts/export-iv-0.1.py44
-rw-r--r--release/scripts/mesh_solidify.py40
-rw-r--r--release/scripts/radiosity_import.py14
-rw-r--r--release/scripts/slp_import.py13
-rw-r--r--release/scripts/truespace_export.py73
-rw-r--r--release/scripts/truespace_import.py15
7 files changed, 110 insertions, 95 deletions
diff --git a/release/scripts/DirectX8Importer.py b/release/scripts/DirectX8Importer.py
index b8ab465b26d..4db533e96fc 100644
--- a/release/scripts/DirectX8Importer.py
+++ b/release/scripts/DirectX8Importer.py
@@ -300,10 +300,12 @@ class xImport:
# MAIN
#------------------------------------------------------------------
def my_callback(filename):
- if not filename.find('.x', -2): print "Not an .x file"
+ if not filename.lower().endswith('.x'): print "Not an .x file"
ximport = xImport(filename)
ximport.Import()
arg = __script__['arg']
-Blender.Window.FileSelector(my_callback, "Import DirectX")
+
+if __name__ == '__main__':
+ Blender.Window.FileSelector(my_callback, "Import DirectX", "*.x")
\ No newline at end of file
diff --git a/release/scripts/export-iv-0.1.py b/release/scripts/export-iv-0.1.py
index 17b3d4cb728..a650fb90453 100644
--- a/release/scripts/export-iv-0.1.py
+++ b/release/scripts/export-iv-0.1.py
@@ -1,7 +1,7 @@
#!BPY
"""
-Name: 'OpenInventor (.iv)'
+Name: 'OpenInventor (.iv)...'
Blender: 236
Group: 'Export'
Tip: 'Export to OpenInventor file format. (.iv)'
@@ -54,12 +54,12 @@ def WriteHeader(file):
def WriteFooter(file):
file.write("}\n")
-def WriteMesh(file, object):
+def WriteMesh(file, ob):
file.write(" Separator\n")
file.write(" {\n")
- file.write(" # %s\n" % object.getName())
- WriteMatrix(file, object)
- mesh = object.getData()
+ file.write(" # %s\n" % ob.name)
+ WriteMatrix(file, ob)
+ mesh = ob.getData()
WriteMaterials(file, mesh)
WriteTexture(file, mesh)
WriteNormals(file, mesh)
@@ -67,8 +67,8 @@ def WriteMesh(file, object):
WriteFaces(file, mesh)
file.write(" }\n")
-def WriteMatrix(file, object):
- matrix = object.getMatrix()
+def WriteMatrix(file, ob):
+ matrix = ob.getMatrix()
file.write(" MatrixTransform\n")
file.write(" {\n")
file.write(" matrix\n")
@@ -233,8 +233,8 @@ def WriteFaces(file, mesh):
file.write(" }\n")
-def WriteCamera(file, object):
- camera = object.getData();
+def WriteCamera(file, ob):
+ camera = ob.getData();
# perspective camera
if camera.type == 0:
file.write(" PerspectiveCamera\n")
@@ -246,15 +246,14 @@ def WriteCamera(file, object):
else:
print camera.type
-def WriteLamp(file, object):
- lamp = object.getData();
+def WriteLamp(file, ob):
+ lamp = ob.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(" 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))
@@ -266,22 +265,22 @@ def ExportToIv(file_name):
scene = Blender.Scene.GetCurrent()
file = open(file_name, "w")
- # make lists of individual object types
+ # make lists of individual ob types
meshes = []
lamps = []
cameras = []
- for object in scene.objects:
- obtype= object.type
+ for ob in scene.objects:
+ obtype= ob.type
if obtype == "Mesh":
- meshes.append(object);
+ meshes.append(ob);
#elif obtype == "Lamp":
- # lamps.append(object);
+ # lamps.append(ob);
#elif obtype == "Camera":
- # cameras.append(object);
+ # cameras.append(ob);
#else:
- # print "Exporting %s objects isn't supported!" % object.type
+ # print "Exporting %s objects isn't supported!" % ob.type
- # write header, footer and groups of object types
+ # write header, footer and groups of ob types
WriteHeader(file);
#for camera in cameras:
# WriteCamera(file, camera);
@@ -298,4 +297,5 @@ def FileSelectorCB(file_name):
file_name += '.iv'
ExportToIv(file_name)
-Blender.Window.FileSelector(FileSelectorCB, "Export IV", Blender.sys.makename(ext='.iv'))
+if __name__ == '__main__':
+ Blender.Window.FileSelector(FileSelectorCB, "Export IV", Blender.sys.makename(ext='.iv'))
diff --git a/release/scripts/mesh_solidify.py b/release/scripts/mesh_solidify.py
index d612ee5eef5..b254d9c00f5 100644
--- a/release/scripts/mesh_solidify.py
+++ b/release/scripts/mesh_solidify.py
@@ -46,15 +46,12 @@ def lengthFromAngle(angle):
def main():
scn = Scene.GetCurrent()
- ob = scn.getActiveObject()
+ ob = scn.objects.active
+
if not ob or ob.type != 'Mesh':
Draw.PupMenu('ERROR: Active object is not a mesh, aborting.')
return
- is_editmode = Window.EditMode()
- if is_editmode:
- Window.EditMode(0)
-
# Create the variables.
PREF_THICK = Draw.Create(-0.1)
PREF_SKIN_SIDES= Draw.Create(1)
@@ -73,19 +70,21 @@ def main():
PREF_SKIN_SIDES= PREF_SKIN_SIDES.val
PREF_REM_ORIG= PREF_REM_ORIG.val
-
-
Window.WaitCursor(1)
+ is_editmode = Window.EditMode()
+ if is_editmode: Window.EditMode(0)
+
# Main code function
- me = ob.getData(mesh=1)
+ me = ob.getData(mesh=True)
+ me_faces = me.faces
+ faces_sel= [f for f in me_faces if f.sel]
- faces_sel= [f for f in me.faces if f.sel]
BPyMesh.meshCalcNormals(me)
normals= [v.no for v in me.verts]
vertFaces= [[] for i in xrange(len(me.verts))]
- for f in me.faces:
+ for f in me_faces:
no=f.no
for v in f:
vertFaces[v.index].append(no)
@@ -111,7 +110,7 @@ def main():
normals[i]= (normals[i] * length) * PREF_THICK
len_verts = len( me.verts )
- len_faces = len( me.faces )
+ len_faces = len( me_faces )
vert_mapping= [-1] * len(me.verts)
verts= []
@@ -125,20 +124,20 @@ def main():
#verts= [v.co + normals[v.index] for v in me.verts]
me.verts.extend( verts )
- #faces= [tuple([ me.verts[v.index+len_verts] for v in reversed(f.v)]) for f in me.faces ]
+ #faces= [tuple([ me.verts[v.index+len_verts] for v in reversed(f.v)]) for f in me_faces ]
faces= [ tuple([vert_mapping[v.index] for v in reversed(f.v)]) for f in faces_sel ]
- me.faces.extend( faces )
+ me_faces.extend( faces )
has_uv = me.faceUV
has_vcol = me.vertexColors
for i, orig_f in enumerate(faces_sel):
- new_f= me.faces[len_faces + i]
+ new_f= me_faces[len_faces + i]
new_f.mat = orig_f.mat
new_f.smooth = orig_f.smooth
orig_f.sel=False
new_f.sel= True
- new_f = me.faces[i+len_faces]
+ new_f = me_faces[i+len_faces]
if has_uv:
new_f.uv = [c for c in reversed(orig_f.uv)]
new_f.mode = orig_f.mode
@@ -169,16 +168,16 @@ def main():
v1i,v2i= f_v[i1].index, f_v[i2].index
# Now make a new Face
skin_side_faces.append( (v1i, v2i, vert_mapping[v2i], vert_mapping[v1i]) )
- skin_side_faces_orig.append((f, len(me.faces) + len(skin_side_faces_orig), i1, i2))
+ skin_side_faces_orig.append((f, len(me_faces) + len(skin_side_faces_orig), i1, i2))
- me.faces.extend(skin_side_faces)
+ me_faces.extend(skin_side_faces)
# Now assign properties.
for i, origfData in enumerate(skin_side_faces_orig):
orig_f, new_f_idx, i1, i2 = origfData
- new_f= me.faces[new_f_idx]
+ new_f= me_faces[new_f_idx]
new_f.mat= orig_f.mat
new_f.smooth= orig_f.smooth
@@ -198,12 +197,11 @@ def main():
new_f.col= (col1, col2, col2, col1)
if PREF_REM_ORIG:
- me.faces.delete(0, faces_sel)
+ me_faces.delete(0, faces_sel)
Window.WaitCursor(0)
- if is_editmode:
- Window.EditMode(1)
+ if is_editmode: Window.EditMode(1)
Window.RedrawAll()
diff --git a/release/scripts/radiosity_import.py b/release/scripts/radiosity_import.py
index 67167f5bc70..5d301dc524e 100644
--- a/release/scripts/radiosity_import.py
+++ b/release/scripts/radiosity_import.py
@@ -64,6 +64,7 @@ except:
# ===============================
def read(filename):
start = Blender.sys.time()
+ Blender.Window.WaitCursor(1)
file = open(filename, "rb")
mesh = Blender.NMesh.GetRaw()
#mesh.addMaterial(Blender.Material.New())
@@ -122,21 +123,18 @@ def read(filename):
mesh.faces.append(face)
scn= Blender.Scene.GetCurrent()
- for obj in scn.objects:
- obj.sel= 0
+ scn.objects.selected = []
- obj= Blender.Object.New('Mesh', objname)
mesh.name= objname
- obj.link(mesh)
- scn.link(obj)
- obj.sel= 1
- obj.Layers= scn.Layers
+ scn.objects.new(mesh)
Blender.Window.DrawProgressBar(1.0, '') # clear progressbar
file.close()
end = Blender.sys.time()
message = 'Successfully imported "%s" in %.2f seconds' % (Blender.sys.basename(filename), end-start)
meshtools.print_boxed(message)
+ Blender.Window.WaitCursor(0)
+ Blender.Window.RedrawAll()
def main():
@@ -144,7 +142,7 @@ def main():
Blender.Draw.PupMenu('ERROR%t|Error: you need a full Python install to run this script')
return
- Blender.Window.FileSelector(read, "Import Radio", Blender.sys.makename(ext='.radio'))
+ Blender.Window.FileSelector(read, 'Import Radio', '*.radio')
if __name__ == '__main__':
main()
diff --git a/release/scripts/slp_import.py b/release/scripts/slp_import.py
index 4944c34045d..9c2458b2ba5 100644
--- a/release/scripts/slp_import.py
+++ b/release/scripts/slp_import.py
@@ -68,14 +68,14 @@ def read(filename):
file = open(filename, "rb")
raw = []
- for line in file.readlines():
+ for line in file.xreadlines():
data = line.split()
if data[0] == "vertex":
vert = map(float, data[1:])
raw.append(vert)
-
+
tri = []
- for i in range(0, len(raw), 3):
+ for i in xrange(0, len(raw), 3):
tri.append(raw[i] + raw[i+1] + raw[i+2])
#$import pprint; pprint.pprint(tri)
@@ -90,8 +90,8 @@ def read(filename):
verts = []
coords = {}
index = 0
- for i in range(len(faces)):
- for j in range(len(faces[i])):
+ for i in xrange(len(faces)):
+ for j in xrange(len(faces[i])):
vertex = faces[i][j]
if not coords.has_key(vertex):
coords[vertex] = index
@@ -112,4 +112,5 @@ def read(filename):
def fs_callback(filename):
read(filename)
-Blender.Window.FileSelector(fs_callback, "Import SLP")
+if __name__ == '__main__':
+ Blender.Window.FileSelector(fs_callback, "Import SLP", "*.slp")
diff --git a/release/scripts/truespace_export.py b/release/scripts/truespace_export.py
index 646c92f3a93..7e0e1947c78 100644
--- a/release/scripts/truespace_export.py
+++ b/release/scripts/truespace_export.py
@@ -78,7 +78,7 @@ how to handle it.
# ***** END GPL LICENCE BLOCK *****
import Blender, meshtools
-import struct, os, cStringIO, time
+import struct, cStringIO, time
# ==============================
# === Write trueSpace Format ===
@@ -91,20 +91,20 @@ def write(filename):
write_header(file)
G,P,V,U,M = 1000,2000,3000,4000,5000
- for object in objects:
- objname = object.name
- meshname = object.getData(name_only=1)
+ for obj_index, obj in enumerate(objects):
+ objname = obj.name
+ meshname = obj.getData(name_only=1)
mesh = Blender.NMesh.GetRaw(meshname)
- obj = object
+
if not mesh: continue
- grou = generate_grou('Group ' + `objects.index(object)+1`)
+ grou = generate_grou('Group ' + `obj_index+1`)
polh = generate_polh(objname, obj, mesh)
if meshtools.has_vertex_colors(mesh): vcol = generate_vcol(mesh)
unit = generate_unit()
mat1 = generate_mat1(mesh)
- if objects.index(object) == 0: X = 0
+ if obj_index == 0: X = 0
write_chunk(file, "Grou", 0, 1, G, X, grou)
write_chunk(file, "PolH", 0, 4, P, G, polh)
@@ -122,7 +122,7 @@ def write(filename):
file.close()
end = time.clock()
seconds = " in %.2f %s" % (end-start, "seconds")
- message = "Successfully exported " + os.path.basename(filename) + seconds
+ message = "Successfully exported " + filename.split('\\')[-1].split('/')[-1] + seconds
meshtools.print_boxed(message)
# =============================
@@ -162,24 +162,26 @@ def write_ObjectName(data, objname):
# === Write Local Axes ===
def write_LocalAxes(data, obj):
- data.write(struct.pack("<fff", obj.mat[3][0], obj.mat[3][1], obj.mat[3][2]))
- data.write(struct.pack("<fff", obj.mat[0][0]/obj.SizeX, obj.mat[1][0]/obj.SizeX, obj.mat[2][0]/obj.SizeX))
- data.write(struct.pack("<fff", obj.mat[0][1]/obj.SizeY, obj.mat[1][1]/obj.SizeY, obj.mat[2][1]/obj.SizeY))
- data.write(struct.pack("<fff", obj.mat[0][2]/obj.SizeZ, obj.mat[1][2]/obj.SizeZ, obj.mat[2][2]/obj.SizeZ))
+ mat = obj.mat
+ data.write(struct.pack("<fff", mat[3][0], mat[3][1], mat[3][2]))
+ data.write(struct.pack("<fff", mat[0][0]/obj.SizeX, mat[1][0]/obj.SizeX, mat[2][0]/obj.SizeX))
+ data.write(struct.pack("<fff", mat[0][1]/obj.SizeY, mat[1][1]/obj.SizeY, mat[2][1]/obj.SizeY))
+ data.write(struct.pack("<fff", mat[0][2]/obj.SizeZ, mat[1][2]/obj.SizeZ, mat[2][2]/obj.SizeZ))
# === Write Current Position ===
def write_CurrentPosition(data, obj):
- data.write(struct.pack("<ffff", obj.mat[0][0], obj.mat[0][1], obj.mat[0][2], obj.mat[3][0]))
- data.write(struct.pack("<ffff", obj.mat[1][0], obj.mat[1][1], obj.mat[1][2], obj.mat[3][1]))
- data.write(struct.pack("<ffff", obj.mat[2][0], obj.mat[2][1], obj.mat[2][2], obj.mat[3][2]))
+ mat = obj.mat
+ data.write(struct.pack("<ffff", mat[0][0], mat[0][1], mat[0][2], mat[3][0]))
+ data.write(struct.pack("<ffff", mat[1][0], mat[1][1], mat[1][2], mat[3][1]))
+ data.write(struct.pack("<ffff", mat[2][0], mat[2][1], mat[2][2], mat[3][2]))
# === Write Vertex List ===
def write_VertexList(data, mesh):
data.write(struct.pack("<l", len(mesh.verts)))
- for i in range(len(mesh.verts)):
+ for i, v in enumerate(mesh.verts):
if not i%100 and meshtools.show_progress:
Blender.Window.DrawProgressBar(float(i)/len(mesh.verts), "Writing Verts")
- x, y, z = mesh.verts[i].co
+ x, y, z = v.co
data.write(struct.pack("<fff", -y, x, z))
# === Write UV Vertex List ===
@@ -198,12 +200,12 @@ def write_UVCoordsList(data, mesh):
uvdata = cStringIO.StringIO()
uvcoords = {}
uvidx = 0
- for i in range(len(mesh.faces)):
+ for i, f in enumerate(mesh.faces):
if not i%100 and meshtools.show_progress:
Blender.Window.DrawProgressBar(float(i)/len(mesh.faces), "Writing UV Coords")
- numfaceverts = len(mesh.faces[i].v)
- for j in range(numfaceverts-1, -1, -1): # Reverse order
- u,v = mesh.faces[i].uv[j]
+ numfaceverts = len(f)
+ for j in xrange(numfaceverts-1, -1, -1): # Reverse order
+ u,v = f.uv[j]
if not uvcoords.has_key((u,v)):
uvcoords[(u,v)] = uvidx
uvidx += 1
@@ -219,14 +221,14 @@ def write_UVCoordsList(data, mesh):
# === Write Face List ===
def write_FaceList(data, mesh, uvcoords):
data.write(struct.pack("<l", len(mesh.faces)))
- for i in range(len(mesh.faces)):
+ for i in xrange(len(mesh.faces)):
if not i%100 and meshtools.show_progress:
Blender.Window.DrawProgressBar(float(i)/len(mesh.faces), "Writing Faces")
numfaceverts = len(mesh.faces[i].v)
data.write(struct.pack("<B", 0x10)) # Cull Back Faces Flag
data.write(struct.pack("<h", numfaceverts))
data.write(struct.pack("<h", 0)) # Material Index
- for j in range(numfaceverts-1, -1, -1): # Reverse order
+ for j in xrange(numfaceverts-1, -1, -1): # Reverse order
index = mesh.faces[i].v[j].index
if mesh.hasFaceUV():
uv = mesh.faces[i].uv[j]
@@ -243,12 +245,12 @@ def generate_vcol(mesh):
data.write(struct.pack("<l", len(mesh.faces)))
uniquecolors = {}
unique_alpha = {}
- for i in range(len(mesh.faces)):
+ for i in xrange(len(mesh.faces)):
if not i%100 and meshtools.show_progress:
Blender.Window.DrawProgressBar(float(i)/len(mesh.faces), "Writing Vertex Colors")
numfaceverts = len(mesh.faces[i].v)
data.write(struct.pack("<ll", i, numfaceverts))
- for j in range(numfaceverts-1, -1, -1): # Reverse order
+ for j in xrange(numfaceverts-1, -1, -1): # Reverse order
r = mesh.faces[i].col[j].r
g = mesh.faces[i].col[j].g
b = mesh.faces[i].col[j].b
@@ -276,13 +278,25 @@ def generate_unit():
# === Generate Mat1 (Material) Chunk ===
# ======================================
def generate_mat1(mesh):
+
+ def get_crufty_mesh_image():
+ '''Crufty because it only uses 1 image
+ '''
+ if mesh.hasFaceUV():
+ for f in me.faces:
+ i = f.image
+ if i:
+ return i.filename
+
data = cStringIO.StringIO()
data.write(struct.pack("<h", 0))
data.write(struct.pack("<ccB", "p", "a", 0))
data.write(struct.pack("<fff", 1.0, 1.0, 1.0)) # rgb (0.0 - 1.0)
data.write(struct.pack("<fffff", 1, 1, 0, 0, 1))
- if mesh.hasFaceUV():
- tex_mapname = r"c:\image\maps\one-dot.tga"
+
+ tex_mapname = get_crufty_mesh_image()
+
+ if tex_mapname:
data.write("t:")
data.write(struct.pack("<B", 0x00))
data.write(struct.pack("<h", len(tex_mapname)))
@@ -301,10 +315,11 @@ def generate_grou(name):
return data.getvalue()
def fs_callback(filename):
- if filename.find('.cob', -4) <= 0: filename += '.cob'
+ if not filename.lower().endswith('.cob'): filename += '.cob'
write(filename)
-Blender.Window.FileSelector(fs_callback, "Export COB")
+if __name__ == '__main__':
+ Blender.Window.FileSelector(fs_callback, "Export COB", Blender.sys.makename(ext='.cob'))
# === Matrix Differences between Blender & trueSpace ===
#
diff --git a/release/scripts/truespace_import.py b/release/scripts/truespace_import.py
index ff655e1614c..31cb48b468a 100644
--- a/release/scripts/truespace_import.py
+++ b/release/scripts/truespace_import.py
@@ -156,7 +156,7 @@ def read_ObjectName(data):
def read_LocalAxes(data):
location = struct.unpack("<fff", data.read(12))
rotation_matrix=[]
- for i in range(3):
+ for i in xrange(3):
row = struct.unpack("<fff", data.read(12))
#print "% f % f % f" % row
rotation_matrix.append(list(row))
@@ -166,7 +166,7 @@ def read_LocalAxes(data):
# === Read Current Position ===
def read_CurrentPosition(data):
transformation_matrix=[]
- for i in range(3):
+ for i in xrange(3):
row = struct.unpack("<ffff", data.read(16))
#print "% f % f % f % f" % row
transformation_matrix.append(list(row))
@@ -176,7 +176,7 @@ def read_CurrentPosition(data):
def read_VertexList(data):
verts = []
numverts, = struct.unpack("<l", data.read(4))
- for i in range(numverts):
+ for i in xrange(numverts):
if not i%100 and meshtools.show_progress:
Blender.Window.DrawProgressBar(float(i)/numverts, "Reading Verts")
x, y, z = struct.unpack("<fff", data.read(12))
@@ -187,7 +187,7 @@ def read_VertexList(data):
def read_UVCoords(data):
uvcoords = []
numuvcoords, = struct.unpack("<l", data.read(4))
- for i in range(numuvcoords):
+ for i in xrange(numuvcoords):
if not i%100 and meshtools.show_progress:
Blender.Window.DrawProgressBar(float(i)/numuvcoords, "Reading UV Coords")
uv = struct.unpack("<ff", data.read(8))
@@ -201,7 +201,7 @@ def read_UVCoords(data):
def read_FaceList(data, chunk):
faces = [] ; facesuv = []
numfaces, = struct.unpack("<l", data.read(4))
- for i in range(numfaces):
+ for i in xrange(numfaces):
if not i%100 and meshtools.show_progress:
Blender.Window.DrawProgressBar(float(i)/numfaces, "Reading Faces")
@@ -214,7 +214,7 @@ def read_FaceList(data, chunk):
data.read(2) # Material Index
facev = [] ; faceuv = []
- for j in range(numfaceverts):
+ for j in xrange(numfaceverts):
index, uvidx = struct.unpack("<ll", data.read(8))
facev.append(index); faceuv.append(uvidx)
facev.reverse() ; faceuv.reverse()
@@ -274,5 +274,6 @@ def read(filename):
def fs_callback(filename):
read(filename)
-Blender.Window.FileSelector(fs_callback, "Import COB")
+if __name__ == '__main__':
+ Blender.Window.FileSelector(fs_callback, "Import COB", '*.cob')