## Libraries.Game.Shapes.Rectangle Documentation

The Rectangle class stores the location of an unrotated rectangle. This is managed as a location on the screen in (x,y) coordinates coupled with a given height and width.

Inherits from: Libraries.Language.Object

## Actions Documentation

### Area()

This action returns the area of the Rectangle.

#### Return

number:

Example

``````use Libraries.Game.Shapes.Rectangle
use Libraries.Game.Game

class Main is Game

Rectangle rectangle

action Main
StartGame()
end

action CreateGame
rectangle:SetRectangle(0, 0, 200, 100)
number area = rectangle:Area()
end
end
``````

### Compare(Libraries.Language.Object object)

This action compares two object hash codes and returns an integer. The result is larger if this hash code is larger than the object passed as a parameter, smaller, or equal. In this case, -1 means smaller, 0 means equal, and 1 means larger. This action was changed in Quorum 7 to return an integer, instead of a CompareResult object, because the previous implementation was causing efficiency issues.

#### Return

integer: The Compare result, Smaller, Equal, or Larger.

Example

``````Object o
Object t
integer result = o:Compare(t) //1 (larger), 0 (equal), or -1 (smaller)
``````

### Contains(number testX, number testY)

This action tests if the given point is contained within the Rectangle. If it is, this action will return true. Otherwise, it will return false.

• number testX
• number testY

#### Return

boolean:

Example

``````use Libraries.Game.Shapes.Rectangle
use Libraries.Game.Game

class Main is Game

Rectangle rectangle

action Main
StartGame()
end

action CreateGame
rectangle:SetRectangle(50, 50, 100, 100)
boolean hasPoint = rectangle:Contains(125, 75)
end
end
``````

### Contains(Libraries.Game.Shapes.Rectangle rectangle)

This action tests if the entire given Rectangle is contained within this Rectangle. If it is, this action will return true. Otherwise, it will return false.

#### Return

boolean:

Example

``````use Libraries.Game.Shapes.Rectangle
use Libraries.Game.Game

class Main is Game

Rectangle rectangle1
Rectangle rectangle2

action Main
StartGame()
end

action CreateGame
rectangle1:SetRectangle(50, 50, 100, 100)
rectangle2:SetRectangle(75, 75, 50, 50)
boolean contains = rectangle1:Contains(rectangle2)
end
end
``````

### CopyRectangle(Libraries.Game.Shapes.Rectangle rectangle)

This action sets the coordinates, width, and height of this rectangle to be the same as the given rectangle.

#### Parameters

Example

``````use Libraries.Game.Shapes.Rectangle
use Libraries.Game.Game

class Main is Game

Rectangle rectangle1
Rectangle rectangle2

action Main
StartGame()
end

action CreateGame
rectangle1:SetRectangle(20, 20, 200, 80)
rectangle2:CopyRectangle(rectangle1)
end
end
``````

### Equals(Libraries.Language.Object object)

This action determines if two objects are equal based on their hash code values.

#### Return

boolean: True if the hash codes are equal and false if they are not equal.

Example

``````use Libraries.Language.Object
use Libraries.Language.Types.Text
Object o
Text t
boolean result = o:Equals(t)
``````

### FitInside(Libraries.Game.Shapes.Rectangle rectangle)

This action scales this Rectangle so it maintains the same aspect ratio and fits inside the given Rectangle.

#### Parameters

Example

``````use Libraries.Game.Shapes.Rectangle
use Libraries.Game.Game

class Main is Game

Rectangle rectangle1
Rectangle rectangle2

action Main
StartGame()
end

action CreateGame
rectangle1:SetRectangle(0, 0, 200, 100)
rectangle2:SetRectangle(100, 100, 150, 200)
rectangle1:FitInside(rectangle2)
end
end
``````

### FitOutside(Libraries.Game.Shapes.Rectangle rectangle)

This action scales this Rectangle so it maintains the same aspect ratio and fits around the given Rectangle.

#### Parameters

Example

