diff --git a/.idea/Python_101_S2_2015.iml b/.idea/Python_101_S2_2015.iml
new file mode 100644
index 0000000..6711606
--- /dev/null
+++ b/.idea/Python_101_S2_2015.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..8fb2248
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..8a69338
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 0000000..eb5381f
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,638 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1488570271749
+
+
+ 1488570271749
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data/rig/arm.json b/data/rig/arm.json
deleted file mode 100644
index f41aa20..0000000
--- a/data/rig/arm.json
+++ /dev/null
@@ -1 +0,0 @@
-{"fkcontrols": ["ctrl_s_fk_shoulder", "ctrl_s_fk_elbow", "ctrl_s_fk_wrist"], "ikjnts": ["ik_s_shoulder_jnt", "ik_s_elbow_jnt", "ik_s_wrist_jnt", "ik_s_wristEnd_jnt"], "fkjnts": ["fk_s_shoulder_jnt", "fk_s_elbow_jnt", "fk_s_wrist_jnt", "fk_s_wristEnd_jnt"], "rigjnts": ["rig_s_shoulder_jnt", "rig_s_elbow_jnt", "rig_s_wrist_jnt", "rig_s_wristEnd_jnt"], "bindjnts": ["bind_s_shoulder_jnt", "bind_s_elbow_jnt", "bind_s_wrist_jnt", "bind_s_wristEnd_jnt"], "positions": [[0.0, 0.0, 0.0], [-1.0, 0.0, 2.0], [0.0, 0.0, 4.0], [0.0, 0.0, 6.0]], "ikcontrols": ["ctrl_s_ik_arm", "ikh_s_arm", "ctrl_s_pv_arm"]}
\ No newline at end of file
diff --git a/layout/.mayaSwatches/layout_chain.ma.swatches b/layout/.mayaSwatches/layout_chain.ma.swatches
new file mode 100644
index 0000000..133726f
Binary files /dev/null and b/layout/.mayaSwatches/layout_chain.ma.swatches differ
diff --git a/layout/layout_chain.ma b/layout/layout_chain.ma
new file mode 100644
index 0000000..bc517e9
--- /dev/null
+++ b/layout/layout_chain.ma
@@ -0,0 +1,758 @@
+//Maya ASCII 2016 scene
+//Name: layout_chain.ma
+//Last modified: Tue, Mar 14, 2017 12:03:52 PM
+//Codeset: 1252
+requires maya "2016";
+currentUnit -l centimeter -a degree -t ntsc;
+fileInfo "application" "maya";
+fileInfo "product" "Maya 2016";
+fileInfo "version" "2016";
+fileInfo "cutIdentifier" "201502261600-953408";
+fileInfo "osv" "Microsoft Windows 8 Business Edition, 64-bit (Build 9200)\n";
+createNode transform -s -n "persp";
+ rename -uid "83FE29E2-4279-F5E3-C670-E89A5D501922";
+ setAttr ".v" no;
+ setAttr ".t" -type "double3" -2.4644513541617528 3.1732505776288029 19.769079296669993 ;
+ setAttr ".r" -type "double3" -9.3383527306793805 -13.000000000001233 4.0802704183094082e-016 ;
+createNode camera -s -n "perspShape" -p "persp";
+ rename -uid "8BC20C46-44D8-3143-40A5-0DA10395CB9E";
+ setAttr -k off ".v" no;
+ setAttr ".fl" 34.999999999999993;
+ setAttr ".coi" 20.256823710658686;
+ setAttr ".imn" -type "string" "persp";
+ setAttr ".den" -type "string" "persp_depth";
+ setAttr ".man" -type "string" "persp_mask";
+ setAttr ".hc" -type "string" "viewSet -p %camera";
+createNode transform -s -n "top";
+ rename -uid "5CF28BB1-46A4-6503-DD23-708E6F508945";
+ setAttr ".v" no;
+ setAttr ".t" -type "double3" 0 100.1 0 ;
+ setAttr ".r" -type "double3" -89.999999999999986 0 0 ;
+createNode camera -s -n "topShape" -p "top";
+ rename -uid "4D9B9713-4B39-B126-8006-A693B9DBE2B7";
+ setAttr -k off ".v" no;
+ setAttr ".rnd" no;
+ setAttr ".coi" 100.1;
+ setAttr ".ow" 30;
+ setAttr ".imn" -type "string" "top";
+ setAttr ".den" -type "string" "top_depth";
+ setAttr ".man" -type "string" "top_mask";
+ setAttr ".hc" -type "string" "viewSet -t %camera";
+ setAttr ".o" yes;
+createNode transform -s -n "front";
+ rename -uid "063FF756-4D89-4F3C-4CA0-C8BBAAC61FD6";
+ setAttr ".v" no;
+ setAttr ".t" -type "double3" 0 0 100.1 ;
+createNode camera -s -n "frontShape" -p "front";
+ rename -uid "7518AF2B-41D9-8ECD-52A1-4BB4C4D888F0";
+ setAttr -k off ".v" no;
+ setAttr ".rnd" no;
+ setAttr ".coi" 100.1;
+ setAttr ".ow" 30;
+ setAttr ".imn" -type "string" "front";
+ setAttr ".den" -type "string" "front_depth";
+ setAttr ".man" -type "string" "front_mask";
+ setAttr ".hc" -type "string" "viewSet -f %camera";
+ setAttr ".o" yes;
+createNode transform -s -n "side";
+ rename -uid "65A2B89B-4BDD-DE9A-33C1-D78EF89E52DB";
+ setAttr ".v" no;
+ setAttr ".t" -type "double3" 100.1 0 0 ;
+ setAttr ".r" -type "double3" 0 89.999999999999986 0 ;
+createNode camera -s -n "sideShape" -p "side";
+ rename -uid "C760589E-4858-9879-A854-31888E353C59";
+ setAttr -k off ".v" no;
+ setAttr ".rnd" no;
+ setAttr ".coi" 100.1;
+ setAttr ".ow" 30;
+ setAttr ".imn" -type "string" "side";
+ setAttr ".den" -type "string" "side_depth";
+ setAttr ".man" -type "string" "side_mask";
+ setAttr ".hc" -type "string" "viewSet -s %camera";
+ setAttr ".o" yes;
+createNode transform -n "lyt_main_GRP";
+ rename -uid "A3CED31B-4649-4EF0-2603-5AA184422DE4";
+createNode transform -n "lyt_root_CTRL_GRP" -p "lyt_main_GRP";
+ rename -uid "E3950210-4690-D94B-0A38-918D1C9053C2";
+createNode transform -n "lyt_root_CTRL" -p "lyt_root_CTRL_GRP";
+ rename -uid "C0951C75-4088-59E3-51E2-539F67416B29";
+ setAttr -l on -k off ".rx";
+ setAttr -l on -k off ".ry";
+ setAttr -l on -k off ".rz";
+ setAttr -l on -k off ".sx";
+ setAttr -l on -k off ".sy";
+ setAttr -l on -k off ".sz";
+createNode nurbsSurface -n "lyt_root_CTRL" -p "|lyt_main_GRP|lyt_root_CTRL_GRP|lyt_root_CTRL";
+ rename -uid "2EFD17DE-4EE0-A9B0-95C5-448F4938D6E8";
+ setAttr -k off ".v";
+ setAttr ".vir" yes;
+ setAttr ".vif" yes;
+ setAttr ".tw" yes;
+ setAttr ".covm[0]" 0 1 1;
+ setAttr ".cdvm[0]" 0 1 1;
+ setAttr ".dvu" 0;
+ setAttr ".dvv" 0;
+ setAttr ".cpr" 4;
+ setAttr ".cps" 4;
+ setAttr ".nufa" 4.5;
+ setAttr ".nvfa" 4.5;
+createNode transform -n "aim_grp" -p "|lyt_main_GRP|lyt_root_CTRL_GRP|lyt_root_CTRL";
+ rename -uid "B9223798-48EF-824F-F1B2-5A9636867CDD";
+createNode aimConstraint -n "aim_grp_aimConstraint1" -p "aim_grp";
+ rename -uid "BE86537C-4FEB-90FA-CBA5-EFAC4FEBCDCB";
+ addAttr -dcb 0 -ci true -sn "w0" -ln "lyt_end_CTRLW0" -dv 1 -at "double";
+ setAttr -k on ".nds";
+ setAttr -k off ".v";
+ setAttr -k off ".tx";
+ setAttr -k off ".ty";
+ setAttr -k off ".tz";
+ setAttr -k off ".rx";
+ setAttr -k off ".ry";
+ setAttr -k off ".rz";
+ setAttr -k off ".sx";
+ setAttr -k off ".sy";
+ setAttr -k off ".sz";
+ setAttr ".erp" yes;
+ setAttr ".wut" 0;
+ setAttr -k on ".w0";
+createNode transform -n "lyt_end_CTRL_GRP" -p "lyt_main_GRP";
+ rename -uid "64F757E1-4024-40C5-ED7D-8095BE2E5749";
+ setAttr ".t" -type "double3" 5 0 0 ;
+ setAttr ".s" -type "double3" 0.58955323412440008 0.58955323412440008 0.58955323412440008 ;
+createNode transform -n "lyt_end_CTRL" -p "lyt_end_CTRL_GRP";
+ rename -uid "0826A61D-471E-7099-8B7E-F2854C55EAB2";
+ setAttr -l on -k off ".rx";
+ setAttr -l on -k off ".ry";
+ setAttr -l on -k off ".rz";
+ setAttr -l on -k off ".sx";
+ setAttr -l on -k off ".sy";
+ setAttr -l on -k off ".sz";
+createNode nurbsSurface -n "lyt_root_CTRL" -p "lyt_end_CTRL";
+ rename -uid "E584125E-4FC1-FA5D-D0C4-51A918C63A7E";
+ setAttr -k off ".v";
+ setAttr ".vir" yes;
+ setAttr ".vif" yes;
+ setAttr ".covm[0]" 0 1 1;
+ setAttr ".cdvm[0]" 0 1 1;
+ setAttr ".dvu" 0;
+ setAttr ".dvv" 0;
+ setAttr ".cpr" 4;
+ setAttr ".cps" 4;
+ setAttr ".cc" -type "nurbsSurface"
+ 3 3 0 2 no
+ 9 0 0 0 1 2 3 4 4 4
+ 13 -2 -1 0 1 2 3 4 5 6 7 8 9 10
+
+ 77
+ 9.596474681976929e-017 -1 -2.5316183359690662e-016
+ 9.596474681976929e-017 -1 -2.5316183359690662e-016
+ 9.596474681976929e-017 -1 -2.5316183359690662e-016
+ 9.596474681976929e-017 -1 -2.5316183359690662e-016
+ 9.596474681976929e-017 -1 -2.5316183359690662e-016
+ 9.596474681976929e-017 -1 -2.5316183359690662e-016
+ 9.596474681976929e-017 -1 -2.5316183359690662e-016
+ 9.596474681976929e-017 -1 -2.5316183359690662e-016
+ 9.596474681976929e-017 -1 -2.5316183359690662e-016
+ 9.596474681976929e-017 -1 -2.5316183359690662e-016
+ 9.596474681976929e-017 -1 -2.5316183359690662e-016
+ 0.19991679083637254 -1 -0.19991679083637298
+ 0.2827250369469036 -1 -6.2210285873682227e-017
+ 0.1999167908363727 -1 0.19991679083637259
+ 1.151601345627845e-016 -1 0.28272503694690354
+ -0.19991679083637259 -1 0.19991679083637273
+ -0.28272503694690365 -1 5.7191723447539755e-017
+ -0.19991679083637276 -1 -0.19991679083637259
+ -1.8508566094318079e-016 -1 -0.28272503694690365
+ 0.19991679083637254 -1 -0.19991679083637298
+ 0.2827250369469036 -1 -6.2210285873682227e-017
+ 0.1999167908363727 -1 0.19991679083637259
+ 0.61642997969058899 -0.78361162489122427 -0.61642997969058999
+ 0.87176363753180319 -0.78361162489122427 1.0506190143399388e-016
+ 0.61642997969058932 -0.78361162489122427 0.61642997969058932
+ 1.9902882483877521e-016 -0.78361162489122427 0.87176363753180319
+ -0.61642997969058921 -0.78361162489122427 0.61642997969058955
+ -0.8717636375318033 -0.78361162489122427 1.6111055650702835e-016
+ -0.61642997969058944 -0.78361162489122427 -0.61642997969058899
+ -4.1463948278396632e-016 -0.78361162489122427 -0.87176363753180319
+ 0.61642997969058899 -0.78361162489122427 -0.61642997969058999
+ 0.87176363753180319 -0.78361162489122427 1.0506190143399388e-016
+ 0.61642997969058932 -0.78361162489122427 0.61642997969058932
+ 0.8672024474915413 6.5353909630129576e-017 -0.86720244749154252
+ 1.2264094625656803 1.2253074553466144e-017 2.901104977298788e-016
+ 0.86720244749154163 -4.0847760523197208e-017 0.86720244749154185
+ 2.051909376318187e-016 -6.284284658528814e-017 1.2264094625656803
+ -0.86720244749154163 -4.0847760523197208e-017 0.86720244749154185
+ -1.2264094625656805 1.2253074553466149e-017 2.1934926354574312e-016
+ -0.86720244749154174 6.5353909630129502e-017 -0.8672024474915413
+ -5.0851507246572639e-016 8.7348995692220465e-017 -1.2264094625656803
+ 0.8672024474915413 6.5353909630129576e-017 -0.86720244749154252
+ 1.2264094625656803 1.2253074553466144e-017 2.901104977298788e-016
+ 0.86720244749154163 -4.0847760523197208e-017 0.86720244749154185
+ 0.61642997969058932 0.78361162489122449 -0.61642997969058999
+ 0.87176363753180341 0.78361162489122449 3.0737422288956035e-016
+ 0.61642997969058944 0.78361162489122449 0.61642997969058966
+ 9.2681250202978354e-017 0.78361162489122449 0.87176363753180341
+ -0.61642997969058944 0.78361162489122449 0.61642997969058966
+ -0.87176363753180353 0.78361162489122449 1.507277286910009e-016
+ -0.61642997969058955 0.78361162489122449 -0.61642997969058932
+ -3.0829190814816951e-016 0.78361162489122449 -0.87176363753180341
+ 0.61642997969058932 0.78361162489122449 -0.61642997969058999
+ 0.87176363753180341 0.78361162489122449 3.0737422288956035e-016
+ 0.61642997969058944 0.78361162489122449 0.61642997969058966
+ 0.19991679083637276 0.99999999999999989 -0.19991679083637284
+ 0.28272503694690371 0.99999999999999989 1.9596904050327137e-016
+ 0.1999167908363727 0.99999999999999989 0.19991679083637293
+ -2.0554511899433756e-017 0.99999999999999989 0.28272503694690376
+ -0.19991679083637282 0.99999999999999989 0.19991679083637282
+ -0.28272503694690376 0.99999999999999989 4.3941756900056795e-017
+ -0.19991679083637273 0.99999999999999989 -0.1999167908363727
+ -4.9371014480962574e-017 0.99999999999999989 -0.28272503694690365
+ 0.19991679083637276 0.99999999999999989 -0.19991679083637284
+ 0.28272503694690371 0.99999999999999989 1.9596904050327137e-016
+ 0.1999167908363727 0.99999999999999989 0.19991679083637293
+ 1.739967336636337e-016 1 -1.6799646886496759e-017
+ 1.739967336636337e-016 1 -1.6799646886496759e-017
+ 1.739967336636337e-016 1 -1.6799646886496759e-017
+ 1.739967336636337e-016 1 -1.6799646886496759e-017
+ 1.739967336636337e-016 1 -1.6799646886496759e-017
+ 1.739967336636337e-016 1 -1.6799646886496759e-017
+ 1.739967336636337e-016 1 -1.6799646886496759e-017
+ 1.739967336636337e-016 1 -1.6799646886496759e-017
+ 1.739967336636337e-016 1 -1.6799646886496759e-017
+ 1.739967336636337e-016 1 -1.6799646886496759e-017
+ 1.739967336636337e-016 1 -1.6799646886496759e-017
+
+ ;
+ setAttr ".nufa" 4.5;
+ setAttr ".nvfa" 4.5;
+createNode transform -n "lyt_orient_CTRL_GRP" -p "lyt_main_GRP";
+ rename -uid "A1A89392-49F6-8166-E175-E486B5A62EF5";
+createNode transform -n "nurbsPlane1" -p "lyt_orient_CTRL_GRP";
+ rename -uid "C77B374E-4A29-596C-4272-AB83D19C6445";
+ setAttr ".t" -type "double3" 0 0 -3.2208418508411443 ;
+createNode transform -n "lyt_orient_CTRL" -p "lyt_orient_CTRL_GRP";
+ rename -uid "716B37C3-49CF-51A9-30E7-FFB2C6093E1F";
+ setAttr -l on -k off ".tx";
+ setAttr -l on -k off ".ty";
+ setAttr -l on -k off ".tz";
+ setAttr -l on -k off ".sx";
+ setAttr -l on -k off ".sy";
+ setAttr -l on -k off ".sz";
+ setAttr ".rp" -type "double3" 0 0 -0.056323231898877779 ;
+ setAttr ".sp" -type "double3" 0 0 -0.056323231898877779 ;
+createNode nurbsSurface -n "lyt_orient_CTRLShape" -p "lyt_orient_CTRL";
+ rename -uid "76128408-4F37-25FC-4DBE-56BCBC837242";
+ setAttr -k off ".v";
+ setAttr -s 2 ".iog[0].og";
+ setAttr ".iog[0].og[0].gcl" -type "componentList" 1 "sf[0][0]";
+ setAttr ".iog[0].og[1].gcl" -type "componentList" 1 "sf[0][0]";
+ setAttr ".vir" yes;
+ setAttr ".vif" yes;
+ setAttr ".covm[0]" 0 1 1;
+ setAttr ".cdvm[0]" 0 1 1;
+ setAttr ".dvu" 0;
+ setAttr ".dvv" 0;
+ setAttr ".cpr" 4;
+ setAttr ".cps" 4;
+ setAttr ".cc" -type "nurbsSurface"
+ 3 3 0 0 no
+ 6 0 0 0 1 1 1
+ 6 0 0 0 1 1 1
+
+ 16
+ -1.7269051415266066 0.66006862132316624 -0.063327897049012094
+ -0.44614649518311794 0.56001112838350242 -0.049693568583466075
+ 0.83461215116037901 0.34214999076872837 -0.036059240117926272
+ 2.3407403616157416 0.24976882010278181 -0.020025737793974319
+ -1.7269051415266063 0.32953081541636858 -0.063327897049012094
+ -0.44614649518311789 0.26839114245293894 -0.049693568583466075
+ 0.83461215116037912 0.13526809175607488 -0.036059240117926272
+ 2.3407403616157416 0.078819000373177142 -0.020025737793974319
+ -1.7269051415266059 -0.0010069904904290664 -0.063327897049012094
+ -0.44614649518311783 -0.023228843477624137 -0.049693568583466075
+ 0.83461215116037912 -0.07161380725657826 -0.036059240117926272
+ 2.3407403616157416 -0.092130819356427349 -0.020025737793974319
+ -1.7269051415266059 -0.33154479639722673 -0.063327897049012094
+ -0.44614649518311822 -0.31484882940818748 -0.04969356858346563
+ 0.83461215116037857 -0.27849570626923165 -0.036059240117925828
+ 2.3407403616157416 -0.26308063908603202 -0.020025737793974319
+
+ ;
+ setAttr ".nufa" 4.5;
+ setAttr ".nvfa" 4.5;
+createNode nurbsSurface -n "lyt_orient_CTRLShape1" -p "lyt_orient_CTRL";
+ rename -uid "31FCCB73-4557-19C3-BB6F-04BE67ED9B53";
+ setAttr -k off ".v";
+ setAttr -s 3 ".iog[0].og";
+ setAttr ".vir" yes;
+ setAttr ".vif" yes;
+ setAttr ".tw" yes;
+ setAttr -s 16 ".cp[0:15]" -type "double3" -1.7341440056885589 -0.53311540043398675
+ 2.4862415039858141 -0.45351058715261006 -0.5498279920940875 2.8575766764831467 0.82711929392621319
+ -0.56653449013836332 3.2303970373466018 2.333147401157035 -0.58626916269318297 3.5886191174685784
+ -1.7345750751683595 -0.19903950776682733 2.667224440272935 -0.45387010515492726 -0.21587535384402051
+ 3.008518988002693 0.82684893068973497 -0.23273542969101135 3.3439080482030121 2.3329239956935637
+ -0.25255099160187161 3.6824150799758741 -1.7352201167387333 0.13540497275093527 2.9380427721223907
+ -0.45440807888689838 0.11838469185180148 3.2343852815320062 0.82644436591585568 0.10129480602827309
+ 3.5137630811543366 2.3325896973547677 0.081358203311510419 3.8227690084818193 -1.7364859693509596
+ 0.47091886099824748 3.4695063375151345 -0.45546381774965838 0.45353663861834215 3.6776333616799275
+ 0.8256504335564917 0.435995765490302 3.847092663371833 2.3319336583568764 0.41582162797363614
+ 4.0982045698459508;
+ setAttr ".covm[0]" 0 1 1;
+ setAttr ".cdvm[0]" 0 1 1;
+ setAttr ".dvu" 0;
+ setAttr ".dvv" 0;
+ setAttr ".cpr" 4;
+ setAttr ".cps" 4;
+ setAttr ".nufa" 4.5;
+ setAttr ".nvfa" 4.5;
+createNode pointConstraint -n "lyt_orient_CTRL_GRP_pointConstraint1" -p "lyt_orient_CTRL_GRP";
+ rename -uid "9CE765EB-47F5-8F21-0182-66B2DE02B8F8";
+ addAttr -dcb 0 -ci true -k true -sn "w0" -ln "nurbsSphere1W0" -dv 1 -min 0 -at "double";
+ addAttr -dcb 0 -ci true -k true -sn "w1" -ln "nurbsSphere1W1" -dv 1 -min 0 -at "double";
+ setAttr -k on ".nds";
+ setAttr -k off ".v";
+ setAttr -k off ".tx";
+ setAttr -k off ".ty";
+ setAttr -k off ".tz";
+ setAttr -k off ".rx";
+ setAttr -k off ".ry";
+ setAttr -k off ".rz";
+ setAttr -k off ".sx";
+ setAttr -k off ".sy";
+ setAttr -k off ".sz";
+ setAttr ".erp" yes;
+ setAttr -s 2 ".tg";
+ setAttr ".rst" -type "double3" 2.5 0 0 ;
+ setAttr -k on ".w0";
+ setAttr -k on ".w1";
+createNode joint -n "lyt_JNT" -p "lyt_main_GRP";
+ rename -uid "A4F3D076-49AF-AD0C-4E4B-53A9D18B3CAD";
+ setAttr ".ovdt" 2;
+ setAttr ".ove" yes;
+ setAttr ".mnrl" -type "double3" -360 -360 -360 ;
+ setAttr ".mxrl" -type "double3" 360 360 360 ;
+ setAttr ".dla" yes;
+ setAttr ".radi" 0.53389820869221383;
+createNode pointConstraint -n "lyt_JNT_pointConstraint1" -p "lyt_JNT";
+ rename -uid "3278009D-4BEA-A636-688E-AEB6205B936B";
+ addAttr -dcb 0 -ci true -k true -sn "w0" -ln "nurbsSphere1W0" -dv 1 -min 0 -at "double";
+ setAttr -k on ".nds";
+ setAttr -k off ".v";
+ setAttr -k off ".tx";
+ setAttr -k off ".ty";
+ setAttr -k off ".tz";
+ setAttr -k off ".rx";
+ setAttr -k off ".ry";
+ setAttr -k off ".rz";
+ setAttr -k off ".sx";
+ setAttr -k off ".sy";
+ setAttr -k off ".sz";
+ setAttr ".erp" yes;
+ setAttr -k on ".w0";
+createNode lightLinker -s -n "lightLinker1";
+ rename -uid "753C72F0-4FF2-0994-3125-D9BC86EBC421";
+ setAttr -s 5 ".lnk";
+ setAttr -s 5 ".slnk";
+createNode displayLayerManager -n "layerManager";
+ rename -uid "96CD8852-4E88-D687-E217-0A86FF76E018";
+createNode displayLayer -n "defaultLayer";
+ rename -uid "CD675F01-4F94-C85C-6300-5A9007249ED5";
+createNode renderLayerManager -n "renderLayerManager";
+ rename -uid "E37785B2-4FEA-81C4-8408-A482E3E59507";
+createNode renderLayer -n "defaultRenderLayer";
+ rename -uid "ECB0C54F-4D81-3D02-3E35-76A20F69F103";
+ setAttr ".g" yes;
+createNode makeNurbSphere -n "makeNurbSphere1";
+ rename -uid "63E8388C-4AC4-1645-AB5C-D88573931364";
+ setAttr ".ax" -type "double3" 0 1 0 ;
+createNode makeNurbPlane -n "makeNurbPlane1";
+ rename -uid "4D8850E4-497B-6369-D21B-04A6F57B3CD4";
+ setAttr ".ax" -type "double3" 0 1 0 ;
+createNode transformGeometry -n "transformGeometry1";
+ rename -uid "68EC49CF-4E1E-8C2C-9820-20B38408E9AE";
+ setAttr ".txf" -type "matrix" 2.2204460492503131e-016 -1 0 0 1 2.2204460492503131e-016 0 0
+ 0 0 1 0 0 0 -3.2208418508411443 1;
+createNode lambert -n "Yellow";
+ rename -uid "5D46035B-42DB-06F3-5EEE-298898991091";
+ setAttr ".c" -type "float3" 0.87599999 0.67384839 0 ;
+ setAttr ".it" -type "float3" 0.69105059 0.69105059 0.69105059 ;
+createNode lambert -n "Green";
+ rename -uid "AEDBF45E-4F7B-AC30-3D06-11819B95BAB7";
+ setAttr ".c" -type "float3" 0.015963677 0.41499999 0 ;
+createNode lambert -n "Blue";
+ rename -uid "D0A0D933-4955-205D-17CA-D5A4429DCDAD";
+ setAttr ".c" -type "float3" 0 0.0484 1 ;
+createNode groupId -n "groupId1";
+ rename -uid "C2810B21-498F-C629-3924-E9B72779FA70";
+ setAttr ".ihi" 0;
+createNode groupId -n "groupId2";
+ rename -uid "D5264C53-4F6B-F8AC-E9D5-12859531E010";
+ setAttr ".ihi" 0;
+createNode groupId -n "groupId3";
+ rename -uid "31C15CC9-4A5B-28F1-53EB-14B8789F7BAE";
+ setAttr ".ihi" 0;
+createNode groupParts -n "groupParts1";
+ rename -uid "EFEC503F-4343-A1F8-AF5B-5292DF94C65A";
+ setAttr ".ihi" 0;
+ setAttr ".ic" -type "componentList" 1 "sf[0][0]";
+createNode groupId -n "groupId4";
+ rename -uid "5506F2D7-4591-324C-3B48-548554F9E4FE";
+ setAttr ".ihi" 0;
+createNode plusMinusAverage -n "lyt_orient_PMA";
+ rename -uid "B6F9B380-46BB-8322-5552-DEB0AB4C3BBF";
+ setAttr -s 2 ".i3[1]" -type "float3" 0 0 0;
+ setAttr -s 2 ".i3";
+createNode unitConversion -n "unitConversion1";
+ rename -uid "F4DCCAD5-4667-69E2-F54A-88A89AEEBC51";
+ setAttr ".cf" 57.295779513082323;
+createNode unitConversion -n "unitConversion2";
+ rename -uid "6B22B439-4353-82A9-45F0-17BFDE046394";
+ setAttr ".cf" 57.295779513082323;
+createNode unitConversion -n "unitConversion3";
+ rename -uid "C3831779-4914-56AD-7349-1B9E877A6AD2";
+ setAttr ".cf" 57.295779513082323;
+createNode unitConversion -n "unitConversion4";
+ rename -uid "AD182281-4CA3-C861-2031-8B9D7162C76C";
+ setAttr ".cf" 57.295779513082323;
+createNode unitConversion -n "unitConversion5";
+ rename -uid "B55E3DE1-49EB-F7D4-BB29-DE9E82E784CD";
+ setAttr ".cf" 0.017453292519943295;
+createNode unitConversion -n "unitConversion6";
+ rename -uid "45299E45-49C1-AFE4-415C-58BC70161CBE";
+ setAttr ".cf" 0.017453292519943295;
+createNode unitConversion -n "unitConversion7";
+ rename -uid "DB372DDC-406D-1A03-B838-279B3C30CD2A";
+ setAttr ".cf" 0.017453292519943295;
+createNode nodeGraphEditorInfo -n "MayaNodeEditorSavedTabsInfo";
+ rename -uid "614C6F6B-45CD-EB45-E3E7-568C2A3B0B32";
+ setAttr ".tgi[0].tn" -type "string" "Untitled_1";
+ setAttr ".tgi[0].vl" -type "double2" -113.454217386678 -536.9047405700843 ;
+ setAttr ".tgi[0].vh" -type "double2" 1062.2637034939003 323.80951094248996 ;
+ setAttr -s 16 ".tgi[0].ni";
+ setAttr ".tgi[0].ni[0].x" 262.85714721679687;
+ setAttr ".tgi[0].ni[0].y" -91.428573608398437;
+ setAttr ".tgi[0].ni[0].nvs" 18304;
+ setAttr ".tgi[0].ni[1].x" 1674.2857666015625;
+ setAttr ".tgi[0].ni[1].y" -474.28570556640625;
+ setAttr ".tgi[0].ni[1].nvs" 18304;
+ setAttr ".tgi[0].ni[2].x" 1428.5714111328125;
+ setAttr ".tgi[0].ni[2].y" -355.71429443359375;
+ setAttr ".tgi[0].ni[2].nvs" 18304;
+ setAttr ".tgi[0].ni[3].x" 401.83712768554687;
+ setAttr ".tgi[0].ni[3].y" -338.86614990234375;
+ setAttr ".tgi[0].ni[3].nvs" 18304;
+ setAttr ".tgi[0].ni[4].x" 262.85714721679687;
+ setAttr ".tgi[0].ni[4].y" -142.85714721679687;
+ setAttr ".tgi[0].ni[4].nvs" 18304;
+ setAttr ".tgi[0].ni[5].x" 262.85714721679687;
+ setAttr ".tgi[0].ni[5].y" -434.28570556640625;
+ setAttr ".tgi[0].ni[5].nvs" 18304;
+ setAttr ".tgi[0].ni[6].x" -157.82568359375;
+ setAttr ".tgi[0].ni[6].y" -151.59471130371094;
+ setAttr ".tgi[0].ni[6].nvs" 18305;
+ setAttr ".tgi[0].ni[7].x" 266.34027099609375;
+ setAttr ".tgi[0].ni[7].y" -343.1300048828125;
+ setAttr ".tgi[0].ni[7].nvs" 18304;
+ setAttr ".tgi[0].ni[8].x" 1690;
+ setAttr ".tgi[0].ni[8].y" -355.71429443359375;
+ setAttr ".tgi[0].ni[8].nvs" 18304;
+ setAttr ".tgi[0].ni[9].x" 802.85711669921875;
+ setAttr ".tgi[0].ni[9].y" -217.14285278320312;
+ setAttr ".tgi[0].ni[9].nvs" 18304;
+ setAttr ".tgi[0].ni[10].x" 262.85714721679687;
+ setAttr ".tgi[0].ni[10].y" -155.71427917480469;
+ setAttr ".tgi[0].ni[10].nvs" 18304;
+ setAttr ".tgi[0].ni[11].x" 89.717201232910156;
+ setAttr ".tgi[0].ni[11].y" 239.05630493164062;
+ setAttr ".tgi[0].ni[11].nvs" 18304;
+ setAttr ".tgi[0].ni[12].x" 804.3345947265625;
+ setAttr ".tgi[0].ni[12].y" -267.37667846679687;
+ setAttr ".tgi[0].ni[12].nvs" 18304;
+ setAttr ".tgi[0].ni[13].x" 802.85711669921875;
+ setAttr ".tgi[0].ni[13].y" -152.85714721679687;
+ setAttr ".tgi[0].ni[13].nvs" 18304;
+ setAttr ".tgi[0].ni[14].x" -118.63018798828125;
+ setAttr ".tgi[0].ni[14].y" 190.74836730957031;
+ setAttr ".tgi[0].ni[14].nvs" 18305;
+ setAttr ".tgi[0].ni[15].x" 424.80264282226562;
+ setAttr ".tgi[0].ni[15].y" 278.1124267578125;
+ setAttr ".tgi[0].ni[15].nvs" 18304;
+createNode script -n "uiConfigurationScriptNode";
+ rename -uid "35FEF1E7-4EA3-7437-9B5E-0B8A27D76AAC";
+ setAttr ".b" -type "string" (
+ "// Maya Mel UI Configuration File.\n//\n// This script is machine generated. Edit at your own risk.\n//\n//\n\nglobal string $gMainPane;\nif (`paneLayout -exists $gMainPane`) {\n\n\tglobal int $gUseScenePanelConfig;\n\tint $useSceneConfig = $gUseScenePanelConfig;\n\tint $menusOkayInPanels = `optionVar -q allowMenusInPanels`;\tint $nVisPanes = `paneLayout -q -nvp $gMainPane`;\n\tint $nPanes = 0;\n\tstring $editorName;\n\tstring $panelName;\n\tstring $itemFilterName;\n\tstring $panelConfig;\n\n\t//\n\t// get current state of the UI\n\t//\n\tsceneUIReplacement -update $gMainPane;\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"modelPanel\" (localizedPanelLabel(\"Top View\")) `;\n\tif (\"\" == $panelName) {\n\t\tif ($useSceneConfig) {\n\t\t\t$panelName = `modelPanel -unParent -l (localizedPanelLabel(\"Top View\")) -mbv $menusOkayInPanels `;\n\t\t\t$editorName = $panelName;\n modelEditor -e \n -camera \"top\" \n -useInteractiveMode 0\n -displayLights \"default\" \n -displayAppearance \"smoothShaded\" \n"
+ + " -activeOnly 0\n -ignorePanZoom 0\n -wireframeOnShaded 0\n -headsUpDisplay 1\n -holdOuts 1\n -selectionHiliteDisplay 1\n -useDefaultMaterial 0\n -bufferMode \"double\" \n -twoSidedLighting 0\n -backfaceCulling 0\n -xray 0\n -jointXray 0\n -activeComponentsXray 0\n -displayTextures 0\n -smoothWireframe 0\n -lineWidth 1.586047\n -textureAnisotropic 0\n -textureHilight 1\n -textureSampling 2\n -textureDisplay \"modulate\" \n -textureMaxSize 16384\n -fogging 0\n -fogSource \"fragment\" \n -fogMode \"linear\" \n -fogStart 0\n -fogEnd 100\n -fogDensity 0.1\n -fogColor 0.5 0.5 0.5 1 \n -depthOfFieldPreview 1\n -maxConstantTransparency 1\n"
+ + " -rendererName \"base_OpenGL_Renderer\" \n -objectFilterShowInHUD 1\n -isFiltered 0\n -colorResolution 256 256 \n -bumpResolution 512 512 \n -textureCompression 0\n -transparencyAlgorithm \"frontAndBackCull\" \n -transpInShadows 0\n -cullingOverride \"none\" \n -lowQualityLighting 0\n -maximumNumHardwareLights 1\n -occlusionCulling 0\n -shadingModel 0\n -useBaseRenderer 0\n -useReducedRenderer 0\n -smallObjectCulling 0\n -smallObjectThreshold -1 \n -interactiveDisableShadows 0\n -interactiveBackFaceCull 0\n -sortTransparent 1\n -nurbsCurves 1\n -nurbsSurfaces 1\n -polymeshes 1\n -subdivSurfaces 1\n -planes 1\n -lights 1\n -cameras 1\n -controlVertices 1\n"
+ + " -hulls 1\n -grid 1\n -imagePlane 1\n -joints 1\n -ikHandles 1\n -deformers 1\n -dynamics 1\n -particleInstancers 1\n -fluids 1\n -hairSystems 1\n -follicles 1\n -nCloths 1\n -nParticles 1\n -nRigids 1\n -dynamicConstraints 1\n -locators 1\n -manipulators 1\n -pluginShapes 1\n -dimensions 1\n -handles 1\n -pivots 1\n -textures 1\n -strokes 1\n -motionTrails 1\n -clipGhosts 1\n -greasePencils 1\n -shadows 0\n -captureSequenceNumber -1\n -width 1\n -height 1\n -sceneRenderFilter 0\n $editorName;\n modelEditor -e -viewSelected 0 $editorName;\n modelEditor -e \n"
+ + " -pluginObjects \"gpuCacheDisplayFilter\" 1 \n $editorName;\n\t\t}\n\t} else {\n\t\t$label = `panel -q -label $panelName`;\n\t\tmodelPanel -edit -l (localizedPanelLabel(\"Top View\")) -mbv $menusOkayInPanels $panelName;\n\t\t$editorName = $panelName;\n modelEditor -e \n -camera \"top\" \n -useInteractiveMode 0\n -displayLights \"default\" \n -displayAppearance \"smoothShaded\" \n -activeOnly 0\n -ignorePanZoom 0\n -wireframeOnShaded 0\n -headsUpDisplay 1\n -holdOuts 1\n -selectionHiliteDisplay 1\n -useDefaultMaterial 0\n -bufferMode \"double\" \n -twoSidedLighting 0\n -backfaceCulling 0\n -xray 0\n -jointXray 0\n -activeComponentsXray 0\n -displayTextures 0\n -smoothWireframe 0\n -lineWidth 1.586047\n -textureAnisotropic 0\n -textureHilight 1\n -textureSampling 2\n -textureDisplay \"modulate\" \n"
+ + " -textureMaxSize 16384\n -fogging 0\n -fogSource \"fragment\" \n -fogMode \"linear\" \n -fogStart 0\n -fogEnd 100\n -fogDensity 0.1\n -fogColor 0.5 0.5 0.5 1 \n -depthOfFieldPreview 1\n -maxConstantTransparency 1\n -rendererName \"base_OpenGL_Renderer\" \n -objectFilterShowInHUD 1\n -isFiltered 0\n -colorResolution 256 256 \n -bumpResolution 512 512 \n -textureCompression 0\n -transparencyAlgorithm \"frontAndBackCull\" \n -transpInShadows 0\n -cullingOverride \"none\" \n -lowQualityLighting 0\n -maximumNumHardwareLights 1\n -occlusionCulling 0\n -shadingModel 0\n -useBaseRenderer 0\n -useReducedRenderer 0\n -smallObjectCulling 0\n -smallObjectThreshold -1 \n -interactiveDisableShadows 0\n -interactiveBackFaceCull 0\n -sortTransparent 1\n"
+ + " -nurbsCurves 1\n -nurbsSurfaces 1\n -polymeshes 1\n -subdivSurfaces 1\n -planes 1\n -lights 1\n -cameras 1\n -controlVertices 1\n -hulls 1\n -grid 1\n -imagePlane 1\n -joints 1\n -ikHandles 1\n -deformers 1\n -dynamics 1\n -particleInstancers 1\n -fluids 1\n -hairSystems 1\n -follicles 1\n -nCloths 1\n -nParticles 1\n -nRigids 1\n -dynamicConstraints 1\n -locators 1\n -manipulators 1\n -pluginShapes 1\n -dimensions 1\n -handles 1\n -pivots 1\n -textures 1\n -strokes 1\n -motionTrails 1\n -clipGhosts 1\n -greasePencils 1\n -shadows 0\n -captureSequenceNumber -1\n -width 1\n -height 1\n -sceneRenderFilter 0\n $editorName;\n"
+ + " modelEditor -e -viewSelected 0 $editorName;\n modelEditor -e \n -pluginObjects \"gpuCacheDisplayFilter\" 1 \n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"modelPanel\" (localizedPanelLabel(\"Side View\")) `;\n\tif (\"\" == $panelName) {\n\t\tif ($useSceneConfig) {\n\t\t\t$panelName = `modelPanel -unParent -l (localizedPanelLabel(\"Side View\")) -mbv $menusOkayInPanels `;\n\t\t\t$editorName = $panelName;\n modelEditor -e \n -camera \"side\" \n -useInteractiveMode 0\n -displayLights \"default\" \n -displayAppearance \"smoothShaded\" \n -activeOnly 0\n -ignorePanZoom 0\n -wireframeOnShaded 0\n -headsUpDisplay 1\n -holdOuts 1\n -selectionHiliteDisplay 1\n -useDefaultMaterial 0\n -bufferMode \"double\" \n -twoSidedLighting 0\n -backfaceCulling 0\n"
+ + " -xray 0\n -jointXray 0\n -activeComponentsXray 0\n -displayTextures 0\n -smoothWireframe 0\n -lineWidth 1.586047\n -textureAnisotropic 0\n -textureHilight 1\n -textureSampling 2\n -textureDisplay \"modulate\" \n -textureMaxSize 16384\n -fogging 0\n -fogSource \"fragment\" \n -fogMode \"linear\" \n -fogStart 0\n -fogEnd 100\n -fogDensity 0.1\n -fogColor 0.5 0.5 0.5 1 \n -depthOfFieldPreview 1\n -maxConstantTransparency 1\n -rendererName \"base_OpenGL_Renderer\" \n -objectFilterShowInHUD 1\n -isFiltered 0\n -colorResolution 256 256 \n -bumpResolution 512 512 \n -textureCompression 0\n -transparencyAlgorithm \"frontAndBackCull\" \n -transpInShadows 0\n"
+ + " -cullingOverride \"none\" \n -lowQualityLighting 0\n -maximumNumHardwareLights 1\n -occlusionCulling 0\n -shadingModel 0\n -useBaseRenderer 0\n -useReducedRenderer 0\n -smallObjectCulling 0\n -smallObjectThreshold -1 \n -interactiveDisableShadows 0\n -interactiveBackFaceCull 0\n -sortTransparent 1\n -nurbsCurves 1\n -nurbsSurfaces 1\n -polymeshes 1\n -subdivSurfaces 1\n -planes 1\n -lights 1\n -cameras 1\n -controlVertices 1\n -hulls 1\n -grid 1\n -imagePlane 1\n -joints 1\n -ikHandles 1\n -deformers 1\n -dynamics 1\n -particleInstancers 1\n -fluids 1\n -hairSystems 1\n -follicles 1\n -nCloths 1\n"
+ + " -nParticles 1\n -nRigids 1\n -dynamicConstraints 1\n -locators 1\n -manipulators 1\n -pluginShapes 1\n -dimensions 1\n -handles 1\n -pivots 1\n -textures 1\n -strokes 1\n -motionTrails 1\n -clipGhosts 1\n -greasePencils 1\n -shadows 0\n -captureSequenceNumber -1\n -width 1\n -height 1\n -sceneRenderFilter 0\n $editorName;\n modelEditor -e -viewSelected 0 $editorName;\n modelEditor -e \n -pluginObjects \"gpuCacheDisplayFilter\" 1 \n $editorName;\n\t\t}\n\t} else {\n\t\t$label = `panel -q -label $panelName`;\n\t\tmodelPanel -edit -l (localizedPanelLabel(\"Side View\")) -mbv $menusOkayInPanels $panelName;\n\t\t$editorName = $panelName;\n modelEditor -e \n -camera \"side\" \n -useInteractiveMode 0\n"
+ + " -displayLights \"default\" \n -displayAppearance \"smoothShaded\" \n -activeOnly 0\n -ignorePanZoom 0\n -wireframeOnShaded 0\n -headsUpDisplay 1\n -holdOuts 1\n -selectionHiliteDisplay 1\n -useDefaultMaterial 0\n -bufferMode \"double\" \n -twoSidedLighting 0\n -backfaceCulling 0\n -xray 0\n -jointXray 0\n -activeComponentsXray 0\n -displayTextures 0\n -smoothWireframe 0\n -lineWidth 1.586047\n -textureAnisotropic 0\n -textureHilight 1\n -textureSampling 2\n -textureDisplay \"modulate\" \n -textureMaxSize 16384\n -fogging 0\n -fogSource \"fragment\" \n -fogMode \"linear\" \n -fogStart 0\n -fogEnd 100\n -fogDensity 0.1\n -fogColor 0.5 0.5 0.5 1 \n -depthOfFieldPreview 1\n -maxConstantTransparency 1\n -rendererName \"base_OpenGL_Renderer\" \n"
+ + " -objectFilterShowInHUD 1\n -isFiltered 0\n -colorResolution 256 256 \n -bumpResolution 512 512 \n -textureCompression 0\n -transparencyAlgorithm \"frontAndBackCull\" \n -transpInShadows 0\n -cullingOverride \"none\" \n -lowQualityLighting 0\n -maximumNumHardwareLights 1\n -occlusionCulling 0\n -shadingModel 0\n -useBaseRenderer 0\n -useReducedRenderer 0\n -smallObjectCulling 0\n -smallObjectThreshold -1 \n -interactiveDisableShadows 0\n -interactiveBackFaceCull 0\n -sortTransparent 1\n -nurbsCurves 1\n -nurbsSurfaces 1\n -polymeshes 1\n -subdivSurfaces 1\n -planes 1\n -lights 1\n -cameras 1\n -controlVertices 1\n -hulls 1\n -grid 1\n -imagePlane 1\n -joints 1\n -ikHandles 1\n -deformers 1\n"
+ + " -dynamics 1\n -particleInstancers 1\n -fluids 1\n -hairSystems 1\n -follicles 1\n -nCloths 1\n -nParticles 1\n -nRigids 1\n -dynamicConstraints 1\n -locators 1\n -manipulators 1\n -pluginShapes 1\n -dimensions 1\n -handles 1\n -pivots 1\n -textures 1\n -strokes 1\n -motionTrails 1\n -clipGhosts 1\n -greasePencils 1\n -shadows 0\n -captureSequenceNumber -1\n -width 1\n -height 1\n -sceneRenderFilter 0\n $editorName;\n modelEditor -e -viewSelected 0 $editorName;\n modelEditor -e \n -pluginObjects \"gpuCacheDisplayFilter\" 1 \n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"modelPanel\" (localizedPanelLabel(\"Front View\")) `;\n\tif (\"\" == $panelName) {\n"
+ + "\t\tif ($useSceneConfig) {\n\t\t\t$panelName = `modelPanel -unParent -l (localizedPanelLabel(\"Front View\")) -mbv $menusOkayInPanels `;\n\t\t\t$editorName = $panelName;\n modelEditor -e \n -camera \"front\" \n -useInteractiveMode 0\n -displayLights \"default\" \n -displayAppearance \"smoothShaded\" \n -activeOnly 0\n -ignorePanZoom 0\n -wireframeOnShaded 0\n -headsUpDisplay 1\n -holdOuts 1\n -selectionHiliteDisplay 1\n -useDefaultMaterial 0\n -bufferMode \"double\" \n -twoSidedLighting 0\n -backfaceCulling 0\n -xray 0\n -jointXray 0\n -activeComponentsXray 0\n -displayTextures 0\n -smoothWireframe 0\n -lineWidth 1.586047\n -textureAnisotropic 0\n -textureHilight 1\n -textureSampling 2\n -textureDisplay \"modulate\" \n"
+ + " -textureMaxSize 16384\n -fogging 0\n -fogSource \"fragment\" \n -fogMode \"linear\" \n -fogStart 0\n -fogEnd 100\n -fogDensity 0.1\n -fogColor 0.5 0.5 0.5 1 \n -depthOfFieldPreview 1\n -maxConstantTransparency 1\n -rendererName \"base_OpenGL_Renderer\" \n -objectFilterShowInHUD 1\n -isFiltered 0\n -colorResolution 256 256 \n -bumpResolution 512 512 \n -textureCompression 0\n -transparencyAlgorithm \"frontAndBackCull\" \n -transpInShadows 0\n -cullingOverride \"none\" \n -lowQualityLighting 0\n -maximumNumHardwareLights 1\n -occlusionCulling 0\n -shadingModel 0\n -useBaseRenderer 0\n -useReducedRenderer 0\n -smallObjectCulling 0\n -smallObjectThreshold -1 \n"
+ + " -interactiveDisableShadows 0\n -interactiveBackFaceCull 0\n -sortTransparent 1\n -nurbsCurves 1\n -nurbsSurfaces 1\n -polymeshes 1\n -subdivSurfaces 1\n -planes 1\n -lights 1\n -cameras 1\n -controlVertices 1\n -hulls 1\n -grid 1\n -imagePlane 1\n -joints 1\n -ikHandles 1\n -deformers 1\n -dynamics 1\n -particleInstancers 1\n -fluids 1\n -hairSystems 1\n -follicles 1\n -nCloths 1\n -nParticles 1\n -nRigids 1\n -dynamicConstraints 1\n -locators 1\n -manipulators 1\n -pluginShapes 1\n -dimensions 1\n -handles 1\n -pivots 1\n -textures 1\n -strokes 1\n"
+ + " -motionTrails 1\n -clipGhosts 1\n -greasePencils 1\n -shadows 0\n -captureSequenceNumber -1\n -width 1\n -height 1\n -sceneRenderFilter 0\n $editorName;\n modelEditor -e -viewSelected 0 $editorName;\n modelEditor -e \n -pluginObjects \"gpuCacheDisplayFilter\" 1 \n $editorName;\n\t\t}\n\t} else {\n\t\t$label = `panel -q -label $panelName`;\n\t\tmodelPanel -edit -l (localizedPanelLabel(\"Front View\")) -mbv $menusOkayInPanels $panelName;\n\t\t$editorName = $panelName;\n modelEditor -e \n -camera \"front\" \n -useInteractiveMode 0\n -displayLights \"default\" \n -displayAppearance \"smoothShaded\" \n -activeOnly 0\n -ignorePanZoom 0\n -wireframeOnShaded 0\n -headsUpDisplay 1\n -holdOuts 1\n -selectionHiliteDisplay 1\n -useDefaultMaterial 0\n -bufferMode \"double\" \n"
+ + " -twoSidedLighting 0\n -backfaceCulling 0\n -xray 0\n -jointXray 0\n -activeComponentsXray 0\n -displayTextures 0\n -smoothWireframe 0\n -lineWidth 1.586047\n -textureAnisotropic 0\n -textureHilight 1\n -textureSampling 2\n -textureDisplay \"modulate\" \n -textureMaxSize 16384\n -fogging 0\n -fogSource \"fragment\" \n -fogMode \"linear\" \n -fogStart 0\n -fogEnd 100\n -fogDensity 0.1\n -fogColor 0.5 0.5 0.5 1 \n -depthOfFieldPreview 1\n -maxConstantTransparency 1\n -rendererName \"base_OpenGL_Renderer\" \n -objectFilterShowInHUD 1\n -isFiltered 0\n -colorResolution 256 256 \n -bumpResolution 512 512 \n -textureCompression 0\n -transparencyAlgorithm \"frontAndBackCull\" \n -transpInShadows 0\n -cullingOverride \"none\" \n"
+ + " -lowQualityLighting 0\n -maximumNumHardwareLights 1\n -occlusionCulling 0\n -shadingModel 0\n -useBaseRenderer 0\n -useReducedRenderer 0\n -smallObjectCulling 0\n -smallObjectThreshold -1 \n -interactiveDisableShadows 0\n -interactiveBackFaceCull 0\n -sortTransparent 1\n -nurbsCurves 1\n -nurbsSurfaces 1\n -polymeshes 1\n -subdivSurfaces 1\n -planes 1\n -lights 1\n -cameras 1\n -controlVertices 1\n -hulls 1\n -grid 1\n -imagePlane 1\n -joints 1\n -ikHandles 1\n -deformers 1\n -dynamics 1\n -particleInstancers 1\n -fluids 1\n -hairSystems 1\n -follicles 1\n -nCloths 1\n -nParticles 1\n -nRigids 1\n -dynamicConstraints 1\n -locators 1\n -manipulators 1\n -pluginShapes 1\n"
+ + " -dimensions 1\n -handles 1\n -pivots 1\n -textures 1\n -strokes 1\n -motionTrails 1\n -clipGhosts 1\n -greasePencils 1\n -shadows 0\n -captureSequenceNumber -1\n -width 1\n -height 1\n -sceneRenderFilter 0\n $editorName;\n modelEditor -e -viewSelected 0 $editorName;\n modelEditor -e \n -pluginObjects \"gpuCacheDisplayFilter\" 1 \n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"modelPanel\" (localizedPanelLabel(\"Persp View\")) `;\n\tif (\"\" == $panelName) {\n\t\tif ($useSceneConfig) {\n\t\t\t$panelName = `modelPanel -unParent -l (localizedPanelLabel(\"Persp View\")) -mbv $menusOkayInPanels `;\n\t\t\t$editorName = $panelName;\n modelEditor -e \n -camera \"persp\" \n -useInteractiveMode 0\n -displayLights \"default\" \n -displayAppearance \"smoothShaded\" \n"
+ + " -activeOnly 0\n -ignorePanZoom 0\n -wireframeOnShaded 0\n -headsUpDisplay 1\n -holdOuts 1\n -selectionHiliteDisplay 1\n -useDefaultMaterial 0\n -bufferMode \"double\" \n -twoSidedLighting 0\n -backfaceCulling 0\n -xray 0\n -jointXray 0\n -activeComponentsXray 0\n -displayTextures 0\n -smoothWireframe 0\n -lineWidth 1.586047\n -textureAnisotropic 0\n -textureHilight 1\n -textureSampling 2\n -textureDisplay \"modulate\" \n -textureMaxSize 16384\n -fogging 0\n -fogSource \"fragment\" \n -fogMode \"linear\" \n -fogStart 0\n -fogEnd 100\n -fogDensity 0.1\n -fogColor 0.5 0.5 0.5 1 \n -depthOfFieldPreview 1\n -maxConstantTransparency 1\n"
+ + " -rendererName \"base_OpenGL_Renderer\" \n -objectFilterShowInHUD 1\n -isFiltered 0\n -colorResolution 256 256 \n -bumpResolution 512 512 \n -textureCompression 0\n -transparencyAlgorithm \"frontAndBackCull\" \n -transpInShadows 0\n -cullingOverride \"none\" \n -lowQualityLighting 0\n -maximumNumHardwareLights 1\n -occlusionCulling 0\n -shadingModel 0\n -useBaseRenderer 0\n -useReducedRenderer 0\n -smallObjectCulling 0\n -smallObjectThreshold -1 \n -interactiveDisableShadows 0\n -interactiveBackFaceCull 0\n -sortTransparent 1\n -nurbsCurves 1\n -nurbsSurfaces 1\n -polymeshes 1\n -subdivSurfaces 1\n -planes 1\n -lights 1\n -cameras 1\n -controlVertices 1\n"
+ + " -hulls 1\n -grid 1\n -imagePlane 1\n -joints 1\n -ikHandles 1\n -deformers 1\n -dynamics 1\n -particleInstancers 1\n -fluids 1\n -hairSystems 1\n -follicles 1\n -nCloths 1\n -nParticles 1\n -nRigids 1\n -dynamicConstraints 1\n -locators 1\n -manipulators 1\n -pluginShapes 1\n -dimensions 1\n -handles 1\n -pivots 1\n -textures 1\n -strokes 1\n -motionTrails 1\n -clipGhosts 1\n -greasePencils 1\n -shadows 0\n -captureSequenceNumber -1\n -width 1020\n -height 889\n -sceneRenderFilter 0\n $editorName;\n modelEditor -e -viewSelected 0 $editorName;\n modelEditor -e \n"
+ + " -pluginObjects \"gpuCacheDisplayFilter\" 1 \n $editorName;\n\t\t}\n\t} else {\n\t\t$label = `panel -q -label $panelName`;\n\t\tmodelPanel -edit -l (localizedPanelLabel(\"Persp View\")) -mbv $menusOkayInPanels $panelName;\n\t\t$editorName = $panelName;\n modelEditor -e \n -camera \"persp\" \n -useInteractiveMode 0\n -displayLights \"default\" \n -displayAppearance \"smoothShaded\" \n -activeOnly 0\n -ignorePanZoom 0\n -wireframeOnShaded 0\n -headsUpDisplay 1\n -holdOuts 1\n -selectionHiliteDisplay 1\n -useDefaultMaterial 0\n -bufferMode \"double\" \n -twoSidedLighting 0\n -backfaceCulling 0\n -xray 0\n -jointXray 0\n -activeComponentsXray 0\n -displayTextures 0\n -smoothWireframe 0\n -lineWidth 1.586047\n -textureAnisotropic 0\n -textureHilight 1\n -textureSampling 2\n -textureDisplay \"modulate\" \n"
+ + " -textureMaxSize 16384\n -fogging 0\n -fogSource \"fragment\" \n -fogMode \"linear\" \n -fogStart 0\n -fogEnd 100\n -fogDensity 0.1\n -fogColor 0.5 0.5 0.5 1 \n -depthOfFieldPreview 1\n -maxConstantTransparency 1\n -rendererName \"base_OpenGL_Renderer\" \n -objectFilterShowInHUD 1\n -isFiltered 0\n -colorResolution 256 256 \n -bumpResolution 512 512 \n -textureCompression 0\n -transparencyAlgorithm \"frontAndBackCull\" \n -transpInShadows 0\n -cullingOverride \"none\" \n -lowQualityLighting 0\n -maximumNumHardwareLights 1\n -occlusionCulling 0\n -shadingModel 0\n -useBaseRenderer 0\n -useReducedRenderer 0\n -smallObjectCulling 0\n -smallObjectThreshold -1 \n -interactiveDisableShadows 0\n -interactiveBackFaceCull 0\n -sortTransparent 1\n"
+ + " -nurbsCurves 1\n -nurbsSurfaces 1\n -polymeshes 1\n -subdivSurfaces 1\n -planes 1\n -lights 1\n -cameras 1\n -controlVertices 1\n -hulls 1\n -grid 1\n -imagePlane 1\n -joints 1\n -ikHandles 1\n -deformers 1\n -dynamics 1\n -particleInstancers 1\n -fluids 1\n -hairSystems 1\n -follicles 1\n -nCloths 1\n -nParticles 1\n -nRigids 1\n -dynamicConstraints 1\n -locators 1\n -manipulators 1\n -pluginShapes 1\n -dimensions 1\n -handles 1\n -pivots 1\n -textures 1\n -strokes 1\n -motionTrails 1\n -clipGhosts 1\n -greasePencils 1\n -shadows 0\n -captureSequenceNumber -1\n -width 1020\n -height 889\n -sceneRenderFilter 0\n $editorName;\n"
+ + " modelEditor -e -viewSelected 0 $editorName;\n modelEditor -e \n -pluginObjects \"gpuCacheDisplayFilter\" 1 \n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"outlinerPanel\" (localizedPanelLabel(\"Outliner\")) `;\n\tif (\"\" == $panelName) {\n\t\tif ($useSceneConfig) {\n\t\t\t$panelName = `outlinerPanel -unParent -l (localizedPanelLabel(\"Outliner\")) -mbv $menusOkayInPanels `;\n\t\t\t$editorName = $panelName;\n outlinerEditor -e \n -docTag \"isolOutln_fromSeln\" \n -showShapes 0\n -showReferenceNodes 1\n -showReferenceMembers 1\n -showAttributes 0\n -showConnected 0\n -showAnimCurvesOnly 0\n -showMuteInfo 0\n -organizeByLayer 1\n -showAnimLayerWeight 1\n -autoExpandLayers 1\n -autoExpand 0\n -showDagOnly 0\n -showAssets 1\n"
+ + " -showContainedOnly 1\n -showPublishedAsConnected 0\n -showContainerContents 1\n -ignoreDagHierarchy 0\n -expandConnections 0\n -showUpstreamCurves 1\n -showUnitlessCurves 1\n -showCompounds 1\n -showLeafs 1\n -showNumericAttrsOnly 0\n -highlightActive 1\n -autoSelectNewObjects 0\n -doNotSelectNewObjects 0\n -dropIsParent 1\n -transmitFilters 0\n -setFilter \"defaultSetFilter\" \n -showSetMembers 1\n -allowMultiSelection 1\n -alwaysToggleSelect 0\n -directSelect 0\n -displayMode \"DAG\" \n -expandObjects 0\n -setsIgnoreFilters 1\n -containersIgnoreFilters 0\n -editAttrName 0\n -showAttrValues 0\n -highlightSecondary 0\n -showUVAttrsOnly 0\n"
+ + " -showTextureNodesOnly 0\n -attrAlphaOrder \"default\" \n -animLayerFilterOptions \"allAffecting\" \n -sortOrder \"none\" \n -longNames 0\n -niceNames 1\n -showNamespace 1\n -showPinIcons 0\n -mapMotionTrails 0\n -ignoreHiddenAttribute 0\n -ignoreOutlinerColor 0\n $editorName;\n\t\t}\n\t} else {\n\t\t$label = `panel -q -label $panelName`;\n\t\toutlinerPanel -edit -l (localizedPanelLabel(\"Outliner\")) -mbv $menusOkayInPanels $panelName;\n\t\t$editorName = $panelName;\n outlinerEditor -e \n -docTag \"isolOutln_fromSeln\" \n -showShapes 0\n -showReferenceNodes 1\n -showReferenceMembers 1\n -showAttributes 0\n -showConnected 0\n -showAnimCurvesOnly 0\n -showMuteInfo 0\n -organizeByLayer 1\n -showAnimLayerWeight 1\n -autoExpandLayers 1\n -autoExpand 0\n"
+ + " -showDagOnly 0\n -showAssets 1\n -showContainedOnly 1\n -showPublishedAsConnected 0\n -showContainerContents 1\n -ignoreDagHierarchy 0\n -expandConnections 0\n -showUpstreamCurves 1\n -showUnitlessCurves 1\n -showCompounds 1\n -showLeafs 1\n -showNumericAttrsOnly 0\n -highlightActive 1\n -autoSelectNewObjects 0\n -doNotSelectNewObjects 0\n -dropIsParent 1\n -transmitFilters 0\n -setFilter \"defaultSetFilter\" \n -showSetMembers 1\n -allowMultiSelection 1\n -alwaysToggleSelect 0\n -directSelect 0\n -displayMode \"DAG\" \n -expandObjects 0\n -setsIgnoreFilters 1\n -containersIgnoreFilters 0\n -editAttrName 0\n -showAttrValues 0\n -highlightSecondary 0\n -showUVAttrsOnly 0\n -showTextureNodesOnly 0\n -attrAlphaOrder \"default\" \n"
+ + " -animLayerFilterOptions \"allAffecting\" \n -sortOrder \"none\" \n -longNames 0\n -niceNames 1\n -showNamespace 1\n -showPinIcons 0\n -mapMotionTrails 0\n -ignoreHiddenAttribute 0\n -ignoreOutlinerColor 0\n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"graphEditor\" (localizedPanelLabel(\"Graph Editor\")) `;\n\tif (\"\" == $panelName) {\n\t\tif ($useSceneConfig) {\n\t\t\t$panelName = `scriptedPanel -unParent -type \"graphEditor\" -l (localizedPanelLabel(\"Graph Editor\")) -mbv $menusOkayInPanels `;\n\n\t\t\t$editorName = ($panelName+\"OutlineEd\");\n outlinerEditor -e \n -showShapes 1\n -showReferenceNodes 0\n -showReferenceMembers 0\n -showAttributes 1\n -showConnected 1\n -showAnimCurvesOnly 1\n -showMuteInfo 0\n -organizeByLayer 1\n"
+ + " -showAnimLayerWeight 1\n -autoExpandLayers 1\n -autoExpand 1\n -showDagOnly 0\n -showAssets 1\n -showContainedOnly 0\n -showPublishedAsConnected 0\n -showContainerContents 0\n -ignoreDagHierarchy 0\n -expandConnections 1\n -showUpstreamCurves 1\n -showUnitlessCurves 1\n -showCompounds 0\n -showLeafs 1\n -showNumericAttrsOnly 1\n -highlightActive 0\n -autoSelectNewObjects 1\n -doNotSelectNewObjects 0\n -dropIsParent 1\n -transmitFilters 1\n -setFilter \"0\" \n -showSetMembers 0\n -allowMultiSelection 1\n -alwaysToggleSelect 0\n -directSelect 0\n -displayMode \"DAG\" \n -expandObjects 0\n -setsIgnoreFilters 1\n -containersIgnoreFilters 0\n"
+ + " -editAttrName 0\n -showAttrValues 0\n -highlightSecondary 0\n -showUVAttrsOnly 0\n -showTextureNodesOnly 0\n -attrAlphaOrder \"default\" \n -animLayerFilterOptions \"allAffecting\" \n -sortOrder \"none\" \n -longNames 0\n -niceNames 1\n -showNamespace 1\n -showPinIcons 1\n -mapMotionTrails 1\n -ignoreHiddenAttribute 0\n -ignoreOutlinerColor 0\n $editorName;\n\n\t\t\t$editorName = ($panelName+\"GraphEd\");\n animCurveEditor -e \n -displayKeys 1\n -displayTangents 0\n -displayActiveKeys 0\n -displayActiveKeyTangents 1\n -displayInfinities 0\n -autoFit 0\n -snapTime \"integer\" \n -snapValue \"none\" \n -showResults \"off\" \n -showBufferCurves \"off\" \n -smoothness \"fine\" \n"
+ + " -resultSamples 1.25\n -resultScreenSamples 0\n -resultUpdate \"delayed\" \n -showUpstreamCurves 1\n -stackedCurves 0\n -stackedCurvesMin -1\n -stackedCurvesMax 1\n -stackedCurvesSpace 0.2\n -displayNormalized 0\n -preSelectionHighlight 0\n -constrainDrag 0\n -classicMode 1\n $editorName;\n\t\t}\n\t} else {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Graph Editor\")) -mbv $menusOkayInPanels $panelName;\n\n\t\t\t$editorName = ($panelName+\"OutlineEd\");\n outlinerEditor -e \n -showShapes 1\n -showReferenceNodes 0\n -showReferenceMembers 0\n -showAttributes 1\n -showConnected 1\n -showAnimCurvesOnly 1\n -showMuteInfo 0\n -organizeByLayer 1\n -showAnimLayerWeight 1\n -autoExpandLayers 1\n"
+ + " -autoExpand 1\n -showDagOnly 0\n -showAssets 1\n -showContainedOnly 0\n -showPublishedAsConnected 0\n -showContainerContents 0\n -ignoreDagHierarchy 0\n -expandConnections 1\n -showUpstreamCurves 1\n -showUnitlessCurves 1\n -showCompounds 0\n -showLeafs 1\n -showNumericAttrsOnly 1\n -highlightActive 0\n -autoSelectNewObjects 1\n -doNotSelectNewObjects 0\n -dropIsParent 1\n -transmitFilters 1\n -setFilter \"0\" \n -showSetMembers 0\n -allowMultiSelection 1\n -alwaysToggleSelect 0\n -directSelect 0\n -displayMode \"DAG\" \n -expandObjects 0\n -setsIgnoreFilters 1\n -containersIgnoreFilters 0\n -editAttrName 0\n -showAttrValues 0\n"
+ + " -highlightSecondary 0\n -showUVAttrsOnly 0\n -showTextureNodesOnly 0\n -attrAlphaOrder \"default\" \n -animLayerFilterOptions \"allAffecting\" \n -sortOrder \"none\" \n -longNames 0\n -niceNames 1\n -showNamespace 1\n -showPinIcons 1\n -mapMotionTrails 1\n -ignoreHiddenAttribute 0\n -ignoreOutlinerColor 0\n $editorName;\n\n\t\t\t$editorName = ($panelName+\"GraphEd\");\n animCurveEditor -e \n -displayKeys 1\n -displayTangents 0\n -displayActiveKeys 0\n -displayActiveKeyTangents 1\n -displayInfinities 0\n -autoFit 0\n -snapTime \"integer\" \n -snapValue \"none\" \n -showResults \"off\" \n -showBufferCurves \"off\" \n -smoothness \"fine\" \n -resultSamples 1.25\n -resultScreenSamples 0\n"
+ + " -resultUpdate \"delayed\" \n -showUpstreamCurves 1\n -stackedCurves 0\n -stackedCurvesMin -1\n -stackedCurvesMax 1\n -stackedCurvesSpace 0.2\n -displayNormalized 0\n -preSelectionHighlight 0\n -constrainDrag 0\n -classicMode 1\n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"dopeSheetPanel\" (localizedPanelLabel(\"Dope Sheet\")) `;\n\tif (\"\" == $panelName) {\n\t\tif ($useSceneConfig) {\n\t\t\t$panelName = `scriptedPanel -unParent -type \"dopeSheetPanel\" -l (localizedPanelLabel(\"Dope Sheet\")) -mbv $menusOkayInPanels `;\n\n\t\t\t$editorName = ($panelName+\"OutlineEd\");\n outlinerEditor -e \n -showShapes 1\n -showReferenceNodes 0\n -showReferenceMembers 0\n -showAttributes 1\n -showConnected 1\n -showAnimCurvesOnly 1\n"
+ + " -showMuteInfo 0\n -organizeByLayer 1\n -showAnimLayerWeight 1\n -autoExpandLayers 1\n -autoExpand 0\n -showDagOnly 0\n -showAssets 1\n -showContainedOnly 0\n -showPublishedAsConnected 0\n -showContainerContents 0\n -ignoreDagHierarchy 0\n -expandConnections 1\n -showUpstreamCurves 1\n -showUnitlessCurves 0\n -showCompounds 1\n -showLeafs 1\n -showNumericAttrsOnly 1\n -highlightActive 0\n -autoSelectNewObjects 0\n -doNotSelectNewObjects 1\n -dropIsParent 1\n -transmitFilters 0\n -setFilter \"0\" \n -showSetMembers 0\n -allowMultiSelection 1\n -alwaysToggleSelect 0\n -directSelect 0\n -displayMode \"DAG\" \n -expandObjects 0\n"
+ + " -setsIgnoreFilters 1\n -containersIgnoreFilters 0\n -editAttrName 0\n -showAttrValues 0\n -highlightSecondary 0\n -showUVAttrsOnly 0\n -showTextureNodesOnly 0\n -attrAlphaOrder \"default\" \n -animLayerFilterOptions \"allAffecting\" \n -sortOrder \"none\" \n -longNames 0\n -niceNames 1\n -showNamespace 1\n -showPinIcons 0\n -mapMotionTrails 1\n -ignoreHiddenAttribute 0\n -ignoreOutlinerColor 0\n $editorName;\n\n\t\t\t$editorName = ($panelName+\"DopeSheetEd\");\n dopeSheetEditor -e \n -displayKeys 1\n -displayTangents 0\n -displayActiveKeys 0\n -displayActiveKeyTangents 0\n -displayInfinities 0\n -autoFit 0\n -snapTime \"integer\" \n -snapValue \"none\" \n -outliner \"dopeSheetPanel1OutlineEd\" \n"
+ + " -showSummary 1\n -showScene 0\n -hierarchyBelow 0\n -showTicks 1\n -selectionWindow 0 0 0 0 \n $editorName;\n\t\t}\n\t} else {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Dope Sheet\")) -mbv $menusOkayInPanels $panelName;\n\n\t\t\t$editorName = ($panelName+\"OutlineEd\");\n outlinerEditor -e \n -showShapes 1\n -showReferenceNodes 0\n -showReferenceMembers 0\n -showAttributes 1\n -showConnected 1\n -showAnimCurvesOnly 1\n -showMuteInfo 0\n -organizeByLayer 1\n -showAnimLayerWeight 1\n -autoExpandLayers 1\n -autoExpand 0\n -showDagOnly 0\n -showAssets 1\n -showContainedOnly 0\n -showPublishedAsConnected 0\n -showContainerContents 0\n -ignoreDagHierarchy 0\n"
+ + " -expandConnections 1\n -showUpstreamCurves 1\n -showUnitlessCurves 0\n -showCompounds 1\n -showLeafs 1\n -showNumericAttrsOnly 1\n -highlightActive 0\n -autoSelectNewObjects 0\n -doNotSelectNewObjects 1\n -dropIsParent 1\n -transmitFilters 0\n -setFilter \"0\" \n -showSetMembers 0\n -allowMultiSelection 1\n -alwaysToggleSelect 0\n -directSelect 0\n -displayMode \"DAG\" \n -expandObjects 0\n -setsIgnoreFilters 1\n -containersIgnoreFilters 0\n -editAttrName 0\n -showAttrValues 0\n -highlightSecondary 0\n -showUVAttrsOnly 0\n -showTextureNodesOnly 0\n -attrAlphaOrder \"default\" \n -animLayerFilterOptions \"allAffecting\" \n -sortOrder \"none\" \n"
+ + " -longNames 0\n -niceNames 1\n -showNamespace 1\n -showPinIcons 0\n -mapMotionTrails 1\n -ignoreHiddenAttribute 0\n -ignoreOutlinerColor 0\n $editorName;\n\n\t\t\t$editorName = ($panelName+\"DopeSheetEd\");\n dopeSheetEditor -e \n -displayKeys 1\n -displayTangents 0\n -displayActiveKeys 0\n -displayActiveKeyTangents 0\n -displayInfinities 0\n -autoFit 0\n -snapTime \"integer\" \n -snapValue \"none\" \n -outliner \"dopeSheetPanel1OutlineEd\" \n -showSummary 1\n -showScene 0\n -hierarchyBelow 0\n -showTicks 1\n -selectionWindow 0 0 0 0 \n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"clipEditorPanel\" (localizedPanelLabel(\"Trax Editor\")) `;\n"
+ + "\tif (\"\" == $panelName) {\n\t\tif ($useSceneConfig) {\n\t\t\t$panelName = `scriptedPanel -unParent -type \"clipEditorPanel\" -l (localizedPanelLabel(\"Trax Editor\")) -mbv $menusOkayInPanels `;\n\n\t\t\t$editorName = clipEditorNameFromPanel($panelName);\n clipEditor -e \n -displayKeys 0\n -displayTangents 0\n -displayActiveKeys 0\n -displayActiveKeyTangents 0\n -displayInfinities 0\n -autoFit 0\n -snapTime \"none\" \n -snapValue \"none\" \n -manageSequencer 0 \n $editorName;\n\t\t}\n\t} else {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Trax Editor\")) -mbv $menusOkayInPanels $panelName;\n\n\t\t\t$editorName = clipEditorNameFromPanel($panelName);\n clipEditor -e \n -displayKeys 0\n -displayTangents 0\n -displayActiveKeys 0\n -displayActiveKeyTangents 0\n -displayInfinities 0\n"
+ + " -autoFit 0\n -snapTime \"none\" \n -snapValue \"none\" \n -manageSequencer 0 \n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"sequenceEditorPanel\" (localizedPanelLabel(\"Camera Sequencer\")) `;\n\tif (\"\" == $panelName) {\n\t\tif ($useSceneConfig) {\n\t\t\t$panelName = `scriptedPanel -unParent -type \"sequenceEditorPanel\" -l (localizedPanelLabel(\"Camera Sequencer\")) -mbv $menusOkayInPanels `;\n\n\t\t\t$editorName = sequenceEditorNameFromPanel($panelName);\n clipEditor -e \n -displayKeys 0\n -displayTangents 0\n -displayActiveKeys 0\n -displayActiveKeyTangents 0\n -displayInfinities 0\n -autoFit 0\n -snapTime \"none\" \n -snapValue \"none\" \n -manageSequencer 1 \n $editorName;\n\t\t}\n\t} else {\n\t\t$label = `panel -q -label $panelName`;\n"
+ + "\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Camera Sequencer\")) -mbv $menusOkayInPanels $panelName;\n\n\t\t\t$editorName = sequenceEditorNameFromPanel($panelName);\n clipEditor -e \n -displayKeys 0\n -displayTangents 0\n -displayActiveKeys 0\n -displayActiveKeyTangents 0\n -displayInfinities 0\n -autoFit 0\n -snapTime \"none\" \n -snapValue \"none\" \n -manageSequencer 1 \n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"hyperGraphPanel\" (localizedPanelLabel(\"Hypergraph Hierarchy\")) `;\n\tif (\"\" == $panelName) {\n\t\tif ($useSceneConfig) {\n\t\t\t$panelName = `scriptedPanel -unParent -type \"hyperGraphPanel\" -l (localizedPanelLabel(\"Hypergraph Hierarchy\")) -mbv $menusOkayInPanels `;\n\n\t\t\t$editorName = ($panelName+\"HyperGraphEd\");\n hyperGraph -e \n -graphLayoutStyle \"hierarchicalLayout\" \n"
+ + " -orientation \"horiz\" \n -mergeConnections 0\n -zoom 1\n -animateTransition 0\n -showRelationships 1\n -showShapes 0\n -showDeformers 0\n -showExpressions 0\n -showConstraints 0\n -showConnectionFromSelected 0\n -showConnectionToSelected 0\n -showConstraintLabels 0\n -showUnderworld 0\n -showInvisible 0\n -transitionFrames 1\n -opaqueContainers 0\n -freeform 0\n -imagePosition 0 0 \n -imageScale 1\n -imageEnabled 0\n -graphType \"DAG\" \n -heatMapDisplay 0\n -updateSelection 1\n -updateNodeAdded 1\n -useDrawOverrideColor 0\n -limitGraphTraversal -1\n -range 0 0 \n -iconSize \"smallIcons\" \n -showCachedConnections 0\n"
+ + " $editorName;\n\t\t}\n\t} else {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Hypergraph Hierarchy\")) -mbv $menusOkayInPanels $panelName;\n\n\t\t\t$editorName = ($panelName+\"HyperGraphEd\");\n hyperGraph -e \n -graphLayoutStyle \"hierarchicalLayout\" \n -orientation \"horiz\" \n -mergeConnections 0\n -zoom 1\n -animateTransition 0\n -showRelationships 1\n -showShapes 0\n -showDeformers 0\n -showExpressions 0\n -showConstraints 0\n -showConnectionFromSelected 0\n -showConnectionToSelected 0\n -showConstraintLabels 0\n -showUnderworld 0\n -showInvisible 0\n -transitionFrames 1\n -opaqueContainers 0\n -freeform 0\n -imagePosition 0 0 \n -imageScale 1\n -imageEnabled 0\n -graphType \"DAG\" \n"
+ + " -heatMapDisplay 0\n -updateSelection 1\n -updateNodeAdded 1\n -useDrawOverrideColor 0\n -limitGraphTraversal -1\n -range 0 0 \n -iconSize \"smallIcons\" \n -showCachedConnections 0\n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"visorPanel\" (localizedPanelLabel(\"Visor\")) `;\n\tif (\"\" == $panelName) {\n\t\tif ($useSceneConfig) {\n\t\t\t$panelName = `scriptedPanel -unParent -type \"visorPanel\" -l (localizedPanelLabel(\"Visor\")) -mbv $menusOkayInPanels `;\n\t\t}\n\t} else {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Visor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"createNodePanel\" (localizedPanelLabel(\"Create Node\")) `;\n\tif (\"\" == $panelName) {\n\t\tif ($useSceneConfig) {\n"
+ + "\t\t\t$panelName = `scriptedPanel -unParent -type \"createNodePanel\" -l (localizedPanelLabel(\"Create Node\")) -mbv $menusOkayInPanels `;\n\t\t}\n\t} else {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Create Node\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"polyTexturePlacementPanel\" (localizedPanelLabel(\"UV Editor\")) `;\n\tif (\"\" == $panelName) {\n\t\tif ($useSceneConfig) {\n\t\t\t$panelName = `scriptedPanel -unParent -type \"polyTexturePlacementPanel\" -l (localizedPanelLabel(\"UV Editor\")) -mbv $menusOkayInPanels `;\n\t\t}\n\t} else {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"UV Editor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"renderWindowPanel\" (localizedPanelLabel(\"Render View\")) `;\n\tif (\"\" == $panelName) {\n"
+ + "\t\tif ($useSceneConfig) {\n\t\t\t$panelName = `scriptedPanel -unParent -type \"renderWindowPanel\" -l (localizedPanelLabel(\"Render View\")) -mbv $menusOkayInPanels `;\n\t\t}\n\t} else {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Render View\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"blendShapePanel\" (localizedPanelLabel(\"Blend Shape\")) `;\n\tif (\"\" == $panelName) {\n\t\tif ($useSceneConfig) {\n\t\t\tblendShapePanel -unParent -l (localizedPanelLabel(\"Blend Shape\")) -mbv $menusOkayInPanels ;\n\t\t}\n\t} else {\n\t\t$label = `panel -q -label $panelName`;\n\t\tblendShapePanel -edit -l (localizedPanelLabel(\"Blend Shape\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"dynRelEdPanel\" (localizedPanelLabel(\"Dynamic Relationships\")) `;\n\tif (\"\" == $panelName) {\n\t\tif ($useSceneConfig) {\n"
+ + "\t\t\t$panelName = `scriptedPanel -unParent -type \"dynRelEdPanel\" -l (localizedPanelLabel(\"Dynamic Relationships\")) -mbv $menusOkayInPanels `;\n\t\t}\n\t} else {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Dynamic Relationships\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"relationshipPanel\" (localizedPanelLabel(\"Relationship Editor\")) `;\n\tif (\"\" == $panelName) {\n\t\tif ($useSceneConfig) {\n\t\t\t$panelName = `scriptedPanel -unParent -type \"relationshipPanel\" -l (localizedPanelLabel(\"Relationship Editor\")) -mbv $menusOkayInPanels `;\n\t\t}\n\t} else {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Relationship Editor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"referenceEditorPanel\" (localizedPanelLabel(\"Reference Editor\")) `;\n"
+ + "\tif (\"\" == $panelName) {\n\t\tif ($useSceneConfig) {\n\t\t\t$panelName = `scriptedPanel -unParent -type \"referenceEditorPanel\" -l (localizedPanelLabel(\"Reference Editor\")) -mbv $menusOkayInPanels `;\n\t\t}\n\t} else {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Reference Editor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"componentEditorPanel\" (localizedPanelLabel(\"Component Editor\")) `;\n\tif (\"\" == $panelName) {\n\t\tif ($useSceneConfig) {\n\t\t\t$panelName = `scriptedPanel -unParent -type \"componentEditorPanel\" -l (localizedPanelLabel(\"Component Editor\")) -mbv $menusOkayInPanels `;\n\t\t}\n\t} else {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Component Editor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"dynPaintScriptedPanelType\" (localizedPanelLabel(\"Paint Effects\")) `;\n"
+ + "\tif (\"\" == $panelName) {\n\t\tif ($useSceneConfig) {\n\t\t\t$panelName = `scriptedPanel -unParent -type \"dynPaintScriptedPanelType\" -l (localizedPanelLabel(\"Paint Effects\")) -mbv $menusOkayInPanels `;\n\t\t}\n\t} else {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Paint Effects\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"scriptEditorPanel\" (localizedPanelLabel(\"Script Editor\")) `;\n\tif (\"\" == $panelName) {\n\t\tif ($useSceneConfig) {\n\t\t\t$panelName = `scriptedPanel -unParent -type \"scriptEditorPanel\" -l (localizedPanelLabel(\"Script Editor\")) -mbv $menusOkayInPanels `;\n\t\t}\n\t} else {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Script Editor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\tif ($useSceneConfig) {\n\t\tscriptedPanel -e -to $panelName;\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"profilerPanel\" (localizedPanelLabel(\"Profiler Tool\")) `;\n"
+ + "\tif (\"\" == $panelName) {\n\t\tif ($useSceneConfig) {\n\t\t\t$panelName = `scriptedPanel -unParent -type \"profilerPanel\" -l (localizedPanelLabel(\"Profiler Tool\")) -mbv $menusOkayInPanels `;\n\t\t}\n\t} else {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Profiler Tool\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"hyperShadePanel\" (localizedPanelLabel(\"Hypershade\")) `;\n\tif (\"\" == $panelName) {\n\t\tif ($useSceneConfig) {\n\t\t\t$panelName = `scriptedPanel -unParent -type \"hyperShadePanel\" -l (localizedPanelLabel(\"Hypershade\")) -mbv $menusOkayInPanels `;\n\t\t}\n\t} else {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Hypershade\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"nodeEditorPanel\" (localizedPanelLabel(\"Node Editor\")) `;\n"
+ + "\tif (\"\" == $panelName) {\n\t\tif ($useSceneConfig) {\n\t\t\t$panelName = `scriptedPanel -unParent -type \"nodeEditorPanel\" -l (localizedPanelLabel(\"Node Editor\")) -mbv $menusOkayInPanels `;\n\n\t\t\t$editorName = ($panelName+\"NodeEditorEd\");\n nodeEditor -e \n -allAttributes 0\n -allNodes 0\n -autoSizeNodes 1\n -consistentNameSize 1\n -createNodeCommand \"nodeEdCreateNodeCommand\" \n -defaultPinnedState 0\n -additiveGraphingMode 1\n -settingsChangedCallback \"nodeEdSyncControls\" \n -traversalDepthLimit -1\n -keyPressCommand \"nodeEdKeyPressCommand\" \n -nodeTitleMode \"name\" \n -gridSnap 0\n -gridVisibility 1\n -popupMenuScript \"nodeEdBuildPanelMenus\" \n -showNamespace 1\n -showShapes 1\n -showSGShapes 0\n -showTransforms 1\n -useAssets 1\n -syncedSelection 1\n"
+ + " -extendToShapes 1\n -activeTab -1\n -editorMode \"default\" \n $editorName;\n\t\t}\n\t} else {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Node Editor\")) -mbv $menusOkayInPanels $panelName;\n\n\t\t\t$editorName = ($panelName+\"NodeEditorEd\");\n nodeEditor -e \n -allAttributes 0\n -allNodes 0\n -autoSizeNodes 1\n -consistentNameSize 1\n -createNodeCommand \"nodeEdCreateNodeCommand\" \n -defaultPinnedState 0\n -additiveGraphingMode 1\n -settingsChangedCallback \"nodeEdSyncControls\" \n -traversalDepthLimit -1\n -keyPressCommand \"nodeEdKeyPressCommand\" \n -nodeTitleMode \"name\" \n -gridSnap 0\n -gridVisibility 1\n -popupMenuScript \"nodeEdBuildPanelMenus\" \n -showNamespace 1\n -showShapes 1\n -showSGShapes 0\n"
+ + " -showTransforms 1\n -useAssets 1\n -syncedSelection 1\n -extendToShapes 1\n -activeTab -1\n -editorMode \"default\" \n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\tif ($useSceneConfig) {\n string $configName = `getPanel -cwl (localizedPanelLabel(\"Current Layout\"))`;\n if (\"\" != $configName) {\n\t\t\tpanelConfiguration -edit -label (localizedPanelLabel(\"Current Layout\")) \n\t\t\t\t-defaultImage \"vacantCell.xP:/\"\n\t\t\t\t-image \"\"\n\t\t\t\t-sc false\n\t\t\t\t-configString \"global string $gMainPane; paneLayout -e -cn \\\"vertical2\\\" -ps 1 21 100 -ps 2 79 100 $gMainPane;\"\n\t\t\t\t-removeAllPanels\n\t\t\t\t-ap false\n\t\t\t\t\t(localizedPanelLabel(\"Outliner\")) \n\t\t\t\t\t\"outlinerPanel\"\n"
+ + "\t\t\t\t\t\"$panelName = `outlinerPanel -unParent -l (localizedPanelLabel(\\\"Outliner\\\")) -mbv $menusOkayInPanels `;\\n$editorName = $panelName;\\noutlinerEditor -e \\n -docTag \\\"isolOutln_fromSeln\\\" \\n -showShapes 0\\n -showReferenceNodes 1\\n -showReferenceMembers 1\\n -showAttributes 0\\n -showConnected 0\\n -showAnimCurvesOnly 0\\n -showMuteInfo 0\\n -organizeByLayer 1\\n -showAnimLayerWeight 1\\n -autoExpandLayers 1\\n -autoExpand 0\\n -showDagOnly 0\\n -showAssets 1\\n -showContainedOnly 1\\n -showPublishedAsConnected 0\\n -showContainerContents 1\\n -ignoreDagHierarchy 0\\n -expandConnections 0\\n -showUpstreamCurves 1\\n -showUnitlessCurves 1\\n -showCompounds 1\\n -showLeafs 1\\n -showNumericAttrsOnly 0\\n -highlightActive 1\\n -autoSelectNewObjects 0\\n -doNotSelectNewObjects 0\\n -dropIsParent 1\\n -transmitFilters 0\\n -setFilter \\\"defaultSetFilter\\\" \\n -showSetMembers 1\\n -allowMultiSelection 1\\n -alwaysToggleSelect 0\\n -directSelect 0\\n -displayMode \\\"DAG\\\" \\n -expandObjects 0\\n -setsIgnoreFilters 1\\n -containersIgnoreFilters 0\\n -editAttrName 0\\n -showAttrValues 0\\n -highlightSecondary 0\\n -showUVAttrsOnly 0\\n -showTextureNodesOnly 0\\n -attrAlphaOrder \\\"default\\\" \\n -animLayerFilterOptions \\\"allAffecting\\\" \\n -sortOrder \\\"none\\\" \\n -longNames 0\\n -niceNames 1\\n -showNamespace 1\\n -showPinIcons 0\\n -mapMotionTrails 0\\n -ignoreHiddenAttribute 0\\n -ignoreOutlinerColor 0\\n $editorName\"\n"
+ + "\t\t\t\t\t\"outlinerPanel -edit -l (localizedPanelLabel(\\\"Outliner\\\")) -mbv $menusOkayInPanels $panelName;\\n$editorName = $panelName;\\noutlinerEditor -e \\n -docTag \\\"isolOutln_fromSeln\\\" \\n -showShapes 0\\n -showReferenceNodes 1\\n -showReferenceMembers 1\\n -showAttributes 0\\n -showConnected 0\\n -showAnimCurvesOnly 0\\n -showMuteInfo 0\\n -organizeByLayer 1\\n -showAnimLayerWeight 1\\n -autoExpandLayers 1\\n -autoExpand 0\\n -showDagOnly 0\\n -showAssets 1\\n -showContainedOnly 1\\n -showPublishedAsConnected 0\\n -showContainerContents 1\\n -ignoreDagHierarchy 0\\n -expandConnections 0\\n -showUpstreamCurves 1\\n -showUnitlessCurves 1\\n -showCompounds 1\\n -showLeafs 1\\n -showNumericAttrsOnly 0\\n -highlightActive 1\\n -autoSelectNewObjects 0\\n -doNotSelectNewObjects 0\\n -dropIsParent 1\\n -transmitFilters 0\\n -setFilter \\\"defaultSetFilter\\\" \\n -showSetMembers 1\\n -allowMultiSelection 1\\n -alwaysToggleSelect 0\\n -directSelect 0\\n -displayMode \\\"DAG\\\" \\n -expandObjects 0\\n -setsIgnoreFilters 1\\n -containersIgnoreFilters 0\\n -editAttrName 0\\n -showAttrValues 0\\n -highlightSecondary 0\\n -showUVAttrsOnly 0\\n -showTextureNodesOnly 0\\n -attrAlphaOrder \\\"default\\\" \\n -animLayerFilterOptions \\\"allAffecting\\\" \\n -sortOrder \\\"none\\\" \\n -longNames 0\\n -niceNames 1\\n -showNamespace 1\\n -showPinIcons 0\\n -mapMotionTrails 0\\n -ignoreHiddenAttribute 0\\n -ignoreOutlinerColor 0\\n $editorName\"\n"
+ + "\t\t\t\t-ap false\n\t\t\t\t\t(localizedPanelLabel(\"Persp View\")) \n\t\t\t\t\t\"modelPanel\"\n"
+ + "\t\t\t\t\t\"$panelName = `modelPanel -unParent -l (localizedPanelLabel(\\\"Persp View\\\")) -mbv $menusOkayInPanels `;\\n$editorName = $panelName;\\nmodelEditor -e \\n -cam `findStartUpCamera persp` \\n -useInteractiveMode 0\\n -displayLights \\\"default\\\" \\n -displayAppearance \\\"smoothShaded\\\" \\n -activeOnly 0\\n -ignorePanZoom 0\\n -wireframeOnShaded 0\\n -headsUpDisplay 1\\n -holdOuts 1\\n -selectionHiliteDisplay 1\\n -useDefaultMaterial 0\\n -bufferMode \\\"double\\\" \\n -twoSidedLighting 0\\n -backfaceCulling 0\\n -xray 0\\n -jointXray 0\\n -activeComponentsXray 0\\n -displayTextures 0\\n -smoothWireframe 0\\n -lineWidth 1.586047\\n -textureAnisotropic 0\\n -textureHilight 1\\n -textureSampling 2\\n -textureDisplay \\\"modulate\\\" \\n -textureMaxSize 16384\\n -fogging 0\\n -fogSource \\\"fragment\\\" \\n -fogMode \\\"linear\\\" \\n -fogStart 0\\n -fogEnd 100\\n -fogDensity 0.1\\n -fogColor 0.5 0.5 0.5 1 \\n -depthOfFieldPreview 1\\n -maxConstantTransparency 1\\n -rendererName \\\"base_OpenGL_Renderer\\\" \\n -objectFilterShowInHUD 1\\n -isFiltered 0\\n -colorResolution 256 256 \\n -bumpResolution 512 512 \\n -textureCompression 0\\n -transparencyAlgorithm \\\"frontAndBackCull\\\" \\n -transpInShadows 0\\n -cullingOverride \\\"none\\\" \\n -lowQualityLighting 0\\n -maximumNumHardwareLights 1\\n -occlusionCulling 0\\n -shadingModel 0\\n -useBaseRenderer 0\\n -useReducedRenderer 0\\n -smallObjectCulling 0\\n -smallObjectThreshold -1 \\n -interactiveDisableShadows 0\\n -interactiveBackFaceCull 0\\n -sortTransparent 1\\n -nurbsCurves 1\\n -nurbsSurfaces 1\\n -polymeshes 1\\n -subdivSurfaces 1\\n -planes 1\\n -lights 1\\n -cameras 1\\n -controlVertices 1\\n -hulls 1\\n -grid 1\\n -imagePlane 1\\n -joints 1\\n -ikHandles 1\\n -deformers 1\\n -dynamics 1\\n -particleInstancers 1\\n -fluids 1\\n -hairSystems 1\\n -follicles 1\\n -nCloths 1\\n -nParticles 1\\n -nRigids 1\\n -dynamicConstraints 1\\n -locators 1\\n -manipulators 1\\n -pluginShapes 1\\n -dimensions 1\\n -handles 1\\n -pivots 1\\n -textures 1\\n -strokes 1\\n -motionTrails 1\\n -clipGhosts 1\\n -greasePencils 1\\n -shadows 0\\n -captureSequenceNumber -1\\n -width 1020\\n -height 889\\n -sceneRenderFilter 0\\n $editorName;\\nmodelEditor -e -viewSelected 0 $editorName;\\nmodelEditor -e \\n -pluginObjects \\\"gpuCacheDisplayFilter\\\" 1 \\n $editorName\"\n"
+ + "\t\t\t\t\t\"modelPanel -edit -l (localizedPanelLabel(\\\"Persp View\\\")) -mbv $menusOkayInPanels $panelName;\\n$editorName = $panelName;\\nmodelEditor -e \\n -cam `findStartUpCamera persp` \\n -useInteractiveMode 0\\n -displayLights \\\"default\\\" \\n -displayAppearance \\\"smoothShaded\\\" \\n -activeOnly 0\\n -ignorePanZoom 0\\n -wireframeOnShaded 0\\n -headsUpDisplay 1\\n -holdOuts 1\\n -selectionHiliteDisplay 1\\n -useDefaultMaterial 0\\n -bufferMode \\\"double\\\" \\n -twoSidedLighting 0\\n -backfaceCulling 0\\n -xray 0\\n -jointXray 0\\n -activeComponentsXray 0\\n -displayTextures 0\\n -smoothWireframe 0\\n -lineWidth 1.586047\\n -textureAnisotropic 0\\n -textureHilight 1\\n -textureSampling 2\\n -textureDisplay \\\"modulate\\\" \\n -textureMaxSize 16384\\n -fogging 0\\n -fogSource \\\"fragment\\\" \\n -fogMode \\\"linear\\\" \\n -fogStart 0\\n -fogEnd 100\\n -fogDensity 0.1\\n -fogColor 0.5 0.5 0.5 1 \\n -depthOfFieldPreview 1\\n -maxConstantTransparency 1\\n -rendererName \\\"base_OpenGL_Renderer\\\" \\n -objectFilterShowInHUD 1\\n -isFiltered 0\\n -colorResolution 256 256 \\n -bumpResolution 512 512 \\n -textureCompression 0\\n -transparencyAlgorithm \\\"frontAndBackCull\\\" \\n -transpInShadows 0\\n -cullingOverride \\\"none\\\" \\n -lowQualityLighting 0\\n -maximumNumHardwareLights 1\\n -occlusionCulling 0\\n -shadingModel 0\\n -useBaseRenderer 0\\n -useReducedRenderer 0\\n -smallObjectCulling 0\\n -smallObjectThreshold -1 \\n -interactiveDisableShadows 0\\n -interactiveBackFaceCull 0\\n -sortTransparent 1\\n -nurbsCurves 1\\n -nurbsSurfaces 1\\n -polymeshes 1\\n -subdivSurfaces 1\\n -planes 1\\n -lights 1\\n -cameras 1\\n -controlVertices 1\\n -hulls 1\\n -grid 1\\n -imagePlane 1\\n -joints 1\\n -ikHandles 1\\n -deformers 1\\n -dynamics 1\\n -particleInstancers 1\\n -fluids 1\\n -hairSystems 1\\n -follicles 1\\n -nCloths 1\\n -nParticles 1\\n -nRigids 1\\n -dynamicConstraints 1\\n -locators 1\\n -manipulators 1\\n -pluginShapes 1\\n -dimensions 1\\n -handles 1\\n -pivots 1\\n -textures 1\\n -strokes 1\\n -motionTrails 1\\n -clipGhosts 1\\n -greasePencils 1\\n -shadows 0\\n -captureSequenceNumber -1\\n -width 1020\\n -height 889\\n -sceneRenderFilter 0\\n $editorName;\\nmodelEditor -e -viewSelected 0 $editorName;\\nmodelEditor -e \\n -pluginObjects \\\"gpuCacheDisplayFilter\\\" 1 \\n $editorName\"\n"
+ + "\t\t\t\t$configName;\n\n setNamedPanelLayout (localizedPanelLabel(\"Current Layout\"));\n }\n\n panelHistory -e -clear mainPanelHistory;\n setFocus `paneLayout -q -p1 $gMainPane`;\n sceneUIReplacement -deleteRemaining;\n sceneUIReplacement -clear;\n\t}\n\n\ngrid -spacing 5 -size 12 -divisions 5 -displayAxes yes -displayGridLines yes -displayDivisionLines yes -displayPerspectiveLabels no -displayOrthographicLabels no -displayAxesBold yes -perspectiveLabelPosition axis -orthographicLabelPosition edge;\nviewManip -drawCompass 0 -compassAngle 0 -frontParameters \"\" -homeParameters \"\" -selectionLockParameters \"\";\n}\n");
+ setAttr ".st" 3;
+createNode script -n "sceneConfigurationScriptNode";
+ rename -uid "637988A5-49F9-71E4-90EA-6EBD41136950";
+ setAttr ".b" -type "string" "playbackOptions -min 1.25 -max 150 -ast 1.25 -aet 250 ";
+ setAttr ".st" 6;
+createNode shadingEngine -n "YellowSG";
+ rename -uid "94F5FF8A-4E60-A927-C1D8-3C9160F807C5";
+ setAttr ".ihi" 0;
+ setAttr -s 2 ".dsm";
+ setAttr ".ro" yes;
+createNode materialInfo -n "materialInfo1";
+ rename -uid "A14C8E37-4749-2CCB-3C00-8FBA752FC2F6";
+createNode shadingEngine -n "GreenSG";
+ rename -uid "B30D1CD5-4348-831D-6E01-458C9795AAAA";
+ setAttr ".ihi" 0;
+ setAttr ".ro" yes;
+createNode materialInfo -n "materialInfo2";
+ rename -uid "00C3406B-4E20-B8AB-C4F3-A0831E35AC30";
+createNode groupId -n "groupId5";
+ rename -uid "68D53D9F-4180-C102-1E9A-0DB9846E04D1";
+ setAttr ".ihi" 0;
+createNode shadingEngine -n "BlueSG";
+ rename -uid "CD745607-4789-25A3-D98B-62AC5BE52C21";
+ setAttr ".ihi" 0;
+ setAttr ".ro" yes;
+createNode materialInfo -n "materialInfo3";
+ rename -uid "DB17C3FD-4CC3-C0D8-9041-AA9A9180F5A7";
+createNode groupId -n "groupId6";
+ rename -uid "EB7B63DA-4483-865B-3D40-0794C28D2EA6";
+ setAttr ".ihi" 0;
+createNode groupParts -n "groupParts2";
+ rename -uid "FE790603-4E74-E037-FF7C-F383C1F4EDB5";
+ setAttr ".ihi" 0;
+ setAttr ".ic" -type "componentList" 1 "sf[0][0]";
+select -ne :time1;
+ setAttr ".o" 1.25;
+ setAttr ".unw" 1.25;
+select -ne :hardwareRenderingGlobals;
+ setAttr ".otfna" -type "stringArray" 22 "NURBS Curves" "NURBS Surfaces" "Polygons" "Subdiv Surface" "Particles" "Particle Instance" "Fluids" "Strokes" "Image Planes" "UI" "Lights" "Cameras" "Locators" "Joints" "IK Handles" "Deformers" "Motion Trails" "Components" "Hair Systems" "Follicles" "Misc. UI" "Ornaments" ;
+ setAttr ".otfva" -type "Int32Array" 22 0 1 1 1 1 1
+ 1 1 1 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 ;
+ setAttr ".fprt" yes;
+select -ne :renderPartition;
+ setAttr -s 5 ".st";
+select -ne :renderGlobalsList1;
+select -ne :defaultShaderList1;
+ setAttr -s 7 ".s";
+select -ne :postProcessList1;
+ setAttr -s 2 ".p";
+select -ne :defaultRenderUtilityList1;
+select -ne :defaultRenderingList1;
+select -ne :initialShadingGroup;
+ setAttr -s 2 ".dsm";
+ setAttr ".ro" yes;
+ setAttr -s 4 ".gn";
+select -ne :initialParticleSE;
+ setAttr ".ro" yes;
+select -ne :defaultResolution;
+ setAttr ".pa" 1;
+select -ne :hardwareRenderGlobals;
+ setAttr ".ctrs" 256;
+ setAttr ".btrs" 512;
+connectAttr "makeNurbSphere1.os" "|lyt_main_GRP|lyt_root_CTRL_GRP|lyt_root_CTRL|lyt_root_CTRL.cr"
+ ;
+connectAttr "aim_grp_aimConstraint1.crx" "aim_grp.rx";
+connectAttr "aim_grp_aimConstraint1.cry" "aim_grp.ry";
+connectAttr "aim_grp_aimConstraint1.crz" "aim_grp.rz";
+connectAttr "aim_grp.pim" "aim_grp_aimConstraint1.cpim";
+connectAttr "aim_grp.t" "aim_grp_aimConstraint1.ct";
+connectAttr "aim_grp.rp" "aim_grp_aimConstraint1.crp";
+connectAttr "aim_grp.rpt" "aim_grp_aimConstraint1.crt";
+connectAttr "aim_grp.ro" "aim_grp_aimConstraint1.cro";
+connectAttr "lyt_end_CTRL.t" "aim_grp_aimConstraint1.tg[0].tt";
+connectAttr "lyt_end_CTRL.rp" "aim_grp_aimConstraint1.tg[0].trp";
+connectAttr "lyt_end_CTRL.rpt" "aim_grp_aimConstraint1.tg[0].trt";
+connectAttr "lyt_end_CTRL.pm" "aim_grp_aimConstraint1.tg[0].tpm";
+connectAttr "aim_grp_aimConstraint1.w0" "aim_grp_aimConstraint1.tg[0].tw";
+connectAttr "lyt_orient_CTRL_GRP_pointConstraint1.ctx" "lyt_orient_CTRL_GRP.tx";
+connectAttr "lyt_orient_CTRL_GRP_pointConstraint1.cty" "lyt_orient_CTRL_GRP.ty";
+connectAttr "lyt_orient_CTRL_GRP_pointConstraint1.ctz" "lyt_orient_CTRL_GRP.tz";
+connectAttr "aim_grp.rx" "lyt_orient_CTRL_GRP.rx";
+connectAttr "aim_grp.ry" "lyt_orient_CTRL_GRP.ry";
+connectAttr "aim_grp.rz" "lyt_orient_CTRL_GRP.rz";
+connectAttr "groupId1.id" "lyt_orient_CTRLShape.iog.og[0].gid";
+connectAttr "groupId5.id" "lyt_orient_CTRLShape.iog.og[1].gid";
+connectAttr "GreenSG.mwc" "lyt_orient_CTRLShape.iog.og[1].gco";
+connectAttr "groupId2.id" "lyt_orient_CTRLShape.ciog.cog[0].cgid";
+connectAttr "groupId3.id" "lyt_orient_CTRLShape1.iog.og[0].gid";
+connectAttr "groupId6.id" "lyt_orient_CTRLShape1.iog.og[1].gid";
+connectAttr "BlueSG.mwc" "lyt_orient_CTRLShape1.iog.og[1].gco";
+connectAttr "groupParts2.og" "lyt_orient_CTRLShape1.cr";
+connectAttr "groupId4.id" "lyt_orient_CTRLShape1.ciog.cog[0].cgid";
+connectAttr "lyt_orient_CTRL_GRP.pim" "lyt_orient_CTRL_GRP_pointConstraint1.cpim"
+ ;
+connectAttr "lyt_orient_CTRL_GRP.rp" "lyt_orient_CTRL_GRP_pointConstraint1.crp";
+connectAttr "lyt_orient_CTRL_GRP.rpt" "lyt_orient_CTRL_GRP_pointConstraint1.crt"
+ ;
+connectAttr "|lyt_main_GRP|lyt_root_CTRL_GRP|lyt_root_CTRL.t" "lyt_orient_CTRL_GRP_pointConstraint1.tg[0].tt"
+ ;
+connectAttr "|lyt_main_GRP|lyt_root_CTRL_GRP|lyt_root_CTRL.rp" "lyt_orient_CTRL_GRP_pointConstraint1.tg[0].trp"
+ ;
+connectAttr "|lyt_main_GRP|lyt_root_CTRL_GRP|lyt_root_CTRL.rpt" "lyt_orient_CTRL_GRP_pointConstraint1.tg[0].trt"
+ ;
+connectAttr "|lyt_main_GRP|lyt_root_CTRL_GRP|lyt_root_CTRL.pm" "lyt_orient_CTRL_GRP_pointConstraint1.tg[0].tpm"
+ ;
+connectAttr "lyt_orient_CTRL_GRP_pointConstraint1.w0" "lyt_orient_CTRL_GRP_pointConstraint1.tg[0].tw"
+ ;
+connectAttr "lyt_end_CTRL.t" "lyt_orient_CTRL_GRP_pointConstraint1.tg[1].tt";
+connectAttr "lyt_end_CTRL.rp" "lyt_orient_CTRL_GRP_pointConstraint1.tg[1].trp";
+connectAttr "lyt_end_CTRL.rpt" "lyt_orient_CTRL_GRP_pointConstraint1.tg[1].trt";
+connectAttr "lyt_end_CTRL.pm" "lyt_orient_CTRL_GRP_pointConstraint1.tg[1].tpm";
+connectAttr "lyt_orient_CTRL_GRP_pointConstraint1.w1" "lyt_orient_CTRL_GRP_pointConstraint1.tg[1].tw"
+ ;
+connectAttr "lyt_JNT_pointConstraint1.ctx" "lyt_JNT.tx";
+connectAttr "lyt_JNT_pointConstraint1.cty" "lyt_JNT.ty";
+connectAttr "lyt_JNT_pointConstraint1.ctz" "lyt_JNT.tz";
+connectAttr "unitConversion5.o" "lyt_JNT.rx";
+connectAttr "unitConversion6.o" "lyt_JNT.ry";
+connectAttr "unitConversion7.o" "lyt_JNT.rz";
+connectAttr "lyt_JNT.pim" "lyt_JNT_pointConstraint1.cpim";
+connectAttr "lyt_JNT.rp" "lyt_JNT_pointConstraint1.crp";
+connectAttr "lyt_JNT.rpt" "lyt_JNT_pointConstraint1.crt";
+connectAttr "|lyt_main_GRP|lyt_root_CTRL_GRP|lyt_root_CTRL.t" "lyt_JNT_pointConstraint1.tg[0].tt"
+ ;
+connectAttr "|lyt_main_GRP|lyt_root_CTRL_GRP|lyt_root_CTRL.rp" "lyt_JNT_pointConstraint1.tg[0].trp"
+ ;
+connectAttr "|lyt_main_GRP|lyt_root_CTRL_GRP|lyt_root_CTRL.rpt" "lyt_JNT_pointConstraint1.tg[0].trt"
+ ;
+connectAttr "|lyt_main_GRP|lyt_root_CTRL_GRP|lyt_root_CTRL.pm" "lyt_JNT_pointConstraint1.tg[0].tpm"
+ ;
+connectAttr "lyt_JNT_pointConstraint1.w0" "lyt_JNT_pointConstraint1.tg[0].tw";
+relationship "link" ":lightLinker1" ":initialShadingGroup.message" ":defaultLightSet.message";
+relationship "link" ":lightLinker1" ":initialParticleSE.message" ":defaultLightSet.message";
+relationship "link" ":lightLinker1" "YellowSG.message" ":defaultLightSet.message";
+relationship "link" ":lightLinker1" "GreenSG.message" ":defaultLightSet.message";
+relationship "link" ":lightLinker1" "BlueSG.message" ":defaultLightSet.message";
+relationship "shadowLink" ":lightLinker1" ":initialShadingGroup.message" ":defaultLightSet.message";
+relationship "shadowLink" ":lightLinker1" ":initialParticleSE.message" ":defaultLightSet.message";
+relationship "shadowLink" ":lightLinker1" "YellowSG.message" ":defaultLightSet.message";
+relationship "shadowLink" ":lightLinker1" "GreenSG.message" ":defaultLightSet.message";
+relationship "shadowLink" ":lightLinker1" "BlueSG.message" ":defaultLightSet.message";
+connectAttr "layerManager.dli[0]" "defaultLayer.id";
+connectAttr "renderLayerManager.rlmi[0]" "defaultRenderLayer.rlid";
+connectAttr "makeNurbPlane1.os" "transformGeometry1.ig";
+connectAttr "transformGeometry1.og" "groupParts1.ig";
+connectAttr "groupId3.id" "groupParts1.gi";
+connectAttr "unitConversion1.o" "lyt_orient_PMA.i3[0].i3x";
+connectAttr "unitConversion2.o" "lyt_orient_PMA.i3[0].i3y";
+connectAttr "unitConversion3.o" "lyt_orient_PMA.i3[0].i3z";
+connectAttr "unitConversion4.o" "lyt_orient_PMA.i3[1].i3x";
+connectAttr "aim_grp.rx" "unitConversion1.i";
+connectAttr "aim_grp.ry" "unitConversion2.i";
+connectAttr "aim_grp.rz" "unitConversion3.i";
+connectAttr "lyt_orient_CTRL.rx" "unitConversion4.i";
+connectAttr "lyt_orient_PMA.o3x" "unitConversion5.i";
+connectAttr "lyt_orient_PMA.o3y" "unitConversion6.i";
+connectAttr "lyt_orient_PMA.o3z" "unitConversion7.i";
+connectAttr "unitConversion2.msg" "MayaNodeEditorSavedTabsInfo.tgi[0].ni[0].dn";
+connectAttr "lyt_main_GRP.msg" "MayaNodeEditorSavedTabsInfo.tgi[0].ni[1].dn";
+connectAttr "lyt_orient_CTRLShape1.msg" "MayaNodeEditorSavedTabsInfo.tgi[0].ni[3].dn"
+ ;
+connectAttr "unitConversion3.msg" "MayaNodeEditorSavedTabsInfo.tgi[0].ni[4].dn";
+connectAttr "unitConversion4.msg" "MayaNodeEditorSavedTabsInfo.tgi[0].ni[5].dn";
+connectAttr "lyt_orient_CTRL.msg" "MayaNodeEditorSavedTabsInfo.tgi[0].ni[6].dn";
+connectAttr "lyt_orient_CTRLShape.msg" "MayaNodeEditorSavedTabsInfo.tgi[0].ni[7].dn"
+ ;
+connectAttr "unitConversion5.msg" "MayaNodeEditorSavedTabsInfo.tgi[0].ni[9].dn";
+connectAttr "unitConversion1.msg" "MayaNodeEditorSavedTabsInfo.tgi[0].ni[10].dn"
+ ;
+connectAttr "lyt_orient_PMA.msg" "MayaNodeEditorSavedTabsInfo.tgi[0].ni[11].dn";
+connectAttr "unitConversion7.msg" "MayaNodeEditorSavedTabsInfo.tgi[0].ni[12].dn"
+ ;
+connectAttr "unitConversion6.msg" "MayaNodeEditorSavedTabsInfo.tgi[0].ni[13].dn"
+ ;
+connectAttr "aim_grp.msg" "MayaNodeEditorSavedTabsInfo.tgi[0].ni[14].dn";
+connectAttr "lyt_JNT.msg" "MayaNodeEditorSavedTabsInfo.tgi[0].ni[15].dn";
+connectAttr "Yellow.oc" "YellowSG.ss";
+connectAttr "|lyt_main_GRP|lyt_root_CTRL_GRP|lyt_root_CTRL|lyt_root_CTRL.iog" "YellowSG.dsm"
+ -na;
+connectAttr "|lyt_main_GRP|lyt_end_CTRL_GRP|lyt_end_CTRL|lyt_root_CTRL.iog" "YellowSG.dsm"
+ -na;
+connectAttr "YellowSG.msg" "materialInfo1.sg";
+connectAttr "Yellow.msg" "materialInfo1.m";
+connectAttr "Green.oc" "GreenSG.ss";
+connectAttr "groupId5.msg" "GreenSG.gn" -na;
+connectAttr "lyt_orient_CTRLShape.iog.og[1]" "GreenSG.dsm" -na;
+connectAttr "GreenSG.msg" "materialInfo2.sg";
+connectAttr "Green.msg" "materialInfo2.m";
+connectAttr "Blue.oc" "BlueSG.ss";
+connectAttr "groupId6.msg" "BlueSG.gn" -na;
+connectAttr "lyt_orient_CTRLShape1.iog.og[1]" "BlueSG.dsm" -na;
+connectAttr "BlueSG.msg" "materialInfo3.sg";
+connectAttr "Blue.msg" "materialInfo3.m";
+connectAttr "groupParts1.og" "groupParts2.ig";
+connectAttr "groupId6.id" "groupParts2.gi";
+connectAttr "YellowSG.pa" ":renderPartition.st" -na;
+connectAttr "GreenSG.pa" ":renderPartition.st" -na;
+connectAttr "BlueSG.pa" ":renderPartition.st" -na;
+connectAttr "Yellow.msg" ":defaultShaderList1.s" -na;
+connectAttr "Green.msg" ":defaultShaderList1.s" -na;
+connectAttr "Blue.msg" ":defaultShaderList1.s" -na;
+connectAttr "lyt_orient_PMA.msg" ":defaultRenderUtilityList1.u" -na;
+connectAttr "defaultRenderLayer.msg" ":defaultRenderingList1.r" -na;
+connectAttr "lyt_orient_CTRLShape.ciog.cog[0]" ":initialShadingGroup.dsm" -na;
+connectAttr "lyt_orient_CTRLShape1.ciog.cog[0]" ":initialShadingGroup.dsm" -na;
+connectAttr "groupId1.msg" ":initialShadingGroup.gn" -na;
+connectAttr "groupId2.msg" ":initialShadingGroup.gn" -na;
+connectAttr "groupId3.msg" ":initialShadingGroup.gn" -na;
+connectAttr "groupId4.msg" ":initialShadingGroup.gn" -na;
+// End of layout_chain.ma
diff --git a/modules/PY101.mod b/modules/PY101.mod
new file mode 100644
index 0000000..912a8c8
--- /dev/null
+++ b/modules/PY101.mod
@@ -0,0 +1,4 @@
++ Rigging_Tool 1.0 C:\Users\Griffy\Documents\GitHub\Python_101
+RIGGING_TOOL=C:\Users\Griffy\Documents\GitHub\Python_101
+DATA_PATH=C:\Users\Griffy\Documents\GitHub\Python_101\data
+scripts: C:\Users\Griffy\Documents\GitHub\Python_101
\ No newline at end of file
diff --git a/rig/rig_arm.py b/rig/rig_arm.py
deleted file mode 100644
index 11092f8..0000000
--- a/rig/rig_arm.py
+++ /dev/null
@@ -1,108 +0,0 @@
-import maya.cmds as cmds
-import json
-import os
-import system.utils as utils
-reload(utils)
-
-# We can use variables above the class level that can be read on class import
-# This is also known as an attribute of a class
-classname = 'Rig_Arm'
-lytfile = 'arm.json'
-numjnts = 4
-
-class Rig_Arm:
- def __init__(self, *args):
- # Get our joint lists from a json file.
- print os.environ["RDOJO_DATA"]
- data_path = os.environ["RDOJO_DATA"] + '/rig/arm.json'
- # Use our readJson function
- data = utils.readJson(data_path)
- # Load the json into a dictionary
- self.module_info = json.loads( data )
- """ NOTE: If we wanted to build our arm from some set of joints
- in the scene, we could overwrite self.module_info['positions']"""
- # Make a new dictionary to store information about the arm rig.
- self.rig_info = {}
-
- # Here we will see if we have a selection to get new positions from.
- if len(cmds.ls(sl=True, type='joint')) == numjnts :
- sel=cmds.ls(sl=True, type='joint')
- positions = []
- for s in sel:
- positions.append(cmds.xform(s, q=True, ws=True, t=True))
- self.rig_info['positions']=positions
-
- else:
- self.rig_info['positions']=self.module_info['positions']
-
- """ Instead of the else:, we could just return a message that the selection
- does not meet requirements for an arm. """
-
-
- """ What if we want a left and a right arm? For now we will set
- a temporary variable to override the name, but later we will build
- this into the UI """
- self.instance = '_L_'
-
- # Run rig_arm function
- self.rig_arm()
-
-
- def rig_arm(self):
- cmds.select(d=True)
- # Create Ik joints
- self.rig_info['ikjnts']=utils.createJoint(self.module_info['ikjnts'], self.rig_info['positions'], self.instance)
-
- # Create Fk joints
- self.rig_info['fkjnts']=utils.createJoint(self.module_info['fkjnts'], self.rig_info['positions'], self.instance)
-
- # Create Rig joints
- self.rig_info['rigjnts']=utils.createJoint(self.module_info['rigjnts'], self.rig_info['positions'], self.instance)
-
-
- # Create Ik Rig
- # Ik handle
- #"ikcontrols": ["ctrl_ik_arm, ikh_arm", "ctrl_pv_arm"
- # Generate a name for the ik handle using self.instance
- ikhname = self.module_info["ikcontrols"][1].replace('_s_', self.instance)
- self.rig_info['ikh']=cmds.ikHandle(n=ikhname, sj=self.rig_info['ikjnts'][0], ee=self.rig_info['ikjnts'][2], sol='ikRPsolver', p=2, w=1 )
-
- self.rig_info['ikcontrol']=utils.createControl([[self.rig_info['positions'][2], self.module_info["ikcontrols"][0]]])[0]
-
- pvpos = utils.calculatePVPosition([self.rig_info['ikjnts'][0], self.rig_info['ikjnts'][1], self.rig_info['ikjnts'][2]])
-
- self.rig_info['pvcontrol']=utils.createControl([[pvpos, self.module_info["ikcontrols"][2]]])[0]
-
- # Make a control for arm settings
- self.rig_info['setcontrol']=utils.createControl([[self.rig_info['positions'][2], 'ctrl_settings']])[0]
- cmds.addAttr(self.rig_info['setcontrol'][1], ln='IK_FK', at="enum", en="fk:ik:", k=True )
-
- # Parent ikh to ctrl
- cmds.parent(self.rig_info['ikh'][0], self.rig_info['ikcontrol'][1])
-
- # PV constraint
- cmds.poleVectorConstraint(self.rig_info['pvcontrol'][1], self.rig_info['ikh'][0])
-
- # orient constrain arm ik_wrist to ctrl_arm
- cmds.orientConstraint(self.rig_info['ikcontrol'][1], self.rig_info['ikjnts'][2], mo=True)
-
- # Create FK rig
- self.rig_info['fkcontrols'] = utils.createControl([[self.rig_info['positions'][0], self.module_info["fkcontrols"][0]],
- [self.rig_info['positions'][1], self.module_info["fkcontrols"][1]],
- [self.rig_info['positions'][2], self.module_info["fkcontrols"][2]]])
-
- # Parent fk controls
- cmds.parent(self.rig_info['fkcontrols'][2][0], self.rig_info['fkcontrols'][1][1])
- cmds.parent(self.rig_info['fkcontrols'][1][0], self.rig_info['fkcontrols'][0][1])
-
- # Connect Ik and Fk to Rig joints
- switchattr = self.rig_info['setcontrol'][1] + '.IK_FK'
- utils.connectThroughBC(self.rig_info['ikjnts'], self.rig_info['fkjnts'], self.rig_info['rigjnts'], self.instance, switchattr )
-
- # Constrain fk joints to controls.
- [cmds.parentConstraint(self.rig_info['fkcontrols'][i][1], self.rig_info['fkjnts'][i]) for i in range(len(self.rig_info['fkcontrols']))]
-
-
-
-
-
diff --git a/startup.py b/startup.py
index a8d03f6..241a2cb 100644
--- a/startup.py
+++ b/startup.py
@@ -12,9 +12,6 @@
# Change the current linear unit to inches
cmds.currentUnit( linear='cm' )
-# Set a system path to files. We can do this with the os module
-os.environ["RDOJO_DATA"] = os.environ['RIGGING_TOOL'] + '/data'
-
import ui.ui as ui
reload(ui)
ui.RDojo_UI()
\ No newline at end of file
diff --git a/system/utils.py b/system/utils.py
index 84cc714..55a6c2a 100644
--- a/system/utils.py
+++ b/system/utils.py
@@ -1,4 +1,5 @@
import maya.cmds as cmds
+from pymel.core import *
import json
import tempfile
@@ -69,8 +70,8 @@ def connectThroughBC(parentsA, parentsB, children, instance, switchattr ):
cmds.connectAttr(switchattr, bcNodeS + '.blender')
constraints.append([bcNodeT, bcNodeR, bcNodeS])
# Input Parents
- cmds.connectAttr(parentsA[j] + '.translate', bcNodeT + '.color1')
- cmds.connectAttr(parentsA[j] + '.rotate', bcNodeR + '.color1')
+ cmds.connectAttr(parentsA[j] + '.translate', bcNodeT + '.color1')
+ cmds.connectAttr(parentsA[j] + '.rotate', bcNodeR + '.color1')
cmds.connectAttr(parentsA[j] + '.scale', bcNodeS + '.color1')
if parentsB != 'None':
cmds.connectAttr(parentsB[j] + '.translate', bcNodeT + '.color2')
@@ -81,3 +82,22 @@ def connectThroughBC(parentsA, parentsB, children, instance, switchattr ):
cmds.connectAttr(bcNodeR + '.output', children[j] + '.rotate')
cmds.connectAttr(bcNodeS + '.output', children[j] + '.scale')
return constraints
+
+
+def findHighestTrailingNumber(names, basename):
+ import re
+ highestValue = 0
+
+ for n in names:
+ if objExists(n) == True:
+ n = str(n)
+ if n.find(basename) >= 0:
+ suffix = n.partition(basename)[2][0]
+
+ if re.match("^[0-9]*$", suffix):
+ numericalElement = int(suffix)
+
+ if numericalElement >= highestValue:
+ highestValue = numericalElement + 1
+ else:
+ highestValue = 1
\ No newline at end of file
diff --git a/ui/MayaDockingClass.py b/ui/MayaDockingClass.py
new file mode 100644
index 0000000..9d64f10
--- /dev/null
+++ b/ui/MayaDockingClass.py
@@ -0,0 +1,150 @@
+"""
+This is what you need to do in order to get a qt window to dock next to maya channel box,
+In all maya versions, including 2017 with PySide2
+"""
+__author__ = "liorbenhorin@gmail.com"
+__author__ = "rgriffin"
+
+import os
+import logging
+
+# Qt is a project by Marcus Ottosson ---> https://github.com/mottosso/Qt.py
+from Qt import QtGui, QtWidgets, QtCore, QtCompat
+
+try:
+ import pysideuic
+ from shiboken import wrapInstance
+
+ logging.Logger.manager.loggerDict["pysideuic.uiparser"].setLevel(logging.CRITICAL)
+ logging.Logger.manager.loggerDict["pysideuic.properties"].setLevel(logging.CRITICAL)
+except ImportError:
+ import pyside2uic as pysideuic
+ from shiboken2 import wrapInstance
+
+ logging.Logger.manager.loggerDict["pyside2uic.uiparser"].setLevel(logging.CRITICAL)
+ logging.Logger.manager.loggerDict["pyside2uic.properties"].setLevel(logging.CRITICAL)
+
+import maya.OpenMayaUI as omui
+from maya.app.general.mayaMixin import MayaQWidgetDockableMixin
+import maya.cmds as cmds
+
+
+
+def maya_main_window():
+ main_window_ptr = omui.MQtUtil.mainWindow()
+ return wrapInstance(long(main_window_ptr), QtWidgets.QWidget)
+
+def maya_api_version():
+ return int(cmds.about(api=True))
+
+class MyDockingWindow(MayaQWidgetDockableMixin, QtWidgets.QMainWindow):
+ MAYA2014 = 201400
+ MAYA2015 = 201500
+ MAYA2016 = 201600
+ MAYA2016_5 = 201650
+ MAYA2017 = 201700
+
+ def __init__(self, parent=None):
+ self.toolName = 'Dockable Window'
+
+ self.deleteInstances() # remove any instance of this window before starting
+
+ super(MyDockingWindow, self).__init__(parent)
+
+ self.setWindowFlags(QtCore.Qt.Tool)
+
+ self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
+
+ def dockCloseEventTriggered(self):
+ self.deleteInstances()
+
+ # Delete any instances of this class
+ def deleteInstances(self):
+
+ def delete2016():
+ # Go through main window's children to find any previous instances
+ for obj in maya_main_window().children():
+
+ if str(type(
+ obj)) == "": # """:
+
+ if obj.widget().__class__.__name__ == self.toolName: # Compare object names
+
+ obj.setParent(None)
+ obj.deleteLater()
+
+ def delete2017():
+ '''
+ Look like on 2017 this needs to be a little different, like in this function,
+ However, i might be missing something since ive done this very late at night :)
+ '''
+
+ for obj in maya_main_window().children():
+
+ if str(type(obj)) == "".format(os.path.splitext(
+ os.path.basename(__file__)[0])): # """:
+
+ if obj.__class__.__name__ == "MyDockingWindow": # Compare object names
+
+ obj.setParent(None)
+ obj.deleteLater()
+
+ if maya_api_version() < MyDockingWindow.MAYA2017:
+ delete2016()
+ else:
+ delete2017()
+
+ def deleteControl(self, control):
+
+ if cmds.workspaceControl(control, q=True, exists=True):
+ cmds.workspaceControl(control, e=True, close=True)
+ cmds.deleteUI(control, control=True)
+
+ # Show window with docking ability
+ def run(self):
+ '''
+ 2017 docking is a little different...
+ '''
+
+ def run2017():
+ self.setObjectName(self.toolName)
+
+ # The deleteInstances() dose not remove the workspace control, and we need to remove it manually
+ workspaceControlName = self.objectName() + 'WorkspaceControl'
+ self.deleteControl(workspaceControlName)
+
+ # this class is inheriting MayaQWidgetDockableMixin.show(), which will eventually call maya.cmds.workspaceControl.
+ # I'm calling it again, since the MayaQWidgetDockableMixin dose not have the option to use the "tabToControl" flag,
+ # which was the only way i found i can dock my window next to the channel controls, attributes editor and modelling toolkit.
+ self.show(dockable=True, floating=True)
+ #cmds.workspaceControl(workspaceControlName, e=True, ttc=["AttributeEditor", -1], wp="preferred", mw=420)
+ cmds.workspaceControl(workspaceControlName, e=True, wp="preferred")
+ self.raise_()
+
+ # size can be adjusted, of course
+ self.setDockableParameters(width=420)
+
+ def run2016():
+ self.setObjectName(self.toolName)
+ # on maya < 2017, the MayaQWidgetDockableMixin.show() magiclly docks the window next
+ # to the channel controls, attributes editor and modelling toolkit.
+ self.show(dockable=True, floating=True)
+ self.raise_()
+ # size can be adjusted, of course
+ self.setDockableParameters(width=420)
+ self.setSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
+
+ if maya_api_version() < MyDockingWindow.MAYA2017:
+ run2016()
+ else:
+ run2017()
+
+
+def show():
+ '''
+ this is the function that start things up
+ '''
+ global MyDockingWindow
+ MyDockingWindow = MyDockingWindow(parent=maya_main_window())
+ MyDockingWindow.run()
+ return MyDockingWindow
diff --git a/ui/Qt.py b/ui/Qt.py
new file mode 100644
index 0000000..3a97da8
--- /dev/null
+++ b/ui/Qt.py
@@ -0,0 +1,1030 @@
+"""The MIT License (MIT)
+
+Copyright (c) 2016-2017 Marcus Ottosson
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+Documentation
+
+ Map all bindings to PySide2
+
+ Project goals:
+ Qt.py was born in the film and visual effects industry to address
+ the growing need for the development of software capable of running
+ with more than one flavour of the Qt bindings for Python - PySide,
+ PySide2, PyQt4 and PyQt5.
+
+ 1. Build for one, run with all
+ 2. Explicit is better than implicit
+ 3. Support co-existence
+
+ Default resolution order:
+ - PySide2
+ - PyQt5
+ - PySide
+ - PyQt4
+
+ Usage:
+ >> import sys
+ >> from Qt import QtWidgets
+ >> app = QtWidgets.QApplication(sys.argv)
+ >> button = QtWidgets.QPushButton("Hello World")
+ >> button.show()
+ >> app.exec_()
+
+ All members of PySide2 are mapped from other bindings, should they exist.
+ If no equivalent member exist, it is excluded from Qt.py and inaccessible.
+ The idea is to highlight members that exist across all supported binding,
+ and guarantee that code that runs on one binding runs on all others.
+
+ For more details, visit https://github.com/mottosso/Qt.py
+
+"""
+
+import os
+import sys
+import types
+import shutil
+import importlib
+
+__version__ = "1.0.0.b3"
+
+# Enable support for `from Qt import *`
+__all__ = []
+
+# Flags from environment variables
+QT_VERBOSE = bool(os.getenv("QT_VERBOSE"))
+QT_PREFERRED_BINDING = os.getenv("QT_PREFERRED_BINDING", "")
+QT_SIP_API_HINT = os.getenv("QT_SIP_API_HINT")
+
+# Reference to Qt.py
+Qt = sys.modules[__name__]
+Qt.QtCompat = types.ModuleType("QtCompat")
+
+"""Common members of all bindings
+
+This is where each member of Qt.py is explicitly defined.
+It is based on a "lowest commond denominator" of all bindings;
+including members found in each of the 4 bindings.
+
+Find or add excluded members in build_membership.py
+
+"""
+
+_common_members = {
+ "QtGui": [
+ "QAbstractTextDocumentLayout",
+ "QActionEvent",
+ "QBitmap",
+ "QBrush",
+ "QClipboard",
+ "QCloseEvent",
+ "QColor",
+ "QConicalGradient",
+ "QContextMenuEvent",
+ "QCursor",
+ "QDoubleValidator",
+ "QDrag",
+ "QDragEnterEvent",
+ "QDragLeaveEvent",
+ "QDragMoveEvent",
+ "QDropEvent",
+ "QFileOpenEvent",
+ "QFocusEvent",
+ "QFont",
+ "QFontDatabase",
+ "QFontInfo",
+ "QFontMetrics",
+ "QFontMetricsF",
+ "QGradient",
+ "QHelpEvent",
+ "QHideEvent",
+ "QHoverEvent",
+ "QIcon",
+ "QIconDragEvent",
+ "QIconEngine",
+ "QImage",
+ "QImageIOHandler",
+ "QImageReader",
+ "QImageWriter",
+ "QInputEvent",
+ "QInputMethodEvent",
+ "QIntValidator",
+ "QKeyEvent",
+ "QKeySequence",
+ "QLinearGradient",
+ "QMatrix2x2",
+ "QMatrix2x3",
+ "QMatrix2x4",
+ "QMatrix3x2",
+ "QMatrix3x3",
+ "QMatrix3x4",
+ "QMatrix4x2",
+ "QMatrix4x3",
+ "QMatrix4x4",
+ "QMouseEvent",
+ "QMoveEvent",
+ "QMovie",
+ "QPaintDevice",
+ "QPaintEngine",
+ "QPaintEngineState",
+ "QPaintEvent",
+ "QPainter",
+ "QPainterPath",
+ "QPainterPathStroker",
+ "QPalette",
+ "QPen",
+ "QPicture",
+ "QPictureIO",
+ "QPixmap",
+ "QPixmapCache",
+ "QPolygon",
+ "QPolygonF",
+ "QQuaternion",
+ "QRadialGradient",
+ "QRegExpValidator",
+ "QRegion",
+ "QResizeEvent",
+ "QSessionManager",
+ "QShortcutEvent",
+ "QShowEvent",
+ "QStandardItem",
+ "QStandardItemModel",
+ "QStatusTipEvent",
+ "QSyntaxHighlighter",
+ "QTabletEvent",
+ "QTextBlock",
+ "QTextBlockFormat",
+ "QTextBlockGroup",
+ "QTextBlockUserData",
+ "QTextCharFormat",
+ "QTextCursor",
+ "QTextDocument",
+ "QTextDocumentFragment",
+ "QTextFormat",
+ "QTextFragment",
+ "QTextFrame",
+ "QTextFrameFormat",
+ "QTextImageFormat",
+ "QTextInlineObject",
+ "QTextItem",
+ "QTextLayout",
+ "QTextLength",
+ "QTextLine",
+ "QTextList",
+ "QTextListFormat",
+ "QTextObject",
+ "QTextObjectInterface",
+ "QTextOption",
+ "QTextTable",
+ "QTextTableCell",
+ "QTextTableCellFormat",
+ "QTextTableFormat",
+ "QTransform",
+ "QValidator",
+ "QVector2D",
+ "QVector3D",
+ "QVector4D",
+ "QWhatsThisClickedEvent",
+ "QWheelEvent",
+ "QWindowStateChangeEvent",
+ "qAlpha",
+ "qBlue",
+ "qGray",
+ "qGreen",
+ "qIsGray",
+ "qRed",
+ "qRgb",
+ "qRgb",
+ ],
+ "QtWidgets": [
+ "QAbstractButton",
+ "QAbstractGraphicsShapeItem",
+ "QAbstractItemDelegate",
+ "QAbstractItemView",
+ "QAbstractScrollArea",
+ "QAbstractSlider",
+ "QAbstractSpinBox",
+ "QAction",
+ "QActionGroup",
+ "QApplication",
+ "QBoxLayout",
+ "QButtonGroup",
+ "QCalendarWidget",
+ "QCheckBox",
+ "QColorDialog",
+ "QColumnView",
+ "QComboBox",
+ "QCommandLinkButton",
+ "QCommonStyle",
+ "QCompleter",
+ "QDataWidgetMapper",
+ "QDateEdit",
+ "QDateTimeEdit",
+ "QDesktopWidget",
+ "QDial",
+ "QDialog",
+ "QDialogButtonBox",
+ "QDirModel",
+ "QDockWidget",
+ "QDoubleSpinBox",
+ "QErrorMessage",
+ "QFileDialog",
+ "QFileIconProvider",
+ "QFileSystemModel",
+ "QFocusFrame",
+ "QFontComboBox",
+ "QFontDialog",
+ "QFormLayout",
+ "QFrame",
+ "QGesture",
+ "QGestureEvent",
+ "QGestureRecognizer",
+ "QGraphicsAnchor",
+ "QGraphicsAnchorLayout",
+ "QGraphicsBlurEffect",
+ "QGraphicsColorizeEffect",
+ "QGraphicsDropShadowEffect",
+ "QGraphicsEffect",
+ "QGraphicsEllipseItem",
+ "QGraphicsGridLayout",
+ "QGraphicsItem",
+ "QGraphicsItemGroup",
+ "QGraphicsLayout",
+ "QGraphicsLayoutItem",
+ "QGraphicsLineItem",
+ "QGraphicsLinearLayout",
+ "QGraphicsObject",
+ "QGraphicsOpacityEffect",
+ "QGraphicsPathItem",
+ "QGraphicsPixmapItem",
+ "QGraphicsPolygonItem",
+ "QGraphicsProxyWidget",
+ "QGraphicsRectItem",
+ "QGraphicsRotation",
+ "QGraphicsScale",
+ "QGraphicsScene",
+ "QGraphicsSceneContextMenuEvent",
+ "QGraphicsSceneDragDropEvent",
+ "QGraphicsSceneEvent",
+ "QGraphicsSceneHelpEvent",
+ "QGraphicsSceneHoverEvent",
+ "QGraphicsSceneMouseEvent",
+ "QGraphicsSceneMoveEvent",
+ "QGraphicsSceneResizeEvent",
+ "QGraphicsSceneWheelEvent",
+ "QGraphicsSimpleTextItem",
+ "QGraphicsTextItem",
+ "QGraphicsTransform",
+ "QGraphicsView",
+ "QGraphicsWidget",
+ "QGridLayout",
+ "QGroupBox",
+ "QHBoxLayout",
+ "QHeaderView",
+ "QInputDialog",
+ "QItemDelegate",
+ "QItemEditorCreatorBase",
+ "QItemEditorFactory",
+ "QKeyEventTransition",
+ "QLCDNumber",
+ "QLabel",
+ "QLayout",
+ "QLayoutItem",
+ "QLineEdit",
+ "QListView",
+ "QListWidget",
+ "QListWidgetItem",
+ "QMainWindow",
+ "QMdiArea",
+ "QMdiSubWindow",
+ "QMenu",
+ "QMenuBar",
+ "QMessageBox",
+ "QMouseEventTransition",
+ "QPanGesture",
+ "QPinchGesture",
+ "QPlainTextDocumentLayout",
+ "QPlainTextEdit",
+ "QProgressBar",
+ "QProgressDialog",
+ "QPushButton",
+ "QRadioButton",
+ "QRubberBand",
+ "QScrollArea",
+ "QScrollBar",
+ "QShortcut",
+ "QSizeGrip",
+ "QSizePolicy",
+ "QSlider",
+ "QSpacerItem",
+ "QSpinBox",
+ "QSplashScreen",
+ "QSplitter",
+ "QSplitterHandle",
+ "QStackedLayout",
+ "QStackedWidget",
+ "QStatusBar",
+ "QStyle",
+ "QStyleFactory",
+ "QStyleHintReturn",
+ "QStyleHintReturnMask",
+ "QStyleHintReturnVariant",
+ "QStyleOption",
+ "QStyleOptionButton",
+ "QStyleOptionComboBox",
+ "QStyleOptionComplex",
+ "QStyleOptionDockWidget",
+ "QStyleOptionFocusRect",
+ "QStyleOptionFrame",
+ "QStyleOptionGraphicsItem",
+ "QStyleOptionGroupBox",
+ "QStyleOptionHeader",
+ "QStyleOptionMenuItem",
+ "QStyleOptionProgressBar",
+ "QStyleOptionRubberBand",
+ "QStyleOptionSizeGrip",
+ "QStyleOptionSlider",
+ "QStyleOptionSpinBox",
+ "QStyleOptionTab",
+ "QStyleOptionTabBarBase",
+ "QStyleOptionTabWidgetFrame",
+ "QStyleOptionTitleBar",
+ "QStyleOptionToolBar",
+ "QStyleOptionToolBox",
+ "QStyleOptionToolButton",
+ "QStyleOptionViewItem",
+ "QStylePainter",
+ "QStyledItemDelegate",
+ "QSwipeGesture",
+ "QSystemTrayIcon",
+ "QTabBar",
+ "QTabWidget",
+ "QTableView",
+ "QTableWidget",
+ "QTableWidgetItem",
+ "QTableWidgetSelectionRange",
+ "QTapAndHoldGesture",
+ "QTapGesture",
+ "QTextBrowser",
+ "QTextEdit",
+ "QTimeEdit",
+ "QToolBar",
+ "QToolBox",
+ "QToolButton",
+ "QToolTip",
+ "QTreeView",
+ "QTreeWidget",
+ "QTreeWidgetItem",
+ "QTreeWidgetItemIterator",
+ "QUndoCommand",
+ "QUndoGroup",
+ "QUndoStack",
+ "QUndoView",
+ "QVBoxLayout",
+ "QWhatsThis",
+ "QWidget",
+ "QWidgetAction",
+ "QWidgetItem",
+ "QWizard",
+ "QWizardPage",
+ ],
+ "QtCore": [
+ "QAbstractAnimation",
+ "QAbstractEventDispatcher",
+ "QAbstractItemModel",
+ "QAbstractListModel",
+ "QAbstractState",
+ "QAbstractTableModel",
+ "QAbstractTransition",
+ "QAnimationGroup",
+ "QBasicTimer",
+ "QBitArray",
+ "QBuffer",
+ "QByteArray",
+ "QByteArrayMatcher",
+ "QChildEvent",
+ "QCoreApplication",
+ "QCryptographicHash",
+ "QDataStream",
+ "QDate",
+ "QDateTime",
+ "QDir",
+ "QDirIterator",
+ "QDynamicPropertyChangeEvent",
+ "QEasingCurve",
+ "QElapsedTimer",
+ "QEvent",
+ "QEventLoop",
+ "QEventTransition",
+ "QFile",
+ "QFileInfo",
+ "QFileSystemWatcher",
+ "QFinalState",
+ "QGenericArgument",
+ "QGenericReturnArgument",
+ "QHistoryState",
+ "QIODevice",
+ "QLibraryInfo",
+ "QLine",
+ "QLineF",
+ "QLocale",
+ "QMargins",
+ "QMetaClassInfo",
+ "QMetaEnum",
+ "QMetaMethod",
+ "QMetaObject",
+ "QMetaProperty",
+ "QMimeData",
+ "QModelIndex",
+ "QMutex",
+ "QMutexLocker",
+ "QObject",
+ "QParallelAnimationGroup",
+ "QPauseAnimation",
+ "QPersistentModelIndex",
+ "QPluginLoader",
+ "QPoint",
+ "QPointF",
+ "QProcess",
+ "QProcessEnvironment",
+ "QPropertyAnimation",
+ "QReadLocker",
+ "QReadWriteLock",
+ "QRect",
+ "QRectF",
+ "QRegExp",
+ "QResource",
+ "QRunnable",
+ "QSemaphore",
+ "QSequentialAnimationGroup",
+ "QSettings",
+ "QSignalMapper",
+ "QSignalTransition",
+ "QSize",
+ "QSizeF",
+ "QSocketNotifier",
+ "QState",
+ "QStateMachine",
+ "QSysInfo",
+ "QSystemSemaphore",
+ "QTemporaryFile",
+ "QTextBoundaryFinder",
+ "QTextCodec",
+ "QTextDecoder",
+ "QTextEncoder",
+ "QTextStream",
+ "QTextStreamManipulator",
+ "QThread",
+ "QThreadPool",
+ "QTime",
+ "QTimeLine",
+ "QTimer",
+ "QTimerEvent",
+ "QTranslator",
+ "QUrl",
+ "QVariantAnimation",
+ "QWaitCondition",
+ "QWriteLocker",
+ "QXmlStreamAttribute",
+ "QXmlStreamAttributes",
+ "QXmlStreamEntityDeclaration",
+ "QXmlStreamEntityResolver",
+ "QXmlStreamNamespaceDeclaration",
+ "QXmlStreamNotationDeclaration",
+ "QXmlStreamReader",
+ "QXmlStreamWriter",
+ "Qt",
+ "QtCriticalMsg",
+ "QtDebugMsg",
+ "QtFatalMsg",
+ "QtMsgType",
+ "QtSystemMsg",
+ "QtWarningMsg",
+ "qAbs",
+ "qAddPostRoutine",
+ "qChecksum",
+ "qCritical",
+ "qDebug",
+ "qFatal",
+ "qFuzzyCompare",
+ "qIsFinite",
+ "qIsInf",
+ "qIsNaN",
+ "qIsNull",
+ "qRegisterResourceData",
+ "qUnregisterResourceData",
+ "qVersion",
+ "qWarning",
+ "qrand",
+ "qsrand",
+ ],
+ "QtXml": [
+ "QDomAttr",
+ "QDomCDATASection",
+ "QDomCharacterData",
+ "QDomComment",
+ "QDomDocument",
+ "QDomDocumentFragment",
+ "QDomDocumentType",
+ "QDomElement",
+ "QDomEntity",
+ "QDomEntityReference",
+ "QDomImplementation",
+ "QDomNamedNodeMap",
+ "QDomNode",
+ "QDomNodeList",
+ "QDomNotation",
+ "QDomProcessingInstruction",
+ "QDomText",
+ "QXmlAttributes",
+ "QXmlContentHandler",
+ "QXmlDTDHandler",
+ "QXmlDeclHandler",
+ "QXmlDefaultHandler",
+ "QXmlEntityResolver",
+ "QXmlErrorHandler",
+ "QXmlInputSource",
+ "QXmlLexicalHandler",
+ "QXmlLocator",
+ "QXmlNamespaceSupport",
+ "QXmlParseException",
+ "QXmlReader",
+ "QXmlSimpleReader"
+ ],
+ "QtHelp": [
+ "QHelpContentItem",
+ "QHelpContentModel",
+ "QHelpContentWidget",
+ "QHelpEngine",
+ "QHelpEngineCore",
+ "QHelpIndexModel",
+ "QHelpIndexWidget",
+ "QHelpSearchEngine",
+ "QHelpSearchQuery",
+ "QHelpSearchQueryWidget",
+ "QHelpSearchResultWidget"
+ ],
+ "QtNetwork": [
+ "QAbstractNetworkCache",
+ "QAbstractSocket",
+ "QAuthenticator",
+ "QHostAddress",
+ "QHostInfo",
+ "QLocalServer",
+ "QLocalSocket",
+ "QNetworkAccessManager",
+ "QNetworkAddressEntry",
+ "QNetworkCacheMetaData",
+ "QNetworkConfiguration",
+ "QNetworkConfigurationManager",
+ "QNetworkCookie",
+ "QNetworkCookieJar",
+ "QNetworkDiskCache",
+ "QNetworkInterface",
+ "QNetworkProxy",
+ "QNetworkProxyFactory",
+ "QNetworkProxyQuery",
+ "QNetworkReply",
+ "QNetworkRequest",
+ "QNetworkSession",
+ "QSsl",
+ "QTcpServer",
+ "QTcpSocket",
+ "QUdpSocket"
+ ],
+ "QtOpenGL": [
+ "QGL",
+ "QGLContext",
+ "QGLFormat",
+ "QGLWidget"
+ ]
+}
+
+
+def _new_module(name):
+ return types.ModuleType(__name__ + "." + name)
+
+
+def _setup(module, extras):
+ """Install common submodules"""
+
+ Qt.__binding__ = module.__name__
+
+ for name in list(_common_members) + extras:
+ try:
+ # print("Trying %s" % name)
+ submodule = importlib.import_module(
+ module.__name__ + "." + name)
+ except ImportError:
+ # print("Failed %s" % name)
+ continue
+
+ setattr(Qt, "_" + name, submodule)
+
+ if name not in extras:
+ # Store reference to original binding,
+ # but don't store speciality modules
+ # such as uic or QtUiTools
+ setattr(Qt, name, _new_module(name))
+
+
+def _pyside2():
+ """Initialise PySide2
+
+ These functions serve to test the existence of a binding
+ along with set it up in such a way that it aligns with
+ the final step; adding members from the original binding
+ to Qt.py
+
+ """
+
+ import PySide2 as module
+ _setup(module, ["QtUiTools"])
+
+ Qt.__binding_version__ = module.__version__
+
+ if hasattr(Qt, "_QtUiTools"):
+ Qt.QtCompat.loadUi = lambda fname: \
+ Qt._QtUiTools.QUiLoader().load(fname)
+
+ if hasattr(Qt, "_QtGui") and hasattr(Qt, "_QtCore"):
+ Qt.QtCore.QStringListModel = Qt._QtGui.QStringListModel
+
+ if hasattr(Qt, "_QtWidgets"):
+ Qt.QtCompat.setSectionResizeMode = \
+ Qt._QtWidgets.QHeaderView.setSectionResizeMode
+
+ if hasattr(Qt, "_QtCore"):
+ Qt.__qt_version__ = Qt._QtCore.qVersion()
+ Qt.QtCompat.translate = Qt._QtCore.QCoreApplication.translate
+
+ Qt.QtCore.Property = Qt._QtCore.Property
+ Qt.QtCore.Signal = Qt._QtCore.Signal
+ Qt.QtCore.Slot = Qt._QtCore.Slot
+
+ Qt.QtCore.QAbstractProxyModel = Qt._QtCore.QAbstractProxyModel
+ Qt.QtCore.QSortFilterProxyModel = Qt._QtCore.QSortFilterProxyModel
+ Qt.QtCore.QItemSelection = Qt._QtCore.QItemSelection
+ Qt.QtCore.QItemSelectionRange = Qt._QtCore.QItemSelectionRange
+ Qt.QtCore.QItemSelectionModel = Qt._QtCore.QItemSelectionModel
+
+
+def _pyside():
+ """Initialise PySide"""
+
+ import PySide as module
+ _setup(module, ["QtUiTools"])
+
+ Qt.__binding_version__ = module.__version__
+
+ if hasattr(Qt, "_QtUiTools"):
+ Qt.QtCompat.loadUi = lambda fname: \
+ Qt._QtUiTools.QUiLoader().load(fname)
+
+ if hasattr(Qt, "_QtGui"):
+ setattr(Qt, "QtWidgets", _new_module("QtWidgets"))
+ setattr(Qt, "_QtWidgets", Qt._QtGui)
+
+ Qt.QtCompat.setSectionResizeMode = Qt._QtGui.QHeaderView.setResizeMode
+
+ if hasattr(Qt, "_QtCore"):
+ Qt.QtCore.QAbstractProxyModel = Qt._QtGui.QAbstractProxyModel
+ Qt.QtCore.QSortFilterProxyModel = Qt._QtGui.QSortFilterProxyModel
+ Qt.QtCore.QStringListModel = Qt._QtGui.QStringListModel
+ Qt.QtCore.QItemSelection = Qt._QtGui.QItemSelection
+ Qt.QtCore.QItemSelectionRange = Qt._QtGui.QItemSelectionRange
+ Qt.QtCore.QItemSelectionModel = Qt._QtGui.QItemSelectionModel
+
+ if hasattr(Qt, "_QtCore"):
+ Qt.__qt_version__ = Qt._QtCore.qVersion()
+
+ Qt.QtCore.Property = Qt._QtCore.Property
+ Qt.QtCore.Signal = Qt._QtCore.Signal
+ Qt.QtCore.Slot = Qt._QtCore.Slot
+
+ QCoreApplication = Qt._QtCore.QCoreApplication
+ Qt.QtCompat.translate = (
+ lambda context, sourceText, disambiguation, n:
+ QCoreApplication.translate(
+ context,
+ sourceText,
+ disambiguation,
+ QCoreApplication.CodecForTr,
+ n
+ )
+ )
+
+
+def _pyqt5():
+ """Initialise PyQt5"""
+
+ import PyQt5 as module
+ _setup(module, ["uic"])
+
+ if hasattr(Qt, "_uic"):
+ Qt.QtCompat.loadUi = lambda fname: Qt._uic.loadUi(fname)
+
+ if hasattr(Qt, "_QtWidgets"):
+ Qt.QtCompat.setSectionResizeMode = \
+ Qt._QtWidgets.QHeaderView.setSectionResizeMode
+
+ if hasattr(Qt, "_QtCore"):
+ Qt.QtCompat.translate = Qt._QtCore.QCoreApplication.translate
+
+ Qt.QtCore.Property = Qt._QtCore.pyqtProperty
+ Qt.QtCore.Signal = Qt._QtCore.pyqtSignal
+ Qt.QtCore.Slot = Qt._QtCore.pyqtSlot
+
+ Qt.QtCore.QAbstractProxyModel = Qt._QtCore.QAbstractProxyModel
+ Qt.QtCore.QSortFilterProxyModel = Qt._QtCore.QSortFilterProxyModel
+ Qt.QtCore.QStringListModel = Qt._QtCore.QStringListModel
+ Qt.QtCore.QItemSelection = Qt._QtCore.QItemSelection
+ Qt.QtCore.QItemSelectionModel = Qt._QtCore.QItemSelectionModel
+ Qt.QtCore.QItemSelectionRange = Qt._QtCore.QItemSelectionRange
+
+ Qt.__qt_version__ = Qt._QtCore.QT_VERSION_STR
+ Qt.__binding_version__ = Qt._QtCore.PYQT_VERSION_STR
+
+
+def _pyqt4():
+ """Initialise PyQt4"""
+
+ import sip
+
+ # Validation of envivornment variable. Prevents an error if
+ # the variable is invalid since it's just a hint.
+ try:
+ hint = int(QT_SIP_API_HINT)
+ except TypeError:
+ hint = None # Variable was None, i.e. not set.
+ except ValueError:
+ raise ImportError("QT_SIP_API_HINT=%s must be a 1 or 2")
+
+ for api in ("QString",
+ "QVariant",
+ "QDate",
+ "QDateTime",
+ "QTextStream",
+ "QTime",
+ "QUrl"):
+ try:
+ sip.setapi(api, hint or 2)
+ except AttributeError:
+ raise ImportError("PyQt4 < 4.6 isn't supported by Qt.py")
+ except ValueError:
+ actual = sip.getapi(api)
+ if not hint:
+ raise ImportError("API version already set to %d" % actual)
+ else:
+ # Having provided a hint indicates a soft constraint, one
+ # that doesn't throw an exception.
+ sys.stderr.write(
+ "Warning: API '%s' has already been set to %d.\n"
+ % (api, actual)
+ )
+
+ import PyQt4 as module
+ _setup(module, ["uic"])
+
+ if hasattr(Qt, "_uic"):
+ Qt.QtCompat.loadUi = lambda fname: Qt._uic.loadUi(fname)
+
+ if hasattr(Qt, "_QtGui"):
+ setattr(Qt, "QtWidgets", _new_module("QtWidgets"))
+ setattr(Qt, "_QtWidgets", Qt._QtGui)
+
+ Qt.QtCompat.setSectionResizeMode = \
+ Qt._QtGui.QHeaderView.setResizeMode
+
+ if hasattr(Qt, "_QtCore"):
+ Qt.QtCore.QAbstractProxyModel = Qt._QtGui.QAbstractProxyModel
+ Qt.QtCore.QSortFilterProxyModel = Qt._QtGui.QSortFilterProxyModel
+ Qt.QtCore.QItemSelection = Qt._QtGui.QItemSelection
+ Qt.QtCore.QStringListModel = Qt._QtGui.QStringListModel
+ Qt.QtCore.QItemSelectionModel = Qt._QtGui.QItemSelectionModel
+ Qt.QtCore.QItemSelectionRange = Qt._QtGui.QItemSelectionRange
+
+ if hasattr(Qt, "_QtCore"):
+ Qt.__qt_version__ = Qt._QtCore.QT_VERSION_STR
+ Qt.__binding_version__ = Qt._QtCore.PYQT_VERSION_STR
+
+ Qt.QtCore.Property = Qt._QtCore.pyqtProperty
+ Qt.QtCore.Signal = Qt._QtCore.pyqtSignal
+ Qt.QtCore.Slot = Qt._QtCore.pyqtSlot
+
+ QCoreApplication = Qt._QtCore.QCoreApplication
+ Qt.QtCompat.translate = (
+ lambda context, sourceText, disambiguation, n:
+ QCoreApplication.translate(
+ context,
+ sourceText,
+ disambiguation,
+ QCoreApplication.CodecForTr,
+ n)
+ )
+
+
+def _none():
+ """Internal option (used in installer)"""
+
+ Mock = type("Mock", (), {"__getattr__": lambda Qt, attr: None})
+
+ Qt.__binding__ = "None"
+ Qt.__qt_version__ = "0.0.0"
+ Qt.__binding_version__ = "0.0.0"
+ Qt.QtCompat.loadUi = lambda fname: None
+ Qt.QtCompat.setSectionResizeMode = lambda *args, **kwargs: None
+
+ for submodule in _common_members.keys():
+ setattr(Qt, submodule, Mock())
+ setattr(Qt, "_" + submodule, Mock())
+
+
+def _log(text):
+ if QT_VERBOSE:
+ sys.stdout.write(text + "\n")
+
+
+def _convert(lines):
+ """Convert compiled .ui file from PySide2 to Qt.py
+
+ Arguments:
+ lines (list): Each line of of .ui file
+
+ Usage:
+ >> with open("myui.py") as f:
+ .. lines = _convert(f.readlines())
+
+ """
+
+ def parse(line):
+ line = line.replace("from PySide2 import", "from Qt import")
+ line = line.replace("QtWidgets.QApplication.translate",
+ "Qt.QtCompat.translate")
+ return line
+
+ parsed = list()
+ for line in lines:
+ line = parse(line)
+ parsed.append(line)
+
+ return parsed
+
+
+def _cli(args):
+ """Qt.py command-line interface"""
+ import argparse
+
+ parser = argparse.ArgumentParser()
+ parser.add_argument("--convert",
+ help="Path to compiled Python module, e.g. my_ui.py")
+ parser.add_argument("--compile",
+ help="Accept raw .ui file and compile with native "
+ "PySide2 compiler.")
+ parser.add_argument("--stdout",
+ help="Write to stdout instead of file",
+ action="store_true")
+ parser.add_argument("--stdin",
+ help="Read from stdin instead of file",
+ action="store_true")
+
+ args = parser.parse_args(args)
+
+ if args.stdout:
+ raise NotImplementedError("--stdout")
+
+ if args.stdin:
+ raise NotImplementedError("--stdin")
+
+ if args.compile:
+ raise NotImplementedError("--compile")
+
+ if args.convert:
+ sys.stdout.write("#\n"
+ "# WARNING: --convert is an ALPHA feature.\n#\n"
+ "# See https://github.com/mottosso/Qt.py/pull/132\n"
+ "# for details.\n"
+ "#\n")
+
+ #
+ # ------> Read
+ #
+ with open(args.convert) as f:
+ lines = _convert(f.readlines())
+
+ backup = "%s_backup%s" % os.path.splitext(args.convert)
+ sys.stdout.write("Creating \"%s\"..\n" % backup)
+ shutil.copy(args.convert, backup)
+
+ #
+ # <------ Write
+ #
+ with open(args.convert, "w") as f:
+ f.write("".join(lines))
+
+ sys.stdout.write("Successfully converted \"%s\"\n" % args.convert)
+
+
+def _install():
+ # Default order (customise order and content via QT_PREFERRED_BINDING)
+ default_order = ("PySide2", "PyQt5", "PySide", "PyQt4")
+ preferred_order = list(
+ b for b in QT_PREFERRED_BINDING.split(os.pathsep) if b
+ )
+
+ order = preferred_order or default_order
+
+ available = {
+ "PySide2": _pyside2,
+ "PyQt5": _pyqt5,
+ "PySide": _pyside,
+ "PyQt4": _pyqt4,
+ "None": _none
+ }
+
+ _log("Order: '%s'" % "', '".join(order))
+
+ found_binding = False
+ for name in order:
+ _log("Trying %s" % name)
+
+ try:
+ available[name]()
+ found_binding = True
+ break
+
+ except ImportError as e:
+ _log("ImportError: %s" % e)
+
+ except KeyError:
+ _log("ImportError: Preferred binding '%s' not found." % name)
+
+ if not found_binding:
+ # If not binding were found, throw this error
+ raise ImportError("No Qt binding were found.")
+
+ # Install individual members
+ for name, members in _common_members.items():
+ try:
+ their_submodule = getattr(Qt, "_%s" % name)
+ except AttributeError:
+ continue
+
+ our_submodule = getattr(Qt, name)
+
+ # Enable import *
+ __all__.append(name)
+
+ # Enable direct import of submodule,
+ # e.g. import Qt.QtCore
+ sys.modules[__name__ + "." + name] = our_submodule
+
+ for member in members:
+ # Accept that a submodule may miss certain members.
+ try:
+ their_member = getattr(their_submodule, member)
+ except AttributeError:
+ _log("'%s.%s' was missing." % (name, member))
+ continue
+
+ setattr(our_submodule, member, their_member)
+
+ # Backwards compatibility
+ Qt.QtCompat.load_ui = Qt.QtCompat.loadUi
+
+
+_install()
+
+
+"""Augment QtCompat
+
+QtCompat contains wrappers and added functionality
+to the original bindings, such as the CLI interface
+and otherwise incompatible members between bindings,
+such as `QHeaderView.setSectionResizeMode`.
+
+"""
+
+Qt.QtCompat._cli = _cli
+Qt.QtCompat._convert = _convert
+
+# Enable command-line interface
+if __name__ == "__main__":
+ _cli(sys.argv[1:])
diff --git a/ui/__init__.pyc b/ui/__init__.pyc
deleted file mode 100644
index 48eff44..0000000
Binary files a/ui/__init__.pyc and /dev/null differ
diff --git a/ui/shiboken2.py b/ui/shiboken2.py
new file mode 100644
index 0000000..8e7b6da
--- /dev/null
+++ b/ui/shiboken2.py
@@ -0,0 +1,36 @@
+def isValid(*args, **kwargs):
+ pass
+
+
+def invalidate(*args, **kwargs):
+ pass
+
+
+def dump(*args, **kwargs):
+ pass
+
+
+def createdByPython(*args, **kwargs):
+ pass
+
+
+def delete(*args, **kwargs):
+ pass
+
+
+def wrapInstance(*args, **kwargs):
+ pass
+
+
+def getCppPointer(*args, **kwargs):
+ pass
+
+
+def ownedByPython(*args, **kwargs):
+ pass
+
+
+
+__version__ = '2.0.0'
+
+
diff --git a/ui/ui.py b/ui/ui.py
deleted file mode 100644
index d1a402e..0000000
--- a/ui/ui.py
+++ /dev/null
@@ -1,95 +0,0 @@
-import maya.cmds as cmds
-import os
-from functools import partial
-import system.utils as utils
-
-reload(utils)
-
-
-# The UI class
-class RDojo_UI:
- def __init__(self, *args):
- print
- 'In RDojo_UI'
- mi = cmds.window('MayaWindow', ma=True, q=True)
- for m in mi:
- if m == 'RDojo_Menu':
- cmds.deleteUI('RDojo_Menu', m=True)
-
- mymenu = cmds.menu('RDojo_Menu', label='RDMenu', to=True, p='MayaWindow')
- cmds.menuItem(label='Rig Tool', parent=mymenu, command=self.ui)
-
- """ Create a dictionary to store UI elements.
- This will allow us to access these elements later. """
- self.UIElements = {}
-
- # This dictionary will store all of the available rigging modules.
- self.rigmodlst = []
- rigcontents = os.listdir(os.environ["RIGGING_TOOL"] + '/rig')
- for mod in rigcontents:
- if '.pyc' not in mod and '__init__' not in mod:
- self.rigmodlst.append(mod)
-
- # An empty list to store information collected from the ui.
- self.uiinfo = []
-
- def ui(self, *args):
- """ Check to see if the UI exists """
- windowName = "Window"
- if cmds.window(windowName, exists=True):
- cmds.deleteUI(windowName)
- """ Define width and height for buttons and windows"""
- windowWidth = 240
- windowHeight = 120
- buttonWidth = 55
- buttonHeight = 22
-
- self.UIElements["window"] = cmds.window(windowName, width=windowWidth, height=windowHeight, title="RDojo_UI",
- sizeable=True)
-
- self.UIElements["mainColLayout"] = cmds.columnLayout(adjustableColumn=True)
- self.UIElements["guiFrameLayout1"] = cmds.frameLayout(label='rigging', borderStyle='in',
- p=self.UIElements["mainColLayout"])
- self.UIElements["guiFlowLayout1"] = cmds.flowLayout(v=False, width=windowWidth, height=windowHeight / 2,
- wr=False, bgc=[0.2, 0.2, 0.2],
- p=self.UIElements["guiFrameLayout1"])
-
- cmds.separator(w=10, hr=True, st='none', p=self.UIElements["guiFlowLayout1"])
- self.UIElements["rigMenu"] = cmds.optionMenu('Rig_Install', label='Rig', p=self.UIElements["guiFlowLayout1"])
-
- # Dynamically make a menu item for each rigging module.
- for mod in self.rigmodlst:
- itemname = mod.replace('.py', '')
- cmds.menuItem(label=itemname, p=self.UIElements["rigMenu"], c=partial(self.rigmod, itemname))
-
- cmds.separator(w=10, hr=True, st='none', p=self.UIElements["guiFlowLayout1"])
- # Make a menu for left, right and center sides.
- # We will query the value later.
- sides = ['_L_', '_R_', '_C_']
- self.UIElements["sideMenu"] = cmds.optionMenu('Side', label='side', p=self.UIElements["guiFlowLayout1"])
- for s in sides:
- cmds.menuItem(label=s, p=self.UIElements["sideMenu"])
-
- # Make a button to run the rig script
- modfile = cmds.optionMenu(self.UIElements["rigMenu"], q=True, v=True)
- cmds.separator(w=10, hr=True, st='none', p=self.UIElements["guiFlowLayout1"])
- self.UIElements["rigbutton"] = cmds.button(label="Rig", width=buttonWidth, height=buttonHeight,
- bgc=[0.2, 0.4, 0.2], p=self.UIElements["guiFlowLayout1"],
- c=partial(self.rigmod, modfile))
-
-
- """ Show the window"""
- cmds.showWindow(windowName)
-
- def rigmod(self, modfile, *args):
- """__import__ basically opens a module and reads some info from it
- without actually loading the module in memory."""
- mod = __import__("rig." + modfile, {}, {}, [modfile])
- reload(mod)
-
- sideval = cmds.optionMenu(self.UIElements["sideMenu"], q=True, v=True)
- self.uiinfo.append([sideval, modfile])
-
- # getattr will get an attribute from a class
- moduleClass = getattr(mod, mod.classname)
- moduleInstance = moduleClass(self.uiinfo[0])
\ No newline at end of file