tracksperanto 1.1.1 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. data/.DS_Store +0 -0
  2. data/History.txt +11 -0
  3. data/Manifest.txt +64 -20
  4. data/README.txt +82 -30
  5. data/Rakefile +1 -0
  6. data/bin/tracksperanto +21 -14
  7. data/lib/export/base.rb +16 -6
  8. data/lib/export/match_mover.rb +40 -0
  9. data/lib/export/nuke_script.rb +78 -0
  10. data/lib/export/pftrack.rb +14 -14
  11. data/lib/export/shake_text.rb +7 -8
  12. data/lib/export/syntheyes.rb +9 -5
  13. data/lib/import/base.rb +45 -12
  14. data/lib/import/flame_stabilizer.rb +17 -32
  15. data/lib/import/match_mover.rb +65 -0
  16. data/lib/import/nuke_script.rb +96 -0
  17. data/lib/import/pftrack.rb +9 -2
  18. data/lib/import/shake_grammar/catcher.rb +56 -0
  19. data/lib/import/shake_grammar/lexer.rb +95 -0
  20. data/lib/import/shake_script.rb +189 -103
  21. data/lib/import/shake_text.rb +5 -3
  22. data/lib/import/syntheyes.rb +9 -2
  23. data/lib/middleware/base.rb +6 -1
  24. data/lib/middleware/golden.rb +7 -0
  25. data/lib/middleware/reformat.rb +10 -3
  26. data/lib/middleware/scaler.rb +14 -4
  27. data/lib/middleware/shift.rb +10 -0
  28. data/lib/middleware/slipper.rb +3 -0
  29. data/lib/pipeline/base.rb +111 -37
  30. data/lib/tracksperanto/block_init.rb +7 -0
  31. data/lib/tracksperanto/casts.rb +31 -0
  32. data/lib/tracksperanto/format_detector.rb +35 -0
  33. data/lib/tracksperanto/keyframe.rb +31 -0
  34. data/lib/tracksperanto/safety.rb +20 -0
  35. data/lib/tracksperanto/tracker.rb +38 -0
  36. data/lib/tracksperanto/zip_tuples.rb +20 -0
  37. data/lib/tracksperanto.rb +13 -100
  38. data/test/.DS_Store +0 -0
  39. data/test/export/.DS_Store +0 -0
  40. data/test/export/README_EXPORT_TESTS.txt +15 -0
  41. data/test/export/samples/ref_NukeScript.nk +25 -0
  42. data/test/export/samples/ref_NukeScript.nk.autosave +77 -0
  43. data/test/export/samples/ref_PFTrack.2dt +50 -0
  44. data/test/export/samples/ref_ShakeText.txt +48 -0
  45. data/test/export/samples/ref_Syntheyes.txt +42 -0
  46. data/test/export/samples/ref_matchmover.rz2 +52 -0
  47. data/test/export/test_match_mover_export.rb +16 -0
  48. data/test/export/test_mux.rb +23 -0
  49. data/test/export/test_nuke_export.rb +22 -0
  50. data/test/export/test_pftrack_export.rb +19 -0
  51. data/test/export/test_shake_export.rb +15 -0
  52. data/test/export/test_syntheyes_export.rb +15 -0
  53. data/test/helper.rb +85 -2
  54. data/test/import/.DS_Store +0 -0
  55. data/test/{samples → import/samples}/.DS_Store +0 -0
  56. data/test/{samples → import/samples}/flyover2DP_syntheyes.txt +0 -0
  57. data/test/import/samples/four_tracks_in_one_matchmove.shk +323 -0
  58. data/test/import/samples/four_tracks_in_one_stabilizer.shk +321 -0
  59. data/test/{samples → import/samples}/fromCombustion_fromMidClip_wSnap.stabilizer +0 -0
  60. data/test/{samples → import/samples}/hugeFlameSetup.stabilizer +0 -0
  61. data/test/import/samples/kipPointsMatchmover.rz2 +523 -0
  62. data/test/{samples → import/samples}/megaTrack.action.3dtrack.stabilizer +0 -0
  63. data/test/{samples → import/samples}/one_shake_tracker.txt +0 -0
  64. data/test/{samples → import/samples}/one_shake_tracker_from_first.txt +0 -0
  65. data/test/import/samples/one_tracker_with_break.nk +71 -0
  66. data/test/import/samples/one_tracker_with_break_in_grp.nk +91 -0
  67. data/test/{samples → import/samples}/shake_tracker_nodes.shk +0 -0
  68. data/test/{samples → import/samples}/shake_tracker_nodes_to_syntheyes.txt +0 -0
  69. data/test/{samples → import/samples}/sourcefile_pftrack.2dt +0 -0
  70. data/test/{samples → import/samples}/three_tracks_in_one_stabilizer.shk +0 -0
  71. data/test/{samples → import/samples}/two_shake_trackers.txt +0 -0
  72. data/test/{samples → import/samples}/two_tracks_in_one_tracker.shk +0 -0
  73. data/test/{test_flame_import.rb → import/test_flame_import.rb} +15 -9
  74. data/test/import/test_match_mover_import.rb +44 -0
  75. data/test/import/test_nuke_import.rb +63 -0
  76. data/test/{test_pftrack_import.rb → import/test_pftrack_import.rb} +10 -4
  77. data/test/import/test_shake_catcher.rb +72 -0
  78. data/test/import/test_shake_lexer.rb +95 -0
  79. data/test/import/test_shake_script_import.rb +75 -0
  80. data/test/{test_shake_text_import.rb → import/test_shake_text_import.rb} +10 -3
  81. data/test/{test_syntheyes_import.rb → import/test_syntheyes_import.rb} +8 -3
  82. data/test/middleware/test_golden_middleware.rb +32 -0
  83. data/test/middleware/test_reformat_middleware.rb +35 -0
  84. data/test/middleware/test_scaler_middleware.rb +51 -0
  85. data/test/middleware/test_shift_middleware.rb +26 -0
  86. data/test/middleware/test_slip_middleware.rb +31 -0
  87. data/test/pipeline/test_pipeline_base.rb +14 -0
  88. data/test/test_format_detector.rb +39 -0
  89. data/test/test_tracker.rb +48 -0
  90. data/tracksperanto.gemspec +9 -7
  91. metadata +101 -30
  92. data/lib/middleware/close.rb +0 -6
  93. data/test/test_shake_export.rb +0 -58
  94. data/test/test_shake_script_import.rb +0 -50
