Class: Tracksperanto::Import::Base
- Inherits:
-
Object
- Object
- Tracksperanto::Import::Base
- Defined in:
- lib/import/base.rb
Overview
The base class for all the import modules. By default, when you inherit from this class the inherited class will be included in the list of supported Tracksperanto importers. The API that an importer should present is very basic, and consists only of a few methods. The main method is parse(io) which should return an array of Tracker objects.
Direct Known Subclasses
Boujou, Equalizer3, Equalizer4, FlameStabilizer, MatchMover, MayaLive, NukeScript, PFTrack, ShakeScript, ShakeText, Syntheyes
Instance Attribute Summary collapse
-
#height ⇒ Object
The original height of the comp, same conventions as for width apply.
-
#progress_block ⇒ Object
Tracksperanto will assign a proc that reports the status of the import to the caller.
-
#width ⇒ Object
The original width of the tracked image.
Class Method Summary collapse
-
.autodetects_size? ⇒ Boolean
Return true from this method if your importer can deduce the comp size from the passed file.
-
.distinct_file_ext ⇒ Object
Return an extension WITH DOT if this format has a typical extension that you can detect (like “.nk” for Nuke).
-
.human_name ⇒ Object
Should return a human-readable (read: properly capitalized and with spaces) name of the import format.
-
.inherited(by) ⇒ Object
Used to register your importer in the list of supported formats.
Instance Method Summary collapse
-
#parse(track_file_io) ⇒ Object
The main method of the parser.
-
#report_progress(message) ⇒ Object
Call this method from the inside of your importer to tell what you are doing.
Methods included from ConstName
Methods included from ZipTuples
Methods included from BlockInit
Methods included from Casts
#cast_to_float, #cast_to_int, #cast_to_string, included
Methods included from Safety
Instance Attribute Details
#height ⇒ Object
The original height of the comp, same conventions as for width apply
27 28 29 |
# File 'lib/import/base.rb', line 27 def height @height end |
#progress_block ⇒ Object
Tracksperanto will assign a proc that reports the status of the import to the caller. This block is automatically used by report_progress IF the proc is assigned. Should the proc be nil, the report_progress method will just pass (so you don’t need to check for nil yourself)
15 16 17 |
# File 'lib/import/base.rb', line 15 def progress_block @progress_block end |
#width ⇒ Object
The original width of the tracked image. If you need to know the width for your specific format and cannot autodetect it, Trakcksperanto will assign the passed width and height to the importer object before running the import. If not, you can replace the assigned values with your own. At the end of the import procedure, Tracksperanto will read the values from you again and will use the read values for determining the original comp size. width
and height
MUST return integer values after the import completes
24 25 26 |
# File 'lib/import/base.rb', line 24 def width @width end |
Class Method Details
.autodetects_size? ⇒ Boolean
Return true from this method if your importer can deduce the comp size from the passed file
53 54 55 |
# File 'lib/import/base.rb', line 53 def self.autodetects_size? false end |
.distinct_file_ext ⇒ Object
Return an extension WITH DOT if this format has a typical extension that you can detect (like “.nk” for Nuke)
42 43 44 |
# File 'lib/import/base.rb', line 42 def self.distinct_file_ext nil end |
.human_name ⇒ Object
Should return a human-readable (read: properly capitalized and with spaces) name of the import format
48 49 50 |
# File 'lib/import/base.rb', line 48 def self.human_name "Abstract import format" end |
.inherited(by) ⇒ Object
Used to register your importer in the list of supported formats. Normally you would not need to override this
35 36 37 38 |
# File 'lib/import/base.rb', line 35 def self.inherited(by) Tracksperanto.importers << by super end |
Instance Method Details
#parse(track_file_io) ⇒ Object
The main method of the parser. Will receive an IO handle to the file being imported, and should return an array of Tracksperanto::Tracker objects containing keyframes. If you have a problem doing an import, raise from here. Note that in general it’s a good idea to stream-parse a document instead of bulk-reading it into memory (since Tracksperanto tries to be mem-efficient when dealing with large files)
68 69 70 |
# File 'lib/import/base.rb', line 68 def parse(track_file_io) [] end |
#report_progress(message) ⇒ Object
Call this method from the inside of your importer to tell what you are doing. This gets propagated to the caller automatically, or gets ignored if the caller did not request any progress reports
59 60 61 |
# File 'lib/import/base.rb', line 59 def report_progress() @progress_block.call() if @progress_block end |