tracksperanto 2.9.0 → 2.9.1

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,3 +1,7 @@
1
+ === 2.9.1
2
+
3
+ * Adds an export module for Maya locators on an image plane
4
+
1
5
  === 2.9
2
6
 
3
7
  * Tracker objects now use a Hash as internal storage model instead of being an Array delegate.
@@ -0,0 +1,53 @@
1
+ # -*- encoding : utf-8 -*-
2
+ # Export each tracker as a moving Maya locator
3
+ class Tracksperanto::Export::MayaLocators < Tracksperanto::Export::Base
4
+ PREAMBLE = 'polyPlane -name "TracksperantoImagePlane" -width %0.5f -height %0.5f;'
5
+ LOCATOR_PREAMBLE = 'spaceLocator -name "%s" -p 0 0 0;'
6
+ MOVE_TIMEBAR = 'currentTime %d;'
7
+ KEYFRAME_TEMPLATE = 'setKeyframe -value %0.5f "%s.%s";';
8
+
9
+ # Scaling factor multiplier
10
+ attr_accessor :multiplier
11
+
12
+ def self.desc_and_extension
13
+ "mayaLocators.mel"
14
+ end
15
+
16
+ def self.human_name
17
+ "Maya .mel script that generates locators"
18
+ end
19
+
20
+ def start_export(w, h)
21
+ # Pixel sizes are HUGE for maya. What we do is we assume that the width is 1,
22
+ # and scale the height to that
23
+ multiplier = self.multiplier || 10.0
24
+
25
+ @factor = (1 / w.to_f) * multiplier
26
+
27
+ @io.puts(PREAMBLE % [multiplier, h * @factor])
28
+ @io.puts('rotate -r -os 90;') # Position it in the XY plane
29
+ @io.puts('move -r %0.5f %0.5f 0;' % [multiplier / 2.0, h * @factor / 2.0])
30
+ @group_members = ["TracksperantoImagePlane"]
31
+ end
32
+
33
+ # We accumulate a tracker and on end dump it out in one piece
34
+ def start_tracker_segment(tracker_name)
35
+ @locator_name = tracker_name
36
+ @io.puts(LOCATOR_PREAMBLE % @locator_name)
37
+ @group_members.push(tracker_name)
38
+ end
39
+
40
+ def export_point(frame, abs_float_x, abs_float_y, float_residual)
41
+ @io.puts(MOVE_TIMEBAR % (frame + 1))
42
+ @io.puts(KEYFRAME_TEMPLATE % [abs_float_x * @factor, @locator_name, "tx"])
43
+ @io.puts(KEYFRAME_TEMPLATE % [abs_float_y * @factor, @locator_name, "ty"])
44
+ end
45
+
46
+ def end_export
47
+ @io.puts(MOVE_TIMEBAR % 1)
48
+ # Group all the stuff
49
+ @io.puts('select -r %s;' % @group_members.join(' '))
50
+ @io.puts('group -name TracksperantoGroup; xform -os -piv 0 0 0;')
51
+ end
52
+
53
+ end
data/lib/tracksperanto.rb CHANGED
@@ -8,7 +8,7 @@ require "progressive_io"
8
8
 
9
9
  module Tracksperanto
10
10
  PATH = File.expand_path(File.dirname(__FILE__))
11
- VERSION = '2.9.0'
11
+ VERSION = '2.9.1'
12
12
 
13
13
  module Import; end
14
14
  module Export; end
