Class: ChunkyPNG::Dimension

Inherits:
Object
  • Object
show all
Defined in:
lib/chunky_png/dimension.rb

Overview

Class that represents the dimension of something, e.g. a Canvas.

This class contains some methods to simplify performing dimension related checks.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(width, height) ⇒ Dimension

Initializes a new dimension instance.

Parameters:

  • width (Integer)

    The width-component of the new dimension.

  • height (Integer)

    The height-component of the new dimension.



82
83
84
# File 'lib/chunky_png/dimension.rb', line 82

def initialize(width, height)
  @width, @height = width.to_i, height.to_i
end

Instance Attribute Details

#heightInteger

Returns The height-component of this dimension.

Returns:

  • (Integer)

    The height-component of this dimension.



77
78
79
# File 'lib/chunky_png/dimension.rb', line 77

def height
  @height
end

#widthInteger

Returns The width-component of this dimension.

Returns:

  • (Integer)

    The width-component of this dimension.



74
75
76
# File 'lib/chunky_png/dimension.rb', line 74

def width
  @width
end

Instance Method Details

#<=>(other) ⇒ -1, ...

Compares the size of 2 dimensions.

Parameters:

Returns:

  • (-1, 0, 1)

    -1 if the other dimension has a larger area, 1 of this dimension is larger, 0 if both are identical in size.



121
122
123
# File 'lib/chunky_png/dimension.rb', line 121

def <=>(other)
  other.area <=> area
end

#areaInteger

Returns the area of this dimension.

Returns:

  • (Integer)

    The area in number of pixels.



88
89
90
# File 'lib/chunky_png/dimension.rb', line 88

def area
  width * height
end

#eql?(other) ⇒ true, false Also known as: ==

Checks whether 2 dimensions are identical.

Parameters:

Returns:

  • (true, false)

    true iff width and height match.



104
105
106
107
# File 'lib/chunky_png/dimension.rb', line 104

def eql?(other)
  return false unless other.respond_to?(:width) && other.respond_to?(:height)
  other.width == width && other.height == height
end

#hashInteger

Calculates a hash for the dimension object, based on width and height

Returns:

  • (Integer)

    A hashed value of the dimensions



113
114
115
# File 'lib/chunky_png/dimension.rb', line 113

def hash
  [width, height].hash
end

#include?(*point_like) ⇒ true, false

Checks whether a point is within bounds of this dimension.

Parameters:

Returns:

  • (true, false)

    True iff the x and y coordinate fall in this dimension.

See Also:



96
97
98
99
# File 'lib/chunky_png/dimension.rb', line 96

def include?(*point_like)
  point = ChunkyPNG::Point(*point_like)
  point.x >= 0 && point.x < width && point.y >= 0 && point.y < height
end

#to_aArray<Integer> Also known as: to_ary

Casts this dimension into an array.

Returns:

  • (Array<Integer>)

    [width, height] for this dimension.



127
128
129
# File 'lib/chunky_png/dimension.rb', line 127

def to_a
  [width, height]
end