tracksperanto 1.9.6 → 1.9.8
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +8 -1
- data/Manifest.txt +3 -1
- data/bin/tracksperanto +9 -9
- data/lib/export/syntheyes.rb +1 -3
- data/lib/import/shake_grammar/lexer.rb +2 -2
- data/lib/middleware/flip.rb +16 -0
- data/lib/pipeline/base.rb +3 -0
- data/lib/tracksperanto.rb +1 -1
- data/test/export/samples/ref_Mayalive.txt +2 -0
- data/test/export/samples/ref_Mayalive_CustomAspect.txt +2 -0
- data/test/export/samples/ref_NukeScript.nk +7 -0
- data/test/export/samples/ref_PFTrack.2dt +5 -0
- data/test/export/samples/ref_PFTrack5.2dt +6 -0
- data/test/export/samples/ref_ShakeText.txt +4 -0
- data/test/export/samples/ref_Syntheyes.txt +3 -2
- data/test/export/samples/ref_equalizer.txt +5 -1
- data/test/export/samples/ref_equalizer3.txt +2 -0
- data/test/export/samples/ref_flame.stabilizer +145 -1
- data/test/export/samples/ref_matchmover.rz2 +4 -0
- data/test/helper.rb +13 -1
- data/test/middleware/test_flip_middleware.rb +30 -0
- data/test/test_cli.rb +1 -1
- data/test/test_pipeline.rb +7 -0
- metadata +48 -18
data/History.txt
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
=== 1.9.8 / 2010-08-11
|
2
|
+
|
3
|
+
* Very minor changes and improvements
|
4
|
+
* The app will now tell you when you try to feed it an empty file
|
5
|
+
* Change Synetheyes exports to start with a standard frame and not a keyframe to make 1-frame trackers work
|
6
|
+
* Adds a flip middleware to mirror a tracked comp
|
7
|
+
|
1
8
|
=== 1.9.6 / 2010-06-17
|
2
9
|
|
3
10
|
* Support Tracker nodes in Shake scripts that come from an old (ages old!) Shake version
|
@@ -29,7 +36,7 @@
|
|
29
36
|
=== 1.9.0 / 2010-03-21
|
30
37
|
|
31
38
|
* Use proper progress bars
|
32
|
-
* Allow proper chaining of middlewares in the commandline app - you can now apply many middlewares of the same nature in
|
39
|
+
* Allow proper chaining of middlewares in the commandline app - you can now apply many middlewares of the same nature in chain, and they will be ordered correctly
|
33
40
|
* Small rewrites to Pipeline::Base (changes API slightly - please consult the docs)
|
34
41
|
|
35
42
|
=== 1.8.4 / 2010-03-10
|
data/Manifest.txt
CHANGED
@@ -32,6 +32,7 @@ lib/import/shake_script.rb
|
|
32
32
|
lib/import/shake_text.rb
|
33
33
|
lib/import/syntheyes.rb
|
34
34
|
lib/middleware/base.rb
|
35
|
+
lib/middleware/flip.rb
|
35
36
|
lib/middleware/golden.rb
|
36
37
|
lib/middleware/length_cutoff.rb
|
37
38
|
lib/middleware/lerp.rb
|
@@ -104,6 +105,7 @@ test/import/samples/pftrack5/garage.2dt
|
|
104
105
|
test/import/samples/shake_script/four_tracks_in_one_matchmove.shk
|
105
106
|
test/import/samples/shake_script/four_tracks_in_one_stabilizer.shk
|
106
107
|
test/import/samples/shake_script/from_matchmover.shk
|
108
|
+
test/import/samples/shake_script/oldTrackerNode.shk
|
107
109
|
test/import/samples/shake_script/shake_script_from_boujou.shk
|
108
110
|
test/import/samples/shake_script/shake_tracker_nodes.shk
|
109
111
|
test/import/samples/shake_script/shake_tracker_with_no_anim.shk
|
@@ -111,7 +113,6 @@ test/import/samples/shake_script/shake_trackers_with_Nspline.shk
|
|
111
113
|
test/import/samples/shake_script/stabilize_nodes_with_hermite.shk
|
112
114
|
test/import/samples/shake_script/three_tracks_in_one_stabilizer.shk
|
113
115
|
test/import/samples/shake_script/two_tracks_in_one_tracker.shk
|
114
|
-
test/import/samples/shake_script/oldTrackerNode.shk
|
115
116
|
test/import/samples/shake_text/one_shake_tracker.txt
|
116
117
|
test/import/samples/shake_text/one_shake_tracker_from_first.txt
|
117
118
|
test/import/samples/shake_text/two_shake_trackers.txt
|
@@ -132,6 +133,7 @@ test/import/test_shake_lexer.rb
|
|
132
133
|
test/import/test_shake_script_import.rb
|
133
134
|
test/import/test_shake_text_import.rb
|
134
135
|
test/import/test_syntheyes_import.rb
|
136
|
+
test/middleware/test_flip_middleware.rb
|
135
137
|
test/middleware/test_golden_middleware.rb
|
136
138
|
test/middleware/test_length_cutoff_middleware.rb
|
137
139
|
test/middleware/test_lerp_middleware.rb
|
data/bin/tracksperanto
CHANGED
@@ -19,16 +19,14 @@ require "open-uri"
|
|
19
19
|
require "timeout"
|
20
20
|
|
21
21
|
def version_check
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
puts "Please consider updating (run 'gem update tracksperanto')"
|
29
|
-
end
|
30
|
-
rescue OpenURI::HTTPError => e
|
22
|
+
begin
|
23
|
+
version_info = open("http://rubygems.org/api/v1/gems/tracksperanto.xml").string.scan(/<version>(.+)<\/version>/).to_s
|
24
|
+
int_available, int_present = [version_info, Tracksperanto::VERSION].map{|v| v.scan(/(\d+)/).to_s.to_i }
|
25
|
+
if int_available > int_present
|
26
|
+
puts "Your version of Tracksperanto is probably out of date (the current version is #{version_info}, but you have #{Tracksperanto::VERSION})."
|
27
|
+
puts "Please consider updating (run 'gem update tracksperanto')"
|
31
28
|
end
|
29
|
+
rescue Exception
|
32
30
|
end
|
33
31
|
end
|
34
32
|
|
@@ -73,6 +71,8 @@ op.on(" -xm", "--xshift X_IN_PIXELS", Float, "Move the points left or right", &m
|
|
73
71
|
op.on(" -ym", "--yshift Y_IN_PIXELS", Float, "Move the points up or down", &mw("Shift", :y_shift))
|
74
72
|
op.on(" -p", "--prefix PREFIX", String, "A prefix to prepend to tracker names in bulk", &mw("Prefix", :prefix))
|
75
73
|
op.on("--lerp", "Linearly interpolate missing keyframes", &mw("Lerp", :enabled, true))
|
74
|
+
op.on("--flip", "Flip the comp horizontally", &mw("Flip", :flip, true))
|
75
|
+
op.on("--flop", "Flop the comp vertically", &mw("Flip", :flop, true))
|
76
76
|
|
77
77
|
op.on("--version", "Show the version and exit") do |v|
|
78
78
|
puts "Tracksperanto v.#{Tracksperanto::VERSION} running on Ruby #{RUBY_VERSION} on #{RUBY_PLATFORM}"
|
data/lib/export/syntheyes.rb
CHANGED
@@ -43,9 +43,7 @@ class Tracksperanto::Export::SynthEyes < Tracksperanto::Export::Base
|
|
43
43
|
# OUTCOME_OUTASIGHT = 32
|
44
44
|
# We actually provide pregenerated status codes instead of that to get the desired outcome codes.
|
45
45
|
def get_outcome_code(frame)
|
46
|
-
outcome = if @last_registered_frame.nil?
|
47
|
-
STATUS_KF
|
48
|
-
elsif @last_registered_frame != (frame - 1)
|
46
|
+
outcome = if @last_registered_frame.nil? || (@last_registered_frame != (frame - 1))
|
49
47
|
STATUS_REENABLE
|
50
48
|
else
|
51
49
|
STATUS_STD
|
@@ -45,11 +45,11 @@ module Tracksperanto::ShakeGrammar
|
|
45
45
|
c = @io.read(1)
|
46
46
|
|
47
47
|
if @buf.length > MAX_BUFFER_SIZE # Wrong format and the buffer is filled up, bail
|
48
|
-
raise WrongInput, "
|
48
|
+
raise WrongInput, "Atom buffer overflow at #{MAX_BUFFER_SIZE} bytes, this is definitely not a Shake script"
|
49
49
|
end
|
50
50
|
|
51
51
|
if @stack_depth > MAX_STACK_DEPTH # Wrong format - parentheses overload
|
52
|
-
raise WrongInput, "Stack overflow at level
|
52
|
+
raise WrongInput, "Stack overflow at level #{MAX_STACK_DEPTH}, this is probably a LISP program uploaded by accident"
|
53
53
|
end
|
54
54
|
|
55
55
|
return consume_comment(c) if in_comment?
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# Flips the comp being exported horizontally or vertically
|
2
|
+
class Tracksperanto::Middleware::Flip < Tracksperanto::Middleware::Base
|
3
|
+
|
4
|
+
attr_accessor :flip, :flop
|
5
|
+
|
6
|
+
def start_export(w, h)
|
7
|
+
@w, @h = w, h
|
8
|
+
super
|
9
|
+
end
|
10
|
+
|
11
|
+
def export_point(frame, float_x, float_y, float_residual)
|
12
|
+
x = @flip ? (@w - float_x) : float_x
|
13
|
+
y = @flop ? (@h - float_y) : float_y
|
14
|
+
super(frame, x, y, float_residual)
|
15
|
+
end
|
16
|
+
end
|
data/lib/pipeline/base.rb
CHANGED
@@ -56,6 +56,9 @@ class Tracksperanto::Pipeline::Base
|
|
56
56
|
# Assign the parser
|
57
57
|
importer = initialize_importer_with_path_and_options(from_input_file_path, passed_options)
|
58
58
|
|
59
|
+
# Check for empty files
|
60
|
+
raise "This is an empty source file" if File.stat(from_input_file_path).size.zero?
|
61
|
+
|
59
62
|
# Open the file
|
60
63
|
read_data = File.open(from_input_file_path, "rb")
|
61
64
|
|
data/lib/tracksperanto.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Parabolic_1_from_top_left 0 -1.000000 -1.000000
|
1
|
+
Parabolic_1_from_top_left 0 -1.000000 -1.000000 15
|
2
2
|
Parabolic_1_from_top_left 1 -0.900000 -0.620000 7
|
3
3
|
Parabolic_1_from_top_left 2 -0.800000 -0.280000 7
|
4
4
|
Parabolic_1_from_top_left 3 -0.700000 0.020000 7
|
@@ -17,7 +17,7 @@ Parabolic_1_from_top_left 17 0.700000 0.020000 7
|
|
17
17
|
Parabolic_1_from_top_left 18 0.800000 -0.280000 7
|
18
18
|
Parabolic_1_from_top_left 19 0.900000 -0.620000 7
|
19
19
|
Parabolic_1_from_top_left 20 1.000000 -1.000000 7
|
20
|
-
Parabolic_2_from_bottom_right 0 1.000000 1.000000
|
20
|
+
Parabolic_2_from_bottom_right 0 1.000000 1.000000 15
|
21
21
|
Parabolic_2_from_bottom_right 1 0.900000 0.620000 7
|
22
22
|
Parabolic_2_from_bottom_right 2 0.800000 0.280000 7
|
23
23
|
Parabolic_2_from_bottom_right 3 0.700000 -0.020000 7
|
@@ -36,3 +36,4 @@ Parabolic_2_from_bottom_right 17 -0.700000 -0.020000 7
|
|
36
36
|
Parabolic_2_from_bottom_right 18 -0.800000 0.280000 7
|
37
37
|
Parabolic_2_from_bottom_right 19 -0.900000 0.620000 7
|
38
38
|
Parabolic_2_from_bottom_right 20 -1.000000 1.000000 7
|
39
|
+
SingleFrame 0 0.010417 -0.018519 15
|
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
3
|
2
2
|
Parabolic_1_from_top_left
|
3
3
|
0
|
4
4
|
19
|
@@ -43,3 +43,7 @@ Parabolic_2_from_bottom_right
|
|
43
43
|
19 191.999999999999943 388.799999999999841
|
44
44
|
20 95.999999999999972 205.199999999999932
|
45
45
|
21 0.000000000000000 0.000000000000000
|
46
|
+
SingleFrame
|
47
|
+
0
|
48
|
+
1
|
49
|
+
1 970.000000000000000 550.000000000000000
|
@@ -2,7 +2,7 @@ StabilizerFileVersion 5.0
|
|
2
2
|
CreationDate Thu Feb 18 17:22:12 2010
|
3
3
|
|
4
4
|
|
5
|
-
NbTrackers
|
5
|
+
NbTrackers 3
|
6
6
|
Selected 0
|
7
7
|
FrameWidth 1920
|
8
8
|
FrameHeight 1080
|
@@ -794,6 +794,140 @@ Channel tracker2/shift/y
|
|
794
794
|
RightSlope 2.400
|
795
795
|
End
|
796
796
|
End
|
797
|
+
Channel tracker3/track/x
|
798
|
+
Extrapolation constant
|
799
|
+
Value 960
|
800
|
+
Colour 50 50 50
|
801
|
+
End
|
802
|
+
Channel tracker3/track/y
|
803
|
+
Extrapolation constant
|
804
|
+
Value 540
|
805
|
+
Colour 50 50 50
|
806
|
+
End
|
807
|
+
Channel tracker3/track/width
|
808
|
+
Extrapolation linear
|
809
|
+
Value 15
|
810
|
+
Colour 50 50 50
|
811
|
+
End
|
812
|
+
Channel tracker3/track/height
|
813
|
+
Extrapolation linear
|
814
|
+
Value 15
|
815
|
+
Colour 50 50 50
|
816
|
+
End
|
817
|
+
Channel tracker3/ref/width
|
818
|
+
Extrapolation linear
|
819
|
+
Value 10
|
820
|
+
Colour 50 50 50
|
821
|
+
End
|
822
|
+
Channel tracker3/ref/height
|
823
|
+
Extrapolation linear
|
824
|
+
Value 10
|
825
|
+
Colour 50 50 50
|
826
|
+
End
|
827
|
+
Channel tracker3/ref/x
|
828
|
+
Extrapolation constant
|
829
|
+
Value 970.000
|
830
|
+
Colour 50 50 50
|
831
|
+
KeyVersion 1
|
832
|
+
Size 1
|
833
|
+
Key 0
|
834
|
+
Frame 1
|
835
|
+
Value 970.000
|
836
|
+
Interpolation constant
|
837
|
+
LeftSlope 2.400
|
838
|
+
RightSlope 2.400
|
839
|
+
End
|
840
|
+
End
|
841
|
+
Channel tracker3/ref/y
|
842
|
+
Extrapolation constant
|
843
|
+
Value 550.000
|
844
|
+
Colour 50 50 50
|
845
|
+
KeyVersion 1
|
846
|
+
Size 1
|
847
|
+
Key 0
|
848
|
+
Frame 1
|
849
|
+
Value 550.000
|
850
|
+
Interpolation constant
|
851
|
+
LeftSlope 2.400
|
852
|
+
RightSlope 2.400
|
853
|
+
End
|
854
|
+
End
|
855
|
+
Channel tracker3/ref/dx
|
856
|
+
Extrapolation constant
|
857
|
+
Value 0
|
858
|
+
Colour 50 50 50
|
859
|
+
Size 2
|
860
|
+
KeyVersion 1
|
861
|
+
Key 0
|
862
|
+
Frame 0
|
863
|
+
Value 0
|
864
|
+
ValueLock yes
|
865
|
+
DeleteLock yes
|
866
|
+
Interpolation constant
|
867
|
+
End
|
868
|
+
Key 1
|
869
|
+
Frame 1
|
870
|
+
Value 0
|
871
|
+
ValueLock yes
|
872
|
+
DeleteLock yes
|
873
|
+
Interpolation constant
|
874
|
+
End
|
875
|
+
End
|
876
|
+
Channel tracker3/ref/dy
|
877
|
+
Extrapolation constant
|
878
|
+
Value 0
|
879
|
+
Colour 50 50 50
|
880
|
+
Size 2
|
881
|
+
KeyVersion 1
|
882
|
+
Key 0
|
883
|
+
Frame 0
|
884
|
+
Value 0
|
885
|
+
ValueLock yes
|
886
|
+
DeleteLock yes
|
887
|
+
Interpolation constant
|
888
|
+
End
|
889
|
+
Key 1
|
890
|
+
Frame 1
|
891
|
+
Value 0
|
892
|
+
ValueLock yes
|
893
|
+
DeleteLock yes
|
894
|
+
Interpolation constant
|
895
|
+
End
|
896
|
+
End
|
897
|
+
Channel tracker3/offset/x
|
898
|
+
Extrapolation constant
|
899
|
+
Value 0
|
900
|
+
End
|
901
|
+
Channel tracker3/offset/y
|
902
|
+
Extrapolation constant
|
903
|
+
Value 0
|
904
|
+
End
|
905
|
+
Channel tracker3/shift/x
|
906
|
+
Extrapolation constant
|
907
|
+
Value 0
|
908
|
+
KeyVersion 1
|
909
|
+
Size 1
|
910
|
+
Key 0
|
911
|
+
Frame 1
|
912
|
+
Value 0
|
913
|
+
Interpolation linear
|
914
|
+
LeftSlope 2.400
|
915
|
+
RightSlope 2.400
|
916
|
+
End
|
917
|
+
End
|
918
|
+
Channel tracker3/shift/y
|
919
|
+
Extrapolation constant
|
920
|
+
Value 0
|
921
|
+
KeyVersion 1
|
922
|
+
Size 1
|
923
|
+
Key 0
|
924
|
+
Frame 1
|
925
|
+
Value 0
|
926
|
+
Interpolation linear
|
927
|
+
LeftSlope 2.400
|
928
|
+
RightSlope 2.400
|
929
|
+
End
|
930
|
+
End
|
797
931
|
ChannelEnd
|
798
932
|
Tracker 0
|
799
933
|
Active yes
|
@@ -815,3 +949,13 @@ Tracker 1
|
|
815
949
|
FixedX no
|
816
950
|
FixedY no
|
817
951
|
Tolerance 100
|
952
|
+
Tracker 2
|
953
|
+
Active yes
|
954
|
+
Colour
|
955
|
+
Red 0
|
956
|
+
Green 100
|
957
|
+
Blue 0
|
958
|
+
FixedRef yes
|
959
|
+
FixedX no
|
960
|
+
FixedY no
|
961
|
+
Tolerance 100
|
data/test/helper.rb
CHANGED
@@ -3,6 +3,7 @@ require 'test/unit'
|
|
3
3
|
require 'rubygems'
|
4
4
|
require 'flexmock'
|
5
5
|
require 'flexmock/test_unit'
|
6
|
+
require 'fileutils'
|
6
7
|
|
7
8
|
# This module creates ideal parabolic tracks for testing exporters. The two trackers
|
8
9
|
# will start at opposite corners of the image and traverse two parabolic curves, touching
|
@@ -64,6 +65,10 @@ module ParabolicTracks
|
|
64
65
|
end
|
65
66
|
end
|
66
67
|
|
68
|
+
SINGLE_FRAME_TRACK = Tracksperanto::Tracker.new(:name => "SingleFrame") do | t |
|
69
|
+
t.keyframe! :frame => 0, :abs_x => (1920/2) + 10, :abs_y => (1080/2)+10, :residual => 0
|
70
|
+
end
|
71
|
+
|
67
72
|
def create_reference_output(exporter_klass, ref_path)
|
68
73
|
File.open(ref_path, "w") do | io |
|
69
74
|
x = exporter_klass.new(io)
|
@@ -73,6 +78,13 @@ module ParabolicTracks
|
|
73
78
|
end
|
74
79
|
|
75
80
|
def ensure_same_output(exporter_klass, reference_path, message = "The line should be identical")
|
81
|
+
if ENV['OVERWRITE']
|
82
|
+
File.open(reference_path, "w") do | out |
|
83
|
+
x = exporter_klass.new(out)
|
84
|
+
export_parabolics_with(x)
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
76
88
|
io = StringIO.new
|
77
89
|
x = exporter_klass.new(io)
|
78
90
|
yield(x) if block_given?
|
@@ -91,7 +103,7 @@ module ParabolicTracks
|
|
91
103
|
|
92
104
|
def export_parabolics_with(exporter)
|
93
105
|
exporter.start_export(1920, 1080)
|
94
|
-
[FIRST_TRACK, SECOND_TRACK].each do | t |
|
106
|
+
[FIRST_TRACK, SECOND_TRACK, SINGLE_FRAME_TRACK].each do | t |
|
95
107
|
exporter.start_tracker_segment(t.name)
|
96
108
|
t.keyframes.each do | kf |
|
97
109
|
exporter.export_point(kf.frame, kf.abs_x, kf.abs_y, kf.residual)
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../helper'
|
2
|
+
|
3
|
+
class ShiftMiddlewareTest < Test::Unit::TestCase
|
4
|
+
def test_shift_supports_hash_init
|
5
|
+
receiver = flexmock
|
6
|
+
|
7
|
+
m = Tracksperanto::Middleware::Flip.new(receiver)
|
8
|
+
assert !m.flip
|
9
|
+
assert !m.flop
|
10
|
+
|
11
|
+
m = Tracksperanto::Middleware::Flip.new(receiver, :flip => true)
|
12
|
+
assert m.flip
|
13
|
+
|
14
|
+
m = Tracksperanto::Middleware::Flip.new(receiver, :flop => true)
|
15
|
+
assert m.flop
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_export_flip_and_flop
|
19
|
+
receiver = flexmock(:exporter)
|
20
|
+
receiver.should_receive(:start_export).once.with(110, 120)
|
21
|
+
receiver.should_receive(:export_point).once.with(1, 100, 95, 0)
|
22
|
+
receiver.should_receive(:export_point).once.with(1, 10, 95, 0)
|
23
|
+
|
24
|
+
m = Tracksperanto::Middleware::Flip.new(receiver, :flip => true)
|
25
|
+
m.start_export(110, 120)
|
26
|
+
m.export_point(1, 10, 95, 0)
|
27
|
+
m.flip = false
|
28
|
+
m.export_point(1, 10, 95, 0)
|
29
|
+
end
|
30
|
+
end
|
data/test/test_cli.rb
CHANGED
@@ -5,7 +5,7 @@ class CliTest < Test::Unit::TestCase
|
|
5
5
|
BIN_P = File.expand_path(File.dirname(__FILE__) + "/../bin/tracksperanto")
|
6
6
|
|
7
7
|
def setup
|
8
|
-
Dir.mkdir(TEMP_DIR)
|
8
|
+
Dir.mkdir(TEMP_DIR) unless File.exist?(TEMP_DIR)
|
9
9
|
FileUtils.cp(File.dirname(__FILE__) + "/import/samples/flame_stabilizer/fromCombustion_fromMidClip_wSnap.stabilizer", TEMP_DIR + "/flm.stabilizer")
|
10
10
|
end
|
11
11
|
|
data/test/test_pipeline.rb
CHANGED
@@ -43,6 +43,13 @@ class PipelineTest < Test::Unit::TestCase
|
|
43
43
|
assert_equal 9, pipeline.converted_keyframes, "Should report conversion of 9 keyframes"
|
44
44
|
end
|
45
45
|
|
46
|
+
def test_run_crashes_with_empty_file
|
47
|
+
empty_file_path = "./input_empty.stabilizer"
|
48
|
+
f = File.open(empty_file_path, "w"){|f| f.write('') }
|
49
|
+
pipeline = Tracksperanto::Pipeline::Base.new
|
50
|
+
assert_raise(RuntimeError) { pipeline.run(empty_file_path) }
|
51
|
+
end
|
52
|
+
|
46
53
|
def test_middleware_initialization_from_tuples
|
47
54
|
create_stabilizer_file
|
48
55
|
|
metadata
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tracksperanto
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 35
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 9
|
9
|
+
- 8
|
10
|
+
version: 1.9.8
|
5
11
|
platform: ruby
|
6
12
|
authors:
|
7
13
|
- Julik Tarkhanov
|
@@ -9,39 +15,53 @@ autorequire:
|
|
9
15
|
bindir: bin
|
10
16
|
cert_chain: []
|
11
17
|
|
12
|
-
date: 2010-
|
18
|
+
date: 2010-08-11 00:00:00 +02:00
|
13
19
|
default_executable:
|
14
20
|
dependencies:
|
15
21
|
- !ruby/object:Gem::Dependency
|
16
22
|
name: progressbar
|
17
|
-
|
18
|
-
|
19
|
-
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
20
26
|
requirements:
|
21
27
|
- - ">="
|
22
28
|
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
30
|
+
segments:
|
31
|
+
- 0
|
23
32
|
version: "0"
|
24
|
-
|
33
|
+
type: :runtime
|
34
|
+
version_requirements: *id001
|
25
35
|
- !ruby/object:Gem::Dependency
|
26
36
|
name: flexmock
|
27
|
-
|
28
|
-
|
29
|
-
|
37
|
+
prerelease: false
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
30
40
|
requirements:
|
31
41
|
- - ">="
|
32
42
|
- !ruby/object:Gem::Version
|
43
|
+
hash: 3
|
44
|
+
segments:
|
45
|
+
- 0
|
33
46
|
version: "0"
|
34
|
-
|
47
|
+
type: :development
|
48
|
+
version_requirements: *id002
|
35
49
|
- !ruby/object:Gem::Dependency
|
36
50
|
name: hoe
|
37
|
-
|
38
|
-
|
39
|
-
|
51
|
+
prerelease: false
|
52
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
40
54
|
requirements:
|
41
55
|
- - ">="
|
42
56
|
- !ruby/object:Gem::Version
|
57
|
+
hash: 23
|
58
|
+
segments:
|
59
|
+
- 2
|
60
|
+
- 6
|
61
|
+
- 0
|
43
62
|
version: 2.6.0
|
44
|
-
|
63
|
+
type: :development
|
64
|
+
version_requirements: *id003
|
45
65
|
description: Tracksperanto is a universal 2D-track translator between many apps.
|
46
66
|
email:
|
47
67
|
- me@julik.nl
|
@@ -89,6 +109,7 @@ files:
|
|
89
109
|
- lib/import/shake_text.rb
|
90
110
|
- lib/import/syntheyes.rb
|
91
111
|
- lib/middleware/base.rb
|
112
|
+
- lib/middleware/flip.rb
|
92
113
|
- lib/middleware/golden.rb
|
93
114
|
- lib/middleware/length_cutoff.rb
|
94
115
|
- lib/middleware/lerp.rb
|
@@ -161,6 +182,7 @@ files:
|
|
161
182
|
- test/import/samples/shake_script/four_tracks_in_one_matchmove.shk
|
162
183
|
- test/import/samples/shake_script/four_tracks_in_one_stabilizer.shk
|
163
184
|
- test/import/samples/shake_script/from_matchmover.shk
|
185
|
+
- test/import/samples/shake_script/oldTrackerNode.shk
|
164
186
|
- test/import/samples/shake_script/shake_script_from_boujou.shk
|
165
187
|
- test/import/samples/shake_script/shake_tracker_nodes.shk
|
166
188
|
- test/import/samples/shake_script/shake_tracker_with_no_anim.shk
|
@@ -168,7 +190,6 @@ files:
|
|
168
190
|
- test/import/samples/shake_script/stabilize_nodes_with_hermite.shk
|
169
191
|
- test/import/samples/shake_script/three_tracks_in_one_stabilizer.shk
|
170
192
|
- test/import/samples/shake_script/two_tracks_in_one_tracker.shk
|
171
|
-
- test/import/samples/shake_script/oldTrackerNode.shk
|
172
193
|
- test/import/samples/shake_text/one_shake_tracker.txt
|
173
194
|
- test/import/samples/shake_text/one_shake_tracker_from_first.txt
|
174
195
|
- test/import/samples/shake_text/two_shake_trackers.txt
|
@@ -189,6 +210,7 @@ files:
|
|
189
210
|
- test/import/test_shake_script_import.rb
|
190
211
|
- test/import/test_shake_text_import.rb
|
191
212
|
- test/import/test_syntheyes_import.rb
|
213
|
+
- test/middleware/test_flip_middleware.rb
|
192
214
|
- test/middleware/test_golden_middleware.rb
|
193
215
|
- test/middleware/test_length_cutoff_middleware.rb
|
194
216
|
- test/middleware/test_lerp_middleware.rb
|
@@ -209,6 +231,7 @@ files:
|
|
209
231
|
- test/test_simple_export.rb
|
210
232
|
- test/test_tracker.rb
|
211
233
|
- test/test_tracksperanto.rb
|
234
|
+
- test/middleware/test_lens_distort_middleware.rb
|
212
235
|
has_rdoc: true
|
213
236
|
homepage: http://guerilla-di.org/tracksperanto
|
214
237
|
licenses: []
|
@@ -220,21 +243,27 @@ rdoc_options:
|
|
220
243
|
require_paths:
|
221
244
|
- lib
|
222
245
|
required_ruby_version: !ruby/object:Gem::Requirement
|
246
|
+
none: false
|
223
247
|
requirements:
|
224
248
|
- - ">="
|
225
249
|
- !ruby/object:Gem::Version
|
250
|
+
hash: 3
|
251
|
+
segments:
|
252
|
+
- 0
|
226
253
|
version: "0"
|
227
|
-
version:
|
228
254
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
255
|
+
none: false
|
229
256
|
requirements:
|
230
257
|
- - ">="
|
231
258
|
- !ruby/object:Gem::Version
|
259
|
+
hash: 3
|
260
|
+
segments:
|
261
|
+
- 0
|
232
262
|
version: "0"
|
233
|
-
version:
|
234
263
|
requirements: []
|
235
264
|
|
236
265
|
rubyforge_project: guerilla-di
|
237
|
-
rubygems_version: 1.3.
|
266
|
+
rubygems_version: 1.3.7
|
238
267
|
signing_key:
|
239
268
|
specification_version: 3
|
240
269
|
summary: Tracksperanto is a universal 2D-track translator between many apps.
|
@@ -264,6 +293,7 @@ test_files:
|
|
264
293
|
- test/import/test_shake_script_import.rb
|
265
294
|
- test/import/test_shake_text_import.rb
|
266
295
|
- test/import/test_syntheyes_import.rb
|
296
|
+
- test/middleware/test_flip_middleware.rb
|
267
297
|
- test/middleware/test_golden_middleware.rb
|
268
298
|
- test/middleware/test_length_cutoff_middleware.rb
|
269
299
|
- test/middleware/test_lens_distort_middleware.rb
|