@@ -0,0 +1,126 @@
1
+ polyPlane -name "TracksperantoImagePlane" -width 10.00000 -height 5.62500;
2
+ rotate -r -os 90;
3
+ move -r 5.00000 2.81250 0;
4
+ spaceLocator -name "Parabolic_1_from_top_left" -p 0 0 0;
5
+ currentTime 1;
6
+ setKeyframe -value 0.00000 "Parabolic_1_from_top_left.tx";
7
+ setKeyframe -value 5.62500 "Parabolic_1_from_top_left.ty";
8
+ currentTime 2;
9
+ setKeyframe -value 0.50000 "Parabolic_1_from_top_left.tx";
10
+ setKeyframe -value 4.55625 "Parabolic_1_from_top_left.ty";
11
+ currentTime 3;
12
+ setKeyframe -value 1.00000 "Parabolic_1_from_top_left.tx";
13
+ setKeyframe -value 3.60000 "Parabolic_1_from_top_left.ty";
14
+ currentTime 4;
15
+ setKeyframe -value 1.50000 "Parabolic_1_from_top_left.tx";
16
+ setKeyframe -value 2.75625 "Parabolic_1_from_top_left.ty";
17
+ currentTime 5;
18
+ setKeyframe -value 2.00000 "Parabolic_1_from_top_left.tx";
19
+ setKeyframe -value 2.02500 "Parabolic_1_from_top_left.ty";
20
+ currentTime 6;
21
+ setKeyframe -value 2.50000 "Parabolic_1_from_top_left.tx";
22
+ setKeyframe -value 1.40625 "Parabolic_1_from_top_left.ty";
23
+ currentTime 7;
24
+ setKeyframe -value 3.00000 "Parabolic_1_from_top_left.tx";
25
+ setKeyframe -value 0.90000 "Parabolic_1_from_top_left.ty";
26
+ currentTime 8;
27
+ setKeyframe -value 3.50000 "Parabolic_1_from_top_left.tx";
28
+ setKeyframe -value 0.50625 "Parabolic_1_from_top_left.ty";
29
+ currentTime 9;
30
+ setKeyframe -value 4.00000 "Parabolic_1_from_top_left.tx";
31
+ setKeyframe -value 0.22500 "Parabolic_1_from_top_left.ty";
32
+ currentTime 10;
33
+ setKeyframe -value 4.50000 "Parabolic_1_from_top_left.tx";
34
+ setKeyframe -value 0.05625 "Parabolic_1_from_top_left.ty";
35
+ currentTime 13;
36
+ setKeyframe -value 6.00000 "Parabolic_1_from_top_left.tx";
37
+ setKeyframe -value 0.22500 "Parabolic_1_from_top_left.ty";
38
+ currentTime 14;
39
+ setKeyframe -value 6.50000 "Parabolic_1_from_top_left.tx";
40
+ setKeyframe -value 0.50625 "Parabolic_1_from_top_left.ty";
41
+ currentTime 15;
42
+ setKeyframe -value 7.00000 "Parabolic_1_from_top_left.tx";
43
+ setKeyframe -value 0.90000 "Parabolic_1_from_top_left.ty";
44
+ currentTime 16;
45
+ setKeyframe -value 7.50000 "Parabolic_1_from_top_left.tx";
46
+ setKeyframe -value 1.40625 "Parabolic_1_from_top_left.ty";
47
+ currentTime 17;
48
+ setKeyframe -value 8.00000 "Parabolic_1_from_top_left.tx";
49
+ setKeyframe -value 2.02500 "Parabolic_1_from_top_left.ty";
50
+ currentTime 18;
51
+ setKeyframe -value 8.50000 "Parabolic_1_from_top_left.tx";
52
+ setKeyframe -value 2.75625 "Parabolic_1_from_top_left.ty";
53
+ currentTime 19;
54
+ setKeyframe -value 9.00000 "Parabolic_1_from_top_left.tx";
55
+ setKeyframe -value 3.60000 "Parabolic_1_from_top_left.ty";
56
+ currentTime 20;
57
+ setKeyframe -value 9.50000 "Parabolic_1_from_top_left.tx";
58
+ setKeyframe -value 4.55625 "Parabolic_1_from_top_left.ty";
59
+ currentTime 21;
60
+ setKeyframe -value 10.00000 "Parabolic_1_from_top_left.tx";
61
+ setKeyframe -value 5.62500 "Parabolic_1_from_top_left.ty";
62
+ spaceLocator -name "Parabolic_2_from_bottom_right" -p 0 0 0;
63
+ currentTime 1;
64
+ setKeyframe -value 10.00000 "Parabolic_2_from_bottom_right.tx";
65
+ setKeyframe -value 0.00000 "Parabolic_2_from_bottom_right.ty";
66
+ currentTime 2;
67
+ setKeyframe -value 9.50000 "Parabolic_2_from_bottom_right.tx";
68
+ setKeyframe -value 1.06875 "Parabolic_2_from_bottom_right.ty";
69
+ currentTime 3;
70
+ setKeyframe -value 9.00000 "Parabolic_2_from_bottom_right.tx";
71
+ setKeyframe -value 2.02500 "Parabolic_2_from_bottom_right.ty";
72
+ currentTime 4;
73
+ setKeyframe -value 8.50000 "Parabolic_2_from_bottom_right.tx";
74
+ setKeyframe -value 2.86875 "Parabolic_2_from_bottom_right.ty";
75
+ currentTime 5;
76
+ setKeyframe -value 8.00000 "Parabolic_2_from_bottom_right.tx";
77
+ setKeyframe -value 3.60000 "Parabolic_2_from_bottom_right.ty";
78
+ currentTime 6;
79
+ setKeyframe -value 7.50000 "Parabolic_2_from_bottom_right.tx";
80
+ setKeyframe -value 4.21875 "Parabolic_2_from_bottom_right.ty";
81
+ currentTime 7;
82
+ setKeyframe -value 7.00000 "Parabolic_2_from_bottom_right.tx";
83
+ setKeyframe -value 4.72500 "Parabolic_2_from_bottom_right.ty";
84
+ currentTime 8;
85
+ setKeyframe -value 6.50000 "Parabolic_2_from_bottom_right.tx";
86
+ setKeyframe -value 5.11875 "Parabolic_2_from_bottom_right.ty";
87
+ currentTime 9;
88
+ setKeyframe -value 6.00000 "Parabolic_2_from_bottom_right.tx";
89
+ setKeyframe -value 5.40000 "Parabolic_2_from_bottom_right.ty";
90
+ currentTime 10;
91
+ setKeyframe -value 5.50000 "Parabolic_2_from_bottom_right.tx";
92
+ setKeyframe -value 5.56875 "Parabolic_2_from_bottom_right.ty";
93
+ currentTime 13;
94
+ setKeyframe -value 4.00000 "Parabolic_2_from_bottom_right.tx";
95
+ setKeyframe -value 5.40000 "Parabolic_2_from_bottom_right.ty";
96
+ currentTime 14;
97
+ setKeyframe -value 3.50000 "Parabolic_2_from_bottom_right.tx";
98
+ setKeyframe -value 5.11875 "Parabolic_2_from_bottom_right.ty";
99
+ currentTime 15;
100
+ setKeyframe -value 3.00000 "Parabolic_2_from_bottom_right.tx";
101
+ setKeyframe -value 4.72500 "Parabolic_2_from_bottom_right.ty";
102
+ currentTime 16;
103
+ setKeyframe -value 2.50000 "Parabolic_2_from_bottom_right.tx";
104
+ setKeyframe -value 4.21875 "Parabolic_2_from_bottom_right.ty";
105
+ currentTime 17;
106
+ setKeyframe -value 2.00000 "Parabolic_2_from_bottom_right.tx";
107
+ setKeyframe -value 3.60000 "Parabolic_2_from_bottom_right.ty";
108
+ currentTime 18;
109
+ setKeyframe -value 1.50000 "Parabolic_2_from_bottom_right.tx";
110
+ setKeyframe -value 2.86875 "Parabolic_2_from_bottom_right.ty";
111
+ currentTime 19;
112
+ setKeyframe -value 1.00000 "Parabolic_2_from_bottom_right.tx";
113
+ setKeyframe -value 2.02500 "Parabolic_2_from_bottom_right.ty";
114
+ currentTime 20;
115
+ setKeyframe -value 0.50000 "Parabolic_2_from_bottom_right.tx";
116
+ setKeyframe -value 1.06875 "Parabolic_2_from_bottom_right.ty";
117
+ currentTime 21;
118
+ setKeyframe -value 0.00000 "Parabolic_2_from_bottom_right.tx";
119
+ setKeyframe -value 0.00000 "Parabolic_2_from_bottom_right.ty";
120
+ spaceLocator -name "SingleFrame" -p 0 0 0;
121
+ currentTime 1;
122
+ setKeyframe -value 5.05208 "SingleFrame.tx";
123
+ setKeyframe -value 2.86458 "SingleFrame.ty";
124
+ currentTime 1;
125
+ select -r TracksperantoImagePlane Parabolic_1_from_top_left Parabolic_2_from_bottom_right SingleFrame;
126
+ group -name TracksperantoGroup; xform -os -piv 0 0 0;
@@ -0,0 +1,17 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require File.expand_path(File.dirname(__FILE__)) + '/../helper'
3
+
4
+ class MayaLocatorsExportTest < Test::Unit::TestCase
5
+ include ParabolicTracks
6
+
7
+ P_LOCATORS = File.dirname(__FILE__) + "/samples/ref_MayaLocators.mel"
8
+
9
+ def test_export_output_written
10
+ ensure_same_output Tracksperanto::Export::MayaLocators, P_LOCATORS
11
+ end
12
+
13
+ def test_exporter_meta
14
+ assert_equal "mayaLocators.mel", Tracksperanto::Export::MayaLocators.desc_and_extension
15
+ assert_equal "Maya .mel script that generates locators", Tracksperanto::Export::MayaLocators.human_name
16
+ end
17
+ end
@@ -10,6 +10,7 @@ class EqualizerImportTest < Test::Unit::TestCase
10
10
  assert !i.autodetects_size?
