Class: ChunkyPNG::Point
- Inherits:
-
Object
- Object
- ChunkyPNG::Point
- Defined in:
- lib/chunky_png/point.rb
Overview
Simple class that represents a point on a canvas using an x and y coordinate.
This class implements some basic methods to handle comparison, the splat operator and bounds checking that make it easier to work with coordinates.
Constant Summary
Instance Attribute Summary (collapse)
-
- (Integer) x
The x-coordinate of the point.
-
- (Integer) y
The y-coordinate of the point.
Instance Method Summary (collapse)
-
- (-1, ...) <=>(other)
Compares 2 points.
-
- (true, false) eql?(other)
(also: #==)
Checks whether 2 points are identical.
-
- (Point) initialize(x, y)
constructor
Initializes a new point instance.
-
- (Array) to_a
(also: #to_ary)
Converts the point instance to an array.
-
- (true, false) within_bounds?(*dimension_like)
Checks whether the point falls into a dimension.
Constructor Details
- (Point) initialize(x, y)
Initializes a new point instance.
72 73 74 |
# File 'lib/chunky_png/point.rb', line 72 def initialize(x, y) @x, @y = x.to_i, y.to_i end |
Instance Attribute Details
- (Integer) x
The x-coordinate of the point.
64 65 66 |
# File 'lib/chunky_png/point.rb', line 64 def x @x end |
- (Integer) y
The y-coordinate of the point.
67 68 69 |
# File 'lib/chunky_png/point.rb', line 67 def y @y end |
Instance Method Details
- (-1, ...) <=>(other)
Compares 2 points.
It will first compare the y coordinate, and it only takes the x-coordinate into account if the y-coordinates of the points are identical. This way, an array of points will be sorted into the order in which they would occur in the pixels array returned by Canvas#pixels.
94 95 96 |
# File 'lib/chunky_png/point.rb', line 94 def <=>(other) ((y <=> other.y) == 0) ? x <=> other.x : y <=> other.y end |
- (true, false) eql?(other) Also known as: ==
Checks whether 2 points are identical.
78 79 80 |
# File 'lib/chunky_png/point.rb', line 78 def eql?(other) other.x == x && other.y == y end |
- (Array) to_a Also known as: to_ary
Converts the point instance to an array.
100 101 102 |
# File 'lib/chunky_png/point.rb', line 100 def to_a [x, y] end |
- (true, false) within_bounds?(*dimension_like)
Checks whether the point falls into a dimension
111 112 113 |
# File 'lib/chunky_png/point.rb', line 111 def within_bounds?(*dimension_like) ChunkyPNG::Dimension(*dimension_like).include?(self) end |