MovingObjectInContainer

A supertype for objects that take up a rectangular area and have a velocity as well as a mutable position that may be constrained by a larger object around them.

trait HasEdges
trait HasAnchor
trait HasSize
trait HasPos
class Object
trait Matchable
class Any

Value members

Concrete methods

Causes the object’s pos to change: the object moves from its current location at its current velocity for one unit of time. That is, the dx and dy components of the velocity are added to the object’s pos.

Causes the object’s pos to change: the object moves from its current location at its current velocity for one unit of time. That is, the dx and dy components of the velocity are added to the object’s pos.

Causes the object’s pos to change: the object moves from its current location at its current velocity for one unit of time (as per moveFreely) and is then immediately clamped to the object’s container (as per bringToContainer).

Causes the object’s pos to change: the object moves from its current location at its current velocity for one unit of time (as per moveFreely) and is then immediately clamped to the object’s container (as per bringToContainer).

Inherited methods

Returns the object’s anchoring point, which is Anchor.Center unless overridden.

Returns the object’s anchoring point, which is Anchor.Center unless overridden.

Inherited from:
HasEdges

Returns the y coordinate of the bottom edge.

Returns the y coordinate of the bottom edge.

Inherited from:
HasEdges

Returns the coordinates of this object’s bottom left-hand corner.

Returns the coordinates of this object’s bottom left-hand corner.

Inherited from:
HasEdges

Returns the coordinates of this object’s bottom right-hand corner.

Returns the coordinates of this object’s bottom right-hand corner.

Inherited from:
HasEdges

Causes this object’s pos to change so that the object is within its container, as per clamp.

Causes this object’s pos to change so that the object is within its container, as per clamp.

Inherited from:
ContainedObject

Causes this object’s pos to change so that its left and right edges don’t extend beyond its container, as per clampX.

Causes this object’s pos to change so that its left and right edges don’t extend beyond its container, as per clampX.

Inherited from:
ContainedObject

Causes this object’s pos to change so that its top and bottom edges don’t extend beyond its container, as per clampY.

Causes this object’s pos to change so that its top and bottom edges don’t extend beyond its container, as per clampY.

Inherited from:
ContainedObject
def center: Pos

Returns the average position between this object’s edges.

Returns the average position between this object’s edges.

Inherited from:
HasEdges

the location of this object’s center: the average point between its edges, expressed in coordinates relative to the object’s top left-hand corner

the location of this object’s center: the average point between its edges, expressed in coordinates relative to the object’s top left-hand corner

Inherited from:
HasSize
def clamp(): Pos

Looks for a position for this object that is as close to possible to the object’s current pos but keeps the object’s edges within the bounds of the object’s container. Returns that Pos.

Looks for a position for this object that is as close to possible to the object’s current pos but keeps the object’s edges within the bounds of the object’s container. Returns that Pos.

Inherited from:
HasContainer
def clampWhollyInside(container: HasEdges, desiredPosition: Pos): Pos

Looks for a position for this object that is as close to possible to a particular target position but keeps the object’s edges within the bounds of the given other object.

Looks for a position for this object that is as close to possible to a particular target position but keeps the object’s edges within the bounds of the given other object.

Value parameters:
container

another object that sets the boundaries for the return value

desiredPosition

the ideal position for this object (defaults to the object’s current pos)

Returns:

the location closest to desiredPosition where this object’s anchor can be placed without its edges extending beyond container

Inherited from:
HasEdges
def clampX(): Pos

Looks for a position for this object that is as close to possible to the object’s current pos but keeps the left and right edges of the object within the bounds of the object’s container. Returns that Pos.

Looks for a position for this object that is as close to possible to the object’s current pos but keeps the left and right edges of the object within the bounds of the object’s container. Returns that Pos.

Inherited from:
HasContainer
def clampXWhollyInside(container: HasEdges, desiredPosition: Pos): Pos

Looks for a position for this object that is as close to possible to a particular target position but keeps the left and right edges of the object within the bounds of the given other object.

Looks for a position for this object that is as close to possible to a particular target position but keeps the left and right edges of the object within the bounds of the given other object.

Value parameters:
container

another object that sets the boundaries for the return value

desiredPosition

the ideal position for this object (defaults to the object’s current pos)

Returns:

the location closest to desiredPosition where this object’s anchor can be placed without its left or right edge extending beyond container

Inherited from:
HasEdges
def clampY(): Pos

Looks for a position for this object that is as close to possible to the object’s current pos but keeps the top and bottom edges of the object within the bounds of the object’s container. Returns that Pos.

Looks for a position for this object that is as close to possible to the object’s current pos but keeps the top and bottom edges of the object within the bounds of the object’s container. Returns that Pos.