11
11
  end
12
12
 
13
+
13
14
  def test_parsing_from_importable
14
15
  fixture = File.open(File.dirname(__FILE__) + '/samples/3de_v4/3de_export_cube.txt')
15
16
 
@@ -9,6 +9,7 @@ class Equalizer3ImportTest < Test::Unit::TestCase
9
9
  assert_equal "3DE v3 point export file", i.human_name
10
10
  assert i.autodetects_size?
11
11
  end
12
+
12
13
 
13
14
  def test_parsing_from_importable
14
15
  fixture = File.open(File.dirname(__FILE__) + '/samples/3de_v3/3de_export_v3.txt')
data/test/test_cli.rb CHANGED
@@ -40,7 +40,7 @@ class CliTest < Test::Unit::TestCase
40
40
  flm.stabilizer flm_3de_v3.txt flm_3de_v4.txt flm_boujou_text.txt flm_flame.stabilizer
41
41
  flm_matchmover.rz2 flm_mayalive.txt flm_nuke.nk flm_pftrack_2011_pfmatchit.txt flm_pftrack_v4.2dt
42
42
  flm_pftrack_v5.2dt flm_shake_trackers.txt flm_syntheyes_2dt.txt flm_flame_cornerpin.stabilizer
43
- flm_tracksperanto_ruby.rb
43
+ flm_tracksperanto_ruby.rb flm_mayaLocators.mel
44
44
  )
