Class: CooCoo::DataSources::Xournal::Stroke

Inherits:
Object
  • Object
show all
Defined in:
lib/coo-coo/data_sources/xournal/document.rb

Constant Summary collapse

Tools =
[ 'pen', 'highlighter', 'eraser' ]
DefaultTool =
Tools.first

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(tool = 'pen', color = 'black', samples = nil) ⇒ Stroke

Returns a new instance of Stroke.



206
207
208
209
210
# 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

Instance Attribute Details

#colorObject

Returns the value of attribute color.



201
202
203
# File 'lib/coo-coo/data_sources/xournal/document.rb', line 201

def color
  @color
end

#samplesObject (readonly)

Returns the value of attribute samples.



199
200
201
# File 'lib/coo-coo/data_sources/xournal/document.rb', line 199

def samples
  @samples
end

#toolObject

Returns the value of attribute tool.



200
201
202
# File 'lib/coo-coo/data_sources/xournal/document.rb', line 200

def tool
  @tool
end

Instance Method Details

#add_sample(x, y, w = 1) ⇒ Object



217
218
219
220
# 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) ⇒ Object



227
228
229
230
# File 'lib/coo-coo/data_sources/xournal/document.rb', line 227

def delete_sample(sample)
  @samples.delete(sample)
  self
end

#delete_sample_at(n) ⇒ Object



222
223
224
225
# 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) ⇒ Object



236
237
238
# File 'lib/coo-coo/data_sources/xournal/document.rb', line 236

def each_sample(&block)
  @samples.each(&block)
end

#minmaxObject



248
249
250
251
252
253
254
255
256
257
258
# 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) ⇒ Object



244
245
246
# 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

#sizeObject



232
233
234
# File 'lib/coo-coo/data_sources/xournal/document.rb', line 232

def size
  @samples.size
end

#translate(dx, dy) ⇒ Object



240
241
242
# 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