tracksperanto 3.2.2 → 3.3.0.pre

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/Gemfile CHANGED
@@ -1,9 +1,9 @@
1
1
  # -*- ruby -*-
2
2
  source :rubygems
3
3
 
4
- # gem "bychar", "~> 1.1" - controlled by Tickly
5
4
  gem "obuf", "~> 1.1"
6
- gem "tickly", "~> 0.0.8"
5
+ gem "tickly", "~> 2.0"
6
+ gem "bychar"
7
7
  gem "progressive_io", "~> 1.0"
8
8
  gem "flame_channel_parser", "~> 4.0"
9
9
  gem "progressbar", "0.10.0"
@@ -12,17 +12,19 @@ class Tracksperanto::Export::FlameStabilizerCornerpin < Tracksperanto::Export::F
12
12
  end
13
13
 
14
14
  # The trackers for cornerpins should go in Z order, like this
15
- # TL -> TR
16
- # /
17
- # _______/
18
- # |
19
- # BL -> BR
15
+ #
16
+ # TL(0)---->TR(1)
17
+ # /
18
+ # /
19
+ # /
20
+ # /
21
+ # BL(2)----->BR(3)
22
+ #
20
23
  # This "kinda tool" ensures that this is indeed taking place
21
- class Sorter < DelegateClass(Tracksperanto::Export::Base)
24
+ class Sorter
22
25
  include Tracksperanto::SimpleExport # so that it calls OUR methods
23
26
 
24
27
  def initialize(exporter)
25
- __setobj__(exporter)
26
28
  @exp = exporter
27
29
  end
28
30
 
@@ -1,6 +1,5 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  require 'tickly'
3
- require File.expand_path(File.dirname(__FILE__)) + "/nuke_grammar/utils"
4
3
 
5
4
  class Tracksperanto::Import::NukeScript < Tracksperanto::Import::Base
6
5
 
@@ -17,21 +16,16 @@ class Tracksperanto::Import::NukeScript < Tracksperanto::Import::Base
17
16
  end
18
17
 
19
18
  def each
20
- parser = Tickly::NodeExtractor.new("Tracker3", "Tracker4", "PlanarTracker1_0", "Reconcile3D")
21
- script_tree = Tickly::Parser.new.parse(@io)
19
+ parser = Tickly::NodeProcessor.new
20
+ parser.add_node_handler_class(Tracker3)
21
+ parser.add_node_handler_class(Reconcile3D)
22
+ parser.add_node_handler_class(PlanarTracker1_0)
23
+ parser.add_node_handler_class(Tracker4)
22
24
 
23
- evaluator = Tickly::Evaluator.new
24
- evaluator.add_node_handler_class(Tracker3)
25
- evaluator.add_node_handler_class(Reconcile3D)
26
- evaluator.add_node_handler_class(PlanarTracker1_0)
27
- evaluator.add_node_handler_class(Tracker4)
28
-
29
- script_tree.each do | node |
30
- evaluator.evaluate(node) do | node_object |
31
- node_object.trackers.each do | t |
32
- report_progress("Scavenging tracker #{t.name}")
33
- yield t
34
- end
25
+ parser.parse(@io) do | node |
26
+ node.trackers.each do | t |
27
+ report_progress("Scavenging tracker #{t.name}")
28
+ yield t
35
29
  end
36
30
  end
37
31
  end
@@ -70,11 +64,10 @@ class Tracksperanto::Import::NukeScript < Tracksperanto::Import::Base
70
64
  end
71
65
 
72
66
  def extract_curves_from_channel(point_channel)
73
- u = Tracksperanto::NukeGrammarUtils.new
74
67
  # First element is the :c curly identifier
75
68
  point_channel[1..-1].map do | curve_argument |
76
69
  if curve_argument[1] == "curve"
77
- u.parse_curve(curve_argument.to_a)
70
+ Tickly::Curve.new(curve_argument)
78
71
  else
79
72
  nil
80
73
  end
@@ -117,14 +110,14 @@ class Tracksperanto::Import::NukeScript < Tracksperanto::Import::Base
117
110
  # "key_search_t", "key_track_x", "key_track_y", "key_track_r", "key_track_t", "key_centre_offset_x", "key_centre_offset_y")
118
111
  tracker_rows = values[0]
119
112
 
120
- u = Tracksperanto::NukeGrammarUtils.new
121
-
122
113
  # The 0 element is the :c symbol
123
114
  tracker_rows[1..-1].each do | row |
124
115
  row_content = row[0]
125
116
 
126
117
  # For offsets see above