@@ -0,0 +1,22 @@
1
+ require File.dirname(__FILE__) + '/../helper'
2
+
3
+ class NukeExportTest < Test::Unit::TestCase
4
+ include ParabolicTracks
5
+ P = File.dirname(__FILE__) + "/samples/ref_NukeScript.nk"
6
+
7
+ def test_export_output_written
8
+ ensure_same_output Tracksperanto::Export::NukeScript, P
9
+ end
10
+
11
+ def test_exporter_meta
12
+ assert_equal "nuke.nk", Tracksperanto::Export::NukeScript.desc_and_extension
13
+ assert_equal "Nuke .nk script", Tracksperanto::Export::NukeScript.human_name
14
+ end
15
+
16
+ def test_tuples_to_curves
17
+ tuples = [[6, 234, 145], [8, 144, 223], [9, 231, 189]]
18
+ x = Tracksperanto::Export::NukeScript.new(StringIO.new)
19
+ curves = x.send(:curves_from_tuples, tuples)
20
+ assert_equal "{curve i x6 234.0000 x8 144.0000 231.0000} {curve i x6 145.0000 x8 223.0000 189.0000}", curves
21
+ end
22
+ end
@@ -0,0 +1,19 @@
1
+ require File.dirname(__FILE__) + '/../helper'
2
+
3
+ class PFTrackExportTest < Test::Unit::TestCase
4
+ include ParabolicTracks
5
+
6
+ def test_human_name
7
+ assert_equal "PFTrack .2dt file", Tracksperanto::Export::PFTrack.human_name
8
+ end
9
+
10
+ def test_desc_and_ext
11
+ assert_equal "pftrack.2dt", Tracksperanto::Export::PFTrack.desc_and_extension
12
+ end
13
+
14
+ P = File.dirname(__FILE__) + "/samples/ref_PFTrack.2dt"
15
+
16
+ def test_export_output_written
17
+ ensure_same_output Tracksperanto::Export::PFTrack, P
18
+ end
19
+ end
@@ -0,0 +1,15 @@
1
+ require File.dirname(__FILE__) + '/../helper'
2
+
3
+ class ShakeTextExportTest < Test::Unit::TestCase
4
+ include ParabolicTracks
5
+ P = File.dirname(__FILE__) + "/samples/ref_ShakeText.txt"
6
+
7
+ def test_export_output_written
8
+ ensure_same_output Tracksperanto::Export::ShakeText, P
9
+ end
10
+
11
+ def test_exporter_meta
12
+ assert_equal "shake_trackers.txt", Tracksperanto::Export::ShakeText.desc_and_extension
13
+ assert_equal "Shake trackers in a .txt file", Tracksperanto::Export::ShakeText.human_name
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ require File.dirname(__FILE__) + '/../helper'
2
+
3
+ class SynthEyesExportTest < Test::Unit::TestCase
4
+ include ParabolicTracks
5
+ P = File.dirname(__FILE__) + "/samples/ref_Syntheyes.txt"
6
+
7
+ def test_export_output_written
8
+ ensure_same_output Tracksperanto::Export::SynthEyes, P
9
+ end
10
+
11
+ def test_exporter_meta
12
+ assert_equal "syntheyes_2dt.txt", Tracksperanto::Export::SynthEyes.desc_and_extension
13
+ assert_equal "Syntheyes 2D tracker .txt file", Tracksperanto::Export::SynthEyes.human_name
14
+ end
15
+ end
data/test/helper.rb CHANGED
@@ -1,5 +1,88 @@
1
- require File.dirname(__FILE__) + '/../lib/tracksperanto'
1
+ require File.dirname(__FILE__) + '/../lib/tracksperanto' unless defined?(Tracksperanto)
2
2
  require 'test/unit'
