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>2009-12-06 01:03:07 +0300
committerCampbell Barton <ideasman42@gmail.com>2009-12-06 01:03:07 +0300
commit5ebe54f470c364ff4ea86d15198225295092963e (patch)
treea0a1c69fe0bbd824276dc653499cba9265526dc9 /release/scripts/modules/graphviz_export.py
parent8821f7d7eab7bc8e928805523dd26c275e095241 (diff)
pep8 edits and fix some warnings
Diffstat (limited to 'release/scripts/modules/graphviz_export.py')
-rw-r--r--release/scripts/modules/graphviz_export.py76
1 files changed, 40 insertions, 36 deletions
diff --git a/release/scripts/modules/graphviz_export.py b/release/scripts/modules/graphviz_export.py
index 5227237c51b..8f9f2c01ad5 100644
--- a/release/scripts/modules/graphviz_export.py
+++ b/release/scripts/modules/graphviz_export.py
@@ -16,6 +16,8 @@
#
# ##### END GPL LICENSE BLOCK #####
+# <pep8 compliant>
+
import bpy
header = '''
@@ -28,6 +30,7 @@ footer = '''
}
'''
+
def compat_str(text, line_length=0):
if line_length:
@@ -35,28 +38,29 @@ def compat_str(text, line_length=0):
while len(text) > line_length:
text_ls.append(text[:line_length])
text = text[line_length:]
-
+
if text:
text_ls.append(text)
text = '\n '.join(text_ls)
-
-
+
+
#text = text.replace('.', '.\n')
#text = text.replace(']', ']\n')
text = text.replace("\n", "\\n")
text = text.replace('"', '\\"')
return "* " + text
+
def graph_armature(obj, path, FAKE_PARENT=True, CONSTRAINTS=True, DRIVERS=True, XTRA_INFO=False):
CONSTRAINTS = DRIVERS = True
-
- file = open(path, "w")
- fw = file.write
+
+ fileobject = open(path, "w")
+ fw = fileobject.write
fw(header)
fw('label = "%s::%s" ;' % (bpy.data.filename.split("/")[-1].split("\\")[-1], obj.name))
-
+
arm = obj.data
-
+
bones = [bone.name for bone in arm.bones]
bones.sort()
print("")
@@ -65,37 +69,37 @@ def graph_armature(obj, path, FAKE_PARENT=True, CONSTRAINTS=True, DRIVERS=True,
print(">>", bone, ["*>", "->"][b.connected], getattr(getattr(b, "parent", ""), "name", ""))
label = [bone]
bone = arm.bones[bone]
-
+
for key, value in obj.pose.bones[bone.name].items():
if key.startswith("_"):
continue
-
+
if type(value) == float:
value = "%.3f" % value
elif type(value) == str:
value = compat_str(value)
-
+
label.append("%s = %s" % (key, value))
-
+
opts = ["shape=box", "regular=1", "style=filled", "fixedsize=false", 'label="%s"' % compat_str('\n'.join(label))]
-
+
if bone.name.startswith('ORG'):
opts.append("fillcolor=yellow")
else:
opts.append("fillcolor=white")
-
-
+
+
fw('"%s" [%s];\n' % (bone.name, ','.join(opts)))
-
+
fw('\n\n# Hierarchy:\n')
-
+
# Root node.
if FAKE_PARENT:
fw('"Object::%s" [];\n' % obj.name)
-
+
for bone in bones:
bone = arm.bones[bone]
-
+
parent = bone.parent
if parent:
parent_name = parent.name
@@ -105,14 +109,14 @@ def graph_armature(obj, path, FAKE_PARENT=True, CONSTRAINTS=True, DRIVERS=True,
connected = False
else:
continue
-
+
opts = ["dir=forward", "weight=2", "arrowhead=normal"]
if not connected:
opts.append("style=dotted")
-
+
fw('"%s" -> "%s" [%s] ;\n' % (bone.name, parent_name, ','.join(opts)))
- del bone
-
+ del bone
+
# constraints
if CONSTRAINTS:
fw('\n\n# Constraints:\n')
@@ -128,10 +132,11 @@ def graph_armature(obj, path, FAKE_PARENT=True, CONSTRAINTS=True, DRIVERS=True,
label = "%s\n%s" % (constraint.type, constraint.name)
opts.append('label="%s"' % compat_str(label))
fw('"%s" -> "%s" [%s] ;\n' % (subtarget, pbone.name, ','.join(opts)))
-
+
# Drivers
if DRIVERS:
fw('\n\n# Drivers:\n')
+
def rna_path_as_pbone(rna_path):
if not rna_path.startswith("pose.bones["):
return None
@@ -140,33 +145,33 @@ def graph_armature(obj, path, FAKE_PARENT=True, CONSTRAINTS=True, DRIVERS=True,
#return obj.path_resolve(rna_path_bone)
bone_name = rna_path.split("[")[1].split("]")[0]
return obj.pose.bones[bone_name[1:-1]]
-
+
animation_data = obj.animation_data
if animation_data:
-
+
fcurve_drivers = [fcurve_driver for fcurve_driver in animation_data.drivers]
fcurve_drivers.sort(key=lambda fcurve_driver: fcurve_driver.rna_path)
-
+
for fcurve_driver in fcurve_drivers:
rna_path = fcurve_driver.rna_path
pbone = rna_path_as_pbone(rna_path)
-
+
if pbone:
for target in fcurve_driver.driver.targets:
pbone_target = rna_path_as_pbone(target.rna_path)
rna_path_target = target.rna_path
if pbone_target:
- opts = ['dir=forward', "weight=1", "arrowhead=normal", "arrowtail=none", "constraint=false", 'color="blue"', "labelfontsize=4"] # ,
+ opts = ['dir=forward', "weight=1", "arrowhead=normal", "arrowtail=none", "constraint=false", 'color="blue"', "labelfontsize=4"] # ,
display_source = rna_path.replace("pose.bones", "")
display_target = rna_path_target.replace("pose.bones", "")
if XTRA_INFO:
label = "%s\\n%s" % (display_source, display_target)
opts.append('label="%s"' % compat_str(label))
fw('"%s" -> "%s" [%s] ;\n' % (pbone_target.name, pbone.name, ','.join(opts)))
-
+
fw(footer)
- file.close()
-
+ fileobject.close()
+
'''
print(".", end='')
import sys
@@ -176,8 +181,7 @@ def graph_armature(obj, path, FAKE_PARENT=True, CONSTRAINTS=True, DRIVERS=True,
return True
if __name__ == "__main__":
- import bpy
import os
- path ="/tmp/test.dot"
- graph_armature(bpy.context.object, path, CONSTRAINTS=True, DRIVERS=True)
- os.system("dot -Tpng %s > %s; eog %s &" % (path, path + '.png', path + '.png'))
+ tmppath = "/tmp/test.dot"
+ graph_armature(bpy.context.object, tmppath, CONSTRAINTS=True, DRIVERS=True)
+ os.system("dot -Tpng %s > %s; eog %s &" % (tmppath, tmppath + '.png', tmppath + '.png'))