Class: Tracksperanto::Export::Base
- Inherits:
-
Object
- Object
- Tracksperanto::Export::Base
- Includes:
- ConstName, SimpleExport
- Defined in:
- lib/export/base.rb
Overview
Base exporter. Inherit from this class to automatically register another export format. The exporters in Tracksperanto are event-driven and follow the same conventions - your exporter will be notified when a tracker will be exported and when a tracker has been passed (the last keyframe has been sent). Here’s how you can operate any exporter module separately (this also demonstrates the calling convention and sequence):
File.open("destination.txt", "wb") do | f |
exporter = SomeExporter.new(f)
exporter.start_export(720, 576)
# Export the first tracker
exporter.start_tracker_segment("FirstPoint")
exporter.export_point(2, 123.43, 456.2, 0.2)
exporter.export_point(3, 23423.43, 768.1, 0.1)
exporter.end_tracker_segment
# Export the second tracker
exporter.start_tracker_segment("AnotherPoint")
....
exported.end_tracker_segment
exporter.end_export
end
By contract export_point will be called at least once for each tracker being exported (no empty trackers will be sent)
Direct Known Subclasses
AE, Boujou, Equalizer3, Equalizer4, FlameStabilizer, FlameStabilizer2014, MatchMover, Maxscript, MayaLive, MayaLocators, NukeScript, PFMatchit, PFTrack4, Ruby, ShakeText, SynthEyes, XSI
Instance Attribute Summary collapse
-
#io ⇒ Object
readonly
Returns the value of attribute io.
Class Method Summary collapse
-
.desc_and_extension ⇒ Object
Should return the suffix and extension of this export file (like “flame.stabilizer”), without the leading underscore.
-
.human_name ⇒ Object
Should return the human-readable (read: properly capitalized and with spaces) name of the export module.
- .inherited(by) ⇒ Object
Instance Method Summary collapse
-
#end_export ⇒ Object
Called on export end.
-
#end_tracker_segment ⇒ Object
Called on tracker end, once for each tracker.
-
#export_point(at_frame_i, abs_float_x, abs_float_y, float_residual) ⇒ Object
Called for each tracker keyframe, with the Tracksperanto internal coordinates and frame numbers.
-
#initialize(write_to_io) ⇒ Base
constructor
The constructor for an exporter should accept a handle to the IO object that you can write to.
-
#start_export(img_width, img_height) ⇒ Object
Called on export start.
-
#start_tracker_segment(tracker_name) ⇒ Object
Called on tracker start, once for each tracker.
Methods included from ConstName
Methods included from SimpleExport
Constructor Details
#initialize(write_to_io) ⇒ Base
The constructor for an exporter should accept a handle to the IO object that you can write to. This gets assigned to @io ivar by default, but you can do whatever you wish By convention, the caller owns the IO handle and will close it when you are done, so don’t close t yourself
50 51 52 |
# File 'lib/export/base.rb', line 50 def initialize(write_to_io) @io = write_to_io end |
Instance Attribute Details
#io ⇒ Object (readonly)
Returns the value of attribute io.
29 30 31 |
# File 'lib/export/base.rb', line 29 def io @io end |
Class Method Details
.desc_and_extension ⇒ Object
Should return the suffix and extension of this export file (like “flame.stabilizer”), without the leading underscore. It’s a class method because it gets requested before the exporter is instantiated
38 39 40 |
# File 'lib/export/base.rb', line 38 def self.desc_and_extension "data.txt" end |
.human_name ⇒ Object
Should return the human-readable (read: properly capitalized and with spaces) name of the export module
43 44 45 |
# File 'lib/export/base.rb', line 43 def self.human_name "Abstract export format" end |
.inherited(by) ⇒ Object
31 32 33 34 |
# File 'lib/export/base.rb', line 31 def self.inherited(by) Tracksperanto.exporters << by super end |
Instance Method Details
#end_export ⇒ Object
Called on export end. By convention, the caller will close the main IO when you are done so don’t do it here. However if you’ve allocated anything during export (like some Tempfiles) here will be the place to get rid of them
61 62 |
# File 'lib/export/base.rb', line 61 def end_export end |
#end_tracker_segment ⇒ Object
Called on tracker end, once for each tracker
74 75 |
# File 'lib/export/base.rb', line 74 def end_tracker_segment end |
#export_point(at_frame_i, abs_float_x, abs_float_y, float_residual) ⇒ Object
Called for each tracker keyframe, with the Tracksperanto internal coordinates and frame numbers. The calls come after start_tracker_segment and before end_tracker_segment
70 71 |
# File 'lib/export/base.rb', line 70 def export_point(at_frame_i, abs_float_x, abs_float_y, float_residual) end |
#start_export(img_width, img_height) ⇒ Object
Called on export start. Will receive the width and height of the comp being exported as Fixnums
55 56 |
# File 'lib/export/base.rb', line 55 def start_export( img_width, img_height) end |
#start_tracker_segment(tracker_name) ⇒ Object
Called on tracker start, once for each tracker. Receives the name of the tracker.
65 66 |
# File 'lib/export/base.rb', line 65 def start_tracker_segment(tracker_name) end |