3
3
  require 'rubygems'
4
4
  require 'flexmock'
5
- require 'flexmock/test_unit'
5
+ require 'flexmock/test_unit'
6
+
7
+ # This module creates ideal parabolic tracks for testing exporters. The two trackers
8
+ # will start at opposite corners of the image and traverse two parabolic curves, touching
9
+ # the bounds of the image at the and and in the middle. On the middle frame they will vertically
10
+ # align. To push the parabolics through your exporter under test, run
11
+ #
12
+ # export_parabolics_with(my_exporter)
13
+ #
14
+ # The tracker residual will degrade linarly and wll be "good" at the first image, "medium" at the extreme
15
+ # and "bad" at end
16
+ module ParabolicTracks
17
+ x_uv_chain = [
18
+ -1.0, -0.9, -0.8, -0.7, -0.6, -0.5, -0.4, -0.3, -0.2, -0.1, 0,
19
+ 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
20
+ ]
21
+
22
+ def self.uv_to_abs(uv_x, uv_y, w, h)
23
+ x_wt = w.to_f / 2.0
24
+ y_wt = h.to_f / 2.0
25
+ [(uv_x + 1) * x_wt, ((uv_y) * y_wt) * 2]
26
+ end
27
+
28
+ from_uv = lambda do | coordinate, dimension |
29
+ dimension_part = dimension / 2
30
+ (coordinate + 1.0) * dimension_part
31
+ end
32
+
33
+ tuples_for_tracker_1 = x_uv_chain.inject([]) do | tuples_m, x_value |
34
+ tuples_m << [tuples_m.length, x_value, x_value ** 2]
35
+ end
36
+
37
+ tuples_for_tracker_2 = tuples_for_tracker_1.map do | tuple |
38
+ [tuple[0], tuple[1], (tuple[2] * -1) + 1]
39
+ end
40
+
41
+ tuples_for_tracker_2.reverse!
42
+ tuples_for_tracker_2.each_with_index do | t, i |
43
+ t[0] = i
44
+ end
45
+
46
+ residual_unit = 1.0 / x_uv_chain.length
47
+
48
+ FIRST_TRACK = Tracksperanto::Tracker.new(:name => "Parabolic_1_from_top_left") do | t |
49
+ tuples_for_tracker_1.each do | (f, x, y )|
50
+ ax, ay = uv_to_abs(x, y, 1920, 1080)
51
+ t.keyframe!(:frame => f, :abs_x => ax, :abs_y => ay, :residual => (f * residual_unit))
52
+ end
53
+ end
54
+
55
+ SECOND_TRACK = Tracksperanto::Tracker.new(:name => "Parabolic_2_from_bottom_right") do | t |
56
+ tuples_for_tracker_2.each do | (f, x, y )|
57
+ ax, ay = uv_to_abs(x, y, 1920, 1080)
58
+ t.keyframe!(:frame => f, :abs_x => ax, :abs_y => ay, :residual => (f * residual_unit))
59
+ end
60
+ end
61
+
62
+ def create_reference_output(exporter_klass, ref_path)
63
+ File.open(ref_path, "w") do | io |
64
+ export_parabolics_with(exporter_klass.new(io))
65
+ end
66
+ end
67
+
68
+ def ensure_same_output(exporter_klass, reference_path)
69
+ io = StringIO.new
70
+ x = exporter_klass.new(io)
71
+ export_parabolics_with(x)
72
+ io.close
73
+
74
+ assert_equal File.read(reference_path), io.string
75
+ end
76
+
77
+ def export_parabolics_with(exporter)
78
+ exporter.start_export(1920, 1080)
79
+ [FIRST_TRACK, SECOND_TRACK].each do | t |
80
+ exporter.start_tracker_segment(t.name)
81
+ t.keyframes.each do | kf |
82
+ exporter.export_point(kf.frame, kf.abs_x, kf.abs_y, kf.residual)
83
+ end
84
+ exporter.end_tracker_segment
85
+ end
86
+ exporter.end_export
87
+ end
88
+ end unless defined?(ParabolicTracks)
Binary file
File without changes
@@ -0,0 +1,323 @@
1
+ // Shake v4.10.0606 - (c) Apple Computer, Inc. 1998-2006. All Rights Reserved.
2
+ // Apple, the Apple logo and Shake are trademarks of Apple Computer, Inc., registered in the U.S. and other countries.
3
+
4
+
5
+ SetTimeRange("1-185");
6
+ SetFieldRendering(0);
7
+ SetFps(24);
8
+ SetMotionBlur(1, 1, 0);
9
+ SetQuality(1);
10
+ SetUseProxy("Base");
11
+ SetProxyFilter("default");
12
+ SetPixelScale(1, 1);
13
+ SetUseProxyOnMissing(1);
14
+ SetDefaultWidth(720);
15
+ SetDefaultHeight(486);
16
+ SetDefaultBytes(1);
17
+ SetDefaultAspect(1);
18
+ SetDefaultViewerAspect(1);
19
+ SetMacroCheck(1);
20
+ SetTimecodeMode("24 FPS");
21
+
22
+ DefineProxyPath("No_Precomputed_Proxy", 1, 1, -1, "Auto", -1, 0, 0, "",1);
23
+ DefineProxyPath("No_Precomputed_Proxy", 0.5, 1, 1, "Auto", 0, 0, 1, "");
24
+ DefineProxyPath("No_Precomputed_Proxy", 0.25, 1, 1, "Auto", 0, 0, 2, "");
25
+ DefineProxyPath("No_Precomputed_Proxy", 0.1, 1, 1, "Auto", 0, 0, 3, "");
26
+ SetAudio("100W@E0000qFdsuHW962Dl9BOW0mWa06w7mCJ000000000008");
27
+
28
+ // Input nodes
29
+
30
+ N0266_RSZ_2560 = SFileIn("$HOME/Desktop/KipShot/0266_RSZ_2560.1-185#.tif",
31
+ "Auto", 0, 0, "v1.1", "0", "");
32
+
33
+ // Processing nodes
34
+
35
+ LogLin1 = LogLin(N0266_RSZ_2560, 0, 0, 0, 0, 95, rBlack, rBlack,
36
+ 685, rWhite, rWhite, 1.30000007, rNGamma, rNGamma, 1.7, rDGamma,
37
+ rDGamma, 0, rSoftClip, rSoftClip);
38
+ MatchMove1 = MatchMove(LogLin1, N0266_RSZ_2560, 0, "4 point",
39
+ Linear(0,136.333@89,136.755@90,137.755@91,138.755@92,138.771@93,138.271@94,137.99@95,138.833@96,139.365@97,139.646@98,139.474@99,140.568@100,144.193@101,152.662@102),
40
+ Linear(0,81.0001@89,80.6719@90,80.6719@91,80.4844@92,79.8126@93,79.2501@94,78.5626@95,76.4063@96,72.5313@97,66.2813@98,58.6407@99,48.7813@100,40.5469@101,37.7344@102),
41
+ 1, 1, Linear(0,1424.67@89,1424.73@90,1425.46@91,1425.71@92,1425.29@93,1425.21@94,1425.01@95,1425.57@96,1425.87@97,1425.98@98,1426.21@99,1427.35@100,1429.29@101,1434.21@102),
42
+ Linear(0,135@89,134.531@90,134.344@91,134.594@92,134.844@93,133.766@94,133.531@95,131.156@96,127.359@97,121.015@98,112.734@99,102.031@100,92.484@101,83.5153@102),
43
+ 1, 1, Linear(0,896.667@89,897.01@90,898.104@91,898.792@92,898.604@93,897.917@94,897.198@95,897.76@96,898.417@97,898.23@98,898.23@99,899.105@100,901.167@101,905.542@102),
44
+ Linear(0,492@89,491.719@90,491.516@91,491.25@92,490.594@93,490.109@94,489.656@95,487.219@96,483.5@97,477.031@98,468.797@99,459@100,449.188@101,439.703@102),
45
+ Linear(0,709.333@89,709.521@90,710.271@91,710.818@92,710.661@93,709.88@94,709.427@95,710.099@96,710.974@97,711.443@98,711.583@99,712.818@100,715.755@101,720.599@102),
46
+ Linear(0,810@89,809.453@90,809.172@91,808.672@92,808@93,807.391@94,806.875@95,804.312@96,800.375@97,794.062@98,785.797@99,775.578@100,765.219@101,755.219@102),
47
+ 0, 0, Background.width, 0, Background.width, Background.height,
48
+ 0, Background.height, "default", xFilter, 0, 0.5, 0, 1, "Background",
49
+ 1, "v2.0", 1, 0, 1, 102, "1/64", "luminance", 0.3, 0.59,
50
+ 0.11, 0.75, "use start frame", 0.5, "stop", 1, 0, 25, "track1",
51
+ 116.333435, 188.333435, 1.000061, 73.00006, 80.3334351, 224.333435,
52
+ -34.99994, 109.000061, "track2", 1397.66675, 1469.66675,
53
+ 47, 119, 1361.66675, 1505.66675, 11, 155, "track3", 868.666748,
54
+ 940.666748, 403.000061, 475.000061, 832.666748, 976.666748,
55
+ 367.000061, 511.000061, "track4", 683.3333, 755.3333, 718,
56
+ 790, 647.3333, 791.3333, 682, 826);
57
+
58
+
59
+ // User Interface settings
60
+
61
+ SetKey(
62
+ "colorPicker.hex", "0",
63
+ "colorPicker.range", "32",
64
+ "globals.broadcastHighQuality", "1",
65
+ "globals.broadcastMonitorNumber", "2",
66
+ "globals.broadcastViewerAspectRatio", "1",
67
+ "globals.cacheMode", "2",
68
+ "globals.consoleLineLength", "120",
69
+ "globals.displayThumbnails", "1",
70
+ "globals.enhancedNodeView", "0",
71
+ "globals.fileBrowser.favorites", "/;$HOME;/Users/julik//nreal/;/Applications/Shake/;/Applications/Shake/doc/pix/;$HOME/Desktop/VFX_Projectery/Decathlon/;$HOME/Desktop/VFX_Projectery/Herocomplex/;/Code/apps/tracksperanto/test/export/;",
72
+ "globals.fileBrowserExactList", "0",
73
+ "globals.fileBrowserFilterList", "1",
74
+ "globals.fileBrowserFullList", "0",
75
+ "globals.fileBrowserHeight", "540",
76
+ "globals.fileBrowserImageList", "0",
77
+ "globals.fileBrowserLC1", "230",
78
+ "globals.fileBrowserLC2", "70",
79
+ "globals.fileBrowserLC3", "110",
80
+ "globals.fileBrowserLC4", "245",
81
+ "globals.fileBrowserLC5", "175",
82
+ "globals.fileBrowserLC6", "65",
83
+ "globals.fileBrowserLC7", "111",
84
+ "globals.fileBrowserRIntSet", "0",
85
+ "globals.fileBrowserSC1", "211",
86
+ "globals.fileBrowserSC2", "211",
87
+ "globals.fileBrowserSC3", "211",
88
+ "globals.fileBrowserSeqList", "0",
89
+ "globals.fileBrowserShortList", "0",
90
+ "globals.fileBrowserWIntSet", "1",
91
+ "globals.fileBrowserWidth", "790",
92
+ "globals.fileBrowserfullPath", "0",
93
+ "globals.fontBlue", "1",
94
+ "globals.fontGreen", "1",
95
+ "globals.fontRed", "1",
96
+ "globals.gridBlue", "0.15",
97
+ "globals.gridEnabled", "0",
98
+ "globals.gridGreen", "0.15",
99
+ "globals.gridHeight", "40",
100
+ "globals.gridRed", "0.15",
101
+ "globals.gridVisible", "0",
102
+ "globals.gridWidth", "40",
103
+ "globals.layoutTightness", "40",
104
+ "globals.multiPlaneLocatorScale", "1",
105
+ "globals.noodleABlue", "1",
106
+ "globals.noodleAGreen", "1",
107
+ "globals.noodleARed", "1",
108
+ "globals.noodleAZBlue", "0.4",
109
+ "globals.noodleAZGreen", "0",
110
+ "globals.noodleAZRed", "0",
111
+ "globals.noodleBWABlue", "0.4",
112
+ "globals.noodleBWAGreen", "0.4",
113
+ "globals.noodleBWARed", "0.4",
114
+ "globals.noodleBWAZBlue", "0.4",
115
+ "globals.noodleBWAZGreen", "0",
116
+ "globals.noodleBWAZRed", "0",
117
+ "globals.noodleBWBlue", "0.15",
118
+ "globals.noodleBWGreen", "0.15",
119
+ "globals.noodleBWRed", "0.15",
120
+ "globals.noodleBWZBlue", "0.4",
121
+ "globals.noodleBWZGreen", "0",
122
+ "globals.noodleBWZRed", "0",
123
+ "globals.noodleBlue", "1",
124
+ "globals.noodleColorCoding", "2",
125
+ "globals.noodleGreen", "1",
126
+ "globals.noodleRGBABlue", "0.7",
127
+ "globals.noodleRGBAGreen", "0.7",
128
+ "globals.noodleRGBARed", "0.7",
129
+ "globals.noodleRGBAZBlue", "1",
130
+ "globals.noodleRGBAZGreen", "0.4",
131
+ "globals.noodleRGBAZRed", "0.4",
132
+ "globals.noodleRGBBlue", "0",
133
+ "globals.noodleRGBGreen", "0.7",
134
+ "globals.noodleRGBRed", "0.7",
135
+ "globals.noodleRGBZBlue", "0.8",
136
+ "globals.noodleRGBZGreen", "0.2",
137
+ "globals.noodleRGBZRed", "0.2",
138
+ "globals.noodleRed", "1",
139
+ "globals.noodleStipple16", "1061109567",
140
+ "globals.noodleStipple32", "-1",
141
+ "globals.noodleStipple8", "-1431655766",
142
+ "globals.noodleTension", "0.25",
143
+ "globals.noodleZBlue", "0.4",
144
+ "globals.noodleZGreen", "0",
145
+ "globals.noodleZRed", "0",
146
+ "globals.paintFrameMode", "1",
147
+ "globals.pdfBrowserPath", "",
148
+ "globals.proxyTog.cycle", "-1,0,0,0,0,-1",
149
+ "globals.renderModeTog.cycle", "2,0,0,2",
150
+ "globals.rotoAutoControlScale", "1",
151
+ "globals.rotoBuildColorBlue", "0.75",
152
+ "globals.rotoBuildColorGreen", "0.75",
153
+ "globals.rotoBuildColorRed", "0.375",
154
+ "globals.rotoControlScale", "1",
155
+ "globals.rotoFocusColorBlue", "0.9375",
156
+ "globals.rotoFocusColorGreen", "0.375",
157
+ "globals.rotoFocusColorRed", "0.5",
158
+ "globals.rotoFocusSelectColorBlue", "0.5",
159
+ "globals.rotoFocusSelectColorGreen", "1",
160
+ "globals.rotoFocusSelectColorRed", "0.5",
161
+ "globals.rotoKeyedColorBlue", "1",
162
+ "globals.rotoKeyedColorGreen", "0.65",
163
+ "globals.rotoKeyedColorRed", "0.45",
164
+ "globals.rotoNormalColorBlue", "0.125",
165
+ "globals.rotoNormalColorGreen", "0.75",
166
+ "globals.rotoNormalColorRed", "0.75",
167
+ "globals.rotoNormalSelectColorBlue", "0.0625",
168
+ "globals.rotoNormalSelectColorGreen", "1",
169
+ "globals.rotoNormalSelectColorRed", "0.0625",
170
+ "globals.rotoPickRadius", "15",
171
+ "globals.rotoTangentColorBlue", "0.125",
172
+ "globals.rotoTangentColorGreen", "0.5625",
173
+ "globals.rotoTangentColorRed", "0.5625",
174
+ "globals.rotoTangentCreationRadius", "10",
175
+ "globals.rotoTempKeyColorBlue", "0",
176
+ "globals.rotoTempKeyColorGreen", "0.5",
177
+ "globals.rotoTempKeyColorRed", "1",
178
+ "globals.rotoTransformIncrement", "5",
179
+ "globals.showActiveGlows", "2",
180
+ "globals.showConcatenationLinks", "2",
181
+ "globals.showExpressionLinks", "2",
182
+ "globals.showTimeDependency", "2",
183
+ "globals.textureProxy", "1",
184
+ "globals.thumbAlphaBlend", "1",
185
+ "globals.thumbSize", "15",
186
+ "globals.thumbSizeRelative", "0",
187
+ "globals.viewerAspectRatio", "script.defaultViewerAspectRatio",
188
+ "globals.viewerZoom", "1.0/proxyScale",
189
+ "globals.virtualSliderMode", "0",
190
+ "globals.virtualSliderSpeed", "0.25",
191
+ "globals.warpBoundaryNormalColorBlue", "0",
192
+ "globals.warpBoundaryNormalColorGreen", "0.5",
193
+ "globals.warpBoundaryNormalColorRed", "1",
194
+ "globals.warpConnectionNormalColorBlue", "0.8",
195
+ "globals.warpConnectionNormalColorGreen", "0",
196
+ "globals.warpConnectionNormalColorRed", "0.4",
197
+ "globals.warpDisplacedNormalColorBlue", "1",
198
+ "globals.warpDisplacedNormalColorGreen", "0",
199
+ "globals.warpDisplacedNormalColorRed", "1",
200
+ "globals.warpLockedColorBlue", "0.6",
201
+ "globals.warpLockedColorGreen", "0.6",
202
+ "globals.warpLockedColorRed", "0.6",
203
+ "globals.warpSourceNormalColorBlue", "1",
204
+ "globals.warpSourceNormalColorGreen", "0.8",
205
+ "globals.warpSourceNormalColorRed", "0",
206
+ "globals.warpTargetNormalColorBlue", "0.7",
207
+ "globals.warpTargetNormalColorGreen", "0.2",
208
+ "globals.warpTargetNormalColorRed", "0.2",
209
+ "globals.webBrowserPath", "",
210
+ "mainQuad.bot", "0.6",
211
+ "mainQuad.left", "0.29",
212
+ "mainQuad.right", "0.35",
213
+ "mainQuad.top", "0.6",
214
+ "mainWin.height", "1146",
215
+ "mainWin.tabChild1", "0.Image",
216
+ "mainWin.tabChild10", "0.Node_View_2",
217
+ "mainWin.tabChild11", "0.Time_View",
218
+ "mainWin.tabChild12", "1.Parameters1",
219
+ "mainWin.tabChild13", "1.Parameters2",
220
+ "mainWin.tabChild14", "1.Globals",
221
+ "mainWin.tabChild15", "2.Viewers",
222
+ "mainWin.tabChild2", "0.Color",
223
+ "mainWin.tabChild3", "0.Filter",
224
+ "mainWin.tabChild4", "0.Key",
225
+ "mainWin.tabChild5", "0.Layer",
226
+ "mainWin.tabChild6", "0.Transform",
227
+ "mainWin.tabChild7", "0.Warp",
228
+ "mainWin.tabChild8", "0.Other",
229
+ "mainWin.tabChild9", "0.Curve_Editor_2",
230
+ "mainWin.width", "1914",
231
+ "mainWin.xPos", "3",
232
+ "mainWin.yPos", "7",
233
+ "nodeView.LogLin1.t", "0",
234
+ "nodeView.LogLin1.x", "335",
235
+ "nodeView.LogLin1.y", "1012",
236
+ "nodeView.MatchMove1.t", "0",
237
+ "nodeView.MatchMove1.x", "339",
238
+ "nodeView.MatchMove1.y", "941",
239
+ "nodeView.N0266_RSZ_2560.t", "1",
240
+ "nodeView.N0266_RSZ_2560.tnChannel", "0",
241
+ "nodeView.N0266_RSZ_2560.tnTime", "1",
242
+ "nodeView.N0266_RSZ_2560.tnVisible", "1",
243
+ "nodeView.N0266_RSZ_2560.x", "330",
244
+ "nodeView.N0266_RSZ_2560.y", "1079",
245
+ "nodeView.xPan", "-231.71138",
246
+ "nodeView.yPan", "-790.7842",
247
+ "nodeView.zoom", "1.404637",
248
+ "pixelAnalyzer1.aStatToggleState", "0",
249
+ "pixelAnalyzer1.accumulate", "0",
250
+ "pixelAnalyzer1.bStatToggleState", "0",
251
+ "pixelAnalyzer1.bit16ToggleState", "0",
252
+ "pixelAnalyzer1.bit32ToggleState", "1",
253
+ "pixelAnalyzer1.bit8ToggleState", "0",
254
+ "pixelAnalyzer1.gStatToggleState", "0",
255
+ "pixelAnalyzer1.hStatToggleState", "0",
256
+ "pixelAnalyzer1.hex", "0",
257
+ "pixelAnalyzer1.imgToggleState", "0",
258
+ "pixelAnalyzer1.lStatToggleState", "1",
259
+ "pixelAnalyzer1.offToggleState", "0",
260
+ "pixelAnalyzer1.pxlToggleState", "1",
261
+ "pixelAnalyzer1.rStatToggleState", "0",
262
+ "pixelAnalyzer1.sStatToggleState", "0",
263
+ "pixelAnalyzer1.vStatToggleState", "0",
264
+ "spawnedViewerCount", "0",
265
+ "timeBar.current", "102",
266
+ "timeBar.high", "185",
267
+ "timeBar.incr", "1",
268
+ "timeBar.low", "1",
269
+ "timeView.ctrls.selGroup", "0",
270
+ "timeView.list.open.N0266_RSZ_2560.cycle", "-2,-2,0",
271
+ "timeView.wSpace.constDisp", "0",
272
+ "timeView.wSpace.dispInOut", "1",
273
+ "timeView.wSpace.endTime", "100",
274
+ "timeView.wSpace.startTime", "1",
275
+ "timeView.wSpace.trim", "0",
276
+ "updater.mode", "2",
277
+ "vDesk.0.chanTog.0.cycle", "4,0,0,0,0,0",
278
+ "vDesk.0.chanTog.1.cycle", "4,0,0,0,0,0",
279
+ "vDesk.0.compareMode", "0",
280
+ "vDesk.0.compareTog.cycle", "-1,0,0,0,-1",
281
+ "vDesk.0.displayModeA", "0",
282
+ "vDesk.0.displayModeB", "0",
283
+ "vDesk.0.dodNodeSerial", "SetDOD(Select1, 0, 2560, 0, 1080);",
284
+ "vDesk.0.dodToggle", "0",
285
+ "vDesk.0.g", "1",
286
+ "vDesk.0.h", "768",
287
+ "vDesk.0.i", "0",
288
+ "vDesk.0.ih", "0",
289
+ "vDesk.0.isActive", "1",
290
+ "vDesk.0.iw", "0",
291
+ "vDesk.0.lookupNodeSerial0", "Truelight_VLUT_(ViewerDodSelect, \"none\", \"monitor\", \"log\", 0, 0, 0, 0, 0, 0, 1, 0.01, 16, 0.1978, 0.4683);",
292
+ "vDesk.0.lookupNodeSerial1", "ViewerLookup1_(ViewerDodSelect, 1, 0, 2, 0, 0, 0, 95, rBlack, rBlack, 685, rWhite, rWhite, 0.6, rNGamma, rNGamma, 1.7, rDGamma, rDGamma, 0, rSoftClip, rSoftClip);",
293
+ "vDesk.0.lookupTog.cycle", "1,0,0,0",
294
+ "vDesk.0.lookupToggle", "0",
295
+ "vDesk.0.monitoredNodeA", "NRiScript1.MatchMove1",
296
+ "vDesk.0.numViewerLookups", "2",
297
+ "vDesk.0.numViewerScripts", "6",
298
+ "vDesk.0.oscAutoKeyOnOff", "0",
299
+ "vDesk.0.oscLockTog.cycle", "1,0,0,0",
300
+ "vDesk.0.oscOnOff", "1",
301
+ "vDesk.0.oscTog.cycle", "1,0,0,1",
302
+ "vDesk.0.roiOnOff", "1",
303
+ "vDesk.0.scriptNodeSerial0", "ApertureMarking(riNode, \"Auto\", 0, 0, 1, 1, 1.0, 1.0, 1.0, 1.0, 3, 1, 0.2, academyDefaultRed, academyDefaultGreen, academyDefaultBlue, academyDefaultAlpha, academyDefaultLineWidth, 1, 0.4, academyDefaultRed, academyDefaultGreen, academyDefaultBlue, academyDefaultAlpha, academyDefaultLineWidth, 1, 0.6, academyDefaultRed, academyDefaultGreen, academyDefaultBlue, academyDefaultAlpha, academyDefaultLineWidth, 0, 0.8, academyDefaultRed, academyDefaultGreen, academyDefaultBlue, academyDefaultAlpha, academyDefaultLineWidth, 0, 0.5, academyDefaultRed, academyDefaultGreen, academyDefaultBlue, academyDefaultAlpha, academyDefaultLineWidth, 0, 0.25, academyDefaultRed, academyDefaultGreen, academyDefaultBlue, academyDefaultAlpha, academyDefaultLineWidth, 1.0, 1.0, 1.0, 1.0, 3, 0, 0.2, fullDefaultRed, fullDefaultGreen, fullDefaultBlue, fullDefaultAlpha, fullDefaultLineWidth, 1, 0.4, fullDefaultRed, fullDefaultGreen, fullDefaultBlue, fullDefaultAlpha, fullDefaultLineWidth, 1, 0.6, fullDefaultRed, fullDefaultGreen, fullDefaultBlue, fullDefaultAlpha, fullDefaultLineWidth, 1.0, 1.0, 1.0, 1.0, 1, 1, 20, 0.25, tvDefaultRed, tvDefaultGreen, tvDefaultBlue, tvDefaultAlpha, tvDefaultLineWidth, 1, 10, 0.5, tvDefaultRed, tvDefaultGreen, tvDefaultBlue, tvDefaultAlpha, tvDefaultLineWidth);",
304
+ "vDesk.0.scriptNodeSerial1", "ViewerScript_2_(riNode, 1, 1, 1, Input.width/2, Input.height/2);",
305
+ "vDesk.0.scriptNodeSerial2", "ViewerScript_3_(riNode, 3, 0, .5);",
306
+ "vDesk.0.scriptNodeSerial3", "ViewZ(riNode, 0, 0, 0, 5000000, 1, 100);",
307
+ "vDesk.0.scriptNodeSerial4", "FloatView_(riNode, 2, 0, 0, 1, 1-red1, 1-green1, 1-blue1);",
308
+ "vDesk.0.scriptNodeSerial5", "TimeCode_(riNode, \"Timecode\", 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, .5, 20, 20);",
309
+ "vDesk.0.scriptTog.cycle", "-1,0,0,0,0,0,0,-1",
310
+ "vDesk.0.scriptToggle", "0",
311
+ "vDesk.0.updateModeA", "1",
312
+ "vDesk.0.updateModeB", "1",
313
+ "vDesk.0.updateTog.0.cycle", "-1,0,0,1",
314
+ "vDesk.0.updateTog.1.cycle", "-1,0,0,1",
315
+ "vDesk.0.w", "1142",
316
+ "vDesk.0.x", "0",
317
+ "vDesk.0.xPan", "140",
318
+ "vDesk.0.xliderValue", "0",
319
+ "vDesk.0.y", "0",
320
+ "vDesk.0.yPan", "142",
321
+ "vDesk.0.zoom", "0.333333343",
322
+ "vDesk.viewers", "1"
323
+ );