tracksperanto 2.1.0 → 2.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/DEVELOPER_DOCS.rdoc +74 -0
- data/History.txt +5 -0
- data/Manifest.txt +2 -0
- data/README.txt +1 -33
- data/lib/export/base.rb +10 -2
- data/lib/export/mux.rb +4 -32
- data/lib/export/syntheyes.rb +17 -1
- data/lib/import/pftrack.rb +1 -1
- data/lib/import/shake_script.rb +23 -25
- data/lib/import/shake_text.rb +8 -8
- data/lib/middleware/base.rb +5 -25
- data/lib/middleware/golden.rb +0 -4
- data/lib/middleware/reformat.rb +0 -5
- data/lib/middleware/slipper.rb +1 -6
- data/lib/pipeline/base.rb +1 -2
- data/lib/tracksperanto.rb +3 -2
- data/lib/tracksperanto/accumulator.rb +15 -14
- data/lib/tracksperanto/buffer_io.rb +1 -4
- data/lib/tracksperanto/ext_io.rb +18 -6
- data/test/export/samples/ref_Syntheyes.txt +38 -38
- data/test/export/test_mux.rb +1 -1
- data/test/export/test_syntheyes_export.rb +1 -1
- data/test/import/samples/shake_script/track.shk +349 -0
- data/test/import/test_shake_script_import.rb +9 -0
- data/test/middleware/test_flop_middleware.rb +1 -1
- data/test/middleware/test_golden_middleware.rb +1 -1
- metadata +6 -6
- data/test/middleware/test_lens_distort_middleware.rb +0 -14
data/DEVELOPER_DOCS.rdoc
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
== Extending Tracksperanto
|
2
|
+
|
3
|
+
=== Importing your own formats
|
4
|
+
|
5
|
+
You can easily write a Tracksperanto import module - refer to Tracksperanto::Import::Base
|
6
|
+
docs. Your importer will be configured with width and height of the comp that it is importing, and will get an IO
|
7
|
+
object with the file that you are processing. The parse method should then return an array of Tracksperanto::Tracker objects which
|
8
|
+
are themselves arrays of Tracksperanto::Keyframe objects.
|
9
|
+
|
10
|
+
=== Exporting your own formats
|
11
|
+
|
12
|
+
You can easily write an exporter. Refer to the Tracksperanto::Export::Base docs. Note that your exporter should be able to chew alot of data
|
13
|
+
(hundreds of trackers with thousands of keyframes with exported files growing up to 5-10 megs in size are not uncommon!). This means that
|
14
|
+
the exporter should work with streams (smaller parts of the file being exported will be held in memory at a time).
|
15
|
+
|
16
|
+
=== Ading your own processing steps
|
17
|
+
|
18
|
+
You probably want to write a Middleware (consult the Tracksperanto::Middleware::Base docs) if you need some processing applied to the tracks
|
19
|
+
or their data. A Middleware is just like an export module, except that instead it sits between the exporter and the exporting routine. Middlewares wrap export
|
20
|
+
modules or each other, so you can stack different middleware modules together (like "scale first, then move").
|
21
|
+
|
22
|
+
=== Writing your own processing routines
|
23
|
+
|
24
|
+
You probably want to write a descendant of Tracksperanto::Pipeline::Base. This is a class that manages a conversion from start to finish, including detecting the
|
25
|
+
input format, allocating output files and building a chain of Middlewares to process the export. If you want to make a GUI for Tracksperanto you will likely need
|
26
|
+
to write your own Pipeline class or reimplement parts of it.
|
27
|
+
|
28
|
+
=== Reporting status from long-running operations
|
29
|
+
|
30
|
+
Almost every module in Tracksperanto has a method called report_progress. This method is used to notify an external callback of what you are doing, and helps keep
|
31
|
+
the software user-friendly. A well-behaved Tracksperanto module should manage it's progress reports properly.
|
32
|
+
|
33
|
+
=== Sample script
|
34
|
+
|
35
|
+
require "rubygems"
|
36
|
+
require "tracksperanto"
|
37
|
+
|
38
|
+
include Tracksperanto
|
39
|
+
|
40
|
+
# Create the importer object
|
41
|
+
some_importer = Importer.new(:width => 1024, :height => 576)
|
42
|
+
|
43
|
+
# Some object responding to #push has to be the receiver
|
44
|
+
# In this case we will use an array but this might get out of hand
|
45
|
+
# if you have alot of trackers - Tracksperanto uses a disk-based
|
46
|
+
# buffer for this instead (see Accumulator)
|
47
|
+
some_importer.receiver = []
|
48
|
+
|
49
|
+
# Run the import with the importer
|
50
|
+
some_importer.stream_parse((File.open("source_file.fmt")))
|
51
|
+
|
52
|
+
# Now the receiver contains trackers! Weeee!
|
53
|
+
trackers = importer.receiver
|
54
|
+
|
55
|
+
# Create the exporter and pass the output file to it
|
56
|
+
some_exporter = Exporter.new(File.open("exported_file.other", "wb"))
|
57
|
+
|
58
|
+
# Now add some middlewares, for example a Scale
|
59
|
+
scaler = Middleware::Scaler.new(some_exporter, :x_factor => 2)
|
60
|
+
# ... and a slip
|
61
|
+
slipper = Middleware::Slipper.new(scaler, :offset => 2)
|
62
|
+
# Middlewares wrap exporters and other middlewares, so you can chain them
|
63
|
+
# ad nauseam
|
64
|
+
|
65
|
+
# Now when we send export commands to the Slipper it will play them through
|
66
|
+
# to the Scaler and the Scaler in turn will send commands to the exporter.
|
67
|
+
slipper.start_export(1024, 576)
|
68
|
+
trackers.each do | t |
|
69
|
+
slipper.start_tracker_segment(t.name)
|
70
|
+
t.each {|kf slipper.export_point(kf.frame, kf.abs_x, kf.abs_y, kf.residual) }
|
71
|
+
slipper.end_tracker_segment
|
72
|
+
end
|
73
|
+
|
74
|
+
# And we are done!
|
data/History.txt
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
=== 2.1.1 / 2011-02-14
|
2
|
+
|
3
|
+
* Fix handling of Shake scripts containing stabilizer nodes with no animation
|
4
|
+
* Remove underscores from tracker names exported to Syntheyes to prevent spaces from being generated
|
5
|
+
|
1
6
|
=== 2.1.0 / 2011-02-08
|
2
7
|
* Adds PFMatchit import support. Also all PFTrack imported cameras will have a camera name injected into the tracker
|
3
8
|
* Adds a PFMatchit exporter (PFMatchit only wants cameras with numbers in the name)
|
data/Manifest.txt
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
DEVELOPER_DOCS.rdoc
|
1
2
|
History.txt
|
2
3
|
MIT_LICENSE.txt
|
3
4
|
Manifest.txt
|
@@ -118,6 +119,7 @@ test/import/samples/shake_script/shake_tracker_with_no_anim.shk
|
|
118
119
|
test/import/samples/shake_script/shake_trackers_with_Nspline.shk
|
119
120
|
test/import/samples/shake_script/stabilize_nodes_with_hermite.shk
|
120
121
|
test/import/samples/shake_script/three_tracks_in_one_stabilizer.shk
|
122
|
+
test/import/samples/shake_script/track.shk
|
121
123
|
test/import/samples/shake_script/two_tracks_in_one_tracker.shk
|
122
124
|
test/import/samples/shake_text/one_shake_tracker.txt
|
123
125
|
test/import/samples/shake_text/one_shake_tracker_from_first.txt
|
data/README.txt
CHANGED
@@ -94,36 +94,4 @@ Middlewares. Any processing chain (called a Pipeline) usually works like this:
|
|
94
94
|
Information about the search area, reference area and offset is not passed along (outside
|
95
95
|
of scope for the app and different trackers handle these differently, if at all). For some
|
96
96
|
modules no residual will be passed along (3D tracking apps generally do not export residual
|
97
|
-
with backprojected 3D features).
|
98
|
-
|
99
|
-
== Extending Tracksperanto
|
100
|
-
|
101
|
-
=== Importing your own formats
|
102
|
-
|
103
|
-
You can easily write a Tracksperanto import module - refer to Tracksperanto::Import::Base
|
104
|
-
docs. Your importer will be configured with width and height of the comp that it is importing, and will get an IO
|
105
|
-
object with the file that you are processing. The parse method should then return an array of Tracksperanto::Tracker objects which
|
106
|
-
are themselves arrays of Tracksperanto::Keyframe objects.
|
107
|
-
|
108
|
-
=== Exporting your own formats
|
109
|
-
|
110
|
-
You can easily write an exporter. Refer to the Tracksperanto::Export::Base docs. Note that your exporter should be able to chew alot of data
|
111
|
-
(hundreds of trackers with thousands of keyframes with exported files growing up to 5-10 megs in size are not uncommon!). This means that
|
112
|
-
the exporter should work with streams (smaller parts of the file being exported will be held in memory at a time).
|
113
|
-
|
114
|
-
=== Ading your own processing steps
|
115
|
-
|
116
|
-
You probably want to write a Middleware (consult the Tracksperanto::Middleware::Base docs) if you need some processing applied to the tracks
|
117
|
-
or their data. A Middleware is just like an export module, except that instead it sits between the exporter and the exporting routine. Middlewares wrap export
|
118
|
-
modules or each other, so you can stack different middleware modules together (like "scale first, then move").
|
119
|
-
|
120
|
-
=== Writing your own processing routines
|
121
|
-
|
122
|
-
You probably want to write a descendant of Tracksperanto::Pipeline::Base. This is a class that manages a conversion from start to finish, including detecting the
|
123
|
-
input format, allocating output files and building a chain of Middlewares to process the export. If you want to make a GUI for Tracksperanto you will likely need
|
124
|
-
to write your own Pipeline class or reimplement parts of it.
|
125
|
-
|
126
|
-
=== Reporting status from long-running operations
|
127
|
-
|
128
|
-
Almost every module in Tracksperanto has a method called report_progress. This method is used to notify an external callback of what you are doing, and helps keep
|
129
|
-
the software user-friendly. A well-behaved Tracksperanto module should manage it's progress reports properly.
|
97
|
+
with backprojected 3D features).
|
data/lib/export/base.rb
CHANGED
@@ -2,14 +2,22 @@
|
|
2
2
|
# The exporters in Tracksperanto are event-driven and follow the same conventions - your
|
3
3
|
# exporter will be notified when a tracker will be exported and when a tracker has been passed
|
4
4
|
# (the last keyframe has been sent). Here's how you can operate any exporter module
|
5
|
-
# separately:
|
5
|
+
# separately (this also demonstrates the calling convention and sequence):
|
6
6
|
#
|
7
7
|
# File.open("destination.txt", "wb") do | f |
|
8
8
|
# exporter = SomeExporter.new(f)
|
9
9
|
# exporter.start_export(720, 576)
|
10
|
+
#
|
11
|
+
# # Export the first tracker
|
10
12
|
# exporter.start_tracker_segment("FirstPoint")
|
11
13
|
# exporter.export_point(2, 123.43, 456.2, 0.2)
|
14
|
+
# exporter.export_point(3, 23423.43, 768.1, 0.1)
|
12
15
|
# exporter.end_tracker_segment
|
16
|
+
#
|
17
|
+
# # Export the second tracker
|
18
|
+
# exporter.start_tracker_segment("AnotherPoint")
|
19
|
+
# ....
|
20
|
+
# exported.end_tracker_segment
|
13
21
|
# exporter.end_export
|
14
22
|
# end
|
15
23
|
#
|
@@ -64,4 +72,4 @@ class Tracksperanto::Export::Base
|
|
64
72
|
# The calls come after start_tracker_segment and before end_tracker_segment
|
65
73
|
def export_point(at_frame_i, abs_float_x, abs_float_y, float_residual)
|
66
74
|
end
|
67
|
-
end
|
75
|
+
end
|
data/lib/export/mux.rb
CHANGED
@@ -1,40 +1,12 @@
|
|
1
1
|
# Multiplexor. Accepts a number of exporters and replays
|
2
2
|
# the calls to all of them in succession.
|
3
3
|
class Tracksperanto::Export::Mux
|
4
|
-
attr_accessor :outputs
|
5
|
-
|
6
4
|
def initialize(*outputs)
|
7
5
|
@outputs = outputs.flatten
|
8
6
|
end
|
9
|
-
|
10
|
-
# Called on export start
|
11
|
-
def start_export( img_width, img_height)
|
12
|
-
@outputs.each do | output |
|
13
|
-
output.start_export( img_width, img_height)
|
14
|
-
end
|
15
|
-
end
|
16
7
|
|
17
|
-
|
18
|
-
|
19
|
-
@outputs.
|
20
|
-
output.start_tracker_segment(tracker_name)
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def end_tracker_segment
|
25
|
-
@outputs.each do | output |
|
26
|
-
output.end_tracker_segment
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
# Called for each tracker keyframe
|
31
|
-
def export_point(at_frame_i, abs_float_x, abs_float_y, float_residual)
|
32
|
-
@outputs.each do | output |
|
33
|
-
output.export_point(at_frame_i, abs_float_x, abs_float_y, float_residual)
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
def end_export
|
38
|
-
@outputs.each{|o| o.end_export }
|
8
|
+
%w( start_export start_tracker_segment end_tracker_segment
|
9
|
+
export_point end_export).each do | m |
|
10
|
+
define_method(m){|*a| @outputs.map{|o| o.send(m, *a)}}
|
39
11
|
end
|
40
|
-
end
|
12
|
+
end
|
data/lib/export/syntheyes.rb
CHANGED
@@ -15,7 +15,7 @@ class Tracksperanto::Export::SynthEyes < Tracksperanto::Export::Base
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def start_tracker_segment(tracker_name)
|
18
|
-
@last_registered_frame, @tracker_name = nil, tracker_name
|
18
|
+
@last_registered_frame, @tracker_name = nil, camelize(tracker_name)
|
19
19
|
end
|
20
20
|
|
21
21
|
def export_point(frame, abs_float_x, abs_float_y, float_residual)
|
@@ -42,6 +42,9 @@ class Tracksperanto::Export::SynthEyes < Tracksperanto::Export::Base
|
|
42
42
|
# OUTCOME_JUMPED = 16
|
43
43
|
# OUTCOME_OUTASIGHT = 32
|
44
44
|
# We actually provide pregenerated status codes instead of that to get the desired outcome codes.
|
45
|
+
# When you set all frames to be keyframes this affects the solver in a negative way because Syntheyes
|
46
|
+
# (reasonably) gives priority to keyframes over standard frames of the tracker - and also
|
47
|
+
# the transition frames parameter does not work too well over keyframes
|
45
48
|
def get_outcome_code(frame)
|
46
49
|
outcome = if @last_registered_frame.nil? || (@last_registered_frame != (frame - 1))
|
47
50
|
STATUS_REENABLE
|
@@ -51,4 +54,17 @@ class Tracksperanto::Export::SynthEyes < Tracksperanto::Export::Base
|
|
51
54
|
@last_registered_frame = frame
|
52
55
|
outcome
|
53
56
|
end
|
57
|
+
|
58
|
+
# The import script in Syntheyes is designed to transform "Tracker_1"
|
59
|
+
# into "Tracker 1" by replacing underscores with spaces. This is all good and
|
60
|
+
# well but downstream when Syntheyes exports the matchmove some apps will be
|
61
|
+
# getting the features reinstated with spaces in their names. In some cases
|
62
|
+
# (for example in Maya) this leads to dangling groups because primitives with spaces
|
63
|
+
# in names cannot even be created! The reach of this problem is dependent on the
|
64
|
+
# sanity of the one who wrote the export sizzle script for Syntheyes. The morale of the
|
65
|
+
# story is - we will use CamelCase instead of underscores and avoid having
|
66
|
+
# spaces in feature names as such
|
67
|
+
def camelize(lower_case_and_underscored_word)
|
68
|
+
lower_case_and_underscored_word.to_s.gsub(/\/(.?)/) { "::#{$1.upcase}" }.gsub(/(?:^|_)(.)/) { $1.upcase }
|
69
|
+
end
|
54
70
|
end
|
data/lib/import/pftrack.rb
CHANGED
@@ -16,7 +16,7 @@ class Tracksperanto::Import::PFTrack < Tracksperanto::Import::Base
|
|
16
16
|
next if (!line || line =~ /^#/)
|
17
17
|
|
18
18
|
if line =~ CHARACTERS_OR_QUOTES # Tracker with a name
|
19
|
-
t = Tracksperanto::Tracker.new
|
19
|
+
t = Tracksperanto::Tracker.new(:name => unquote(line.strip))
|
20
20
|
report_progress("Reading tracker #{t.name}")
|
21
21
|
parse_tracker(t, io)
|
22
22
|
send_tracker(t)
|
data/lib/import/shake_script.rb
CHANGED
@@ -10,18 +10,22 @@ class Tracksperanto::Import::ShakeScript < Tracksperanto::Import::Base
|
|
10
10
|
".shk"
|
11
11
|
end
|
12
12
|
|
13
|
-
|
14
|
-
|
13
|
+
def stream_parse(script_io)
|
14
|
+
progress_proc = lambda{|msg| report_progress(msg) }
|
15
|
+
Traxtractor.new(script_io, [method(:send_tracker), progress_proc])
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
# Extractor. Here we define copies of Shake's standard node creation functions.
|
15
21
|
class Traxtractor < Tracksperanto::ShakeGrammar::Catcher
|
16
22
|
include Tracksperanto::ZipTuples
|
17
23
|
|
18
24
|
# Normally, we wouldn't need to look for the variable name from inside of the funcall. However,
|
19
25
|
# in this case we DO want to take this shortcut so we know how the tracker node is called
|
20
26
|
def push(atom)
|
21
|
-
return super unless (atom
|
22
|
-
|
23
|
-
(atom[2][0] == :retval) &&
|
24
|
-
(atom[2][1][0] == :trk)
|
27
|
+
return super unless atom_is_tracker_assignment?(atom)
|
28
|
+
|
25
29
|
node_name = atom[1][-1]
|
26
30
|
trackers = atom[2][1][1..-1]
|
27
31
|
trackers.map do | tracker |
|
@@ -30,6 +34,10 @@ class Tracksperanto::Import::ShakeScript < Tracksperanto::Import::Base
|
|
30
34
|
end
|
31
35
|
end
|
32
36
|
|
37
|
+
def atom_is_tracker_assignment?(a)
|
38
|
+
(a.is_a?(Array)) && (a[0] == :assign) && (a[2][0] == :retval) && (a[2][1][0] == :trk)
|
39
|
+
end
|
40
|
+
|
33
41
|
# For Linear() curve calls. If someone selected JSpline or Hermite it's his problem.
|
34
42
|
# We put the frame number at the beginning since it works witih oru tuple zipper
|
35
43
|
def linear(extrapolation_type, *keyframes)
|
@@ -206,7 +214,7 @@ class Tracksperanto::Import::ShakeScript < Tracksperanto::Import::Base
|
|
206
214
|
end
|
207
215
|
|
208
216
|
def collect_stabilizer_tracker(name, x_curve, y_curve)
|
209
|
-
return
|
217
|
+
return unless valid_curves?(x_curve, y_curve)
|
210
218
|
|
211
219
|
keyframes = zip_curve_tuples(x_curve, y_curve).map do | (frame, x, y) |
|
212
220
|
Tracksperanto::Keyframe.new(:frame => frame - 1, :abs_x => x, :abs_y => y)
|
@@ -216,10 +224,7 @@ class Tracksperanto::Import::ShakeScript < Tracksperanto::Import::Base
|
|
216
224
|
end
|
217
225
|
|
218
226
|
def collect_tracker(name, x_curve, y_curve, corr_curve, *discard)
|
219
|
-
unless
|
220
|
-
report_progress("Tracker #{name} had no anim or unsupported interpolation and can't be recovered")
|
221
|
-
return
|
222
|
-
end
|
227
|
+
return unless valid_curves?(x_curve, y_curve)
|
223
228
|
|
224
229
|
report_progress("Scavenging tracker #{name}")
|
225
230
|
|
@@ -237,21 +242,14 @@ class Tracksperanto::Import::ShakeScript < Tracksperanto::Import::Base
|
|
237
242
|
curve_set << corr_curve if (corr_curve.respond_to?(:length) && corr_curve.length >= x.length)
|
238
243
|
curve_set
|
239
244
|
end
|
240
|
-
end
|
241
|
-
|
242
|
-
class PushCall
|
243
|
-
def initialize(proc)
|
244
|
-
@proc = proc
|
245
|
-
end
|
246
245
|
|
247
|
-
|
248
|
-
|
246
|
+
private
|
247
|
+
|
248
|
+
def valid_curves?(x_curve, y_curve)
|
249
|
+
return false if (x_curve == :unknown || y_curve == :unknown)
|
250
|
+
return false unless x_curve.is_a?(Array) && y_curve.is_a?(Array)
|
251
|
+
true
|
249
252
|
end
|
253
|
+
|
250
254
|
end
|
251
|
-
|
252
|
-
def stream_parse(script_io)
|
253
|
-
progress_proc = lambda{|msg| report_progress(msg) }
|
254
|
-
Traxtractor.new(script_io, [method(:send_tracker), progress_proc])
|
255
|
-
end
|
256
|
-
|
257
255
|
end
|
data/lib/import/shake_text.rb
CHANGED
@@ -9,23 +9,23 @@ class Tracksperanto::Import::ShakeText < Tracksperanto::Import::Base
|
|
9
9
|
io.each do | line |
|
10
10
|
if line =~ /TrackName (.+)/
|
11
11
|
send_tracker(@last_tracker) if @last_tracker && @last_tracker.any?
|
12
|
-
@last_tracker = Tracksperanto::Tracker.new
|
12
|
+
@last_tracker = Tracksperanto::Tracker.new(:name => $1)
|
13
13
|
# Toss the next following string - header
|
14
14
|
io.gets
|
15
15
|
else
|
16
16
|
keyframe_values = line.split
|
17
17
|
next if keyframe_values.length < 4
|
18
18
|
|
19
|
-
@last_tracker.
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
19
|
+
@last_tracker.keyframe!(
|
20
|
+
:frame => (keyframe_values[0].to_i - 1),
|
21
|
+
:abs_x => keyframe_values[1],
|
22
|
+
:abs_y => keyframe_values[2],
|
23
|
+
:residual => (1 - keyframe_values[3].to_f)
|
24
|
+
)
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
28
|
send_tracker(@last_tracker) if @last_tracker && @last_tracker.any?
|
29
29
|
end
|
30
30
|
|
31
|
-
end
|
31
|
+
end
|
data/lib/middleware/base.rb
CHANGED
@@ -20,29 +20,9 @@ class Tracksperanto::Middleware::Base
|
|
20
20
|
super
|
21
21
|
end
|
22
22
|
|
23
|
-
|
24
|
-
|
25
|
-
@exporter.
|
23
|
+
%w( start_export start_tracker_segment end_tracker_segment
|
24
|
+
export_point end_export).each do | m |
|
25
|
+
define_method(m){|*a| @exporter.send(m, *a)}
|
26
26
|
end
|
27
|
-
|
28
|
-
|
29
|
-
def end_export
|
30
|
-
@exporter.end_export
|
31
|
-
end
|
32
|
-
|
33
|
-
# Called on tracker start, one for each tracker. Start of the next tracker
|
34
|
-
# signifies that the previous tracker has passed by
|
35
|
-
def start_tracker_segment(tracker_name)
|
36
|
-
@exporter.start_tracker_segment(tracker_name)
|
37
|
-
end
|
38
|
-
|
39
|
-
# Called on tracker end
|
40
|
-
def end_tracker_segment
|
41
|
-
@exporter.end_tracker_segment
|
42
|
-
end
|
43
|
-
|
44
|
-
# Called for each tracker keyframe
|
45
|
-
def export_point(at_frame_i, abs_float_x, abs_float_y, float_residual)
|
46
|
-
@exporter.export_point(at_frame_i, abs_float_x, abs_float_y, float_residual)
|
47
|
-
end
|
48
|
-
end
|
27
|
+
|
28
|
+
end
|
data/lib/middleware/golden.rb
CHANGED
@@ -2,10 +2,6 @@
|
|
2
2
|
class Tracksperanto::Middleware::Golden < Tracksperanto::Middleware::Base
|
3
3
|
attr_accessor :enabled
|
4
4
|
|
5
|
-
def enabled
|
6
|
-
@enabled || false
|
7
|
-
end
|
8
|
-
|
9
5
|
def export_point(frame, float_x, float_y, float_residual)
|
10
6
|
super(frame, float_x, float_y, (enabled ? 0.0 : float_residual))
|
11
7
|
end
|
data/lib/middleware/reformat.rb
CHANGED
@@ -19,9 +19,4 @@ class Tracksperanto::Middleware::Reformat < Tracksperanto::Middleware::Base
|
|
19
19
|
@exporter = Tracksperanto::Middleware::Scaler.new(@exporter, :x_factor => x_factor, :y_factor => y_factor)
|
20
20
|
super
|
21
21
|
end
|
22
|
-
|
23
|
-
def end_export
|
24
|
-
@exporter = @stash
|
25
|
-
@exporter.end_export
|
26
|
-
end
|
27
22
|
end
|
data/lib/middleware/slipper.rb
CHANGED
@@ -1,15 +1,10 @@
|
|
1
1
|
# Slips the keyframe positions by a specific integer amount of frames, positive values slip forward (later in time). Useful if you just edited some stuff onto
|
2
2
|
# the beginning if your sequence and need to extend your tracks.
|
3
3
|
class Tracksperanto::Middleware::Slipper < Tracksperanto::Middleware::Base
|
4
|
-
DEFAULT_SLIP = 0
|
5
4
|
attr_accessor :slip
|
6
5
|
cast_to_int :slip
|
7
6
|
|
8
|
-
def slip
|
9
|
-
@slip.to_i || DEFAULT_SLIP
|
10
|
-
end
|
11
|
-
|
12
7
|
def export_point(frame, float_x, float_y, float_residual)
|
13
|
-
super(frame + slip, float_x, float_y, float_residual)
|
8
|
+
super(frame + @slip.to_i, float_x, float_y, float_residual)
|
14
9
|
end
|
15
10
|
end
|
data/lib/pipeline/base.rb
CHANGED
@@ -118,7 +118,6 @@ class Tracksperanto::Pipeline::Base
|
|
118
118
|
|
119
119
|
accumulator = Tracksperanto::Accumulator.new
|
120
120
|
importer.receiver = accumulator
|
121
|
-
@ios << accumulator # Ensure the accumulator gets closed and tempfile unlinked
|
122
121
|
|
123
122
|
importer.stream_parse(io_with_progress)
|
124
123
|
|
@@ -177,4 +176,4 @@ class Tracksperanto::Pipeline::Base
|
|
177
176
|
@ios ||= []
|
178
177
|
@ios.push(File.open(path_to_file, "wb"))[-1]
|
179
178
|
end
|
180
|
-
end
|
179
|
+
end
|
data/lib/tracksperanto.rb
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
require 'stringio'
|
2
2
|
require 'delegate'
|
3
|
+
require 'forwardable'
|
3
4
|
require 'tempfile'
|
4
5
|
|
5
6
|
module Tracksperanto
|
6
7
|
PATH = File.expand_path(File.dirname(__FILE__))
|
7
|
-
VERSION = '2.1.
|
8
|
+
VERSION = '2.1.1'
|
8
9
|
|
9
10
|
module Import; end
|
10
11
|
module Export; end
|
@@ -106,4 +107,4 @@ end
|
|
106
107
|
# Load pipelines
|
107
108
|
Dir.glob(File.dirname(__FILE__) + '/pipeline/*.rb').sort.each do | i |
|
108
109
|
require i
|
109
|
-
end
|
110
|
+
end
|
@@ -1,41 +1,42 @@
|
|
1
1
|
# An accumulator buffer for Ruby objects. Use it to sequentially store a shitload
|
2
2
|
# of objects on disk and then retreive them one by one. Make sure to call #close! when done with it to
|
3
3
|
# discard the stored blob. This object is intended to be used as a Tracksperanto::Import::Base#receiver
|
4
|
-
class Tracksperanto::Accumulator
|
4
|
+
class Tracksperanto::Accumulator
|
5
5
|
|
6
6
|
# Stores the number of objects stored so far
|
7
7
|
attr_reader :num_objects
|
8
|
+
alias_method :length, :num_objects
|
8
9
|
|
9
10
|
def initialize
|
10
|
-
|
11
|
+
@store = Tracksperanto::BufferIO.new
|
11
12
|
@num_objects = 0
|
13
|
+
super
|
12
14
|
end
|
13
15
|
|
14
16
|
# Store an object
|
15
17
|
def push(object_to_store)
|
16
|
-
|
17
18
|
@num_objects += 1
|
18
|
-
|
19
19
|
d = Marshal.dump(object_to_store)
|
20
|
-
|
21
|
-
write(bytelen)
|
22
|
-
write("\t")
|
23
|
-
write(d)
|
24
|
-
write("\n")
|
20
|
+
[d.size, "\t", d, "\n"].map(&@store.method(:write))
|
25
21
|
end
|
26
22
|
|
27
23
|
# Retreive each stored object in succession and unlink the buffer
|
28
24
|
def each_object_with_index
|
29
|
-
|
30
|
-
|
25
|
+
begin
|
26
|
+
@store.rewind
|
27
|
+
@num_objects.times { |i| yield(recover_object, i - 1) }
|
28
|
+
ensure
|
29
|
+
@store.close!
|
30
|
+
end
|
31
31
|
end
|
32
|
+
|
32
33
|
|
33
34
|
private
|
34
35
|
|
35
36
|
def recover_object
|
36
37
|
# Up to the tab is the amount of bytes to read
|
37
|
-
demarshal_bytes = gets("\t").strip.to_i
|
38
|
+
demarshal_bytes = @store.gets("\t").strip.to_i
|
38
39
|
# Then read the bytes and unmarshal it
|
39
|
-
Marshal.load(read(demarshal_bytes))
|
40
|
+
Marshal.load(@store.read(demarshal_bytes))
|
40
41
|
end
|
41
|
-
end
|
42
|
+
end
|
@@ -14,15 +14,12 @@ class Tracksperanto::BufferIO < DelegateClass(IO)
|
|
14
14
|
def write(s)
|
15
15
|
returning(super) { replace_with_tempfile_if_needed }
|
16
16
|
end
|
17
|
+
alias_method :<<, :write
|
17
18
|
|
18
19
|
def puts(s)
|
19
20
|
returning(super) { replace_with_tempfile_if_needed }
|
20
21
|
end
|
21
22
|
|
22
|
-
def <<(s)
|
23
|
-
returning(super) { replace_with_tempfile_if_needed }
|
24
|
-
end
|
25
|
-
|
26
23
|
def putc(c)
|
27
24
|
returning(super) { replace_with_tempfile_if_needed }
|
28
25
|
end
|
data/lib/tracksperanto/ext_io.rb
CHANGED
@@ -1,20 +1,32 @@
|
|
1
1
|
# Many importers use this as a standard. This works like a wrapper for any
|
2
|
-
# IO object with a couple extra methods added.
|
2
|
+
# IO object with a couple extra methods added. Note that if you use this in an
|
3
|
+
# importer you need to wrap the incoming input with it yourself (that is, an IO passed
|
4
|
+
# to the import module will NOT be wrapped into this already)
|
5
|
+
#
|
6
|
+
# io = ExtIO.new(my_open_file)
|
7
|
+
# io.gets_non_empty #=> "This is the first line after 2000 linebreaks"
|
8
|
+
#
|
3
9
|
class Tracksperanto::ExtIO < DelegateClass(IO)
|
4
10
|
def initialize(with)
|
5
11
|
__setobj__ with
|
6
12
|
end
|
7
13
|
|
14
|
+
# Similar to IO#gets however it will also strip the returned result. This is useful
|
15
|
+
# for doing
|
16
|
+
# while non_empty_str = io.gets_and_strip
|
17
|
+
# because you don't have to check for io.eof? all the time or see if the string is not nil
|
8
18
|
def gets_and_strip
|
9
19
|
s = gets
|
10
20
|
s ? s.strip : nil
|
11
21
|
end
|
12
22
|
|
23
|
+
# Similar to IO#gets but it skips empty lines and the first line returned will actually contain something
|
13
24
|
def gets_non_empty
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
25
|
+
until eof?
|
26
|
+
line = gets
|
27
|
+
return nil if line.nil?
|
28
|
+
s = line.strip
|
29
|
+
return s unless s.empty?
|
30
|
+
end
|
19
31
|
end
|
20
32
|
end
|
@@ -1,39 +1,39 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
1
|
+
Parabolic1FromTopLeft 0 -1.000000 -1.000000 15
|
2
|
+
Parabolic1FromTopLeft 1 -0.900000 -0.620000 7
|
3
|
+
Parabolic1FromTopLeft 2 -0.800000 -0.280000 7
|
4
|
+
Parabolic1FromTopLeft 3 -0.700000 0.020000 7
|
5
|
+
Parabolic1FromTopLeft 4 -0.600000 0.280000 7
|
6
|
+
Parabolic1FromTopLeft 5 -0.500000 0.500000 7
|
7
|
+
Parabolic1FromTopLeft 6 -0.400000 0.680000 7
|
8
|
+
Parabolic1FromTopLeft 7 -0.300000 0.820000 7
|
9
|
+
Parabolic1FromTopLeft 8 -0.200000 0.920000 7
|
10
|
+
Parabolic1FromTopLeft 9 -0.100000 0.980000 7
|
11
|
+
Parabolic1FromTopLeft 12 0.200000 0.920000 15
|
12
|
+
Parabolic1FromTopLeft 13 0.300000 0.820000 7
|
13
|
+
Parabolic1FromTopLeft 14 0.400000 0.680000 7
|
14
|
+
Parabolic1FromTopLeft 15 0.500000 0.500000 7
|
15
|
+
Parabolic1FromTopLeft 16 0.600000 0.280000 7
|
16
|
+
Parabolic1FromTopLeft 17 0.700000 0.020000 7
|
17
|
+
Parabolic1FromTopLeft 18 0.800000 -0.280000 7
|
18
|
+
Parabolic1FromTopLeft 19 0.900000 -0.620000 7
|
19
|
+
Parabolic1FromTopLeft 20 1.000000 -1.000000 7
|
20
|
+
Parabolic2FromBottomRight 0 1.000000 1.000000 15
|
21
|
+
Parabolic2FromBottomRight 1 0.900000 0.620000 7
|
22
|
+
Parabolic2FromBottomRight 2 0.800000 0.280000 7
|
23
|
+
Parabolic2FromBottomRight 3 0.700000 -0.020000 7
|
24
|
+
Parabolic2FromBottomRight 4 0.600000 -0.280000 7
|
25
|
+
Parabolic2FromBottomRight 5 0.500000 -0.500000 7
|
26
|
+
Parabolic2FromBottomRight 6 0.400000 -0.680000 7
|
27
|
+
Parabolic2FromBottomRight 7 0.300000 -0.820000 7
|
28
|
+
Parabolic2FromBottomRight 8 0.200000 -0.920000 7
|
29
|
+
Parabolic2FromBottomRight 9 0.100000 -0.980000 7
|
30
|
+
Parabolic2FromBottomRight 12 -0.200000 -0.920000 15
|
31
|
+
Parabolic2FromBottomRight 13 -0.300000 -0.820000 7
|
32
|
+
Parabolic2FromBottomRight 14 -0.400000 -0.680000 7
|
33
|
+
Parabolic2FromBottomRight 15 -0.500000 -0.500000 7
|
34
|
+
Parabolic2FromBottomRight 16 -0.600000 -0.280000 7
|
35
|
+
Parabolic2FromBottomRight 17 -0.700000 -0.020000 7
|
36
|
+
Parabolic2FromBottomRight 18 -0.800000 0.280000 7
|
37
|
+
Parabolic2FromBottomRight 19 -0.900000 0.620000 7
|
38
|
+
Parabolic2FromBottomRight 20 -1.000000 1.000000 7
|
39
39
|
SingleFrame 0 0.010417 -0.018519 15
|
data/test/export/test_mux.rb
CHANGED
@@ -0,0 +1,349 @@
|
|
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("292023-292283");
|
6
|
+
SetFieldRendering(0);
|
7
|
+
SetFps(25);
|
8
|
+
SetMotionBlur(1, 1, 0);
|
9
|
+
SetQuality(1);
|
10
|
+
SetUseProxy("Base");
|
11
|
+
SetProxyFilter("default");
|
12
|
+
SetPixelScale(1, 1);
|
13
|
+
SetUseProxyOnMissing(1);
|
14
|
+
SetDefaultWidth(1920);
|
15
|
+
SetDefaultHeight(1080);
|
16
|
+
SetDefaultBytes(2);
|
17
|
+
SetDefaultAspect(1);
|
18
|
+
SetDefaultViewerAspect(1);
|
19
|
+
SetMacroCheck(2);
|
20
|
+
SetTimecodeMode("25 FPS");
|
21
|
+
|
22
|
+
DefineProxyPath("../<dir1>/<name>.<range>.<format>", 1, 1, -1, "Auto", 0, 1, 0, "",1);
|
23
|
+
DefineProxyPath("../<dir1>/full/<name>_full.<range>.iff", 1, 1, 1, "Auto", 1, 1, 1, "/Volumes/P|/Volumes/Localdisk;/Volumes/O|/Volumes/Localdisk;/Volumes/R|/Volumes/Localdisk;");
|
24
|
+
DefineProxyPath("../<dir1>/half/<name>_half.<range>.iff", 0.5, 1, 1, "Auto", 1, 1, 2, "/Volumes/P|/Volumes/Localdisk;/Volumes/O|/Volumes/Localdisk;/Volumes/R|/Volumes/Localdisk;");
|
25
|
+
DefineProxyPath("../<dir1>/qtr/<name>_qtr.<range>.iff", 0.25, 1, 1, "Auto", 0, 1, 3, "/Volumes/P|/Volumes/Localdisk;/Volumes/O|/Volumes/Localdisk;/Volumes/R|/Volumes/Localdisk;");
|
26
|
+
SetAudio("100W@E0000qFdsuHW962Dl9BOW0mWa06w7mCJ000000000008");
|
27
|
+
|
28
|
+
// Input nodes
|
29
|
+
|
30
|
+
redacted = SFileIn("redacted@@@@@@@.dpx", "Auto", 0, 0, "v1.1",
|
31
|
+
"3", "", "//Bigbuk/Volumes/Localdisk/_projekte/DWDNW/0015/full/0015__full.<range>.iff",
|
32
|
+
1, 1, "Auto", "//Bigbuk/Volumes/Localdisk/_projekte/DWDNW/0015/half/0015__half.<range>.iff",
|
33
|
+
0.5, 1, "Auto", "//Bigbuk/Volumes/Localdisk/_projekte/DWDNW/0015/qtr/0015__qtr.<range>.iff",
|
34
|
+
0.25, 1, "Auto");
|
35
|
+
IRetime(redacted, 292022, 292023, 292284, "Freeze", "Freeze");
|
36
|
+
|
37
|
+
// Processing nodes
|
38
|
+
|
39
|
+
Reorder1 = Reorder(redacted, "ggg");
|
40
|
+
Stabilize1 = Stabilize(redacted, 1, 0, "1 point", (Tracker1.track2X+Tracker1.track1X)/2,
|
41
|
+
(Tracker1.track2Y+Tracker1.track1Y)/2, 1, 1, 2*width/3, height/3,
|
42
|
+
0, 0, 2*width/3, 2*height/3, width/3, 2*height/3, "default",
|
43
|
+
xFilter, "trsx", 0, 0.5, 0, 1, 1, 0, 1, "v2.0", 584045, "1/64",
|
44
|
+
"luminance", 0.3, 0.59, 0.11, 0.75, "use start frame", 0.5,
|
45
|
+
"stop", 0, 0, 25, "track1", 545.1935, 631.5935, 278.4805,
|
46
|
+
364.880524, 516.3935, 660.3935, 249.680511, 393.6805, "track2",
|
47
|
+
1244, 1316, 324, 396, 1208, 1352, 288, 432, "track3", 1244,
|
48
|
+
1316, 684, 756, 1208, 1352, 648, 792, "track4", 604, 676,
|
49
|
+
684, 756, 568, 712, 648, 792);
|
50
|
+
Blur1 = Blur(Reorder1, 16.7, xPixels/GetDefaultAspect(), 0, "gauss",
|
51
|
+
xFilter, "rgba");
|
52
|
+
Expand1 = Expand(Blur1, 0.12, 0.12, 0.12, 0, 0.4133, 0.4133,
|
53
|
+
0.4133, 1);
|
54
|
+
Blur2 = Blur(Expand1, 8, xPixels/GetDefaultAspect(), 0, "gauss",
|
55
|
+
xFilter, "rgba");
|
56
|
+
Tracker1 = Tracker(Blur2, "292023-292283", "1/64", "luminance",
|
57
|
+
0.75, "use start frame", 0.5, "stop", 1, 292023, "v2.0",
|
58
|
+
0.3, 0.59, 0.11, 0, 10, "track1", Linear(0,554.292@292023,553.98@292024,554.355@292025,554.776@292026,554.636@292027,554.183@292028,553.855@292029,554.214@292030,554.573@292031,554.542@292032,554.323@292033,554.339@292034,554.776@292035,555.214@292036,555.526@292037,555.026@292038,555.011@292039,555.48@292040,555.636@292041,556.151@292042,557.136@292043,557.558@292044,558.308@292045,558.651@292046,559.245@292047,559.745@292048,560.605@292049,561.37@292050,562.495@292051,563.386@292052,564.12@292053,565.62@292054,567.245@292055,568.417@292056,570.542@292057,571.948@292058,573.448@292059,575.448@292060,576.667@292061,577.589@292062,578.792@292063,579.823@292064,580.917@292065,581.651@292066,582.605@292067,582.901@292068,583.651@292069,585.011@292070,585.87@292071,586.386@292072,586.105@292073,586.183@292074,586.636@292075,587.464@292076,587.823@292077,587.745@292078,587.589@292079,587.589@292080,587.839@292081,588.058@292082,588.026@292083,588.745@292084,589.339@292085,589.808@292086,589.917@292087,589.651@292088,589.792@292089,590.417@292090,590.761@292091,590.87@292092,590.355@292093,589.948@292094,590.37@292095,590.542@292096,590.667@292097,590.855@292098,591.417@292099,592.214@292100,593.23@292101,593.12@292102,592.761@292103,592.917@292104,593.542@292105,593.464@292106,593.48@292107,593.683@292108,594.776@292109,595.98@292110,597.511@292111,598.823@292112,600.214@292113,601.886@292114,604.605@292115,607.667@292116,611.401@292117,614.776@292118,617.948@292119,621.214@292120,624.245@292121,627.355@292122,630.011@292123,632.573@292124,634.386@292125,636.714@292126,638.105@292127,639.605@292128,641.026@292129,642.026@292130,642.401@292131,641.995@292132,641.089@292133,640.589@292134,640.886@292135,640.855@292136,641.23@292137,640.808@292138,641.089@292139,641.605@292140,641.698@292141,641.745@292142,641.464@292143,641.526@292144,641.48@292145,641.776@292146,641.214@292147,640.73@292148,640.198@292149,640.526@292150,640.448@292151,640.448@292152,640.761@292153,640.651@292154,641.167@292155,641.355@292156,641.167@292157,641.042@292158,640.761@292159,641.245@292160,641.433@292161,641.245@292162,641.073@292163,641.183@292164,641.542@292165,641.573@292166,641.136@292167,641.105@292168,640.667@292169,640.995@292170,640.855@292171,640.698@292172,640.714@292173,640.745@292174,641.167@292175,641.261@292176,641.198@292177,641.12@292178,640.73@292179,640.683@292180,640.886@292181,641.167@292182,640.776@292183,640.808@292184,640.698@292185,640.683@292186,640.776@292187,640.698@292188,640.823@292189,641.136@292190,641.026@292191,640.901@292192,640.667@292193,640.761@292194,641.198@292195,641.026@292196,641.12@292197,640.855@292198,640.683@292199,640.542@292200,640.839@292201,640.933@292202,640.698@292203,640.542@292204,640.636@292205,640.526@292206,640.245@292207,640.355@292208,640.073@292209,640.339@292210,640.308@292211,640.011@292212,639.573@292213,639.698@292214,639.776@292215,640.026@292216,639.808@292217,639.339@292218,639.37@292219,639.448@292220,639.62@292221,639.855@292222,639.198@292223,638.245@292224,638.448@292225,637.62@292226,637.136@292227,636.995@292228,636.573@292229,636.105@292230,635.323@292231,633.714@292232,631.651@292233,629.714@292234,628.058@292235,626.605@292236,624.651@292237,623.62@292238,622.323@292239,622.12@292240,621.87@292241,621.339@292242,621.198@292243,620.776@292244,620.886@292245,621.011@292246,621.089@292247,621.198@292248,621.714@292249,622.058@292250,622.245@292251,621.964@292252,622.042@292253,622.417@292254,622.901@292255,623.339@292256,623.089@292257,622.839@292258,622.823@292259,623.698@292260,623.62@292261,623.917@292262,624.089@292263,623.651@292264,623.417@292265,623.073@292266,622.651@292267,622.636@292268,622.23@292269,622.073@292270,621.62@292271,620.651@292272,620.105@292273,618.98@292274,617.495@292275,614.698@292276,612.058@292277,608.542@292278,604.839@292279,601.73@292280,597.964@292281,593.48@292282,589.136@292283),
|
59
|
+
Linear(0,321.705@292023,322.017@292024,321.299@292025,321.471@292026,322.174@292027,322.158@292028,321.33@292029,321.424@292030,322.189@292031,321.877@292032,321.361@292033,322.096@292034,321.517@292035,321.486@292036,323.064@292037,322.439@292038,322.955@292039,322.533@292040,323.096@292041,322.377@292042,322.533@292043,323.111@292044,322.408@292045,323.236@292046,323.174@292047,323.142@292048,322.408@292049,322.377@292050,322.346@292051,322.486@292052,322.377@292053,321.158@292054,321.517@292055,321.08@292056,320.955@292057,320.064@292058,320.267@292059,319.236@292060,319.08@292061,319.08@292062,319.205@292063,319.814@292064,320.08@292065,319.346@292066,320.221@292067,320.111@292068,319.533@292069,319.908@292070,320.283@292071,319.924@292072,320.924@292073,321.205@292074,320.971@292075,321.221@292076,320.471@292077,320.314@292078,321.127@292079,321.221@292080,320.986@292081,320.971@292082,320.939@292083,320.471@292084,320.283@292085,320.814@292086,320.549@292087,320.892@292088,320.127@292089,320.939@292090,320.299@292091,321.174@292092,321.002@292093,320.424@292094,320.533@292095,320.486@292096,320.111@292097,320.236@292098,320.221@292099,320.877@292100,321.033@292101,321.064@292102,320.424@292103,320.346@292104,321.236@292105,321.205@292106,322.017@292107,321.174@292108,322.127@292109,322.236@292110,321.283@292111,321.486@292112,321.377@292113,321.111@292114,321.314@292115,321.142@292116,320.986@292117,320.971@292118,320.471@292119,321.096@292120,320.877@292121,320.939@292122,321.158@292123,321.517@292124,321.111@292125,321.174@292126,321.33@292127,321.314@292128,322.142@292129,321.939@292130,322.424@292131,322.096@292132,322.111@292133,322.142@292134,322.174@292135,321.424@292136,321.049@292137,319.971@292138,319.877@292139,318.517@292140,318.189@292141,317.502@292142,316.486@292143,314.205@292144,312.189@292145,309.408@292146,306.33@292147,302.986@292148,300.221@292149,298.486@292150,297.346@292151,296.299@292152,295.439@292153,296.017@292154,295.471@292155,296.189@292156,296.408@292157,296.174@292158,296.314@292159,296.033@292160,296.471@292161,296.471@292162,297.049@292163,296.424@292164,296.517@292165,296.205@292166,296.267@292167,297.267@292168,296.955@292169,296.939@292170,296.377@292171,296.924@292172,296.424@292173,296.158@292174,296.408@292175,296.096@292176,296.392@292177,297.189@292178,297.111@292179,297.174@292180,297.283@292181,296.517@292182,297.424@292183,298.002@292184,297.236@292185,297.455@292186,297.096@292187,297.33@292188,297.549@292189,297.408@292190,298.033@292191,298.049@292192,297.924@292193,298.111@292194,298.142@292195,298.096@292196,297.455@292197,298.236@292198,298.158@292199,298.189@292200,298.502@292201,298.346@292202,298.236@292203,298.111@292204,298.189@292205,298.377@292206,298.205@292207,298.533@292208,299.924@292209,300.064@292210,300.408@292211,301.049@292212,301.049@292213,301.299@292214,301.908@292215,303.299@292216,303.877@292217,304.392@292218,304.533@292219,305.924@292220,306.939@292221,307.924@292222,307.033@292223,307.267@292224,308.064@292225,308.189@292226,309.111@292227,309.439@292228,310.205@292229,310.236@292230,310.361@292231,310.267@292232,311.08@292233,311.471@292234,313.455@292235,314.392@292236,315.283@292237,316.049@292238,317.08@292239,317.939@292240,318.096@292241,319.158@292242,319.111@292243,319.439@292244,320.392@292245,320.283@292246,319.221@292247,319.267@292248,319.439@292249,319.971@292250,319.533@292251,319.221@292252,319.111@292253,318.392@292254,317.002@292255,316.346@292256,315.361@292257,315.346@292258,315.439@292259,316.096@292260,316.158@292261,316.174@292262,315.455@292263,315.361@292264,314.517@292265,315.252@292266,316.502@292267,318.189@292268,318.111@292269,318.408@292270,318.346@292271,317.158@292272,317.221@292273,317.408@292274,317.096@292275,317.096@292276,317.096@292277,317.455@292278,318.346@292279,319.158@292280,320.408@292281,321.096@292282,321.377@292283),
|
60
|
+
Linear(0,1@292023,0.9861@292024,0.9867@292025,0.9901@292026,0.9875@292027,0.9873@292028,0.988@292029,0.9879@292030,0.9882@292031,0.9873@292032,0.9885@292033,0.9889@292034,0.9901@292035,0.9903@292036,0.9887@292037,0.9875@292038,0.987@292039,0.9852@292040,0.9887@292041,0.9888@292042,0.9882@292043,0.9878@292044,0.9872@292045,0.9888@292046,0.9868@292047,0.9887@292048,0.9874@292049,0.9894@292050,0.9884@292051,0.9848@292052,0.9864@292053,0.9885@292054,0.991@292055,0.9895@292056,0.9875@292057,0.9882@292058,0.9885@292059,0.9851@292060,0.9884@292061,0.9897@292062,0.9874@292063,0.9883@292064,0.9895@292065,0.9867@292066,0.9858@292067,0.9864@292068,0.987@292069,0.9888@292070,0.9871@292071,0.9895@292072,0.9893@292073,0.9891@292074,0.989@292075,0.9899@292076,0.9876@292077,0.9886@292078,0.9894@292079,0.9879@292080,0.9883@292081,0.9896@292082,0.988@292083,0.9863@292084,0.9861@292085,0.9889@292086,0.9886@292087,0.9911@292088,0.9852@292089,0.9879@292090,0.9893@292091,0.99@292092,0.9884@292093,0.9863@292094,0.9892@292095,0.9875@292096,0.9877@292097,0.9875@292098,0.9897@292099,0.9888@292100,0.9907@292101,0.9903@292102,0.9865@292103,0.9903@292104,0.9895@292105,0.9883@292106,0.9884@292107,0.9892@292108,0.9872@292109,0.988@292110,0.9876@292111,0.9884@292112,0.99@292113,0.9857@292114,0.9886@292115,0.9851@292116,0.9877@292117,0.9887@292118,0.9872@292119,0.9856@292120,0.9891@292121,0.987@292122,0.9885@292123,0.9894@292124,0.9901@292125,0.9878@292126,0.9889@292127,0.9882@292128,0.9892@292129,0.9903@292130,0.9894@292131,0.9868@292132,0.9867@292133,0.9868@292134,0.9864@292135,0.9891@292136,0.9848@292137,0.9873@292138,0.991@292139,0.9849@292140,0.9883@292141,0.9904@292142,0.9916@292143,0.9866@292144,0.9893@292145,0.988@292146,0.9884@292147,0.9888@292148,0.9872@292149,0.9903@292150,0.9859@292151,0.9856@292152,0.9876@292153,0.988@292154,0.9883@292155,0.9879@292156,0.9888@292157,0.9871@292158,0.9866@292159,0.9865@292160,0.9848@292161,0.986@292162,0.9869@292163,0.989@292164,0.9872@292165,0.9866@292166,0.9882@292167,0.9881@292168,0.9882@292169,0.9889@292170,0.9876@292171,0.9848@292172,0.9869@292173,0.9885@292174,0.988@292175,0.9866@292176,0.9896@292177,0.987@292178,0.9877@292179,0.9881@292180,0.9887@292181,0.9888@292182,0.9888@292183,0.9868@292184,0.9889@292185,0.988@292186,0.9853@292187,0.9879@292188,0.9888@292189,0.987@292190,0.9874@292191,0.9894@292192,0.9882@292193,0.9893@292194,0.9892@292195,0.9893@292196,0.9861@292197,0.9881@292198,0.9898@292199,0.9895@292200,0.9906@292201,0.9882@292202,0.9872@292203,0.9895@292204,0.9879@292205,0.989@292206,0.9904@292207,0.9878@292208,0.9905@292209,0.9887@292210,0.987@292211,0.988@292212,0.9909@292213,0.9912@292214,0.9885@292215,0.9898@292216,0.9882@292217,0.9883@292218,0.988@292219,0.9888@292220,0.9863@292221,0.9863@292222,0.9894@292223,0.9843@292224,0.987@292225,0.989@292226,0.9874@292227,0.9878@292228,0.9883@292229,0.9897@292230,0.9876@292231,0.9872@292232,0.9899@292233,0.9901@292234,0.986@292235,0.9867@292236,0.9912@292237,0.9866@292238,0.991@292239,0.9916@292240,0.9871@292241,0.9877@292242,0.9899@292243,0.9882@292244,0.9878@292245,0.9905@292246,0.9891@292247,0.9899@292248,0.9892@292249,0.9879@292250,0.99@292251,0.9874@292252,0.9881@292253,0.9882@292254,0.9881@292255,0.9895@292256,0.9875@292257,0.9874@292258,0.9861@292259,0.9913@292260,0.99@292261,0.9893@292262,0.9897@292263,0.9893@292264,0.9895@292265,0.9898@292266,0.9883@292267,0.9882@292268,0.9871@292269,0.9865@292270,0.9898@292271,0.9865@292272,0.9864@292273,0.9869@292274,0.9888@292275,0.9862@292276,0.9881@292277,0.9886@292278,0.9897@292279,0.99@292280,0.9882@292281,0.9897@292282,0.9867@292283),
|
61
|
+
514.8992, 590.3419, 291.277649, 349.5069, 489.227234, 616.013855,
|
62
|
+
263.884338, 376.9002, Linear(0,554.292@292023,553.98@292024,554.355@292025,554.776@292026,554.636@292027,554.183@292028,553.855@292029,554.214@292030,554.573@292031,554.542@292032,554.323@292033,554.339@292034,554.776@292035,555.214@292036,555.526@292037,555.026@292038,555.011@292039,555.48@292040,555.636@292041,556.151@292042,557.136@292043,557.558@292044,558.308@292045,558.651@292046,559.245@292047,559.745@292048,560.605@292049,561.37@292050,562.495@292051,563.386@292052,564.12@292053,565.62@292054,567.245@292055,568.417@292056,570.542@292057,571.948@292058,573.448@292059,575.448@292060,576.667@292061,577.589@292062,578.792@292063,579.823@292064,580.917@292065,581.651@292066,582.605@292067,582.901@292068,583.651@292069,585.011@292070,585.87@292071,586.386@292072,586.105@292073,586.183@292074,586.636@292075,587.464@292076,587.823@292077,587.745@292078,587.589@292079,587.589@292080,587.839@292081,588.058@292082,588.026@292083,588.745@292084,589.339@292085,589.808@292086,589.917@292087,589.651@292088,589.792@292089,590.417@292090,590.761@292091,590.87@292092,590.355@292093,589.948@292094,590.37@292095,590.542@292096,590.667@292097,590.855@292098,591.417@292099,592.214@292100,593.23@292101,593.12@292102,592.761@292103,592.917@292104,593.542@292105,593.464@292106,593.48@292107,593.683@292108,594.776@292109,595.98@292110,597.511@292111,598.823@292112,600.214@292113,601.886@292114,604.605@292115,607.667@292116,611.401@292117,614.776@292118,617.948@292119,621.214@292120,624.245@292121,627.355@292122,630.011@292123,632.573@292124,634.386@292125,636.714@292126,638.105@292127,639.605@292128,641.026@292129,642.026@292130,642.401@292131,641.995@292132,641.089@292133,640.589@292134,640.886@292135,640.855@292136,641.23@292137,640.808@292138,641.089@292139,641.605@292140,641.698@292141,641.745@292142,641.464@292143,641.526@292144,641.48@292145,641.776@292146,641.214@292147,640.73@292148,640.198@292149,640.526@292150,640.448@292151,640.448@292152,640.761@292153,640.651@292154,641.167@292155,641.355@292156,641.167@292157,641.042@292158,640.761@292159,641.245@292160,641.433@292161,641.245@292162,641.073@292163,641.183@292164,641.542@292165,641.573@292166,641.136@292167,641.105@292168,640.667@292169,640.995@292170,640.855@292171,640.698@292172,640.714@292173,640.745@292174,641.167@292175,641.261@292176,641.198@292177,641.12@292178,640.73@292179,640.683@292180,640.886@292181,641.167@292182,640.776@292183,640.808@292184,640.698@292185,640.683@292186,640.776@292187,640.698@292188,640.823@292189,641.136@292190,641.026@292191,640.901@292192,640.667@292193,640.761@292194,641.198@292195,641.026@292196,641.12@292197,640.855@292198,640.683@292199,640.542@292200,640.839@292201,640.933@292202,640.698@292203,640.542@292204,640.636@292205,640.526@292206,640.245@292207,640.355@292208,640.073@292209,640.339@292210,640.308@292211,640.011@292212,639.573@292213,639.698@292214,639.776@292215,640.026@292216,639.808@292217,639.339@292218,639.37@292219,639.448@292220,639.62@292221,639.855@292222,639.198@292223,638.245@292224,638.448@292225,637.62@292226,637.136@292227,636.995@292228,636.573@292229,636.105@292230,635.323@292231,633.714@292232,631.651@292233,629.714@292234,628.058@292235,626.605@292236,624.651@292237,623.62@292238,622.323@292239,622.12@292240,621.87@292241,621.339@292242,621.198@292243,620.776@292244,620.886@292245,621.011@292246,621.089@292247,621.198@292248,621.714@292249,622.058@292250,622.245@292251,621.964@292252,622.042@292253,622.417@292254,622.901@292255,623.339@292256,623.089@292257,622.839@292258,622.823@292259,623.698@292260,623.62@292261,623.917@292262,624.089@292263,623.651@292264,623.417@292265,623.073@292266,622.651@292267,622.636@292268,622.23@292269,622.073@292270,621.62@292271,620.651@292272,620.105@292273,618.98@292274,617.495@292275,614.698@292276,612.058@292277,608.542@292278,604.839@292279,601.73@292280,597.964@292281,593.48@292282,589.136@292283),
|
63
|
+
Linear(0,321.705@292023,322.017@292024,321.299@292025,321.471@292026,322.174@292027,322.158@292028,321.33@292029,321.424@292030,322.189@292031,321.877@292032,321.361@292033,322.096@292034,321.517@292035,321.486@292036,323.064@292037,322.439@292038,322.955@292039,322.533@292040,323.096@292041,322.377@292042,322.533@292043,323.111@292044,322.408@292045,323.236@292046,323.174@292047,323.142@292048,322.408@292049,322.377@292050,322.346@292051,322.486@292052,322.377@292053,321.158@292054,321.517@292055,321.08@292056,320.955@292057,320.064@292058,320.267@292059,319.236@292060,319.08@292061,319.08@292062,319.205@292063,319.814@292064,320.08@292065,319.346@292066,320.221@292067,320.111@292068,319.533@292069,319.908@292070,320.283@292071,319.924@292072,320.924@292073,321.205@292074,320.971@292075,321.221@292076,320.471@292077,320.314@292078,321.127@292079,321.221@292080,320.986@292081,320.971@292082,320.939@292083,320.471@292084,320.283@292085,320.814@292086,320.549@292087,320.892@292088,320.127@292089,320.939@292090,320.299@292091,321.174@292092,321.002@292093,320.424@292094,320.533@292095,320.486@292096,320.111@292097,320.236@292098,320.221@292099,320.877@292100,321.033@292101,321.064@292102,320.424@292103,320.346@292104,321.236@292105,321.205@292106,322.017@292107,321.174@292108,322.127@292109,322.236@292110,321.283@292111,321.486@292112,321.377@292113,321.111@292114,321.314@292115,321.142@292116,320.986@292117,320.971@292118,320.471@292119,321.096@292120,320.877@292121,320.939@292122,321.158@292123,321.517@292124,321.111@292125,321.174@292126,321.33@292127,321.314@292128,322.142@292129,321.939@292130,322.424@292131,322.096@292132,322.111@292133,322.142@292134,322.174@292135,321.424@292136,321.049@292137,319.971@292138,319.877@292139,318.517@292140,318.189@292141,317.502@292142,316.486@292143,314.205@292144,312.189@292145,309.408@292146,306.33@292147,302.986@292148,300.221@292149,298.486@292150,297.346@292151,296.299@292152,295.439@292153,296.017@292154,295.471@292155,296.189@292156,296.408@292157,296.174@292158,296.314@292159,296.033@292160,296.471@292161,296.471@292162,297.049@292163,296.424@292164,296.517@292165,296.205@292166,296.267@292167,297.267@292168,296.955@292169,296.939@292170,296.377@292171,296.924@292172,296.424@292173,296.158@292174,296.408@292175,296.096@292176,296.392@292177,297.189@292178,297.111@292179,297.174@292180,297.283@292181,296.517@292182,297.424@292183,298.002@292184,297.236@292185,297.455@292186,297.096@292187,297.33@292188,297.549@292189,297.408@292190,298.033@292191,298.049@292192,297.924@292193,298.111@292194,298.142@292195,298.096@292196,297.455@292197,298.236@292198,298.158@292199,298.189@292200,298.502@292201,298.346@292202,298.236@292203,298.111@292204,298.189@292205,298.377@292206,298.205@292207,298.533@292208,299.924@292209,300.064@292210,300.408@292211,301.049@292212,301.049@292213,301.299@292214,301.908@292215,303.299@292216,303.877@292217,304.392@292218,304.533@292219,305.924@292220,306.939@292221,307.924@292222,307.033@292223,307.267@292224,308.064@292225,308.189@292226,309.111@292227,309.439@292228,310.205@292229,310.236@292230,310.361@292231,310.267@292232,311.08@292233,311.471@292234,313.455@292235,314.392@292236,315.283@292237,316.049@292238,317.08@292239,317.939@292240,318.096@292241,319.158@292242,319.111@292243,319.439@292244,320.392@292245,320.283@292246,319.221@292247,319.267@292248,319.439@292249,319.971@292250,319.533@292251,319.221@292252,319.111@292253,318.392@292254,317.002@292255,316.346@292256,315.361@292257,315.346@292258,315.439@292259,316.096@292260,316.158@292261,316.174@292262,315.455@292263,315.361@292264,314.517@292265,315.252@292266,316.502@292267,318.189@292268,318.111@292269,318.408@292270,318.346@292271,317.158@292272,317.221@292273,317.408@292274,317.096@292275,317.096@292276,317.096@292277,317.455@292278,318.346@292279,319.158@292280,320.408@292281,321.096@292282,321.377@292283),
|
64
|
+
1, 1, "track2", Linear(0,552.761@292023,552.495@292024,552.761@292025,553.245@292026,553.12@292027,552.636@292028,552.386@292029,552.745@292030,553.042@292031,553.042@292032,552.87@292033,552.886@292034,553.23@292035,553.745@292036,553.964@292037,553.495@292038,553.542@292039,554.011@292040,554.12@292041,554.776@292042,555.573@292043,556.058@292044,556.792@292045,557.089@292046,557.761@292047,558.261@292048,559.026@292049,559.808@292050,560.964@292051,561.855@292052,562.605@292053,564.12@292054,565.808@292055,566.886@292056,569.058@292057,570.526@292058,571.917@292059,573.886@292060,575.198@292061,576.042@292062,577.276@292063,578.355@292064,579.401@292065,580.136@292066,581.073@292067,581.417@292068,582.042@292069,583.433@292070,584.355@292071,584.839@292072,584.589@292073,584.636@292074,585.136@292075,585.948@292076,586.355@292077,586.245@292078,586.011@292079,586.073@292080,586.323@292081,586.526@292082,586.526@292083,587.261@292084,587.901@292085,588.292@292086,588.37@292087,588.12@292088,588.308@292089,588.901@292090,589.23@292091,589.323@292092,588.901@292093,588.464@292094,588.823@292095,588.964@292096,589.105@292097,589.292@292098,589.948@292099,590.745@292100,591.714@292101,591.714@292102,591.292@292103,591.37@292104,591.98@292105,591.917@292106,591.964@292107,592.12@292108,593.214@292109,594.464@292110,596.058@292111,597.323@292112,598.745@292113,600.355@292114,603.089@292115,606.136@292116,609.823@292117,613.292@292118,616.417@292119,619.73@292120,622.792@292121,625.855@292122,628.48@292123,631.058@292124,632.886@292125,635.151@292126,636.605@292127,638.151@292128,639.48@292129,640.558@292130,640.87@292131,640.448@292132,639.589@292133,639.089@292134,639.37@292135,639.339@292136,639.776@292137,639.276@292138,639.605@292139,640.089@292140,640.167@292141,640.261@292142,639.964@292143,640.042@292144,639.964@292145,640.214@292146,639.636@292147,639.214@292148,638.636@292149,639.058@292150,638.948@292151,638.964@292152,639.261@292153,639.136@292154,639.589@292155,639.839@292156,639.636@292157,639.542@292158,639.23@292159,639.73@292160,639.901@292161,639.792@292162,639.573@292163,639.636@292164,640.073@292165,640.042@292166,639.651@292167,639.542@292168,639.136@292169,639.433@292170,639.355@292171,639.183@292172,639.198@292173,639.183@292174,639.605@292175,639.823@292176,639.714@292177,639.558@292178,639.167@292179,639.105@292180,639.386@292181,639.605@292182,639.261@292183,639.245@292184,639.198@292185,639.183@292186,639.245@292187,639.167@292188,639.292@292189,639.542@292190,639.558@292191,639.355@292192,639.042@292193,639.261@292194,639.698@292195,639.48@292196,639.589@292197,639.386@292198,639.167@292199,639.042@292200,639.323@292201,639.323@292202,639.214@292203,638.98@292204,639.151@292205,638.98@292206,638.761@292207,638.886@292208,638.589@292209,638.808@292210,638.776@292211,638.495@292212,638.042@292213,638.151@292214,638.198@292215,638.495@292216,638.23@292217,637.87@292218,637.886@292219,637.901@292220,638.136@292221,638.308@292222,637.605@292223,636.792@292224,636.886@292225,636.105@292226,635.558@292227,635.48@292228,635.105@292229,634.605@292230,633.823@292231,632.167@292232,630.167@292233,628.183@292234,626.526@292235,625.089@292236,623.136@292237,622.105@292238,620.87@292239,620.698@292240,620.386@292241,619.792@292242,619.761@292243,619.198@292244,619.355@292245,619.48@292246,619.573@292247,619.761@292248,620.167@292249,620.542@292250,620.745@292251,620.417@292252,620.605@292253,620.901@292254,621.37@292255,621.808@292256,621.558@292257,621.292@292258,621.261@292259,622.151@292260,622.151@292261,622.401@292262,622.542@292263,622.214@292264,621.901@292265,621.573@292266,621.089@292267,621.089@292268,620.823@292269,620.636@292270,620.136@292271,619.167@292272,618.62@292273,617.464@292274,615.948@292275,613.23@292276,610.605@292277,607.042@292278,603.292@292279,600.23@292280,596.448@292281,591.948@292282,587.667@292283),
|
65
|
+
Linear(0,322.266@292023,322.172@292024,322.188@292025,322.234@292026,322.578@292027,322.531@292028,321.641@292029,321.797@292030,322.531@292031,322.453@292032,322.359@292033,322.5@292034,322.25@292035,321.719@292036,323.359@292037,322.75@292038,323.188@292039,322.828@292040,323.5@292041,322.609@292042,323.203@292043,323.406@292044,323.25@292045,323.625@292046,323.625@292047,323.594@292048,322.703@292049,322.688@292050,322.781@292051,322.766@292052,322.75@292053,321.719@292054,322.203@292055,321.531@292056,321.391@292057,320.438@292058,320.703@292059,319.719@292060,319.531@292061,319.391@292062,319.766@292063,320.359@292064,320.547@292065,319.781@292066,320.703@292067,320.344@292068,320.219@292069,320.359@292070,320.797@292071,320.25@292072,321.359@292073,321.594@292074,321.25@292075,321.562@292076,320.844@292077,320.797@292078,321.578@292079,321.688@292080,321.312@292081,321.359@292082,321.297@292083,321.172@292084,320.766@292085,321.406@292086,321.312@292087,321.266@292088,320.641@292089,321.203@292090,320.656@292091,321.641@292092,321.391@292093,320.766@292094,320.797@292095,321.203@292096,320.719@292097,320.75@292098,320.594@292099,321.391@292100,321.391@292101,321.609@292102,321.234@292103,320.641@292104,321.641@292105,321.609@292106,322.453@292107,321.641@292108,322.484@292109,322.703@292110,321.828@292111,322.188@292112,322.203@292113,321.406@292114,321.484@292115,321.562@292116,321.516@292117,321.328@292118,321.234@292119,321.406@292120,321.188@292121,321.406@292122,321.578@292123,322.281@292124,321.625@292125,321.609@292126,321.672@292127,321.766@292128,322.625@292129,322.422@292130,322.734@292131,322.453@292132,322.438@292133,322.516@292134,322.484@292135,322.203@292136,321.219@292137,320.391@292138,320.234@292139,319.234@292140,318.609@292141,318.297@292142,317.266@292143,314.625@292144,312.578@292145,309.688@292146,306.719@292147,303.328@292148,300.578@292149,299.266@292150,297.719@292151,297.266@292152,295.812@292153,296.328@292154,296.328@292155,296.406@292156,296.734@292157,296.656@292158,296.578@292159,296.469@292160,297.234@292161,297.25@292162,297.344@292163,296.688@292164,296.781@292165,296.344@292166,296.562@292167,297.75@292168,297.203@292169,297.234@292170,296.609@292171,297.344@292172,297.281@292173,296.578@292174,297.219@292175,296.469@292176,297.234@292177,297.578@292178,297.406@292179,297.531@292180,297.344@292181,297.312@292182,298.156@292183,298.578@292184,297.703@292185,298.172@292186,297.625@292187,297.562@292188,298.172@292189,297.781@292190,298.297@292191,298.281@292192,298.406@292193,298.656@292194,298.609@292195,298.359@292196,297.75@292197,298.578@292198,298.547@292199,298.5@292200,298.812@292201,298.625@292202,298.719@292203,298.531@292204,298.609@292205,298.641@292206,298.641@292207,299.234@292208,300.297@292209,300.422@292210,301.266@292211,301.359@292212,301.562@292213,301.578@292214,302.234@292215,303.734@292216,303.859@292217,305.156@292218,305.25@292219,306.297@292220,307.266@292221,308.359@292222,307.516@292223,307.672@292224,308.484@292225,308.609@292226,309.297@292227,310.188@292228,310.625@292229,310.5@292230,310.656@292231,310.578@292232,311.5@292233,312.25@292234,314.188@292235,315.312@292236,315.641@292237,316.438@292238,317.484@292239,318.516@292240,318.562@292241,319.562@292242,319.531@292243,320.234@292244,320.672@292245,320.656@292246,319.797@292247,319.75@292248,320.203@292249,320.406@292250,320.391@292251,319.312@292252,319.578@292253,318.828@292254,317.547@292255,317.172@292256,315.781@292257,315.75@292258,316.266@292259,316.438@292260,316.578@292261,316.516@292262,315.844@292263,316.203@292264,314.812@292265,315.641@292266,317.297@292267,318.453@292268,318.406@292269,318.781@292270,318.641@292271,317.484@292272,318.234@292273,318.25@292274,317.547@292275,317.406@292276,317.688@292277,317.875@292278,318.75@292279,319.719@292280,320.672@292281,321.562@292282,322@292283),
|
66
|
+
Linear(0,0.9861@292023,0.9854@292024,0.986@292025,0.9878@292026,0.9847@292027,0.988@292028,0.9856@292029,0.9863@292030,0.9876@292031,0.9852@292032,0.9835@292033,0.9866@292034,0.9877@292035,0.9849@292036,0.9847@292037,0.9851@292038,0.9862@292039,0.9843@292040,0.9861@292041,0.9861@292042,0.9873@292043,0.9872@292044,0.9861@292045,0.9873@292046,0.9867@292047,0.9882@292048,0.9867@292049,0.9837@292050,0.988@292051,0.9885@292052,0.9862@292053,0.9881@292054,0.9895@292055,0.9853@292056,0.9847@292057,0.9863@292058,0.9852@292059,0.9834@292060,0.9876@292061,0.987@292062,0.9872@292063,0.986@292064,0.9853@292065,0.9875@292066,0.9851@292067,0.988@292068,0.9872@292069,0.9861@292070,0.9857@292071,0.9872@292072,0.9864@292073,0.9872@292074,0.9878@292075,0.9882@292076,0.9873@292077,0.9877@292078,0.9859@292079,0.9867@292080,0.9859@292081,0.988@292082,0.9883@292083,0.9898@292084,0.987@292085,0.9851@292086,0.9805@292087,0.9876@292088,0.9859@292089,0.986@292090,0.9882@292091,0.9852@292092,0.9849@292093,0.985@292094,0.986@292095,0.987@292096,0.9872@292097,0.9845@292098,0.9868@292099,0.9836@292100,0.985@292101,0.9868@292102,0.9845@292103,0.985@292104,0.9835@292105,0.9829@292106,0.9859@292107,0.9858@292108,0.9833@292109,0.9874@292110,0.9856@292111,0.9846@292112,0.9876@292113,0.9848@292114,0.985@292115,0.9845@292116,0.9842@292117,0.9838@292118,0.984@292119,0.984@292120,0.985@292121,0.983@292122,0.9878@292123,0.9856@292124,0.9847@292125,0.9838@292126,0.9833@292127,0.9868@292128,0.9848@292129,0.9841@292130,0.9845@292131,0.9809@292132,0.985@292133,0.9846@292134,0.9857@292135,0.9845@292136,0.9848@292137,0.983@292138,0.9853@292139,0.9822@292140,0.9854@292141,0.9875@292142,0.9839@292143,0.9856@292144,0.987@292145,0.9854@292146,0.9861@292147,0.9853@292148,0.9814@292149,0.9864@292150,0.9853@292151,0.985@292152,0.9876@292153,0.9842@292154,0.9825@292155,0.9847@292156,0.9852@292157,0.9848@292158,0.9824@292159,0.9868@292160,0.9822@292161,0.9859@292162,0.9856@292163,0.9823@292164,0.9829@292165,0.983@292166,0.9822@292167,0.9858@292168,0.9836@292169,0.9843@292170,0.9841@292171,0.9849@292172,0.982@292173,0.9834@292174,0.983@292175,0.9836@292176,0.9858@292177,0.9833@292178,0.9831@292179,0.9861@292180,0.9847@292181,0.9846@292182,0.9836@292183,0.9822@292184,0.9843@292185,0.9812@292186,0.9825@292187,0.9827@292188,0.9818@292189,0.9837@292190,0.9816@292191,0.9847@292192,0.9831@292193,0.9848@292194,0.9857@292195,0.9857@292196,0.9827@292197,0.9852@292198,0.9841@292199,0.9861@292200,0.9872@292201,0.9826@292202,0.9874@292203,0.9883@292204,0.9834@292205,0.9826@292206,0.9852@292207,0.9843@292208,0.9866@292209,0.9842@292210,0.9867@292211,0.9844@292212,0.9884@292213,0.982@292214,0.9831@292215,0.9836@292216,0.9845@292217,0.986@292218,0.986@292219,0.9868@292220,0.9859@292221,0.9853@292222,0.9843@292223,0.986@292224,0.9877@292225,0.9856@292226,0.988@292227,0.9883@292228,0.9866@292229,0.9863@292230,0.9856@292231,0.9862@292232,0.9854@292233,0.9839@292234,0.987@292235,0.9867@292236,0.9883@292237,0.988@292238,0.9874@292239,0.9858@292240,0.9854@292241,0.9873@292242,0.985@292243,0.9861@292244,0.9854@292245,0.9879@292246,0.9874@292247,0.9853@292248,0.9886@292249,0.9871@292250,0.986@292251,0.9847@292252,0.9891@292253,0.9871@292254,0.9849@292255,0.9862@292256,0.9864@292257,0.985@292258,0.9857@292259,0.9894@292260,0.9888@292261,0.9856@292262,0.9884@292263,0.9875@292264,0.9845@292265,0.9887@292266,0.9882@292267,0.9883@292268,0.9862@292269,0.987@292270,0.9881@292271,0.9856@292272,0.9862@292273,0.9828@292274,0.9856@292275,0.9841@292276,0.9884@292277,0.9872@292278,0.9861@292279,0.9886@292280,0.9855@292281,0.9885@292282,1@292283),
|
67
|
+
516.5887, 588.5887, 285.75, 357.75, 480.588684, 624.5887,
|
68
|
+
249.75, 393.75, Linear(0,552.761@292023,552.495@292024,552.761@292025,553.245@292026,553.12@292027,552.636@292028,552.386@292029,552.745@292030,553.042@292031,553.042@292032,552.87@292033,552.886@292034,553.23@292035,553.745@292036,553.964@292037,553.495@292038,553.542@292039,554.011@292040,554.12@292041,554.776@292042,555.573@292043,556.058@292044,556.792@292045,557.089@292046,557.761@292047,558.261@292048,559.026@292049,559.808@292050,560.964@292051,561.855@292052,562.605@292053,564.12@292054,565.808@292055,566.886@292056,569.058@292057,570.526@292058,571.917@292059,573.886@292060,575.198@292061,576.042@292062,577.276@292063,578.355@292064,579.401@292065,580.136@292066,581.073@292067,581.417@292068,582.042@292069,583.433@292070,584.355@292071,584.839@292072,584.589@292073,584.636@292074,585.136@292075,585.948@292076,586.355@292077,586.245@292078,586.011@292079,586.073@292080,586.323@292081,586.526@292082,586.526@292083,587.261@292084,587.901@292085,588.292@292086,588.37@292087,588.12@292088,588.308@292089,588.901@292090,589.23@292091,589.323@292092,588.901@292093,588.464@292094,588.823@292095,588.964@292096,589.105@292097,589.292@292098,589.948@292099,590.745@292100,591.714@292101,591.714@292102,591.292@292103,591.37@292104,591.98@292105,591.917@292106,591.964@292107,592.12@292108,593.214@292109,594.464@292110,596.058@292111,597.323@292112,598.745@292113,600.355@292114,603.089@292115,606.136@292116,609.823@292117,613.292@292118,616.417@292119,619.73@292120,622.792@292121,625.855@292122,628.48@292123,631.058@292124,632.886@292125,635.151@292126,636.605@292127,638.151@292128,639.48@292129,640.558@292130,640.87@292131,640.448@292132,639.589@292133,639.089@292134,639.37@292135,639.339@292136,639.776@292137,639.276@292138,639.605@292139,640.089@292140,640.167@292141,640.261@292142,639.964@292143,640.042@292144,639.964@292145,640.214@292146,639.636@292147,639.214@292148,638.636@292149,639.058@292150,638.948@292151,638.964@292152,639.261@292153,639.136@292154,639.589@292155,639.839@292156,639.636@292157,639.542@292158,639.23@292159,639.73@292160,639.901@292161,639.792@292162,639.573@292163,639.636@292164,640.073@292165,640.042@292166,639.651@292167,639.542@292168,639.136@292169,639.433@292170,639.355@292171,639.183@292172,639.198@292173,639.183@292174,639.605@292175,639.823@292176,639.714@292177,639.558@292178,639.167@292179,639.105@292180,639.386@292181,639.605@292182,639.261@292183,639.245@292184,639.198@292185,639.183@292186,639.245@292187,639.167@292188,639.292@292189,639.542@292190,639.558@292191,639.355@292192,639.042@292193,639.261@292194,639.698@292195,639.48@292196,639.589@292197,639.386@292198,639.167@292199,639.042@292200,639.323@292201,639.323@292202,639.214@292203,638.98@292204,639.151@292205,638.98@292206,638.761@292207,638.886@292208,638.589@292209,638.808@292210,638.776@292211,638.495@292212,638.042@292213,638.151@292214,638.198@292215,638.495@292216,638.23@292217,637.87@292218,637.886@292219,637.901@292220,638.136@292221,638.308@292222,637.605@292223,636.792@292224,636.886@292225,636.105@292226,635.558@292227,635.48@292228,635.105@292229,634.605@292230,633.823@292231,632.167@292232,630.167@292233,628.183@292234,626.526@292235,625.089@292236,623.136@292237,622.105@292238,620.87@292239,620.698@292240,620.386@292241,619.792@292242,619.761@292243,619.198@292244,619.355@292245,619.48@292246,619.573@292247,619.761@292248,620.167@292249,620.542@292250,620.745@292251,620.417@292252,620.605@292253,620.901@292254,621.37@292255,621.808@292256,621.558@292257,621.292@292258,621.261@292259,622.151@292260,622.151@292261,622.401@292262,622.542@292263,622.214@292264,621.901@292265,621.573@292266,621.089@292267,621.089@292268,620.823@292269,620.636@292270,620.136@292271,619.167@292272,618.62@292273,617.464@292274,615.948@292275,613.23@292276,610.605@292277,607.042@292278,603.292@292279,600.23@292280,596.448@292281,591.948@292282,587.667@292283),
|
69
|
+
Linear(0,322.266@292023,322.172@292024,322.188@292025,322.234@292026,322.578@292027,322.531@292028,321.641@292029,321.797@292030,322.531@292031,322.453@292032,322.359@292033,322.5@292034,322.25@292035,321.719@292036,323.359@292037,322.75@292038,323.188@292039,322.828@292040,323.5@292041,322.609@292042,323.203@292043,323.406@292044,323.25@292045,323.625@292046,323.625@292047,323.594@292048,322.703@292049,322.688@292050,322.781@292051,322.766@292052,322.75@292053,321.719@292054,322.203@292055,321.531@292056,321.391@292057,320.438@292058,320.703@292059,319.719@292060,319.531@292061,319.391@292062,319.766@292063,320.359@292064,320.547@292065,319.781@292066,320.703@292067,320.344@292068,320.219@292069,320.359@292070,320.797@292071,320.25@292072,321.359@292073,321.594@292074,321.25@292075,321.562@292076,320.844@292077,320.797@292078,321.578@292079,321.688@292080,321.312@292081,321.359@292082,321.297@292083,321.172@292084,320.766@292085,321.406@292086,321.312@292087,321.266@292088,320.641@292089,321.203@292090,320.656@292091,321.641@292092,321.391@292093,320.766@292094,320.797@292095,321.203@292096,320.719@292097,320.75@292098,320.594@292099,321.391@292100,321.391@292101,321.609@292102,321.234@292103,320.641@292104,321.641@292105,321.609@292106,322.453@292107,321.641@292108,322.484@292109,322.703@292110,321.828@292111,322.188@292112,322.203@292113,321.406@292114,321.484@292115,321.562@292116,321.516@292117,321.328@292118,321.234@292119,321.406@292120,321.188@292121,321.406@292122,321.578@292123,322.281@292124,321.625@292125,321.609@292126,321.672@292127,321.766@292128,322.625@292129,322.422@292130,322.734@292131,322.453@292132,322.438@292133,322.516@292134,322.484@292135,322.203@292136,321.219@292137,320.391@292138,320.234@292139,319.234@292140,318.609@292141,318.297@292142,317.266@292143,314.625@292144,312.578@292145,309.688@292146,306.719@292147,303.328@292148,300.578@292149,299.266@292150,297.719@292151,297.266@292152,295.812@292153,296.328@292154,296.328@292155,296.406@292156,296.734@292157,296.656@292158,296.578@292159,296.469@292160,297.234@292161,297.25@292162,297.344@292163,296.688@292164,296.781@292165,296.344@292166,296.562@292167,297.75@292168,297.203@292169,297.234@292170,296.609@292171,297.344@292172,297.281@292173,296.578@292174,297.219@292175,296.469@292176,297.234@292177,297.578@292178,297.406@292179,297.531@292180,297.344@292181,297.312@292182,298.156@292183,298.578@292184,297.703@292185,298.172@292186,297.625@292187,297.562@292188,298.172@292189,297.781@292190,298.297@292191,298.281@292192,298.406@292193,298.656@292194,298.609@292195,298.359@292196,297.75@292197,298.578@292198,298.547@292199,298.5@292200,298.812@292201,298.625@292202,298.719@292203,298.531@292204,298.609@292205,298.641@292206,298.641@292207,299.234@292208,300.297@292209,300.422@292210,301.266@292211,301.359@292212,301.562@292213,301.578@292214,302.234@292215,303.734@292216,303.859@292217,305.156@292218,305.25@292219,306.297@292220,307.266@292221,308.359@292222,307.516@292223,307.672@292224,308.484@292225,308.609@292226,309.297@292227,310.188@292228,310.625@292229,310.5@292230,310.656@292231,310.578@292232,311.5@292233,312.25@292234,314.188@292235,315.312@292236,315.641@292237,316.438@292238,317.484@292239,318.516@292240,318.562@292241,319.562@292242,319.531@292243,320.234@292244,320.672@292245,320.656@292246,319.797@292247,319.75@292248,320.203@292249,320.406@292250,320.391@292251,319.312@292252,319.578@292253,318.828@292254,317.547@292255,317.172@292256,315.781@292257,315.75@292258,316.266@292259,316.438@292260,316.578@292261,316.516@292262,315.844@292263,316.203@292264,314.812@292265,315.641@292266,317.297@292267,318.453@292268,318.406@292269,318.781@292270,318.641@292271,317.484@292272,318.234@292273,318.25@292274,317.547@292275,317.406@292276,317.688@292277,317.875@292278,318.75@292279,319.719@292280,320.672@292281,321.562@292282,322@292283),
|
70
|
+
1, 1);
|
71
|
+
|
72
|
+
|
73
|
+
// User Interface settings
|
74
|
+
|
75
|
+
SetKey(
|
76
|
+
"colorPicker.hex", "0",
|
77
|
+
"colorPicker.range", "32",
|
78
|
+
"globals.broadcastHighQuality", "1",
|
79
|
+
"globals.broadcastMonitorNumber", "2",
|
80
|
+
"globals.broadcastViewerAspectRatio", "1",
|
81
|
+
"globals.cacheMode", "2",
|
82
|
+
"globals.consoleLineLength", "120",
|
83
|
+
"globals.displayThumbnails", "1",
|
84
|
+
"globals.enhancedNodeView", "0",
|
85
|
+
"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/;/Users/julik/Desktop/VFX_Projectery/Target/;",
|
86
|
+
"globals.fileBrowserExactList", "0",
|
87
|
+
"globals.fileBrowserFilterList", "0",
|
88
|
+
"globals.fileBrowserFullList", "0",
|
89
|
+
"globals.fileBrowserHeight", "540",
|
90
|
+
"globals.fileBrowserImageList", "0",
|
91
|
+
"globals.fileBrowserLC1", "230",
|
92
|
+
"globals.fileBrowserLC2", "70",
|
93
|
+
"globals.fileBrowserLC3", "110",
|
94
|
+
"globals.fileBrowserLC4", "245",
|
95
|
+
"globals.fileBrowserLC5", "175",
|
96
|
+
"globals.fileBrowserLC6", "65",
|
97
|
+
"globals.fileBrowserLC7", "111",
|
98
|
+
"globals.fileBrowserRIntSet", "0",
|
99
|
+
"globals.fileBrowserSC1", "211",
|
100
|
+
"globals.fileBrowserSC2", "211",
|
101
|
+
"globals.fileBrowserSC3", "211",
|
102
|
+
"globals.fileBrowserSeqList", "0",
|
103
|
+
"globals.fileBrowserShortList", "0",
|
104
|
+
"globals.fileBrowserWIntSet", "1",
|
105
|
+
"globals.fileBrowserWidth", "790",
|
106
|
+
"globals.fileBrowserfullPath", "0",
|
107
|
+
"globals.fontBlue", "1",
|
108
|
+
"globals.fontGreen", "1",
|
109
|
+
"globals.fontRed", "1",
|
110
|
+
"globals.gridBlue", "0.15",
|
111
|
+
"globals.gridEnabled", "0",
|
112
|
+
"globals.gridGreen", "0.15",
|
113
|
+
"globals.gridHeight", "40",
|
114
|
+
"globals.gridRed", "0.15",
|
115
|
+
"globals.gridVisible", "0",
|
116
|
+
"globals.gridWidth", "40",
|
117
|
+
"globals.layoutTightness", "40",
|
118
|
+
"globals.multiPlaneLocatorScale", "1",
|
119
|
+
"globals.noodleABlue", "1",
|
120
|
+
"globals.noodleAGreen", "1",
|
121
|
+
"globals.noodleARed", "1",
|
122
|
+
"globals.noodleAZBlue", "0.4",
|
123
|
+
"globals.noodleAZGreen", "0",
|
124
|
+
"globals.noodleAZRed", "0",
|
125
|
+
"globals.noodleBWABlue", "0.4",
|
126
|
+
"globals.noodleBWAGreen", "0.4",
|
127
|
+
"globals.noodleBWARed", "0.4",
|
128
|
+
"globals.noodleBWAZBlue", "0.4",
|
129
|
+
"globals.noodleBWAZGreen", "0",
|
130
|
+
"globals.noodleBWAZRed", "0",
|
131
|
+
"globals.noodleBWBlue", "0.15",
|
132
|
+
"globals.noodleBWGreen", "0.15",
|
133
|
+
"globals.noodleBWRed", "0.15",
|
134
|
+
"globals.noodleBWZBlue", "0.4",
|
135
|
+
"globals.noodleBWZGreen", "0",
|
136
|
+
"globals.noodleBWZRed", "0",
|
137
|
+
"globals.noodleBlue", "1",
|
138
|
+
"globals.noodleColorCoding", "2",
|
139
|
+
"globals.noodleGreen", "1",
|
140
|
+
"globals.noodleRGBABlue", "0.7",
|
141
|
+
"globals.noodleRGBAGreen", "0.7",
|
142
|
+
"globals.noodleRGBARed", "0.7",
|
143
|
+
"globals.noodleRGBAZBlue", "1",
|
144
|
+
"globals.noodleRGBAZGreen", "0.4",
|
145
|
+
"globals.noodleRGBAZRed", "0.4",
|
146
|
+
"globals.noodleRGBBlue", "0",
|
147
|
+
"globals.noodleRGBGreen", "0.7",
|
148
|
+
"globals.noodleRGBRed", "0.7",
|
149
|
+
"globals.noodleRGBZBlue", "0.8",
|
150
|
+
"globals.noodleRGBZGreen", "0.2",
|
151
|
+
"globals.noodleRGBZRed", "0.2",
|
152
|
+
"globals.noodleRed", "1",
|
153
|
+
"globals.noodleStipple16", "1061109567",
|
154
|
+
"globals.noodleStipple32", "-1",
|
155
|
+
"globals.noodleStipple8", "-1431655766",
|
156
|
+
"globals.noodleTension", "0.25",
|
157
|
+
"globals.noodleZBlue", "0.4",
|
158
|
+
"globals.noodleZGreen", "0",
|
159
|
+
"globals.noodleZRed", "0",
|
160
|
+
"globals.paintFrameMode", "1",
|
161
|
+
"globals.pdfBrowserPath", "",
|
162
|
+
"globals.proxyTog.cycle", "-1,0,0,0,0,-1",
|
163
|
+
"globals.renderModeTog.cycle", "2,0,0,2",
|
164
|
+
"globals.rotoAutoControlScale", "1",
|
165
|
+
"globals.rotoBuildColorBlue", "0.75",
|
166
|
+
"globals.rotoBuildColorGreen", "0.75",
|
167
|
+
"globals.rotoBuildColorRed", "0.375",
|
168
|
+
"globals.rotoControlScale", "1",
|
169
|
+
"globals.rotoFocusColorBlue", "0.9375",
|
170
|
+
"globals.rotoFocusColorGreen", "0.375",
|
171
|
+
"globals.rotoFocusColorRed", "0.5",
|
172
|
+
"globals.rotoFocusSelectColorBlue", "0.5",
|
173
|
+
"globals.rotoFocusSelectColorGreen", "1",
|
174
|
+
"globals.rotoFocusSelectColorRed", "0.5",
|
175
|
+
"globals.rotoKeyedColorBlue", "1",
|
176
|
+
"globals.rotoKeyedColorGreen", "0.65",
|
177
|
+
"globals.rotoKeyedColorRed", "0.45",
|
178
|
+
"globals.rotoNormalColorBlue", "0.125",
|
179
|
+
"globals.rotoNormalColorGreen", "0.75",
|
180
|
+
"globals.rotoNormalColorRed", "0.75",
|
181
|
+
"globals.rotoNormalSelectColorBlue", "0.0625",
|
182
|
+
"globals.rotoNormalSelectColorGreen", "1",
|
183
|
+
"globals.rotoNormalSelectColorRed", "0.0625",
|
184
|
+
"globals.rotoPickRadius", "15",
|
185
|
+
"globals.rotoTangentColorBlue", "0.125",
|
186
|
+
"globals.rotoTangentColorGreen", "0.5625",
|
187
|
+
"globals.rotoTangentColorRed", "0.5625",
|
188
|
+
"globals.rotoTangentCreationRadius", "10",
|
189
|
+
"globals.rotoTempKeyColorBlue", "0",
|
190
|
+
"globals.rotoTempKeyColorGreen", "0.5",
|
191
|
+
"globals.rotoTempKeyColorRed", "1",
|
192
|
+
"globals.rotoTransformIncrement", "5",
|
193
|
+
"globals.showActiveGlows", "2",
|
194
|
+
"globals.showConcatenationLinks", "2",
|
195
|
+
"globals.showExpressionLinks", "2",
|
196
|
+
"globals.showTimeDependency", "2",
|
197
|
+
"globals.textureProxy", "1",
|
198
|
+
"globals.thumbAlphaBlend", "1",
|
199
|
+
"globals.thumbSize", "15",
|
200
|
+
"globals.thumbSizeRelative", "0",
|
201
|
+
"globals.viewerAspectRatio", "script.defaultViewerAspectRatio",
|
202
|
+
"globals.viewerZoom", "1.0/proxyScale",
|
203
|
+
"globals.virtualSliderMode", "0",
|
204
|
+
"globals.virtualSliderSpeed", "0.25",
|
205
|
+
"globals.warpBoundaryNormalColorBlue", "0",
|
206
|
+
"globals.warpBoundaryNormalColorGreen", "0.5",
|
207
|
+
"globals.warpBoundaryNormalColorRed", "1",
|
208
|
+
"globals.warpConnectionNormalColorBlue", "0.8",
|
209
|
+
"globals.warpConnectionNormalColorGreen", "0",
|
210
|
+
"globals.warpConnectionNormalColorRed", "0.4",
|
211
|
+
"globals.warpDisplacedNormalColorBlue", "1",
|
212
|
+
"globals.warpDisplacedNormalColorGreen", "0",
|
213
|
+
"globals.warpDisplacedNormalColorRed", "1",
|
214
|
+
"globals.warpLockedColorBlue", "0.6",
|
215
|
+
"globals.warpLockedColorGreen", "0.6",
|
216
|
+
"globals.warpLockedColorRed", "0.6",
|
217
|
+
"globals.warpSourceNormalColorBlue", "1",
|
218
|
+
"globals.warpSourceNormalColorGreen", "0.8",
|
219
|
+
"globals.warpSourceNormalColorRed", "0",
|
220
|
+
"globals.warpTargetNormalColorBlue", "0.7",
|
221
|
+
"globals.warpTargetNormalColorGreen", "0.2",
|
222
|
+
"globals.warpTargetNormalColorRed", "0.2",
|
223
|
+
"globals.webBrowserPath", "",
|
224
|
+
"mainQuad.bot", "0.6",
|
225
|
+
"mainQuad.left", "0.29",
|
226
|
+
"mainQuad.right", "0.35",
|
227
|
+
"mainQuad.top", "0.6",
|
228
|
+
"mainWin.height", "1146",
|
229
|
+
"mainWin.tabChild1", "0.Image",
|
230
|
+
"mainWin.tabChild10", "0.Node_View_2",
|
231
|
+
"mainWin.tabChild11", "0.Time_View",
|
232
|
+
"mainWin.tabChild12", "1.Parameters1",
|
233
|
+
"mainWin.tabChild13", "1.Parameters2",
|
234
|
+
"mainWin.tabChild14", "1.Globals",
|
235
|
+
"mainWin.tabChild15", "2.Viewers",
|
236
|
+
"mainWin.tabChild2", "0.Color",
|
237
|
+
"mainWin.tabChild3", "0.Filter",
|
238
|
+
"mainWin.tabChild4", "0.Key",
|
239
|
+
"mainWin.tabChild5", "0.Layer",
|
240
|
+
"mainWin.tabChild6", "0.Transform",
|
241
|
+
"mainWin.tabChild7", "0.Warp",
|
242
|
+
"mainWin.tabChild8", "0.Other",
|
243
|
+
"mainWin.tabChild9", "0.Curve_Editor_2",
|
244
|
+
"mainWin.width", "1914",
|
245
|
+
"mainWin.xPos", "3",
|
246
|
+
"mainWin.yPos", "7",
|
247
|
+
"nodeView.Blur1.t", "0",
|
248
|
+
"nodeView.Blur1.x", "-235",
|
249
|
+
"nodeView.Blur1.y", "-3323",
|
250
|
+
"nodeView.Blur2.t", "0",
|
251
|
+
"nodeView.Blur2.x", "-236",
|
252
|
+
"nodeView.Blur2.y", "-3466",
|
253
|
+
"nodeView.Expand1.t", "0",
|
254
|
+
"nodeView.Expand1.x", "-243",
|
255
|
+
"nodeView.Expand1.y", "-3395",
|
256
|
+
"nodeView.Reorder1.t", "0",
|
257
|
+
"nodeView.Reorder1.x", "-244",
|
258
|
+
"nodeView.Reorder1.y", "-3252",
|
259
|
+
"nodeView.Stabilize1.t", "0",
|
260
|
+
"nodeView.Stabilize1.x", "-46",
|
261
|
+
"nodeView.Stabilize1.y", "-3551",
|
262
|
+
"nodeView.Tracker1.t", "0",
|
263
|
+
"nodeView.Tracker1.x", "-242",
|
264
|
+
"nodeView.Tracker1.y", "-3534",
|
265
|
+
"nodeView.redacted.t", "1",
|
266
|
+
"nodeView.redacted.tnChannel", "0",
|
267
|
+
"nodeView.redacted.tnTime", "1",
|
268
|
+
"nodeView.redacted.tnVisible", "1",
|
269
|
+
"nodeView.redacted.x", "-122",
|
270
|
+
"nodeView.redacted.y", "-3095",
|
271
|
+
"nodeView.xPan", "325.514984",
|
272
|
+
"nodeView.yPan", "3738.06567",
|
273
|
+
"nodeView.zoom", "0.692299664",
|
274
|
+
"pixelAnalyzer1.aStatToggleState", "0",
|
275
|
+
"pixelAnalyzer1.accumulate", "0",
|
276
|
+
"pixelAnalyzer1.bStatToggleState", "0",
|
277
|
+
"pixelAnalyzer1.bit16ToggleState", "0",
|
278
|
+
"pixelAnalyzer1.bit32ToggleState", "1",
|
279
|
+
"pixelAnalyzer1.bit8ToggleState", "0",
|
280
|
+
"pixelAnalyzer1.gStatToggleState", "0",
|
281
|
+
"pixelAnalyzer1.hStatToggleState", "0",
|
282
|
+
"pixelAnalyzer1.hex", "0",
|
283
|
+
"pixelAnalyzer1.imgToggleState", "0",
|
284
|
+
"pixelAnalyzer1.lStatToggleState", "1",
|
285
|
+
"pixelAnalyzer1.offToggleState", "0",
|
286
|
+
"pixelAnalyzer1.pxlToggleState", "1",
|
287
|
+
"pixelAnalyzer1.rStatToggleState", "0",
|
288
|
+
"pixelAnalyzer1.sStatToggleState", "0",
|
289
|
+
"pixelAnalyzer1.vStatToggleState", "0",
|
290
|
+
"spawnedViewerCount", "0",
|
291
|
+
"timeBar.current", "292023",
|
292
|
+
"timeBar.high", "292283",
|
293
|
+
"timeBar.incr", "1",
|
294
|
+
"timeBar.low", "292023",
|
295
|
+
"timeView.ctrls.selGroup", "0",
|
296
|
+
"timeView.list.open.redacted.cycle", "-2,-2,0",
|
297
|
+
"timeView.wSpace.constDisp", "0",
|
298
|
+
"timeView.wSpace.dispInOut", "1",
|
299
|
+
"timeView.wSpace.endTime", "100",
|
300
|
+
"timeView.wSpace.startTime", "1",
|
301
|
+
"timeView.wSpace.trim", "0",
|
302
|
+
"updater.mode", "2",
|
303
|
+
"vDesk.0.chanTog.0.cycle", "4,0,0,0,0,0",
|
304
|
+
"vDesk.0.chanTog.1.cycle", "4,0,0,0,0,0",
|
305
|
+
"vDesk.0.compareMode", "0",
|
306
|
+
"vDesk.0.compareTog.cycle", "-1,0,0,0,-1",
|
307
|
+
"vDesk.0.displayModeA", "0",
|
308
|
+
"vDesk.0.displayModeB", "0",
|
309
|
+
"vDesk.0.dodNodeSerial", "SetDOD(Select1, 156, 785, 44, 404);",
|
310
|
+
"vDesk.0.dodToggle", "1",
|
311
|
+
"vDesk.0.g", "1",
|
312
|
+
"vDesk.0.h", "768",
|
313
|
+
"vDesk.0.i", "0",
|
314
|
+
"vDesk.0.ih", "0",
|
315
|
+
"vDesk.0.isActive", "1",
|
316
|
+
"vDesk.0.iw", "0",
|
317
|
+
"vDesk.0.lookupNodeSerial0", "Truelight_VLUT_(ViewerDodSelect, \"none\", \"monitor\", \"log\", 0, 0, 0, 0, 0, 0, 1, 0.01, 16, 0.1978, 0.4683);",
|
318
|
+
"vDesk.0.lookupNodeSerial1", "ViewerLookup1_(ViewerDodSelect, 2.2, 0, 2, 0, 0, 0, 95, rBlack, rBlack, 685, rWhite, rWhite, 0.6, rNGamma, rNGamma, 1.7, rDGamma, rDGamma, 0, rSoftClip, rSoftClip);",
|
319
|
+
"vDesk.0.lookupTog.cycle", "1,0,0,0",
|
320
|
+
"vDesk.0.lookupToggle", "0",
|
321
|
+
"vDesk.0.monitoredNodeA", "NRiScript1.redacted",
|
322
|
+
"vDesk.0.numViewerLookups", "2",
|
323
|
+
"vDesk.0.numViewerScripts", "6",
|
324
|
+
"vDesk.0.oscAutoKeyOnOff", "1",
|
325
|
+
"vDesk.0.oscLockTog.cycle", "1,0,0,0",
|
326
|
+
"vDesk.0.oscOnOff", "1",
|
327
|
+
"vDesk.0.oscTog.cycle", "1,0,0,1",
|
328
|
+
"vDesk.0.roiOnOff", "1",
|
329
|
+
"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);",
|
330
|
+
"vDesk.0.scriptNodeSerial1", "ViewerScript_2_(riNode, 1, 1, 1, Input.width/2, Input.height/2);",
|
331
|
+
"vDesk.0.scriptNodeSerial2", "ViewerScript_3_(riNode, 3, 0, .5);",
|
332
|
+
"vDesk.0.scriptNodeSerial3", "ViewZ(riNode, 0, 0, 0, 5000000, 1, 100);",
|
333
|
+
"vDesk.0.scriptNodeSerial4", "FloatView_(riNode, 2, 0, 0, 1, 1-red1, 1-green1, 1-blue1);",
|
334
|
+
"vDesk.0.scriptNodeSerial5", "TimeCode_(riNode, \"Timecode\", 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, .5, 20, 20);",
|
335
|
+
"vDesk.0.scriptTog.cycle", "-1,0,0,0,0,0,0,-1",
|
336
|
+
"vDesk.0.scriptToggle", "0",
|
337
|
+
"vDesk.0.updateModeA", "1",
|
338
|
+
"vDesk.0.updateModeB", "1",
|
339
|
+
"vDesk.0.updateTog.0.cycle", "-1,0,0,1",
|
340
|
+
"vDesk.0.updateTog.1.cycle", "-1,0,0,1",
|
341
|
+
"vDesk.0.w", "1142",
|
342
|
+
"vDesk.0.x", "0",
|
343
|
+
"vDesk.0.xPan", "-1849",
|
344
|
+
"vDesk.0.xliderValue", "21.9659958",
|
345
|
+
"vDesk.0.y", "0",
|
346
|
+
"vDesk.0.yPan", "-1019",
|
347
|
+
"vDesk.0.zoom", "2.51811457",
|
348
|
+
"vDesk.viewers", "1"
|
349
|
+
);
|
@@ -124,4 +124,13 @@ class ShakeScriptImportTest < Test::Unit::TestCase
|
|
124
124
|
assert_equal 1, trackers.length
|
125
125
|
assert_equal 850, trackers[0].length
|
126
126
|
end
|
127
|
+
|
128
|
+
def test_script_with_stabilizer_node_without_animation
|
129
|
+
fixture = File.open(File.dirname(__FILE__) + "/samples/shake_script/track.shk")
|
130
|
+
p = Tracksperanto::Import::ShakeScript.new(:width => 1920, :height => 1080)
|
131
|
+
trackers = p.parse(fixture)
|
132
|
+
assert_equal 2, trackers.length
|
133
|
+
assert_equal 261, trackers[0].length
|
134
|
+
end
|
135
|
+
|
127
136
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tracksperanto
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 9
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 2
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 2.1.
|
9
|
+
- 1
|
10
|
+
version: 2.1.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Julik Tarkhanov
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-02-
|
18
|
+
date: 2011-02-14 00:00:00 +01:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -75,6 +75,7 @@ extra_rdoc_files:
|
|
75
75
|
- Manifest.txt
|
76
76
|
- README.txt
|
77
77
|
files:
|
78
|
+
- DEVELOPER_DOCS.rdoc
|
78
79
|
- History.txt
|
79
80
|
- MIT_LICENSE.txt
|
80
81
|
- Manifest.txt
|
@@ -195,6 +196,7 @@ files:
|
|
195
196
|
- test/import/samples/shake_script/shake_trackers_with_Nspline.shk
|
196
197
|
- test/import/samples/shake_script/stabilize_nodes_with_hermite.shk
|
197
198
|
- test/import/samples/shake_script/three_tracks_in_one_stabilizer.shk
|
199
|
+
- test/import/samples/shake_script/track.shk
|
198
200
|
- test/import/samples/shake_script/two_tracks_in_one_tracker.shk
|
199
201
|
- test/import/samples/shake_text/one_shake_tracker.txt
|
200
202
|
- test/import/samples/shake_text/one_shake_tracker_from_first.txt
|
@@ -239,7 +241,6 @@ files:
|
|
239
241
|
- test/test_simple_export.rb
|
240
242
|
- test/test_tracker.rb
|
241
243
|
- test/test_tracksperanto.rb
|
242
|
-
- test/middleware/test_lens_distort_middleware.rb
|
243
244
|
has_rdoc: true
|
244
245
|
homepage: http://guerilla-di.org/tracksperanto
|
245
246
|
licenses: []
|
@@ -306,7 +307,6 @@ test_files:
|
|
306
307
|
- test/middleware/test_flop_middleware.rb
|
307
308
|
- test/middleware/test_golden_middleware.rb
|
308
309
|
- test/middleware/test_length_cutoff_middleware.rb
|
309
|
-
- test/middleware/test_lens_distort_middleware.rb
|
310
310
|
- test/middleware/test_lerp_middleware.rb
|
311
311
|
- test/middleware/test_prefix.rb
|
312
312
|
- test/middleware/test_reformat_middleware.rb
|
@@ -1,14 +0,0 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__)) + '/../helper'
|
2
|
-
|
3
|
-
class DistortMiddlewareTest < Test::Unit::TestCase
|
4
|
-
include ParabolicTracks
|
5
|
-
|
6
|
-
def test_truth
|
7
|
-
File.open("/tmp/dist.nk", "w") do |f |
|
8
|
-
nx = Tracksperanto::Export::NukeScript.new(f)
|
9
|
-
dist = Tracksperanto::Middleware::LensDistort.new(nx, :k => 0.03, :kcube => 0.02, :extend_image => true)
|
10
|
-
export_parabolics_with(dist)
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
end
|