tracksperanto 1.1.1 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.DS_Store +0 -0
- data/History.txt +11 -0
- data/Manifest.txt +64 -20
- data/README.txt +82 -30
- data/Rakefile +1 -0
- data/bin/tracksperanto +21 -14
- data/lib/export/base.rb +16 -6
- data/lib/export/match_mover.rb +40 -0
- data/lib/export/nuke_script.rb +78 -0
- data/lib/export/pftrack.rb +14 -14
- data/lib/export/shake_text.rb +7 -8
- data/lib/export/syntheyes.rb +9 -5
- data/lib/import/base.rb +45 -12
- data/lib/import/flame_stabilizer.rb +17 -32
- data/lib/import/match_mover.rb +65 -0
- data/lib/import/nuke_script.rb +96 -0
- data/lib/import/pftrack.rb +9 -2
- data/lib/import/shake_grammar/catcher.rb +56 -0
- data/lib/import/shake_grammar/lexer.rb +95 -0
- data/lib/import/shake_script.rb +189 -103
- data/lib/import/shake_text.rb +5 -3
- data/lib/import/syntheyes.rb +9 -2
- data/lib/middleware/base.rb +6 -1
- data/lib/middleware/golden.rb +7 -0
- data/lib/middleware/reformat.rb +10 -3
- data/lib/middleware/scaler.rb +14 -4
- data/lib/middleware/shift.rb +10 -0
- data/lib/middleware/slipper.rb +3 -0
- data/lib/pipeline/base.rb +111 -37
- data/lib/tracksperanto/block_init.rb +7 -0
- data/lib/tracksperanto/casts.rb +31 -0
- data/lib/tracksperanto/format_detector.rb +35 -0
- data/lib/tracksperanto/keyframe.rb +31 -0
- data/lib/tracksperanto/safety.rb +20 -0
- data/lib/tracksperanto/tracker.rb +38 -0
- data/lib/tracksperanto/zip_tuples.rb +20 -0
- data/lib/tracksperanto.rb +13 -100
- data/test/.DS_Store +0 -0
- data/test/export/.DS_Store +0 -0
- data/test/export/README_EXPORT_TESTS.txt +15 -0
- data/test/export/samples/ref_NukeScript.nk +25 -0
- data/test/export/samples/ref_NukeScript.nk.autosave +77 -0
- data/test/export/samples/ref_PFTrack.2dt +50 -0
- data/test/export/samples/ref_ShakeText.txt +48 -0
- data/test/export/samples/ref_Syntheyes.txt +42 -0
- data/test/export/samples/ref_matchmover.rz2 +52 -0
- data/test/export/test_match_mover_export.rb +16 -0
- data/test/export/test_mux.rb +23 -0
- data/test/export/test_nuke_export.rb +22 -0
- data/test/export/test_pftrack_export.rb +19 -0
- data/test/export/test_shake_export.rb +15 -0
- data/test/export/test_syntheyes_export.rb +15 -0
- data/test/helper.rb +85 -2
- data/test/import/.DS_Store +0 -0
- data/test/{samples → import/samples}/.DS_Store +0 -0
- data/test/{samples → import/samples}/flyover2DP_syntheyes.txt +0 -0
- data/test/import/samples/four_tracks_in_one_matchmove.shk +323 -0
- data/test/import/samples/four_tracks_in_one_stabilizer.shk +321 -0
- data/test/{samples → import/samples}/fromCombustion_fromMidClip_wSnap.stabilizer +0 -0
- data/test/{samples → import/samples}/hugeFlameSetup.stabilizer +0 -0
- data/test/import/samples/kipPointsMatchmover.rz2 +523 -0
- data/test/{samples → import/samples}/megaTrack.action.3dtrack.stabilizer +0 -0
- data/test/{samples → import/samples}/one_shake_tracker.txt +0 -0
- data/test/{samples → import/samples}/one_shake_tracker_from_first.txt +0 -0
- data/test/import/samples/one_tracker_with_break.nk +71 -0
- data/test/import/samples/one_tracker_with_break_in_grp.nk +91 -0
- data/test/{samples → import/samples}/shake_tracker_nodes.shk +0 -0
- data/test/{samples → import/samples}/shake_tracker_nodes_to_syntheyes.txt +0 -0
- data/test/{samples → import/samples}/sourcefile_pftrack.2dt +0 -0
- data/test/{samples → import/samples}/three_tracks_in_one_stabilizer.shk +0 -0
- data/test/{samples → import/samples}/two_shake_trackers.txt +0 -0
- data/test/{samples → import/samples}/two_tracks_in_one_tracker.shk +0 -0
- data/test/{test_flame_import.rb → import/test_flame_import.rb} +15 -9
- data/test/import/test_match_mover_import.rb +44 -0
- data/test/import/test_nuke_import.rb +63 -0
- data/test/{test_pftrack_import.rb → import/test_pftrack_import.rb} +10 -4
- data/test/import/test_shake_catcher.rb +72 -0
- data/test/import/test_shake_lexer.rb +95 -0
- data/test/import/test_shake_script_import.rb +75 -0
- data/test/{test_shake_text_import.rb → import/test_shake_text_import.rb} +10 -3
- data/test/{test_syntheyes_import.rb → import/test_syntheyes_import.rb} +8 -3
- data/test/middleware/test_golden_middleware.rb +32 -0
- data/test/middleware/test_reformat_middleware.rb +35 -0
- data/test/middleware/test_scaler_middleware.rb +51 -0
- data/test/middleware/test_shift_middleware.rb +26 -0
- data/test/middleware/test_slip_middleware.rb +31 -0
- data/test/pipeline/test_pipeline_base.rb +14 -0
- data/test/test_format_detector.rb +39 -0
- data/test/test_tracker.rb +48 -0
- data/tracksperanto.gemspec +9 -7
- metadata +101 -30
- data/lib/middleware/close.rb +0 -6
- data/test/test_shake_export.rb +0 -58
- data/test/test_shake_script_import.rb +0 -50
@@ -0,0 +1,51 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../helper'
|
2
|
+
|
3
|
+
class ScalerMiddlewareTest < Test::Unit::TestCase
|
4
|
+
def test_default_factor_set_to_one
|
5
|
+
receiver = flexmock
|
6
|
+
m = Tracksperanto::Middleware::Scaler.new(receiver)
|
7
|
+
assert_equal 1.0, m.x_factor
|
8
|
+
assert_equal 1.0, m.y_factor
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_scaler_supports_hash_init
|
12
|
+
receiver = flexmock
|
13
|
+
m = Tracksperanto::Middleware::Scaler.new(receiver, :x_factor => 1.2)
|
14
|
+
assert_equal 1.2, m.x_factor
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_scaler_bypasses_methods
|
18
|
+
receiver = flexmock
|
19
|
+
receiver.should_receive(:start_export).once.with(100,180)
|
20
|
+
receiver.should_receive(:start_tracker_segment).once.with("Tracker")
|
21
|
+
receiver.should_receive(:export_point).once.with(1, 120, 90, 0)
|
22
|
+
receiver.should_receive(:end_tracker_segment).once
|
23
|
+
receiver.should_receive(:end_export).once
|
24
|
+
|
25
|
+
m = Tracksperanto::Middleware::Scaler.new(receiver, :x_factor => 2, :y_factor => 3)
|
26
|
+
m.start_export(50, 60)
|
27
|
+
m.start_tracker_segment("Tracker")
|
28
|
+
m.export_point(1, 60, 30, 0)
|
29
|
+
m.end_tracker_segment
|
30
|
+
m.end_export
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_scaler_properly_affects_residual
|
34
|
+
factor = Math.sqrt( (1.5 ** 2) + (1.4 ** 2))
|
35
|
+
|
36
|
+
receiver = flexmock
|
37
|
+
receiver.should_receive(:start_export).once.with((50 * 1.5).to_i, (60 * 1.4).to_i)
|
38
|
+
|
39
|
+
receiver.should_receive(:start_tracker_segment).once.with("Tracker")
|
40
|
+
receiver.should_receive(:export_point).once.with(1, 90, 42.0, 0.2 * factor)
|
41
|
+
receiver.should_receive(:end_tracker_segment).once
|
42
|
+
receiver.should_receive(:end_export).once
|
43
|
+
|
44
|
+
m = Tracksperanto::Middleware::Scaler.new(receiver, :x_factor => 1.5, :y_factor => 1.4)
|
45
|
+
m.start_export(50, 60)
|
46
|
+
m.start_tracker_segment("Tracker")
|
47
|
+
m.export_point(1, 60, 30, 0.2)
|
48
|
+
m.end_tracker_segment
|
49
|
+
m.end_export
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../helper'
|
2
|
+
|
3
|
+
class ShiftMiddlewareTest < Test::Unit::TestCase
|
4
|
+
def test_shift_supports_hash_init
|
5
|
+
receiver = flexmock
|
6
|
+
m = Tracksperanto::Middleware::Shift.new(receiver, :x_shift => 1.2)
|
7
|
+
assert_equal 1.2, m.x_shift
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_shift_bypasses_methods
|
11
|
+
receiver = flexmock
|
12
|
+
receiver.should_receive(:start_export).once.with(50, 60)
|
13
|
+
receiver.should_receive(:start_tracker_segment).once.with("Tracker")
|
14
|
+
receiver.should_receive(:export_point).once.with(1, 123, 95, 0)
|
15
|
+
receiver.should_receive(:end_tracker_segment).once
|
16
|
+
receiver.should_receive(:end_export).once
|
17
|
+
|
18
|
+
m = Tracksperanto::Middleware::Shift.new(receiver, :x_shift => 63, :y_shift => 65)
|
19
|
+
m.start_export(50, 60)
|
20
|
+
m.start_tracker_segment("Tracker")
|
21
|
+
m.export_point(1, 60, 30, 0)
|
22
|
+
m.end_tracker_segment
|
23
|
+
m.end_export
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../helper'
|
2
|
+
|
3
|
+
class SlipMiddlewareTest < Test::Unit::TestCase
|
4
|
+
def test_default_slip_set_to_zero
|
5
|
+
receiver = flexmock
|
6
|
+
m = Tracksperanto::Middleware::Slipper.new(receiver)
|
7
|
+
assert_equal 0, m.slip
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_slip_supports_hash_init
|
11
|
+
receiver = flexmock
|
12
|
+
m = Tracksperanto::Middleware::Slipper.new(receiver, :slip => -1)
|
13
|
+
assert_equal -1, m.slip
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_slipper_bypasses_methods
|
17
|
+
receiver = flexmock
|
18
|
+
receiver.should_receive(:start_export).once.with(120,120)
|
19
|
+
receiver.should_receive(:start_tracker_segment).once.with("Tracker")
|
20
|
+
receiver.should_receive(:export_point).once.with(32, 100, 100, 0)
|
21
|
+
receiver.should_receive(:end_tracker_segment).once
|
22
|
+
receiver.should_receive(:end_export).once
|
23
|
+
|
24
|
+
m = Tracksperanto::Middleware::Slipper.new(receiver, :slip => 32)
|
25
|
+
m.start_export(120, 120)
|
26
|
+
m.start_tracker_segment("Tracker")
|
27
|
+
m.export_point(0, 100, 100, 0)
|
28
|
+
m.end_tracker_segment
|
29
|
+
m.end_export
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../helper'
|
2
|
+
|
3
|
+
class PipelineTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def test_pipeline_responds_to_everything_needed
|
6
|
+
p = Tracksperanto::Pipeline::Base.new
|
7
|
+
assert_respond_to p, :exporters
|
8
|
+
assert_respond_to p, :exporters=
|
9
|
+
assert_respond_to p, :progress_block
|
10
|
+
assert_respond_to p, :progress_block=
|
11
|
+
end
|
12
|
+
|
13
|
+
# TODO - write these oh boy
|
14
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/helper'
|
2
|
+
|
3
|
+
class FormatDetectorTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def test_match_unknown
|
6
|
+
file = "/tmp/unknown.someext"
|
7
|
+
d = Tracksperanto::FormatDetector.new(file)
|
8
|
+
|
9
|
+
assert d.frozen?
|
10
|
+
assert !d.match?
|
11
|
+
assert !d.auto_size?
|
12
|
+
assert_nil d.importer_klass
|
13
|
+
assert_equal "Unknown format", d.human_importer_name
|
14
|
+
end
|
15
|
+
|
16
|
+
|
17
|
+
def test_match_nuke
|
18
|
+
file = "C:\\WINDOZE_SHIT\\SUPERDUPER.NK"
|
19
|
+
d = Tracksperanto::FormatDetector.new(file)
|
20
|
+
assert d.frozen?
|
21
|
+
|
22
|
+
assert d.match?
|
23
|
+
assert !d.auto_size?
|
24
|
+
assert_equal Tracksperanto::Import::NukeScript, d.importer_klass
|
25
|
+
assert_equal "Nuke .nk script file", d.human_importer_name
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_match_flame
|
29
|
+
file = "/usr/discreet/project/StupidCommercial/stabilizer/uno.stabilizer"
|
30
|
+
d = Tracksperanto::FormatDetector.new(file)
|
31
|
+
assert d.frozen?
|
32
|
+
|
33
|
+
assert d.match?
|
34
|
+
assert d.auto_size?
|
35
|
+
assert_equal Tracksperanto::Import::FlameStabilizer, d.importer_klass
|
36
|
+
assert_equal "Flame .stabilizer file", d.human_importer_name
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/helper'
|
2
|
+
|
3
|
+
class TrackerTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def test_supports_block_init
|
6
|
+
t = Tracksperanto::Tracker.new do |t|
|
7
|
+
t.name = 'Foo'
|
8
|
+
end
|
9
|
+
assert_equal "Foo", t.name
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_responds_to_needed_methods
|
13
|
+
t = Tracksperanto::Tracker.new
|
14
|
+
assert_respond_to t, :name
|
15
|
+
assert_respond_to t, :each
|
16
|
+
assert_respond_to t, :keyframes
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_supports_hash_init
|
20
|
+
assert_equal "Foo", Tracksperanto::Tracker.new(:name => "Foo").name
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_supports_hash_init_with_keyframes
|
24
|
+
assert_equal [1,2], Tracksperanto::Tracker.new(:keyframes => [1,2]).keyframes
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_supports_array_methods
|
28
|
+
t = Tracksperanto::Tracker.new(:keyframes => [1,2])
|
29
|
+
assert_equal [1,2], t.to_a
|
30
|
+
assert_equal 2, t.length
|
31
|
+
t.push(3)
|
32
|
+
assert_equal 3, t.length
|
33
|
+
assert_equal [1,2,3], t.to_a
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_inspect
|
37
|
+
t = Tracksperanto::Tracker.new(:name => "FooTracker")
|
38
|
+
assert_equal '<T "FooTracker" with 0 keyframes>', t.inspect
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_enumerates_keyframe_values_and_returns_length
|
42
|
+
t = Tracksperanto::Tracker.new(:keyframes => [:a, :b])
|
43
|
+
assert_equal [:a, :b], t.map{|e| e}
|
44
|
+
assert_equal 2, t.length
|
45
|
+
assert_equal :a, t[0]
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
data/tracksperanto.gemspec
CHANGED
@@ -1,38 +1,40 @@
|
|
1
|
-
(in /Code/apps/tracksperanto)
|
2
1
|
# -*- encoding: utf-8 -*-
|
3
2
|
|
4
3
|
Gem::Specification.new do |s|
|
5
4
|
s.name = %q{tracksperanto}
|
6
|
-
s.version = "1.
|
5
|
+
s.version = "1.2.0"
|
7
6
|
|
8
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
9
8
|
s.authors = ["Julik Tarkhanov"]
|
10
|
-
s.date = %q{2009-09-
|
9
|
+
s.date = %q{2009-09-21}
|
11
10
|
s.default_executable = %q{tracksperanto}
|
12
|
-
s.description = %q{Tracksperanto is a universal 2D-track translator between many apps.
|
11
|
+
s.description = %q{Tracksperanto is a universal 2D-track translator between many apps.}
|
13
12
|
s.email = ["me@julik.nl"]
|
14
13
|
s.executables = ["tracksperanto"]
|
15
14
|
s.extra_rdoc_files = ["History.txt", "Manifest.txt", "README.txt"]
|
16
|
-
s.files = [".DS_Store", "History.txt", "Manifest.txt", "README.txt", "Rakefile", "bin/tracksperanto", "lib/.DS_Store", "lib/export/base.rb", "lib/export/mux.rb", "lib/export/pftrack.rb", "lib/export/shake_text.rb", "lib/export/syntheyes.rb", "lib/import/base.rb", "lib/import/flame_stabilizer.rb", "lib/import/pftrack.rb", "lib/import/shake_script.rb", "lib/import/shake_text.rb", "lib/import/syntheyes.rb", "lib/middleware/base.rb", "lib/middleware/
|
15
|
+
s.files = [".DS_Store", "History.txt", "Manifest.txt", "README.txt", "Rakefile", "bin/tracksperanto", "lib/.DS_Store", "lib/export/base.rb", "lib/export/match_mover.rb", "lib/export/mux.rb", "lib/export/nuke_script.rb", "lib/export/pftrack.rb", "lib/export/shake_text.rb", "lib/export/syntheyes.rb", "lib/import/base.rb", "lib/import/flame_stabilizer.rb", "lib/import/match_mover.rb", "lib/import/nuke_script.rb", "lib/import/pftrack.rb", "lib/import/shake_grammar/catcher.rb", "lib/import/shake_grammar/lexer.rb", "lib/import/shake_script.rb", "lib/import/shake_text.rb", "lib/import/syntheyes.rb", "lib/middleware/base.rb", "lib/middleware/golden.rb", "lib/middleware/reformat.rb", "lib/middleware/scaler.rb", "lib/middleware/shift.rb", "lib/middleware/slipper.rb", "lib/pipeline/base.rb", "lib/tracksperanto.rb", "lib/tracksperanto/block_init.rb", "lib/tracksperanto/casts.rb", "lib/tracksperanto/format_detector.rb", "lib/tracksperanto/keyframe.rb", "lib/tracksperanto/safety.rb", "lib/tracksperanto/tracker.rb", "lib/tracksperanto/zip_tuples.rb", "test/.DS_Store", "test/export/.DS_Store", "test/export/README_EXPORT_TESTS.txt", "test/export/samples/ref_NukeScript.nk", "test/export/samples/ref_NukeScript.nk.autosave", "test/export/samples/ref_PFTrack.2dt", "test/export/samples/ref_ShakeText.txt", "test/export/samples/ref_Syntheyes.txt", "test/export/samples/ref_matchmover.rz2", "test/export/test_match_mover_export.rb", "test/export/test_mux.rb", "test/export/test_nuke_export.rb", "test/export/test_pftrack_export.rb", "test/export/test_shake_export.rb", "test/export/test_syntheyes_export.rb", "test/helper.rb", "test/import/.DS_Store", "test/import/samples/.DS_Store", "test/import/samples/flyover2DP_syntheyes.txt", "test/import/samples/four_tracks_in_one_matchmove.shk", "test/import/samples/four_tracks_in_one_stabilizer.shk", "test/import/samples/fromCombustion_fromMidClip_wSnap.stabilizer", "test/import/samples/hugeFlameSetup.stabilizer", "test/import/samples/kipPointsMatchmover.rz2", "test/import/samples/megaTrack.action.3dtrack.stabilizer", "test/import/samples/one_shake_tracker.txt", "test/import/samples/one_shake_tracker_from_first.txt", "test/import/samples/one_tracker_with_break.nk", "test/import/samples/one_tracker_with_break_in_grp.nk", "test/import/samples/shake_tracker_nodes.shk", "test/import/samples/shake_tracker_nodes_to_syntheyes.txt", "test/import/samples/sourcefile_pftrack.2dt", "test/import/samples/three_tracks_in_one_stabilizer.shk", "test/import/samples/two_shake_trackers.txt", "test/import/samples/two_tracks_in_one_tracker.shk", "test/import/test_flame_import.rb", "test/import/test_match_mover_import.rb", "test/import/test_nuke_import.rb", "test/import/test_pftrack_import.rb", "test/import/test_shake_catcher.rb", "test/import/test_shake_lexer.rb", "test/import/test_shake_script_import.rb", "test/import/test_shake_text_import.rb", "test/import/test_syntheyes_import.rb", "test/middleware/test_golden_middleware.rb", "test/middleware/test_reformat_middleware.rb", "test/middleware/test_scaler_middleware.rb", "test/middleware/test_shift_middleware.rb", "test/middleware/test_slip_middleware.rb", "test/pipeline/test_pipeline_base.rb", "test/test_format_detector.rb", "test/test_keyframe.rb", "test/test_tracker.rb", "tracksperanto.gemspec"]
|
17
16
|
s.has_rdoc = true
|
18
17
|
s.homepage = %q{http://guerilla-di.org/tracksperanto}
|
19
18
|
s.rdoc_options = ["--main", "README.txt"]
|
20
19
|
s.require_paths = ["lib"]
|
21
20
|
s.rubyforge_project = %q{guerilla-di}
|
22
21
|
s.rubygems_version = %q{1.3.1}
|
23
|
-
s.summary = %q{Tracksperanto is a universal 2D-track translator between many apps}
|
24
|
-
s.test_files = ["test/test_flame_import.rb", "test/
|
22
|
+
s.summary = %q{Tracksperanto is a universal 2D-track translator between many apps.}
|
23
|
+
s.test_files = ["test/export/test_match_mover_export.rb", "test/export/test_mux.rb", "test/export/test_nuke_export.rb", "test/export/test_pftrack_export.rb", "test/export/test_shake_export.rb", "test/export/test_syntheyes_export.rb", "test/import/test_flame_import.rb", "test/import/test_match_mover_import.rb", "test/import/test_nuke_import.rb", "test/import/test_pftrack_import.rb", "test/import/test_shake_catcher.rb", "test/import/test_shake_lexer.rb", "test/import/test_shake_script_import.rb", "test/import/test_shake_text_import.rb", "test/import/test_syntheyes_import.rb", "test/middleware/test_golden_middleware.rb", "test/middleware/test_reformat_middleware.rb", "test/middleware/test_scaler_middleware.rb", "test/middleware/test_shift_middleware.rb", "test/middleware/test_slip_middleware.rb", "test/pipeline/test_pipeline_base.rb", "test/test_format_detector.rb", "test/test_keyframe.rb", "test/test_tracker.rb"]
|
25
24
|
|
26
25
|
if s.respond_to? :specification_version then
|
27
26
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
28
27
|
s.specification_version = 2
|
29
28
|
|
30
29
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
30
|
+
s.add_runtime_dependency(%q<flexmock>, [">= 0"])
|
31
31
|
s.add_development_dependency(%q<hoe>, [">= 2.3.3"])
|
32
32
|
else
|
33
|
+
s.add_dependency(%q<flexmock>, [">= 0"])
|
33
34
|
s.add_dependency(%q<hoe>, [">= 2.3.3"])
|
34
35
|
end
|
35
36
|
else
|
37
|
+
s.add_dependency(%q<flexmock>, [">= 0"])
|
36
38
|
s.add_dependency(%q<hoe>, [">= 2.3.3"])
|
37
39
|
end
|
38
40
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tracksperanto
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Julik Tarkhanov
|
@@ -9,9 +9,19 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-09-
|
12
|
+
date: 2009-09-21 00:00:00 +02:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: flexmock
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: "0"
|
24
|
+
version:
|
15
25
|
- !ruby/object:Gem::Dependency
|
16
26
|
name: hoe
|
17
27
|
type: :development
|
@@ -22,7 +32,7 @@ dependencies:
|
|
22
32
|
- !ruby/object:Gem::Version
|
23
33
|
version: 2.3.3
|
24
34
|
version:
|
25
|
-
description:
|
35
|
+
description: Tracksperanto is a universal 2D-track translator between many apps.
|
26
36
|
email:
|
27
37
|
- me@julik.nl
|
28
38
|
executables:
|
@@ -42,46 +52,90 @@ files:
|
|
42
52
|
- bin/tracksperanto
|
43
53
|
- lib/.DS_Store
|
44
54
|
- lib/export/base.rb
|
55
|
+
- lib/export/match_mover.rb
|
45
56
|
- lib/export/mux.rb
|
57
|
+
- lib/export/nuke_script.rb
|
46
58
|
- lib/export/pftrack.rb
|
47
59
|
- lib/export/shake_text.rb
|
48
60
|
- lib/export/syntheyes.rb
|
49
61
|
- lib/import/base.rb
|
50
62
|
- lib/import/flame_stabilizer.rb
|
63
|
+
- lib/import/match_mover.rb
|
64
|
+
- lib/import/nuke_script.rb
|
51
65
|
- lib/import/pftrack.rb
|
66
|
+
- lib/import/shake_grammar/catcher.rb
|
67
|
+
- lib/import/shake_grammar/lexer.rb
|
52
68
|
- lib/import/shake_script.rb
|
53
69
|
- lib/import/shake_text.rb
|
54
70
|
- lib/import/syntheyes.rb
|
55
71
|
- lib/middleware/base.rb
|
56
|
-
- lib/middleware/close.rb
|
57
72
|
- lib/middleware/golden.rb
|
58
73
|
- lib/middleware/reformat.rb
|
59
74
|
- lib/middleware/scaler.rb
|
75
|
+
- lib/middleware/shift.rb
|
60
76
|
- lib/middleware/slipper.rb
|
61
77
|
- lib/pipeline/base.rb
|
62
78
|
- lib/tracksperanto.rb
|
79
|
+
- lib/tracksperanto/block_init.rb
|
80
|
+
- lib/tracksperanto/casts.rb
|
81
|
+
- lib/tracksperanto/format_detector.rb
|
82
|
+
- lib/tracksperanto/keyframe.rb
|
83
|
+
- lib/tracksperanto/safety.rb
|
84
|
+
- lib/tracksperanto/tracker.rb
|
85
|
+
- lib/tracksperanto/zip_tuples.rb
|
63
86
|
- test/.DS_Store
|
87
|
+
- test/export/.DS_Store
|
88
|
+
- test/export/README_EXPORT_TESTS.txt
|
89
|
+
- test/export/samples/ref_NukeScript.nk
|
90
|
+
- test/export/samples/ref_NukeScript.nk.autosave
|
91
|
+
- test/export/samples/ref_PFTrack.2dt
|
92
|
+
- test/export/samples/ref_ShakeText.txt
|
93
|
+
- test/export/samples/ref_Syntheyes.txt
|
94
|
+
- test/export/samples/ref_matchmover.rz2
|
95
|
+
- test/export/test_match_mover_export.rb
|
96
|
+
- test/export/test_mux.rb
|
97
|
+
- test/export/test_nuke_export.rb
|
98
|
+
- test/export/test_pftrack_export.rb
|
99
|
+
- test/export/test_shake_export.rb
|
100
|
+
- test/export/test_syntheyes_export.rb
|
64
101
|
- test/helper.rb
|
65
|
-
- test/
|
66
|
-
- test/samples
|
67
|
-
- test/samples/
|
68
|
-
- test/samples/
|
69
|
-
- test/samples/
|
70
|
-
- test/samples/
|
71
|
-
- test/samples/
|
72
|
-
- test/samples/
|
73
|
-
- test/samples/
|
74
|
-
- test/samples/
|
75
|
-
- test/samples/
|
76
|
-
- test/samples/
|
77
|
-
- test/samples/
|
78
|
-
- test/
|
102
|
+
- test/import/.DS_Store
|
103
|
+
- test/import/samples/.DS_Store
|
104
|
+
- test/import/samples/flyover2DP_syntheyes.txt
|
105
|
+
- test/import/samples/four_tracks_in_one_matchmove.shk
|
106
|
+
- test/import/samples/four_tracks_in_one_stabilizer.shk
|
107
|
+
- test/import/samples/fromCombustion_fromMidClip_wSnap.stabilizer
|
108
|
+
- test/import/samples/hugeFlameSetup.stabilizer
|
109
|
+
- test/import/samples/kipPointsMatchmover.rz2
|
110
|
+
- test/import/samples/megaTrack.action.3dtrack.stabilizer
|
111
|
+
- test/import/samples/one_shake_tracker.txt
|
112
|
+
- test/import/samples/one_shake_tracker_from_first.txt
|
113
|
+
- test/import/samples/one_tracker_with_break.nk
|
114
|
+
- test/import/samples/one_tracker_with_break_in_grp.nk
|
115
|
+
- test/import/samples/shake_tracker_nodes.shk
|
116
|
+
- test/import/samples/shake_tracker_nodes_to_syntheyes.txt
|
117
|
+
- test/import/samples/sourcefile_pftrack.2dt
|
118
|
+
- test/import/samples/three_tracks_in_one_stabilizer.shk
|
119
|
+
- test/import/samples/two_shake_trackers.txt
|
120
|
+
- test/import/samples/two_tracks_in_one_tracker.shk
|
121
|
+
- test/import/test_flame_import.rb
|
122
|
+
- test/import/test_match_mover_import.rb
|
123
|
+
- test/import/test_nuke_import.rb
|
124
|
+
- test/import/test_pftrack_import.rb
|
125
|
+
- test/import/test_shake_catcher.rb
|
126
|
+
- test/import/test_shake_lexer.rb
|
127
|
+
- test/import/test_shake_script_import.rb
|
128
|
+
- test/import/test_shake_text_import.rb
|
129
|
+
- test/import/test_syntheyes_import.rb
|
130
|
+
- test/middleware/test_golden_middleware.rb
|
131
|
+
- test/middleware/test_reformat_middleware.rb
|
132
|
+
- test/middleware/test_scaler_middleware.rb
|
133
|
+
- test/middleware/test_shift_middleware.rb
|
134
|
+
- test/middleware/test_slip_middleware.rb
|
135
|
+
- test/pipeline/test_pipeline_base.rb
|
136
|
+
- test/test_format_detector.rb
|
79
137
|
- test/test_keyframe.rb
|
80
|
-
- test/
|
81
|
-
- test/test_shake_export.rb
|
82
|
-
- test/test_shake_script_import.rb
|
83
|
-
- test/test_shake_text_import.rb
|
84
|
-
- test/test_syntheyes_import.rb
|
138
|
+
- test/test_tracker.rb
|
85
139
|
- tracksperanto.gemspec
|
86
140
|
has_rdoc: true
|
87
141
|
homepage: http://guerilla-di.org/tracksperanto
|
@@ -109,12 +163,29 @@ rubyforge_project: guerilla-di
|
|
109
163
|
rubygems_version: 1.3.1
|
110
164
|
signing_key:
|
111
165
|
specification_version: 2
|
112
|
-
summary: Tracksperanto is a universal 2D-track translator between many apps
|
166
|
+
summary: Tracksperanto is a universal 2D-track translator between many apps.
|
113
167
|
test_files:
|
114
|
-
- test/
|
168
|
+
- test/export/test_match_mover_export.rb
|
169
|
+
- test/export/test_mux.rb
|
170
|
+
- test/export/test_nuke_export.rb
|
171
|
+
- test/export/test_pftrack_export.rb
|
172
|
+
- test/export/test_shake_export.rb
|
173
|
+
- test/export/test_syntheyes_export.rb
|
174
|
+
- test/import/test_flame_import.rb
|
175
|
+
- test/import/test_match_mover_import.rb
|
176
|
+
- test/import/test_nuke_import.rb
|
177
|
+
- test/import/test_pftrack_import.rb
|
178
|
+
- test/import/test_shake_catcher.rb
|
179
|
+
- test/import/test_shake_lexer.rb
|
180
|
+
- test/import/test_shake_script_import.rb
|
181
|
+
- test/import/test_shake_text_import.rb
|
182
|
+
- test/import/test_syntheyes_import.rb
|
183
|
+
- test/middleware/test_golden_middleware.rb
|
184
|
+
- test/middleware/test_reformat_middleware.rb
|
185
|
+
- test/middleware/test_scaler_middleware.rb
|
186
|
+
- test/middleware/test_shift_middleware.rb
|
187
|
+
- test/middleware/test_slip_middleware.rb
|
188
|
+
- test/pipeline/test_pipeline_base.rb
|
189
|
+
- test/test_format_detector.rb
|
115
190
|
- test/test_keyframe.rb
|
116
|
-
- test/
|
117
|
-
- test/test_shake_export.rb
|
118
|
-
- test/test_shake_script_import.rb
|
119
|
-
- test/test_shake_text_import.rb
|
120
|
-
- test/test_syntheyes_import.rb
|
191
|
+
- test/test_tracker.rb
|
data/lib/middleware/close.rb
DELETED
data/test/test_shake_export.rb
DELETED
@@ -1,58 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/helper'
|
2
|
-
require 'stringio'
|
3
|
-
|
4
|
-
class ShakeTextExportTest < Test::Unit::TestCase
|
5
|
-
def setup
|
6
|
-
t1 = Tracksperanto::Tracker.new {|t| t.name = "Tracker_One" }
|
7
|
-
|
8
|
-
t1.keyframes << Tracksperanto::Keyframe.new do |f|
|
9
|
-
f.frame = 12
|
10
|
-
f.abs_x = 123
|
11
|
-
f.abs_y = 456
|
12
|
-
f.residual = 0
|
13
|
-
end
|
14
|
-
|
15
|
-
t1.keyframes << Tracksperanto::Keyframe.new do |f|
|
16
|
-
f.frame = 14
|
17
|
-
f.abs_x = 125
|
18
|
-
f.abs_y = 465
|
19
|
-
f.residual = 0.4
|
20
|
-
end
|
21
|
-
|
22
|
-
t2 = Tracksperanto::Tracker.new {|t| t.name = "Tracker_Two" }
|
23
|
-
|
24
|
-
t2.keyframes << Tracksperanto::Keyframe.new do |f|
|
25
|
-
f.frame = 0
|
26
|
-
f.abs_x = 406
|
27
|
-
f.abs_y = 268
|
28
|
-
f.residual = 0
|
29
|
-
end
|
30
|
-
|
31
|
-
t2.keyframes << Tracksperanto::Keyframe.new do |f|
|
32
|
-
f.frame = 1
|
33
|
-
f.abs_x = 402.45689987
|
34
|
-
f.abs_y = 245.89682
|
35
|
-
f.residual = 0.4
|
36
|
-
end
|
37
|
-
|
38
|
-
@trackers = [t1, t2]
|
39
|
-
end
|
40
|
-
|
41
|
-
def test_export
|
42
|
-
out_to = "/tmp/shakeTr_txt.txt"
|
43
|
-
puts "Outputting #{out_to} Shake sample text file, please verify"
|
44
|
-
io = File.open(out_to, "w")
|
45
|
-
|
46
|
-
x = Tracksperanto::Export::ShakeText.new(io)
|
47
|
-
|
48
|
-
x.start_export(720, 576)
|
49
|
-
@trackers.each do | t |
|
50
|
-
x.start_tracker_segment(t.name)
|
51
|
-
t.keyframes.each do | kf |
|
52
|
-
x.export_point(kf.frame, kf.abs_x, kf.abs_y, kf.residual)
|
53
|
-
end
|
54
|
-
end
|
55
|
-
x.end_export
|
56
|
-
io.close
|
57
|
-
end
|
58
|
-
end
|
@@ -1,50 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/helper'
|
2
|
-
|
3
|
-
class ShakeScriptImportTest < Test::Unit::TestCase
|
4
|
-
DELTA = 0.001
|
5
|
-
|
6
|
-
def test_parsing_many_tracker_noes_with_one_track_each
|
7
|
-
fixture = File.read(File.dirname(__FILE__) + '/samples/shake_tracker_nodes.shk')
|
8
|
-
|
9
|
-
trackers = Tracksperanto::Import::ShakeScript.new.parse(fixture)
|
10
|
-
assert_equal 50, trackers.length
|
11
|
-
|
12
|
-
t = trackers[0]
|
13
|
-
assert_equal "Tracker1", t.name
|
14
|
-
|
15
|
-
first_kf = t.keyframes[0]
|
16
|
-
assert_equal 0, first_kf.frame
|
17
|
-
assert_in_delta 886.212, first_kf.abs_y, DELTA
|
18
|
-
assert_in_delta 715.839, first_kf.abs_x, DELTA
|
19
|
-
assert_in_delta 0.0, first_kf.residual, DELTA
|
20
|
-
|
21
|
-
second_kf = t.keyframes[1]
|
22
|
-
assert_in_delta 0.00129, second_kf.residual, DELTA
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_parsing_many_tracks_in_one_tracker_node
|
26
|
-
fixture = File.read(File.dirname(__FILE__) + '/samples/two_tracks_in_one_tracker.shk')
|
27
|
-
|
28
|
-
trackers = Tracksperanto::Import::ShakeScript.new.parse(fixture)
|
29
|
-
assert_equal 2, trackers.length
|
30
|
-
|
31
|
-
t = trackers[0]
|
32
|
-
assert_equal "Tracker1", t.name
|
33
|
-
|
34
|
-
first_kf = t.keyframes[0]
|
35
|
-
assert_equal 0, first_kf.frame
|
36
|
-
assert_in_delta 886.212, first_kf.abs_y, DELTA
|
37
|
-
assert_in_delta 715.839, first_kf.abs_x, DELTA
|
38
|
-
assert_in_delta 0.0, first_kf.residual, DELTA
|
39
|
-
|
40
|
-
second_kf = t.keyframes[1]
|
41
|
-
assert_in_delta 0.00129, second_kf.residual, DELTA
|
42
|
-
end
|
43
|
-
|
44
|
-
def test_parsing_many_tracks_in_one_stabilizer_node
|
45
|
-
fixture = File.read(File.dirname(__FILE__) + '/samples/three_tracks_in_one_stabilizer.shk')
|
46
|
-
|
47
|
-
trackers = Tracksperanto::Import::ShakeScript.new.parse(fixture)
|
48
|
-
assert_equal 3, trackers.length
|
49
|
-
end
|
50
|
-
end
|