tracksperanto 1.6.9 → 1.7.0

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
+ === 1.7.0 / 2010-01-24
2
+
3
+ * Fix edge cases of specific comp sizes outputting incorrect exports for Equalizer 3 and MatchMover
4
+
1
5
  === 1.6.9 / 2010-01-20
2
6
 
3
7
  * Make the commandline progress reports shorter
data/Manifest.txt CHANGED
@@ -49,7 +49,6 @@ lib/tracksperanto/simple_export.rb
49
49
  lib/tracksperanto/tracker.rb
50
50
  lib/tracksperanto/uv_coordinates.rb
51
51
  lib/tracksperanto/zip_tuples.rb
52
- test/export/.DS_Store
53
52
  test/export/README_EXPORT_TESTS.txt
54
53
  test/export/samples/ref_Mayalive.txt
55
54
  test/export/samples/ref_Mayalive_CustomAspect.txt
@@ -72,11 +71,9 @@ test/export/test_pftrack_export.rb
72
71
  test/export/test_shake_export.rb
73
72
  test/export/test_syntheyes_export.rb
74
73
  test/helper.rb
75
- test/import/.DS_Store
76
74
  test/import/samples/3de_v3/3de_export_v3.txt
77
75
  test/import/samples/3de_v4/3de_export_cube.txt
78
76
  test/import/samples/boujou_features_text/boujou_txt_export.txt
79
- test/import/samples/flame_stabilizer/.DS_Store
80
77
  test/import/samples/flame_stabilizer/fromCombustion_fromMidClip_wSnap.stabilizer
81
78
  test/import/samples/flame_stabilizer/hugeFlameSetup.stabilizer
82
79
  test/import/samples/flame_stabilizer/megaTrack.action.3dtrack.stabilizer
@@ -88,9 +85,7 @@ test/import/samples/nuke/one_tracker_with_break_in_grp.nk
88
85
  test/import/samples/nuke/tracker_with_differing_gaps.nk
89
86
  test/import/samples/nuke/tracker_with_repeating_gaps.nk
90
87
  test/import/samples/pftrack4/sourcefile_pftrack.2dt
91
- test/import/samples/pftrack5/.DS_Store
92
88
  test/import/samples/pftrack5/garage.2dt
93
- test/import/samples/shake_script/.DS_Store
94
89
  test/import/samples/shake_script/four_tracks_in_one_matchmove.shk
95
90
  test/import/samples/shake_script/four_tracks_in_one_stabilizer.shk
96
91
  test/import/samples/shake_script/shake_script_from_boujou.shk
@@ -103,7 +98,6 @@ test/import/samples/shake_script/two_tracks_in_one_tracker.shk
103
98
  test/import/samples/shake_text/one_shake_tracker.txt
104
99
  test/import/samples/shake_text/one_shake_tracker_from_first.txt
105
100
  test/import/samples/shake_text/two_shake_trackers.txt
106
- test/import/samples/syntheyes_2d_paths/.DS_Store
107
101
  test/import/samples/syntheyes_2d_paths/cola_plate.txt
108
102
  test/import/samples/syntheyes_2d_paths/flyover2DP_syntheyes.txt
109
103
  test/import/samples/syntheyes_2d_paths/shake_tracker_nodes_to_syntheyes.txt
data/lib/export/base.rb CHANGED
@@ -26,16 +26,16 @@ class Tracksperanto::Export::Base
26
26
 
27
27
  # The constructor for an exporter should accept a handle to the IO object that you can write to.
28
28
  # This gets assigned to @io ivar by default, but you can do whatever you wish
29
- # By convention, the caller will close the IO when you are done so don't do it here
29
+ # By convention, the caller owns the IO handle and will close it when you are done, so don't close t yourself
30
30
  def initialize(write_to_io)
31
31
  @io = write_to_io
32
32
  end
33
33
 
34
- # Called on export start. Will receive the width and height of the comp being exported
34
+ # Called on export start. Will receive the width and height of the comp being exported as Fixnums
35
35
  def start_export( img_width, img_height)
36
36
  end
37
37
 
38
- # Called on export end. By convention, the caller will close the IO when you are done so don't do it here.
38
+ # Called on export end. By convention, the caller will close the main IO when you are done so don't do it here.
39
39
  # However if you've allocated anything during export (like some Tempfiles) here will be the place to get rid
40
40
  # of them
41
41
  def end_export
