[Bf-extensions-cvs] [2bfbbe4] master: Cleanups suggested by Campbell Barton: *reduced dictionary lookups for comments and linebreaks in lists *Better tabWrite function to speed up when using tempfiles
Maurice Raybaud
noreply at git.blender.org
Mon Nov 18 20:21:59 CET 2013
Commit: 2bfbbe4182d7e5d5332d963054f298c9fddc5f09
Author: Maurice Raybaud
Date: Sun Nov 17 20:48:23 2013 +0100
http://developer.blender.org/rBA2bfbbe4182d7e5d5332d963054f298c9fddc5f09
Cleanups suggested by Campbell Barton:
*reduced dictionary lookups for comments and linebreaks in lists
*Better tabWrite function to speed up when using tempfiles
===================================================================
M render_povray/render.py
===================================================================
diff --git a/render_povray/render.py b/render_povray/render.py
index 0fbeb41..3108b4a 100644
--- a/render_povray/render.py
+++ b/render_povray/render.py
@@ -165,7 +165,8 @@ def write_pov(filename, scene=None, info_callback=None):
render = scene.render
world = scene.world
global_matrix = mathutils.Matrix.Rotation(-pi / 2.0, 4, 'X')
-
+ comments = scene.pov.comments_enable and not scene.pov.tempfiles_enable
+ linebreaksinlists= scene.pov.list_lf_enable and not scene.pov.tempfiles_enable
def setTab(tabtype, spaces):
TabStr = ""
if tabtype == 'NONE':
@@ -177,9 +178,8 @@ def write_pov(filename, scene=None, info_callback=None):
return TabStr
tab = setTab(scene.pov.indentation_character, scene.pov.indentation_spaces)
-
- def tabWrite(str_o):
- if not scene.pov.tempfiles_enable:
+ if not scene.pov.tempfiles_enable:
+ def tabWrite(str_o):
global tabLevel
brackets = str_o.count("{") - str_o.count("}") + str_o.count("[") - str_o.count("]")
if brackets < 0:
@@ -192,7 +192,8 @@ def write_pov(filename, scene=None, info_callback=None):
file.write(str_o)
if brackets > 0:
tabLevel = tabLevel + brackets
- else:
+ else:
+ def tabWrite(str_o):
file.write(str_o)
def uniqueName(name, nameSeq):
@@ -311,8 +312,6 @@ def write_pov(filename, scene=None, info_callback=None):
name = name_orig = DEF_MAT_NAME
- comments = scene.pov.comments_enable
-
if material:
# If saturation(.s) is not zero, then color is not grey, and has a tint
colored_specular_found = (material.specular_color.s > 0.0)
@@ -327,20 +326,20 @@ def write_pov(filename, scene=None, info_callback=None):
def povHasnoSpecularMaps(Level):
if Level == 1:
tabWrite("#declare %s = finish {" % safety(name, Level=1))
- if not scene.pov.tempfiles_enable and comments:
+ if comments:
file.write(" //No specular nor Mirror reflection\n")
else:
tabWrite("\n")
elif Level == 2:
tabWrite("#declare %s = finish {" % safety(name, Level=2))
- if not scene.pov.tempfiles_enable and comments:
+ if comments:
file.write(" //translation of spec and mir levels for when no map " \
"influences them\n")
else:
tabWrite("\n")
elif Level == 3:
tabWrite("#declare %s = finish {" % safety(name, Level=3))
- if not scene.pov.tempfiles_enable and comments:
+ if comments:
file.write(" //Maximum Spec and Mirror\n")
else:
tabWrite("\n")
@@ -661,7 +660,7 @@ def write_pov(filename, scene=None, info_callback=None):
# TODO - blenders 'motherball' naming is not supported.
- if not scene.pov.tempfiles_enable and scene.pov.comments_enable and len(metas) >= 1:
+ if comments and len(metas) >= 1:
file.write("//--Blob objects--\n\n")
for ob in metas:
@@ -735,7 +734,7 @@ def write_pov(filename, scene=None, info_callback=None):
tabWrite("}\n") # End of Metaball block
- if not scene.pov.tempfiles_enable and scene.pov.comments_enable and len(metas) >= 1:
+ if comments and len(metas) >= 1:
file.write("\n")
# objectNames = {}
@@ -1048,7 +1047,7 @@ def write_pov(filename, scene=None, info_callback=None):
tabStr = tab * tabLevel
for v in me.vertices:
- if not scene.pov.tempfiles_enable and scene.pov.list_lf_enable:
+ if linebreaksinlists:
file.write(",\n")
file.write(tabStr + "<%.6f, %.6f, %.6f>" % v.co[:]) # vert count
else:
@@ -1076,7 +1075,7 @@ def write_pov(filename, scene=None, info_callback=None):
idx = 0
tabStr = tab * tabLevel
for no, index in uniqueNormals.items():
- if not scene.pov.tempfiles_enable and scene.pov.list_lf_enable:
+ if linebreaksinlists:
file.write(",\n")
file.write(tabStr + "<%.6f, %.6f, %.6f>" % no) # vert count
else:
@@ -1110,7 +1109,7 @@ def write_pov(filename, scene=None, info_callback=None):
idx = 0
tabStr = tab * tabLevel
for uv, index in uniqueUVs.items():
- if not scene.pov.tempfiles_enable and scene.pov.list_lf_enable:
+ if linebreaksinlists:
file.write(",\n")
file.write(tabStr + "<%.6f, %.6f>" % uv)
else:
@@ -1152,8 +1151,13 @@ def write_pov(filename, scene=None, info_callback=None):
key = col[0], col[1], col[2], material_index # Material index!
VcolIdx+=1
vertCols[key] = [VcolIdx]
- tabWrite("texture {pigment{ color rgb <%6f,%6f,%6f> }}" % (col[0], col[1], col[2]))
- tabStr = tab * tabLevel
+ if comments:
+ file.write("\n //Vertex colors: one simple pigment texture per vertex\n")
+ if linebreaksinlists:
+ tabWrite("texture {pigment{ color rgb <%6f,%6f,%6f> }}\n" % (col[0], col[1], col[2]))
+ else:
+ tabWrite("texture {pigment{ color rgb <%6f,%6f,%6f> }}" % (col[0], col[1], col[2]))
+ tabStr = tab * tabLevel
else:
if material:
# Multiply diffuse with SSS Color
@@ -1192,7 +1196,7 @@ def write_pov(filename, scene=None, info_callback=None):
if not me_materials or me_materials[material_index] is None: # No materials
for i1, i2, i3 in indices:
- if not scene.pov.tempfiles_enable and scene.pov.list_lf_enable:
+ if linebreaksinlists:
file.write(",\n")
# vert count
file.write(tabStr + "<%d,%d,%d>" % (fv[i1], fv[i2], fv[i3]))
@@ -1221,7 +1225,7 @@ def write_pov(filename, scene=None, info_callback=None):
ci1 = ci2 = ci3 = vertCols[diffuse_color[0], diffuse_color[1], \
diffuse_color[2], f.material_index][0]
# ci are zero based index so we'll subtract 1 from them
- if not scene.pov.tempfiles_enable and scene.pov.list_lf_enable:
+ if linebreaksinlists:
file.write(",\n")
file.write(tabStr + "<%d,%d,%d>, %d,%d,%d" % \
(fv[i1], fv[i2], fv[i3], ci1-1, ci2-1, ci3-1)) # vert count
@@ -1246,7 +1250,7 @@ def write_pov(filename, scene=None, info_callback=None):
for i1, i2, i3 in indices:
if me_faces[fi].use_smooth:
- if not scene.pov.tempfiles_enable and scene.pov.list_lf_enable:
+ if linebreaksinlists:
file.write(",\n")
file.write(tabStr + "<%d,%d,%d>" %\
(uniqueNormals[verts_normals[fv[i1]]][0],\
@@ -1260,7 +1264,7 @@ def write_pov(filename, scene=None, info_callback=None):
uniqueNormals[verts_normals[fv[i3]]][0])) # vert count
else:
idx = uniqueNormals[faces_normals[fi]][0]
- if not scene.pov.tempfiles_enable and scene.pov.list_lf_enable:
+ if linebreaksinlists:
file.write(",\n")
file.write(tabStr + "<%d,%d,%d>" % (idx, idx, idx)) # vert count
else:
@@ -1288,7 +1292,7 @@ def write_pov(filename, scene=None, info_callback=None):
uvs = uv.uv[0][:], uv.uv[1][:], uv.uv[2][:]
for i1, i2, i3 in indices:
- if not scene.pov.tempfiles_enable and scene.pov.list_lf_enable:
+ if linebreaksinlists:
file.write(",\n")
file.write(tabStr + "<%d,%d,%d>" % (
uniqueUVs[uvs[i1]][0],\
@@ -1728,7 +1732,7 @@ def write_pov(filename, scene=None, info_callback=None):
special_texture_found = True
if colored_specular_found and not special_texture_found:
- if not scene.pov.tempfiles_enable and scene.pov.comments_enable:
+ if comments:
file.write(" //Emulating colored highlights with a metallic layer\n")
else:
tabWrite("\n")
@@ -1805,7 +1809,7 @@ def write_pov(filename, scene=None, info_callback=None):
if not me_materials or me_materials[material_index] is None: # No materials
for i1, i2, i3 in indices:
- if not scene.pov.tempfiles_enable and scene.pov.list_lf_enable:
+ if linebreaksinlists:
file.write(",\n")
# vert count
file.write(tabStr + "<%d,%d,%d>" % (fv[i1], fv[i2], fv[i3]))
@@ -18
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-extensions-cvs
mailing list