45
45
 
46
46
  assert_same_set fs, Dir.entries(TEMP_DIR)
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "tracksperanto"
8
- s.version = "2.9.0"
8
+ s.version = "2.9.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Julik Tarkhanov"]
12
- s.date = "2012-01-23"
12
+ s.date = "2012-01-27"
13
13
  s.description = "Converts 2D track exports between different apps like Flame, MatchMover, PFTrack..."
14
14
  s.email = "me@julik.nl"
15
15
  s.executables = ["tracksperanto"]
@@ -33,6 +33,7 @@ Gem::Specification.new do |s|
33
33
  "lib/export/flame_stabilizer_cornerpin.rb",
34
34
  "lib/export/match_mover.rb",
35
35
  "lib/export/maya_live.rb",
36
+ "lib/export/maya_locators.rb",
36
37
  "lib/export/mux.rb",
37
38
  "lib/export/nuke_script.rb",
38
39
  "lib/export/pfmatchit.rb",
@@ -90,6 +91,7 @@ Gem::Specification.new do |s|
90
91
  "test/export/README_EXPORT_TESTS.txt",
91
92
  "test/export/samples/ref_FlameProperlyReorderedCornerpin.stabilizer",
92
93
  "test/export/samples/ref_FlameSimpleReorderedCornerpin.stabilizer",
94
+ "test/export/samples/ref_MayaLocators.mel",
93
95
  "test/export/samples/ref_Mayalive.txt",
94
96
  "test/export/samples/ref_Mayalive_CustomAspect.txt",
95
97
  "test/export/samples/ref_NukeScript.nk",
@@ -112,6 +114,7 @@ Gem::Specification.new do |s|
112
114
  "test/export/test_flame_stabilizer_export.rb",
113
115
  "test/export/test_match_mover_export.rb",
114
116
  "test/export/test_maya_live_export.rb",
117
+ "test/export/test_maya_locators_export.rb",
115
118
  "test/export/test_mux.rb",
116
119
  "test/export/test_nuke_export.rb",