Inherited from:
HasContainer
def clampYWhollyInside(container: HasEdges, desiredPosition: Pos): Pos

Looks for a position for this object that is as close to possible to a particular target position but keeps the top and bottom edges of the object within the bounds of the given other object.

Looks for a position for this object that is as close to possible to a particular target position but keeps the top and bottom edges of the object within the bounds of the given other object.

Value parameters:
container

another object that sets the boundaries for the return value

desiredPosition

the ideal position for this object (defaults to the object’s current pos)

Returns:

the location closest to desiredPosition where this object’s anchor can be placed without its top or bottom edge extending beyond container

Inherited from:
HasEdges
def closestPosTo(target: Pos): Pos

Returns the position within this object’s edges that is as close as possible to the given position.

Returns the position within this object’s edges that is as close as possible to the given position.

Inherited from:
HasEdges

Determines whether the given Pos’s x coordinate is between this object’s left edge (inclusive) and its right edge (exclusive) and if it’s y coordinate is similarly between the top and bottom edges.

Determines whether the given Pos’s x coordinate is between this object’s left edge (inclusive) and its right edge (exclusive) and if it’s y coordinate is similarly between the top and bottom edges.

Inherited from:
HasEdges
def distance(another: HasPos): Double

Determines the distance (“as the crow flies”) between this object’s pos and that of the given object.

Determines the distance (“as the crow flies”) between this object’s pos and that of the given object.

Inherited from:
HasPos

this object’s height: the distance from its top edge to its bottom edge

this object’s height: the distance from its top edge to its bottom edge

Inherited from:
HasSize

Returns the Pos of the anchoring point within this object, expressed as coordinates relative to the object’s top left-hand corner.

Returns the Pos of the anchoring point within this object, expressed as coordinates relative to the object’s top left-hand corner.

Inherited from:
HasAnchor

Returns the x coordinate of the anchoring point within this object, relative to the object’s left edge.

Returns the x coordinate of the anchoring point within this object, relative to the object’s left edge.

Inherited from:
HasAnchor

Returns the y coordinate of the anchoring point within this object, relative to the object’s top edge.

Returns the y coordinate of the anchoring point within this object, relative to the object’s top edge.

Inherited from:
HasAnchor
def isBoundFor(direction: Direction): Boolean

Determines whether this object is bound for roughly the given direction, as per Direction.sharesQuadrant.

Determines whether this object is bound for roughly the given direction, as per Direction.sharesQuadrant.

Inherited from:
HasVelocity

Determines whether this object has a downward velocity, as per Direction.isDownward.

Determines whether this object has a downward velocity, as per Direction.isDownward.

Inherited from:
HasVelocity

Determines whether this object has a leftward velocity, as per Direction.isLeftward.

Determines whether this object has a leftward velocity, as per Direction.isLeftward.

Inherited from:
HasVelocity

Determines whether this object has a rightward velocity, as per Direction.isRightward.

Determines whether this object has a rightward velocity, as per Direction.isRightward.

Inherited from:
HasVelocity

Determines whether this object has an upward velocity, as per Direction.isUpward.

Determines whether this object has an upward velocity, as per Direction.isUpward.

Inherited from:
HasVelocity

Returns the x coordinate of this object’s left edge.

Returns the x coordinate of this object’s left edge.

Inherited from:
HasEdges

Returns the Pos that this object, moving from its current location at its current velocity, reaches in one unit of time. That is, adds the dx and dy components of the velocity to the current Pos and returns the result.

Returns the Pos that this object, moving from its current location at its current velocity, reaches in one unit of time. That is, adds the dx and dy components of the velocity to the current Pos and returns the result.

Inherited from:
HasVelocity

Returns the x coordinate of the right edge.

Returns the x coordinate of the right edge.

Inherited from:
HasEdges
def top: Double

Returns the y coordinate of the top edge.

Returns the y coordinate of the top edge.

Inherited from:
HasEdges

Returns the coordinates of this object’s top left-hand corner.

Returns the coordinates of this object’s top left-hand corner.

Inherited from:
HasEdges

Returns the coordinates of this object’s top right-hand corner.

Returns the coordinates of this object’s top right-hand corner.

Inherited from:
HasEdges

the object’s velocity

the object’s velocity

Inherited from:
HasVelocity

this object’s width: the distance from its left edge to its right edge

this object’s width: the distance from its left edge to its right edge

Inherited from:
HasSize

Inherited fields

another object that clampX, clampY, and clamp use for constraining this object’s position

another object that clampX, clampY, and clamp use for constraining this object’s position

Inherited from:
HasContainer
var pos: Pos

the object’s location

the object’s location

Inherited from:
MutablePos