Thing

Thing

new Thing()

Source:
A generic class that other elements inherit from.

Members

layer

Source:
Sets the layer of the Thing and marks the sortInvalidated flag so any Graphics instances drawing it know to re-sort.

Methods

containsPoint(x, y) → {boolean}

Source:
Check if a given point is within the Thing. This function only works in subclasses of Thing.
Example
// this method is on every Shape
let thing = new Thing();
if (thing.containsPoint(100, 100)) {
    alert('contains 100, 100!');
}
Parameters:
Name Type Description
x number The x coordinate of the point being checked.
y number The y coordinate of the point being checked.
Returns:
Whether the point x, y is within the Thing.
Type
boolean

describe()

Source:
Describes the element for use with screen readers. This isn't something you should need to call manually, but you can if you'd like to print a text descriptino of the Thing.

draw(context, subclassDraw)

Source:
This function is invoked by subclassed, and exists to add common, shared functionality all classes share.
Parameters:
Name Type Description
context CanvasRenderingContext2D
subclassDraw function

focus()

Source:
Focuses the element for use with screen readers. This isn't something you should need to call manually, but you can if you'd like to provide focus to an element even if it wasn't navigated to with the keyboard.

getAnchor() → {Object}

Source:
Gets the element's anchor.
Returns:
Type
Object

getBorderColor() → {Color}

Source:
Gets the border color of a Thing.
Example
// this method is on every Shape
let thing = new Thing();
thing.getBorderColor();
Returns:
The color of the Thing's border.
Type
Color

getBorderWidth() → {number}

Source:
Gets the width of the Thing's border.
Example
// this method is on every Shape
let thing = new Thing();
thing.getBorderWidth();
Returns:
The width of the Thing's border.
Type
number

getBounds() → {Object}

Source:
Get the elements bounds. This is an internal property that you shouldn't need to use, but it can be useful for doing quick calculations for the bounding box of a shape.
Example
// this method is on every Shape
let thing = new Thing();
let height = thing.getBounds().bottom - this.getBounds().top;
Returns:
Type
Object

getColor() → {Color}

Source:
Gets the color of a Thing.
Example
// this method is on every Shape
let thing = new Thing();
thing.getColor(); // #000000, by default
Returns:
The destination y coordinate of this Thing.
Type
Color

getType() → {string}

Source:
Get the .type of the Thing
Returns:
Type
string

getX() → {number}

Source:
Gets the x position of the Thing.
Example
thing.x === thing.getX();
Returns:
The x position of the Thing.
Type
number

getY() → {number}

Source:
Gets the y position of the Thing.
Example
thing.y === thing.getY();
Returns:
The y position of the Thing.
Type
number

hasBorder() → {boolean}

Source:
Returns if a Thing has a border.
Example
// this method is on every Shape
let thing = new Thing();
thing.hasBorder();
Returns:
True if the Thing has a border.
Type
boolean

isFilled() → {boolean}

Source:
Returns if a Thing is filled.
Example
// this method is on every Shape
let thing = new Thing();
thing.isFilled();
Returns:
True if the Thing is filled.
Type
boolean

move(dx, dy)

Source:
Changes the possition of a thing by a specified x and y amount.
Example
// this method is on every Shape
let thing = new Thing();
thing.move(10, 10);
Parameters:
Name Type Description
dx number The resulting change in the Thing's x position.
dy number The resulting change in the Thing's y position.

rotate(degrees, angleUnit)

Source:
Rotates a Thing an additional amount of degrees.
Example
// this method is on every Shape
let thing = new Thing();
thing.rotate(90);
thing.rotate(Math.PI / 2, Thing.RADIANS);
Parameters:
Name Type Description
degrees number The degrees to rotate degrees.
angleUnit number Whether it is degrees or radians. Defaults to degrees.

setAnchor(anchor)

Source:
Sets the Anchor for the object. This alters how the shape will draw relative to its position. An anchor of 0, 0 will cause the shape to draw with its position at its top left corner. An anchor of 1, 1 will cause the shape to draw with its position at its bottom right corner.
Example
// this method is on every Shape
let thing = new Thing();
// center the object around its position
thing.setPosition({vertical: 0.5, horizontal: 0.5});
Parameters:
Name Type Description
anchor Object

setBorder(hasBorder)

Source:
Sets a Thing object to filled. Throws an error if an argument is not passed.
Example
// this method is on every Shape
let thing = new Thing();
thing.setBorder(true);
Parameters:
Name Type Description
hasBorder bool A boolean of whether or not Thing has a border.

setBorderColor(color)

Source:
Sets the border color of a Thing. Throws an error if there are fewer than 1 params or if the param is undefined. This will automatically give the Thing a border, as if you had called thing.setBorder(true);
Example
// this method is on every Shape
let thing = new Thing();
thing.setBorderColor('orange');
Parameters:
Name Type Description
color Color The resulting color of the Thing's border.