``````use Libraries.Game.Shapes.Rectangle
use Libraries.Game.Game

class Main is Game

Rectangle rectangle1
Rectangle rectangle2

action Main
StartGame()
end

action CreateGame
rectangle1:SetRectangle(0, 0, 200, 100)
rectangle2:SetRectangle(100, 100, 150, 200)
rectangle1:FitOutside(rectangle2)
end
end
``````

### GetAspectRatio()

This action will return the aspect ratio of the Rectangle, which is the ratio of the width over the height of the Rectangle.

#### Return

number:

Example

``````use Libraries.Game.Shapes.Rectangle
use Libraries.Game.Game

class Main is Game

Rectangle rectangle

action Main
StartGame()
end

action CreateGame
rectangle:SetSize(200, 100)
number ratio = rectangle:GetAspectRatio()
end
end
``````

### GetHashCode()

This action gets the hash code for an object.

#### Return

integer: The integer hash code of the object.

Example

``````Object o
integer hash = o:GetHashCode()
``````

### GetHeight()

This action returns the current height of the Rectangle.

#### Return

number:

Example

``````use Libraries.Game.Shapes.Rectangle
use Libraries.Game.Game

class Main is Game

Rectangle rectangle

action Main
StartGame()
end

action CreateGame
rectangle:SetHeight(100)
number height = rectangle:GetHeight()
end
end
``````

### GetWidth()

This action returns the current width of the Rectangle.

#### Return

number:

Example

``````use Libraries.Game.Shapes.Rectangle
use Libraries.Game.Game

class Main is Game

Rectangle rectangle

action Main
StartGame()
end

action CreateGame
rectangle:SetWidth(100)
number width = rectangle:GetWidth()
end
end
``````

### GetX()

This action returns the current x coordinate of the Rectangle.

#### Return

number:

Example

``````use Libraries.Game.Shapes.Rectangle
use Libraries.Game.Game

class Main is Game

Rectangle rectangle

action Main
StartGame()
end

action CreateGame
rectangle:SetRectangle(20, 20, 200, 80)
number x = rectangle:GetX()
end
end
``````

### GetY()

This action returns the current y coordinate of the Rectangle.

#### Return

number:

Example

``````use Libraries.Game.Shapes.Rectangle
use Libraries.Game.Game

class Main is Game

Rectangle rectangle

action Main
StartGame()
end

action CreateGame
rectangle:SetRectangle(20, 20, 200, 80)
number y = rectangle:GetY()
end
end
``````

### Merge(Libraries.Game.Shapes.Rectangle rectangle)

This action will make this Rectangle expand to contain the given Rectangle.

#### Parameters

Example

``````use Libraries.Game.Shapes.Rectangle
use Libraries.Game.Game

class Main is Game

Rectangle rectangle1
Rectangle rectangle2

action Main
StartGame()
end

action CreateGame
rectangle1:SetRectangle(50, 50, 100, 100)
rectangle2:SetRectangle(100, 100, 100, 100)
rectangle1:Merge(rectangle2)
end
end
``````

### Merge(number pointX, number pointY)

This action will make this Rectangle expand to contain the given point.

#### Parameters

• number pointX
• number pointY

Example

``````use Libraries.Game.Shapes.Rectangle
use Libraries.Game.Game

class Main is Game

Rectangle rectangle

action Main
StartGame()
end

action CreateGame
rectangle:SetRectangle(50, 50, 100, 100)
rectangle:Merge(75, 250)
end
end
``````

### Overlaps(Libraries.Game.Shapes.Rectangle rectangle)

This action tests if the given Rectangle overlaps with this Rectangle. If it is, this action will return true. Otherwise, it will return false.

#### Return

boolean:

Example

``````use Libraries.Game.Shapes.Rectangle
use Libraries.Game.Game

class Main is Game

Rectangle rectangle1
Rectangle rectangle2

action Main
StartGame()
end

