class CooCoo::DataSources::Xournal::Stroke

Constants

DefaultTool
Tools

Attributes

color[RW]
samples[R]
tool[RW]

Public Class Methods

new(tool = 'pen', color = 'black', samples = nil) click to toggle source
# File lib/coo-coo/data_sources/xournal/document.rb, line 206
def initialize(tool = 'pen', color = 'black', samples = nil)
  self.tool = tool
  @color = color
  @samples = samples || Array.new
end

Public Instance Methods

add_sample(x, y, w = 1) click to toggle source
# File lib/coo-coo/data_sources/xournal/document.rb, line 217
def add_sample(x, y, w = 1)
  @samples << Sample.new(x, y, w)
  self
end
delete_sample(sample) click to toggle source
# File lib/coo-coo/data_sources/xournal/document.rb, line 227
def delete_sample(sample)
  @samples.delete(sample)
  self
end
delete_sample_at(n) click to toggle source
# File lib/coo-coo/data_sources/xournal/document.rb, line 222
def delete_sample_at(n)
  @samples.delete_at(n)
  self
end
each_sample(&block) click to toggle source
# File lib/coo-coo/data_sources/xournal/document.rb, line 236
def each_sample(&block)
  @samples.each(&block)
end
minmax() click to toggle source
# File lib/coo-coo/data_sources/xournal/document.rb, line 248
def minmax
  xmin = nil
  xmax = nil
  ymin = nil
  ymax = nil

  xmin, xmax = @samples.collect(&:x).minmax
  ymin, ymax = @samples.collect(&:y).minmax
  
  [ [ xmin, ymin ], [ xmax, ymax ] ]
end
scale(sx, sy, sw = 1.0) click to toggle source
# File lib/coo-coo/data_sources/xournal/document.rb, line 244
def scale(sx, sy, sw = 1.0)
  self.class.new(tool, color, samples.collect { |s| s.scale(sx, sy, sw) })
end
size() click to toggle source
# File lib/coo-coo/data_sources/xournal/document.rb, line 232
def size
  @samples.size
end
tool=(t) click to toggle source
# File lib/coo-coo/data_sources/xournal/document.rb, line 212
def tool=(t)
  raise ArgumentError.new("Invalid tool: #{t.inspect}") unless t == nil || Tools.include?(t)
  @tool = t
end
translate(dx, dy) click to toggle source
# File lib/coo-coo/data_sources/xournal/document.rb, line 240
def translate(dx, dy)
  self.class.new(tool, color, samples.collect { |s| s.translate(dx, dy) })
end