setBorderWidth(width)

Source:
Sets the width of a Thing's border. Throws an error if there is not 1 argument. This will automatically set the Thing to draw with a border, as if you had called thing.setBorder(true);
Example
// this method is on every Shape
let thing = new Thing();
thing.setBorderWidth(5);
Parameters:
Name Type Description
width number The resulting width of the Thing's border.

setColor(color)

Source:
Sets the color of a Thing. Throws an error if there are fewer than 1 params or if the param is undefined.
Example
// this method is on every Shape
let thing = new Thing();
thing.setColor('red');
thing.setColor(Color.orange);
thing.setColor('#ff0000');
Parameters:
Name Type Description
color Color The resulting color of Thing.

setFilled(filled)

Source:
Sets a Thing object to filled. Throws an error if an argument is not passed.
Example
// this method is on every Shape
let thing = new Thing();
thing.setFilled(false);
Parameters:
Name Type Description
filled bool A boolean of whether or not Thing is filled.

setOpacity(opacity)

Source:
Set the opacity of the Thing.
Example
// this method is on every Shape
let thing = new Thing();
thing.setOpacity(0.5);
Parameters:
Name Type Description
opacity number

setPosition(x, y)

Source:
Sets the position of a Thing. Throws an error if there are fewer than 2 params or if they are not numbers.
Example
// this method is on every Shape
let thing = new Thing();
thing.setPosition(30, 30);
Parameters:
Name Type Description
x number The destination x coordinate of this Thing.
y number The destination y coordinate of this Thing.

setRotation(degrees, angleUnit)

Source:
Sets the rotation of a Thing in degrees. Throws an error if there are fewer than 1 params or if they are not numbers.
Example
// this method is on every Shape
let thing = new Thing();
thing.setRotation(90);
thing.setRotation(Math.PI / 2, Thing.RADIANS);
Parameters:
Name Type Description
degrees number The degrees to rotate degrees.
angleUnit number Whether it is degrees or radians. Defaults to degrees.

setType(type)

Source:
Set the .type of the Thing
Parameters:
Name Type Description
type string new type

unfocus()

Source:
Unfocuses the element for use with screen readers. This isn't something you should need to call manually, but you can if you'd like to unfocus to an element even if it wasn't navigated from with the keyboard.

Thing

new Thing()

Source:
Constructs a new Thing.

Members

layer

Source:
Sets the layer of the Thing and marks the sortInvalidated flag so any Graphics instances drawing it know to re-sort.

Methods

containsPoint(x, y) → {boolean}

Source:
Check if a given point is within the Thing. This function only works in subclasses of Thing.
Example
// this method is on every Shape
let thing = new Thing();
if (thing.containsPoint(100, 100)) {
    alert('contains 100, 100!');
}
Parameters:
Name Type Description
x number The x coordinate of the point being checked.
y number The y coordinate of the point being checked.
Returns:
Whether the point x, y is within the Thing.
Type
boolean

describe()

Source:
Describes the element for use with screen readers. This isn't something you should need to call manually, but you can if you'd like to print a text descriptino of the Thing.

draw(context, subclassDraw)

Source:
This function is invoked by subclassed, and exists to add common, shared functionality all classes share.
Parameters:
Name Type Description
context CanvasRenderingContext2D
subclassDraw function

focus()

Source:
Focuses the element for use with screen readers. This isn't something you should need to call manually, but you can if you'd like to provide focus to an element even if it wasn't navigated to with the keyboard.

getAnchor() → {Object}

Source:
Gets the element's anchor.
Returns:
Type
Object

getBorderColor() → {Color}

Source:
Gets the border color of a Thing.
Example
// this method is on every Shape
let thing = new Thing();
thing.getBorderColor();
Returns:
The color of the Thing's border.
Type
Color

getBorderWidth() → {number}

Source:
Gets the width of the Thing's border.
Example
// this method is on every Shape
let thing = new Thing();
thing.getBorderWidth();
Returns:
The width of the Thing's border.
Type
number

getBounds() → {Object}

Source:
Get the elements bounds. This is an internal property that you shouldn't need to use, but it can be useful for doing quick calculations for the bounding box of a shape.
Example
// this method is on every Shape
let thing = new Thing();
let height = thing.getBounds().bottom - this.getBounds().top;
Returns:
Type
Object

getColor() → {Color}

Source:
Gets the color of a Thing.
Example
// this method is on every Shape
let thing = new Thing();
thing.getColor(); // #000000, by default
Returns:
The destination y coordinate of this Thing.
Type
Color

getType() → {string}

Source:
Get the .type of the Thing
Returns:
Type
string

getX() → {number}