127
- point_name, x_curve, y_curve = row_content[2], u.parse_curve(row_content[3].to_a), u.parse_curve(row_content[4].to_a)
118
+ point_name = row_content[2]
119
+ x_curve = Tickly::Curve.new(row_content[3])
120
+ y_curve = Tickly::Curve.new(row_content[4])
128
121
 
129
122
  full_name = [options["name"], point_name].join('_')
130
123
  tracker = package_tracker(full_name, x_curve, y_curve)
@@ -157,19 +157,6 @@ class NukeImportTest < Test::Unit::TestCase
157
157
  assert_in_delta 510.107, sec_tracker.keyframes[-1].abs_y, DELTA
158
158
  end
159
159
 
160
- def test_parsing_nuke_curve
161
- curve = [:c] + %w( curve x742 888 890.2463989 891.6602783
162
- 893.5056763 895.6155396 s95 897.2791748 899.1762695
163
- x754 912.0731812 x755 913.7190552 916.0959473 918.1025391 920.0751953 922.1898804 )
164
- p = Tracksperanto::NukeGrammarUtils.new
165
- result = p.parse_curve(curve)
166
- assert_kind_of Array, result
167
- assert_equal 13, result.length
168
- assert_equal 742, result[0][0]
169
- assert_equal 754, result[7][0]
170
- end
171
-
172
-
173
160
  def test_zip_channels
174
161
  tuples_x = [[1, 125], [3, 234], [5, 456], [9,876]]
175
162
  tuples_y = [[2, 437], [3, 123], [6, 432], [9, 430]]
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "tracksperanto"
8
- s.version = "3.2.2"
8
+ s.version = "3.3.0.pre"
9
9
 
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
10
+ s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Julik Tarkhanov"]
12
- s.date = "2013-03-16"
12
+ s.date = "2013-03-22"
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"]
@@ -54,7 +54,6 @@ Gem::Specification.new do |s|
54
54
  "lib/import/match_mover.rb",
55
55
  "lib/import/match_mover_rzml.rb",
56
56
  "lib/import/maya_live.rb",
57
- "lib/import/nuke_grammar/utils.rb",
58
57
  "lib/import/nuke_script.rb",
59
58
  "lib/import/pftrack.rb",
60
59
  "lib/import/shake_grammar/catcher.rb",
@@ -211,11 +210,13 @@ Gem::Specification.new do |s|
211
210
 
212
211
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
213
212
  s.add_runtime_dependency(%q<obuf>, ["~> 1.1"])
214
- s.add_runtime_dependency(%q<tickly>, ["~> 0.0.8"])
213
+ s.add_runtime_dependency(%q<tickly>, ["~> 2.0"])
214
+ s.add_runtime_dependency(%q<bychar>, [">= 0"])
215
215
  s.add_runtime_dependency(%q<progressive_io>, ["~> 1.0"])
216
216
  s.add_runtime_dependency(%q<flame_channel_parser>, ["~> 4.0"])
217
217
  s.add_runtime_dependency(%q<progressbar>, ["= 0.10.0"])
218
218
  s.add_runtime_dependency(%q<update_hints>, ["~> 1.0"])
219
+ s.add_runtime_dependency(%q<bundler>, [">= 0"])
219
220
  s.add_development_dependency(%q<approximately>, [">= 0"])
220
221
  s.add_development_dependency(%q<jeweler>, [">= 0"])
221
222
  s.add_development_dependency(%q<rake>, [">= 0"])
@@ -225,11 +226,13 @@ Gem::Specification.new do |s|
225
226
  s.add_development_dependency(%q<ruby-prof>, [">= 0"])
226
227
  else
227
228
  s.add_dependency(%q<obuf>, ["~> 1.1"])
228
- s.add_dependency(%q<tickly>, ["~> 0.0.8"])
229
+ s.add_dependency(%q<tickly>, ["~> 2.0"])
230
+ s.add_dependency(%q<bychar>, [">= 0"])
229
231
  s.add_dependency(%q<progressive_io>, ["~> 1.0"])
230
232
  s.add_dependency(%q<flame_channel_parser>, ["~> 4.0"])
231
233
  s.add_dependency(%q<progressbar>, ["= 0.10.0"])
232
234
  s.add_dependency(%q<update_hints>, ["~> 1.0"])
235
+ s.add_dependency(%q<bundler>, [">= 0"])
233
236
  s.add_dependency(%q<approximately>, [">= 0"])
234
237
  s.add_dependency(%q<jeweler>, [">= 0"])
235
238
  s.add_dependency(%q<rake>, [">= 0"])
@@ -240,11 +243,13 @@ Gem::Specification.new do |s|
240
243
  end
241
244
  else
242
245
  s.add_dependency(%q<obuf>, ["~> 1.1"])