@@ -1,7 +1,7 @@
1
1
  # Export for 3DE v3 point files
2
2
  class Tracksperanto::Export::Equalizer3 < Tracksperanto::Export::Base
3
3
 
4
- HEADER = '// 3DE Multiple Tracking Curves Export 2048 x 778 * 275 frames'
4
+ HEADER = '// 3DE Multiple Tracking Curves Export %d x %d * %d frames'
5
5
 
6
6
  def self.desc_and_extension
7
7
  "3de_v3.txt"
@@ -30,8 +30,7 @@ class Tracksperanto::Export::Equalizer3 < Tracksperanto::Export::Base
30
30
 
31
31
  def end_export
32
32
  @buffer.rewind
33
- preamble = HEADER.gsub(/2048/, @w.to_s).gsub(/778/, @h.to_s).gsub(/275/, @highest_keyframe.to_s)
34
- @io.puts(preamble)
33
+ @io.puts(HEADER % [@w, @h, @highest_keyframe])
35
34
  @io.puts(@buffer.read) until @buffer.eof?
36
35
  @buffer.close!
37
36
  @io.puts("") # Newline at end
@@ -38,11 +38,7 @@ class Tracksperanto::Export::Equalizer4 < Tracksperanto::Export::Base
38
38
  @internal_io.rewind
39
39
  @io.puts(@num_of_trackers)
40
40
  @io.puts(@internal_io.read)
41
- discard_io
41
+ @internal_io.close!
42
42
  end
43
43
 
44
- private
45
- def discard_io
46
- @internal_io.close!
47
- end
48
44
  end
@@ -9,7 +9,7 @@ class Tracksperanto::Export::MatchMover < Tracksperanto::Export::Base
9
9
  "Matchmover 2D export .rz2 file"
10
10
  end
11
11
 
12
- PREAMBLE = %[imageSequence "Sequence 01"\n{\n\t2560\t1080\tf( "D:/temp/sequence.%04d.dpx" )\tb( 1 211 1 )\t\n}\n]
12
+ PREAMBLE = %[imageSequence "Sequence 01"\n{\n\t%d\t%d\tf( "D:/temp/sequence.%%04d.dpx" )\tb( 1 211 1 )\t\n}\n]
13
13
  TRACKER_PREAMBLE = "pointTrack %s rgb( 255 0 0 ) \n{\n"
14
14
  TRACKER_POSTAMBLE = "}\n"
15
15
  FIRST_KEYFRAME_TEMPLATE = "\t%d\t %.3f %.3f ki( 0.8 )\t s( 66 66 64 64 ) p( 24 24 25 25 )"
@@ -17,7 +17,7 @@ class Tracksperanto::Export::MatchMover < Tracksperanto::Export::Base
17
17
 
18
18
  def start_export( img_width, img_height)
19
19
  @height = img_height
20
- @io.puts(PREAMBLE.gsub(/2560/, img_width.to_s).gsub(/1080/, img_height.to_s))
20
+ @io.puts(PREAMBLE % [img_width, img_height])
21
21
  end
22
22
 
23
23
  def start_tracker_segment(tracker_name)
data/lib/tracksperanto.rb CHANGED
@@ -4,7 +4,7 @@ require 'tempfile'
4
4
 
5
5
  module Tracksperanto
6
6
  PATH = File.expand_path(File.dirname(__FILE__))
7
- VERSION = '1.6.9'
7
+ VERSION = '1.7.0'
8
8
 
9
9
  module Import; end
10
10
  module Export; end
@@ -14,10 +14,10 @@ module Tracksperanto
14
14
  class << self
15
15
  # Returns the array of all exporter classes defined
16
16
  attr_accessor :exporters
17
-
17
+
18
18
  # Returns the array of all importer classes defined
19
19
  attr_accessor :importers
20
-
20
+
21
21
  # Returns the array of all available middlewares
22
22
  attr_accessor :middlewares
23
23
 
@@ -35,14 +35,13 @@ module Tracksperanto
35
35
  def middleware_names
36
36
  middlewares.map{|e| e.const_name }
37
37
  end
38
-
39
38
  end
40
39
 
41
40
  self.exporters, self.importers, self.middlewares = [], [], []
42
41
 
43
42
  end
44
43
 
