Class: Geometry::SizedSquare

Inherits:
Square
  • Object
show all
Defined in:
lib/geometry/square.rb

Overview

A Square created with an origin point and a size

Accessors collapse

Instance Attribute Summary collapse

Attributes inherited from Square

#closed?, #edges

Accessors collapse

Instance Method Summary collapse

Methods inherited from Square

#minmax, new, #path, #vertices

Methods included from ClusterFactory

included

Constructor Details

#initialize(origin, size) ⇒ SizedSquare

Returns a new instance of SizedSquare.

Parameters:

  • origin (Point)

    The origin point (bottom-left corner)

  • size (Numeric)

    The length of each side



200
201
202
203
# File 'lib/geometry/square.rb', line 200

def initialize(origin, size)
    @origin = Point[origin]
    @size = size
end

Instance Attribute Details

#centerObject



208
209
210
# File 'lib/geometry/square.rb', line 208

def center
    origin + size/2
end

#originPoint (readonly)

Returns The lower left corner.

Returns:

  • (Point)

    The lower left corner



224
225
226
# File 'lib/geometry/square.rb', line 224

def origin
    @origin
end

#pointsArray<Point> (readonly)

Returns The Geometry::Square‘s four points (clockwise).

Returns:



230
231
232
233
234
235
236
237
# File 'lib/geometry/square.rb', line 230

def points
    minx = origin.x
    maxx = origin.x + size
    miny = origin.y
    maxy = origin.y + size

    [origin, Point[minx, maxy], Point[maxx, maxy], Point[maxx,miny]]
end

#sizeSize

Returns The Geometry::Size of the Geometry::Square.

Returns:



196
197
198
# File 'lib/geometry/square.rb', line 196

def size
  @size
end

Instance Method Details

#heightNumber

Returns The size of the Geometry::Square along the y-axis.

Returns:



240
241
242
# File 'lib/geometry/square.rb', line 240

def height
    @size
end

#maxPoint

Returns The upper right corner of the bounding Rectangle.

Returns:



213
214
215
# File 'lib/geometry/square.rb', line 213

def max
    origin + size
end

#minPoint

Returns The lower left corner of the bounding Rectangle.

Returns:



218
219
220
# File 'lib/geometry/square.rb', line 218

def min
    origin
end

#widthNumber

Returns The size of the Geometry::Square along the x-axis.

Returns:



245
246
247
# File 'lib/geometry/square.rb', line 245

def width
    @size
end