117
120
  "test/export/test_pfmatchit_export.rb",
@@ -165,7 +168,7 @@ Gem::Specification.new do |s|
165
168
  s.homepage = "http://guerilla-di.org/tracksperanto"
166
169
  s.licenses = ["MIT"]
167
170
  s.require_paths = ["lib"]
168
- s.rubygems_version = "1.8.11"
171
+ s.rubygems_version = "1.8.15"
169
172
  s.summary = "A universal 2D tracks converter"
170
173
 
171
174
  if s.respond_to? :specification_version then
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: 2.9.0
4
+ version: 2.9.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-23 00:00:00.000000000 Z
12
+ date: 2012-01-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: obuf
16
- requirement: &3774540 !ruby/object:Gem::Requirement
16
+ requirement: &4159600 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.0.4
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *3774540
24
+ version_requirements: *4159600
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: progressive_io
27
- requirement: &3773450 !ruby/object:Gem::Requirement
27
+ requirement: &4159290 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '1.0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *3773450
35
+ version_requirements: *4159290
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: flame_channel_parser
38
- requirement: &3773160 !ruby/object:Gem::Requirement
38
+ requirement: &4158730 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '4.0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *3773160
46
+ version_requirements: *4158730
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: progressbar
49
- requirement: &3772770 !ruby/object:Gem::Requirement
49
+ requirement: &4158240 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0.9'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *3772770
57
+ version_requirements: *4158240
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: update_hints
60
- requirement: &3788260 !ruby/object:Gem::Requirement
60
+ requirement: &4157890 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '1.0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *3788260
68
+ version_requirements: *4157890
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: jeweler
71
- requirement: &3786870 !ruby/object:Gem::Requirement
71
+ requirement: &4157570 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *3786870
79
+ version_requirements: *4157570
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: rake
82
- requirement: &3785600 !ruby/object:Gem::Requirement
82
+ requirement: &4173600 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *3785600
90
+ version_requirements: *4173600
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: flexmock
93
- requirement: &3782710 !ruby/object:Gem::Requirement
93
+ requirement: &4173330 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ~>
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '0.8'
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *3782710
101
+ version_requirements: *4173330
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: cli_test
104
- requirement: &3780740 !ruby/object:Gem::Requirement
104
+ requirement: &4173060 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ~>
@@ -109,7 +109,7 @@ dependencies:
109
109
  version: '1.0'
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *3780740
112
+ version_requirements: *4173060
113
113
  description: Converts 2D track exports between different apps like Flame, MatchMover,
114
114
  PFTrack...
115
115
  email: me@julik.nl
@@ -135,6 +135,7 @@ files:
135
135
  - lib/export/flame_stabilizer_cornerpin.rb
136
136
  - lib/export/match_mover.rb
137
137
  - lib/export/maya_live.rb
138
+ - lib/export/maya_locators.rb
138
139
  - lib/export/mux.rb
139
140
  - lib/export/nuke_script.rb
140
141
  - lib/export/pfmatchit.rb
@@ -192,6 +193,7 @@ files:
192
193
  - test/export/README_EXPORT_TESTS.txt
193
194
  - test/export/samples/ref_FlameProperlyReorderedCornerpin.stabilizer
194
195
  - test/export/samples/ref_FlameSimpleReorderedCornerpin.stabilizer
196
+ - test/export/samples/ref_MayaLocators.mel
195
197
  - test/export/samples/ref_Mayalive.txt
196
198
  - test/export/samples/ref_Mayalive_CustomAspect.txt
197
199
  - test/export/samples/ref_NukeScript.nk
@@ -214,6 +216,7 @@ files:
214
216
  - test/export/test_flame_stabilizer_export.rb
215
217
  - test/export/test_match_mover_export.rb
216
218
  - test/export/test_maya_live_export.rb
219
+ - test/export/test_maya_locators_export.rb
217
220
  - test/export/test_mux.rb
218
221
  - test/export/test_nuke_export.rb
219
222
  - test/export/test_pfmatchit_export.rb
@@ -284,7 +287,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
284
287
  version: '0'
285
288
  requirements: []
286
289
  rubyforge_project:
287
- rubygems_version: 1.8.11
290
+ rubygems_version: 1.8.15
288
291
  signing_key:
289
292
  specification_version: 3
290
293
  summary: A universal 2D tracks converter