Class: CooCoo::DataSources::Xournal::Stroke
- Defined in:
- lib/coo-coo/data_sources/xournal/document.rb
Constant Summary collapse
- Tools =
[ 'pen', 'highlighter', 'eraser' ]
- DefaultTool =
Tools.first
Instance Attribute Summary collapse
-
#color ⇒ Object
Returns the value of attribute color.
-
#samples ⇒ Object
readonly
Returns the value of attribute samples.
-
#tool ⇒ Object
Returns the value of attribute tool.
Instance Method Summary collapse
- #add_sample(x, y, w = 1) ⇒ Object
- #delete_sample(sample) ⇒ Object
- #delete_sample_at(n) ⇒ Object
- #each_sample(&block) ⇒ Object
-
#initialize(tool = 'pen', color = 'black', samples = nil) ⇒ Stroke
constructor
A new instance of Stroke.
- #minmax ⇒ Object
- #scale(sx, sy, sw = 1.0) ⇒ Object
- #size ⇒ Object
- #translate(dx, dy) ⇒ Object
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
#color ⇒ Object
Returns the value of attribute color.
201 202 203 |
# File 'lib/coo-coo/data_sources/xournal/document.rb', line 201 def color @color end |
#samples ⇒ Object (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 |
#tool ⇒ Object
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 |
#minmax ⇒ Object
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 |
#size ⇒ Object
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 |