Class: Tracksperanto::Middleware::Base

Inherits:
Object
  • Object
show all
Includes:
BlockInit, Casts, ConstName, SimpleExport
Defined in:
lib/middleware/base.rb

Overview

The base middleware class works just like a Tracksperanto::Export::Base, but it only wraps another exporting object and does not get registered on it’s own as an export format. Middleware can be used to massage the tracks being exported in various interesting ways - like moving the coordinates, clipping the keyframes, scaling the whole export or even reversing the trackers to go backwards

Direct Known Subclasses

Golden, Prefix, Reformat, Scaler, Shift, Slipper

Class Method Summary collapse

Instance Method Summary collapse

Methods included from SimpleExport

#just_export

Methods included from ConstName

#const_name, included

Methods included from Casts

#cast_to_float, #cast_to_int, #cast_to_string, included

Constructor Details

#initialize(exporter, *args_for_block_init) ⇒ Base

Constructor accepts the exporter that will be wrapped



18
19
20
21
# File 'lib/middleware/base.rb', line 18

def initialize(exporter, *args_for_block_init)
  @exporter = exporter
  super(*args_for_block_init)
end

Class Method Details

.inherited(by) ⇒ Object

Used to automatically register your middleware in Tracksperanto.middlewares Normally you wouldn’t need to override this



12
13
14
15
# File 'lib/middleware/base.rb', line 12

def self.inherited(by)
  Tracksperanto.middlewares << by
  super
end

Instance Method Details

#end_exportObject

Called on export end



29
30
31
# File 'lib/middleware/base.rb', line 29

def end_export
  @exporter.end_export
end

#end_tracker_segmentObject

Called on tracker end



40
41
42
# File 'lib/middleware/base.rb', line 40

def end_tracker_segment
  @exporter.end_tracker_segment
end

#export_point(at_frame_i, abs_float_x, abs_float_y, float_residual) ⇒ Object

Called for each tracker keyframe



45
46
47
# File 'lib/middleware/base.rb', line 45

def export_point(at_frame_i, abs_float_x, abs_float_y, float_residual)
  @exporter.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



24
25
26
# File 'lib/middleware/base.rb', line 24

def start_export( img_width, img_height)
  @exporter.start_export(img_width, img_height)
end

#start_tracker_segment(tracker_name) ⇒ Object

Called on tracker start, one for each tracker. Start of the next tracker signifies that the previous tracker has passed by



35
36
37
# File 'lib/middleware/base.rb', line 35

def start_tracker_segment(tracker_name)
  @exporter.start_tracker_segment(tracker_name)
end