Source:
Gets the x position of the Thing.
Example
thing.x === thing.getX();
Returns:
The x position of the Thing.
Type
number

getY() → {number}

Source:
Gets the y position of the Thing.
Example
thing.y === thing.getY();
Returns:
The y position of the Thing.
Type
number

hasBorder() → {boolean}

Source:
Returns if a Thing has a border.
Example
// this method is on every Shape
let thing = new Thing();
thing.hasBorder();
Returns:
True if the Thing has a border.
Type
boolean

isFilled() → {boolean}

Source:
Returns if a Thing is filled.
Example
// this method is on every Shape
let thing = new Thing();
thing.isFilled();
Returns:
True if the Thing is filled.
Type
boolean

move(dx, dy)

Source:
Changes the possition of a thing by a specified x and y amount.
Example
// this method is on every Shape
let thing = new Thing();
thing.move(10, 10);
Parameters:
Name Type Description
dx number The resulting change in the Thing's x position.
dy number The resulting change in the Thing's y position.

rotate(degrees, angleUnit)

Source:
Rotates a Thing an additional amount of degrees.
Example
// this method is on every Shape
let thing = new Thing();
thing.rotate(90);
thing.rotate(Math.PI / 2, Thing.RADIANS);
Parameters:
Name Type Description
degrees number The degrees to rotate degrees.
angleUnit number Whether it is degrees or radians. Defaults to degrees.

setAnchor(anchor)

Source:
Sets the Anchor for the object. This alters how the shape will draw relative to its position. An anchor of 0, 0 will cause the shape to draw with its position at its top left corner. An anchor of 1, 1 will cause the shape to draw with its position at its bottom right corner.
Example
// this method is on every Shape
let thing = new Thing();
// center the object around its position
thing.setPosition({vertical: 0.5, horizontal: 0.5});
Parameters:
Name Type Description
anchor Object

setBorder(hasBorder)

Source:
Sets a Thing object to filled. Throws an error if an argument is not passed.
Example
// this method is on every Shape
let thing = new Thing();
thing.setBorder(true);
Parameters:
Name Type Description
hasBorder bool A boolean of whether or not Thing has a border.

setBorderColor(color)

Source:
Sets the border color of a Thing. Throws an error if there are fewer than 1 params or if the param is undefined. This will automatically give the Thing a border, as if you had called thing.setBorder(true);
Example
// this method is on every Shape
let thing = new Thing();
thing.setBorderColor('orange');
Parameters:
Name Type Description
color Color The resulting color of the Thing's border.

setBorderWidth(width)

Source:
Sets the width of a Thing's border. Throws an error if there is not 1 argument. This will automatically set the Thing to draw with a border, as if you had called thing.setBorder(true);
Example
// this method is on every Shape
let thing = new Thing();
thing.setBorderWidth(5);
Parameters:
Name Type Description
width number The resulting width of the Thing's border.

setColor(color)

Source:
Sets the color of a Thing. Throws an error if there are fewer than 1 params or if the param is undefined.
Example
// this method is on every Shape
let thing = new Thing();
thing.setColor('red');
thing.setColor(Color.orange);
thing.setColor('#ff0000');
Parameters:
Name Type Description
color Color The resulting color of Thing.

setFilled(filled)

Source:
Sets a Thing object to filled. Throws an error if an argument is not passed.
Example
// this method is on every Shape
let thing = new Thing();
thing.setFilled(false);
Parameters:
Name Type Description
filled bool A boolean of whether or not Thing is filled.

setOpacity(opacity)

Source:
Set the opacity of the Thing.
Example
// this method is on every Shape
let thing = new Thing();
thing.setOpacity(0.5);
Parameters:
Name Type Description
opacity number

setPosition(x, y)

Source:
Sets the position of a Thing. Throws an error if there are fewer than 2 params or if they are not numbers.
Example
// this method is on every Shape
let thing = new Thing();
thing.setPosition(30, 30);
Parameters:
Name Type Description
x number The destination x coordinate of this Thing.
y number The destination y coordinate of this Thing.

setRotation(degrees, angleUnit)

Source:
Sets the rotation of a Thing in degrees. Throws an error if there are fewer than 1 params or if they are not numbers.
Example
// this method is on every Shape
let thing = new Thing();
thing.setRotation(90);
thing.setRotation(Math.PI / 2, Thing.RADIANS);
Parameters:
Name Type Description
degrees number The degrees to rotate degrees.
angleUnit number Whether it is degrees or radians. Defaults to degrees.

setType(type)

Source:
Set the .type of the Thing
Parameters:
Name Type Description
type string new type

unfocus()

Source:
Unfocuses the element for use with screen readers. This isn't something you should need to call manually, but you can if you'd like to unfocus to an element even if it wasn't navigated from with the keyboard.