action CreateGame
rectangle1:SetRectangle(50, 50, 100, 100)
rectangle2:SetRectangle(100, 100, 100, 100)
boolean overlap = rectangle1:Overlaps(rectangle2)
end
end
``````

### Perimeter()

This action returns the perimeter of the Rectangle.

#### Return

number:

Example

``````use Libraries.Game.Shapes.Rectangle
use Libraries.Game.Game

class Main is Game

Rectangle rectangle

action Main
StartGame()
end

action CreateGame
rectangle:SetRectangle(0, 0, 200, 100)
number perimeter = rectangle:Perimeter()
end
end
``````

### SetCenter(number centerX, number centerY)

This action will set the x, y coordinates of the Rectangle so that the center of the Rectangle is at the given x, y coordinates.

#### Parameters

• number centerX
• number centerY

Example

``````use Libraries.Game.Shapes.Rectangle
use Libraries.Game.Game

class Main is Game

Rectangle rectangle

action Main
StartGame()
end

action CreateGame
rectangle:SetSize(200, 100)
rectangle:SetCenter(200, 150)
end
end
``````

### SetHeight(number newHeight)

This action sets the current height of the Rectangle.

#### Parameters

• number newHeight

Example

``````use Libraries.Game.Shapes.Rectangle
use Libraries.Game.Game

class Main is Game

Rectangle rectangle

action Main
StartGame()
end

action CreateGame
rectangle:SetHeight(100)
end
end
``````

### SetPosition(number newX, number newY)

This action sets the x and y coordinates of the Rectangle.

#### Parameters

• number newX
• number newY

Example

``````use Libraries.Game.Shapes.Rectangle
use Libraries.Game.Game

class Main is Game

Rectangle rectangle

action Main
StartGame()
end

action CreateGame
rectangle:SetPosition(80, 100)
end
end
``````

### SetRectangle(number newX, number newY, number newWidth, number newHeight)

This action sets the x and y coordinates of the Rectangle, along with the width and height.

#### Parameters

• number newX
• number newY
• number newWidth
• number newHeight

Example

``````use Libraries.Game.Shapes.Rectangle
use Libraries.Game.Game

class Main is Game

Rectangle rectangle

action Main
StartGame()
end

action CreateGame
rectangle:SetRectangle(20, 20, 200, 80)
end
end
``````

### SetSize(number newWidth, number newHeight)

This action sets the width and height of the Rectangle.

#### Parameters

• number newWidth
• number newHeight

Example

``````use Libraries.Game.Shapes.Rectangle
use Libraries.Game.Game

class Main is Game

Rectangle rectangle

action Main
StartGame()
end

action CreateGame
rectangle:SetSize(40, 70)
end
end
``````

### SetSquare(number scale)

This action sets the width and height of the rectangle to be the given value, making it into a square.

#### Parameters

• number scale

Example

``````use Libraries.Game.Shapes.Rectangle
use Libraries.Game.Game

class Main is Game

Rectangle rectangle

action Main
StartGame()
end

action CreateGame
rectangle:SetSquare(60)
end
end
``````

### SetWidth(number newWidth)

This action sets the current width of the Rectangle.

#### Parameters

• number newWidth

Example

``````use Libraries.Game.Shapes.Rectangle
use Libraries.Game.Game

class Main is Game

Rectangle rectangle

action Main
StartGame()
end

action CreateGame
rectangle:SetWidth(100)
end
end
``````

### SetX(number newX)

This action sets the current x coordinate of the Rectangle.

#### Parameters

• number newX

Example

``````use Libraries.Game.Shapes.Rectangle
use Libraries.Game.Game

class Main is Game

Rectangle rectangle

action Main
StartGame()
end

action CreateGame
rectangle:SetX(40)
end
end
``````

### SetY(number newY)

This action sets the current y coordinate of the Rectangle.

#### Parameters

• number newY

Example

``````use Libraries.Game.Shapes.Rectangle
use Libraries.Game.Game

class Main is Game

Rectangle rectangle

action Main
StartGame()
end

action CreateGame
rectangle:SetY(75)
end
end
``````