243
- s.add_dependency(%q<tickly>, ["~> 0.0.8"])
246
+ s.add_dependency(%q<tickly>, ["~> 2.0"])
247
+ s.add_dependency(%q<bychar>, [">= 0"])
244
248
  s.add_dependency(%q<progressive_io>, ["~> 1.0"])
245
249
  s.add_dependency(%q<flame_channel_parser>, ["~> 4.0"])
246
250
  s.add_dependency(%q<progressbar>, ["= 0.10.0"])
247
251
  s.add_dependency(%q<update_hints>, ["~> 1.0"])
252
+ s.add_dependency(%q<bundler>, [">= 0"])
248
253
  s.add_dependency(%q<approximately>, [">= 0"])
249
254
  s.add_dependency(%q<jeweler>, [">= 0"])
250
255
  s.add_dependency(%q<rake>, [">= 0"])
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tracksperanto
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.2
5
- prerelease:
4
+ version: 3.3.0.pre
5
+ prerelease: 6
6
6
  platform: ruby
7
7
  authors:
8
8
  - Julik Tarkhanov
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-16 00:00:00.000000000 Z
12
+ date: 2013-03-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: obuf
@@ -34,7 +34,7 @@ dependencies:
34
34
  requirements:
35
35
  - - ~>
36
36
  - !ruby/object:Gem::Version
37
- version: 0.0.8
37
+ version: '2.0'
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
@@ -42,7 +42,23 @@ dependencies:
42
42
  requirements:
43
43
  - - ~>
44
44
  - !ruby/object:Gem::Version
45
- version: 0.0.8
45
+ version: '2.0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: bychar
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
46
62
  - !ruby/object:Gem::Dependency
47
63
  name: progressive_io
48
64
  requirement: !ruby/object:Gem::Requirement
@@ -107,6 +123,22 @@ dependencies:
107
123
  - - ~>
108
124
  - !ruby/object:Gem::Version
109
125
  version: '1.0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: bundler
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ type: :runtime
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
110
142
  - !ruby/object:Gem::Dependency
111
143
  name: approximately
112
144
  requirement: !ruby/object:Gem::Requirement
@@ -265,7 +297,6 @@ files:
265
297
  - lib/import/match_mover.rb
266
298
  - lib/import/match_mover_rzml.rb
267
299
  - lib/import/maya_live.rb
268
- - lib/import/nuke_grammar/utils.rb
269
300
  - lib/import/nuke_script.rb
270
301
  - lib/import/pftrack.rb
271
302
  - lib/import/shake_grammar/catcher.rb
@@ -425,13 +456,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
425
456
  version: '0'
426
457
  segments:
427
458
  - 0
428
- hash: 419869014882253399
459
+ hash: 506904342212099543
429
460
  required_rubygems_version: !ruby/object:Gem::Requirement
430
461
  none: false
431
462
  requirements:
432
- - - ! '>='
463
+ - - ! '>'
433
464
  - !ruby/object:Gem::Version
434
- version: '0'
465
+ version: 1.3.1
435
466
  requirements: []
436
467
  rubyforge_project:
437
468
  rubygems_version: 1.8.24
@@ -1,33 +0,0 @@
1
- # -*- encoding : utf-8 -*-
2
- class Tracksperanto::NukeGrammarUtils
3
- SECTION_START = /^x(\d+)$/
4
- KEYFRAME = /^([-\d\.]+)$/
5
-
6
- # Scan a TCL curve expression into a number of tuples of [frame, value]
7
- def parse_curve(atoms)
8
- # Replace the closing curly brace with a curly brace with space so that it gets caught by split
9
- atoms.shift # remove the :c curly designator
10
- atoms.shift # remove the "curve" keyword
11
- tuples = []
12
- # Nuke saves curves very efficiently. x(keyframe_number) means that an uninterrupted sequence of values will start,
13
- # after which values follow. When the curve is interrupted in some way a new x(keyframe_number) will signifu that we
14
- # skip to that specified keyframe and the curve continues from there, in gap size defined by the last fragment.
15
- # That is, x1 1 x3 2 3 4 will place 2, 3 and 4 at 2-frame increments
16
-
17
- last_processed_keyframe = 1
18
- intraframe_gap_size = 1
19
- while atom = atoms.shift
20
- if atom =~ SECTION_START
21
- last_processed_keyframe = $1.to_i
22
- if tuples.any?
23
- last_captured_frame = tuples[-1][0]
24
- intraframe_gap_size = last_processed_keyframe - last_captured_frame
25
- end
26
- elsif atom =~ KEYFRAME
27
- tuples << [last_processed_keyframe, $1.to_f]
28
- last_processed_keyframe += intraframe_gap_size
29
- end
30
- end
31
- tuples
32
- end
33
- end