45
- %w(
44
+ %w(
46
45
  const_name
47
46
  casts
48
47
  block_init
@@ -12,4 +12,13 @@ class Equalizer3ExportTestTest < Test::Unit::TestCase
12
12
  assert_equal "3de_v3.txt", Tracksperanto::Export::Equalizer3.desc_and_extension
13
13
  assert_equal "3DE v3 point export .txt file", Tracksperanto::Export::Equalizer3.human_name
14
14
  end
15
+
16
+ def test_export_for_format_does_not_override_preamble
17
+ out = StringIO.new
18
+ expt = Tracksperanto::Export::Equalizer3.new(out)
19
+ expt.start_export(2048, 275)
20
+ expt.end_export
21
+ assert_equal "// 3DE Multiple Tracking Curves Export 2048 x 275 * 0 frames\n\n", out.string,
22
+ "Frame count should not bleed into width"
23
+ end
15
24
  end
@@ -13,4 +13,13 @@ class MatchmoverExportTest < Test::Unit::TestCase
13
13
  assert_equal "Matchmover 2D export .rz2 file", Tracksperanto::Export::MatchMover.human_name
14
14
  end
15
15
 
16
+ def test_width_and_height_not_stepping_on_each_other_in_preamble
17
+ o = StringIO.new
18
+ expt = Tracksperanto::Export::MatchMover.new(o)
19
+ expt.start_export(1080, 720)
20
+ expt.end_export
21
+ assert_equal "imageSequence\t\"Sequence 01\"\n{\n\t1080\t720\tf( \"D:/temp/sequence.%04d.dpx\" )\tb( 1 211 1 )\t\n}\n",
22
+ o.string,
23
+ "The output width and height should be properly substituted"
24
+ end
16
25
  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.6.9
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Julik Tarkhanov
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-01-21 00:00:00 +01:00
12
+ date: 2010-01-24 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -96,7 +96,6 @@ files:
96
96
  - lib/tracksperanto/tracker.rb
97
97
  - lib/tracksperanto/uv_coordinates.rb
98
98
  - lib/tracksperanto/zip_tuples.rb
99
- - test/export/.DS_Store
100
99
  - test/export/README_EXPORT_TESTS.txt
101
100
  - test/export/samples/ref_Mayalive.txt
102
101
  - test/export/samples/ref_Mayalive_CustomAspect.txt
@@ -119,11 +118,9 @@ files:
119
118
  - test/export/test_shake_export.rb
120
119
  - test/export/test_syntheyes_export.rb
121
120
  - test/helper.rb
122
- - test/import/.DS_Store
123
121
  - test/import/samples/3de_v3/3de_export_v3.txt
124
122
  - test/import/samples/3de_v4/3de_export_cube.txt
125
123
  - test/import/samples/boujou_features_text/boujou_txt_export.txt
126
- - test/import/samples/flame_stabilizer/.DS_Store
127
124
  - test/import/samples/flame_stabilizer/fromCombustion_fromMidClip_wSnap.stabilizer
128
125
  - test/import/samples/flame_stabilizer/hugeFlameSetup.stabilizer
129
126
  - test/import/samples/flame_stabilizer/megaTrack.action.3dtrack.stabilizer
@@ -135,9 +132,7 @@ files:
135
132
  - test/import/samples/nuke/tracker_with_differing_gaps.nk
136
133
  - test/import/samples/nuke/tracker_with_repeating_gaps.nk
137
134
  - test/import/samples/pftrack4/sourcefile_pftrack.2dt
138
- - test/import/samples/pftrack5/.DS_Store
139
135
  - test/import/samples/pftrack5/garage.2dt
140
- - test/import/samples/shake_script/.DS_Store
141
136
  - test/import/samples/shake_script/four_tracks_in_one_matchmove.shk
142
137
  - test/import/samples/shake_script/four_tracks_in_one_stabilizer.shk
143
138
  - test/import/samples/shake_script/shake_script_from_boujou.shk
@@ -150,7 +145,6 @@ files:
150
145
  - test/import/samples/shake_text/one_shake_tracker.txt
151
146
  - test/import/samples/shake_text/one_shake_tracker_from_first.txt
152
147
  - test/import/samples/shake_text/two_shake_trackers.txt
153
- - test/import/samples/syntheyes_2d_paths/.DS_Store
154
148
  - test/import/samples/syntheyes_2d_paths/cola_plate.txt
155
149
  - test/import/samples/syntheyes_2d_paths/flyover2DP_syntheyes.txt
156
150
  - test/import/samples/syntheyes_2d_paths/shake_tracker_nodes_to_syntheyes.txt
Binary file
Binary file
Binary file