Pos

final case class Pos(x: Double, y: Double)

Each instance of this class represents a location on a two-dimensional plane. A Pos object is essentially a pair of two coordinates, x and y. Pos objects are immutable.

This class has an alias in the top-level package o1, so it’s accessible to students simply via import o1.*.

Value parameters:
x

the x coordinate of the Pos

y

the y coordinate of the Pos

Companion:
object
trait Product
trait Equals
class Object
trait Matchable
class Any

Value members

Concrete methods

infix inline def *(factor: Double): Pos

Returns a Pos whose two coordinates are obtained by multiplying this one’s x and y by the given factor. For instance, (2,-3) multiplied by 10 is (20,-30). The expressions myPos * n and myPos.multiply(n) are equivalent.

Returns a Pos whose two coordinates are obtained by multiplying this one’s x and y by the given factor. For instance, (2,-3) multiplied by 10 is (20,-30). The expressions myPos * n and myPos.multiply(n) are equivalent.

infix inline def +(another: Pos): Pos

Adds the x and y of the given Pos to the x and y of this Pos, respectively. Returns the resulting Pos. The expressions pos1 + pos2, pos1.add(pos2), and pos1.offset(pos2) are equivalent.

Adds the x and y of the given Pos to the x and y of this Pos, respectively. Returns the resulting Pos. The expressions pos1 + pos2, pos1.add(pos2), and pos1.offset(pos2) are equivalent.

infix inline def -(another: Pos): Pos

Subtracts the x and y of the given Pos from the x and y of this Pos, respectively. Returns the resulting Pos. The expressions pos1 - pos2 and pos1.subtract(pos2) are equivalent.

Subtracts the x and y of the given Pos from the x and y of this Pos, respectively. Returns the resulting Pos. The expressions pos1 - pos2 and pos1.subtract(pos2) are equivalent.

infix inline def /(divisor: Double): Pos

Returns a Pos whose two coordinates are obtained by dividing this one’s x and y by the given number. For instance, (20,-30) divided by 10 is (2,-3). The expressions myPos / n and myPos.divide(n) are equivalent.

Returns a Pos whose two coordinates are obtained by dividing this one’s x and y by the given number. For instance, (20,-30) divided by 10 is (2,-3). The expressions myPos / n and myPos.divide(n) are equivalent.

inline def add(dx: Double, dy: Double): Pos

Adds the two given values to the x and y of this Pos, respectively. Returns the resulting Pos. The expressions myPosadd(dx, dy) and myPosoffset(dx, dy) are equivalent.

Adds the two given values to the x and y of this Pos, respectively. Returns the resulting Pos. The expressions myPosadd(dx, dy) and myPosoffset(dx, dy) are equivalent.

inline def add(pos: Pos): Pos

Adds the x and y of the given Pos to the x and y of this Pos, respectively. Returns the resulting Pos. The expressions pos1.add(pos2), pos1.offset(pos2), and pos1 + pos2 are equivalent.

Adds the x and y of the given Pos to the x and y of this Pos, respectively. Returns the resulting Pos. The expressions pos1.add(pos2), pos1.offset(pos2), and pos1 + pos2 are equivalent.

inline def addX(dx: Double): Pos

Returns a Pos whose x coordinate is greater than this Pos’s by the given amount.

Returns a Pos whose x coordinate is greater than this Pos’s by the given amount.

inline def addY(dy: Double): Pos

Returns a Pos whose y coordinate is greater than this Pos’s by the given amount.

Returns a Pos whose y coordinate is greater than this Pos’s by the given amount.

inline def clamp(xMin: Double, xMax: Double, yMin: Double, yMax: Double): Pos

Returns a Pos that is as close to this Pos as possible but whose x and y are between the given lower and upper bounds (inclusive).

Returns a Pos that is as close to this Pos as possible but whose x and y are between the given lower and upper bounds (inclusive).

Value parameters:
xMax

the greatest possible value of x in the resulting Pos; must not be below xMin

xMin

the least possible value of x in the resulting Pos; must not exceed xMax

yMax

the greatest possible value of y in the resulting Pos; must not be below yMin

yMin

the least possible value of y in the resulting Pos; must not exceed yMax

See also:
inline def clampX(min: Double, max: Double): Pos

Returns a Pos that is as close to this Pos as possible but whose x is between the given lower and upper bounds (inclusive).

Returns a Pos that is as close to this Pos as possible but whose x is between the given lower and upper bounds (inclusive).

Value parameters:
max

the greatest possible value of x in the resulting Pos; must not be below min

min

the least possible value of x in the resulting Pos; must not exceed max

See also:
inline def clampY(min: Double, max: Double): Pos

Returns a Pos that is as close to this Pos as possible but whose y is between the given lower and upper bounds (inclusive).

Returns a Pos that is as close to this Pos as possible but whose y is between the given lower and upper bounds (inclusive).

Value parameters:
max

the greatest possible value of y in the resulting Pos; must not be below min

min

the least possible value of y in the resulting Pos; must not exceed max

See also:
inline def directionOf(destination: Pos): Direction

Returns the Direction from this Pos towards the given other Pos.

Returns the Direction from this Pos towards the given other Pos.

inline def distance(another: Pos): Double

Returns the distance between this Pos and the given Pos “as the crow flies”.

Returns the distance between this Pos and the given Pos “as the crow flies”.

inline def divide(divisor: Double): Pos

Returns a Pos whose two coordinates are obtained by dividing this one’s x and y by the given number. For instance, (20,-30) divided by 10 is (2,-3). The expressions myPos.divide(n) and myPos / n are equivalent.

Returns a Pos whose two coordinates are obtained by dividing this one’s x and y by the given number. For instance, (20,-30) divided by 10 is (2,-3). The expressions myPos.divide(n) and myPos / n are equivalent.

inline def multiply(factor: Double): Pos

Returns a Pos whose two coordinates are obtained by multiplying this one’s x and y by the given factor. For instance, (2,-3) multiplied by 10 is (20,-30). The expressions myPos.multiply(n) and myPos * n are equivalent.

Returns a Pos whose two coordinates are obtained by multiplying this one’s x and y by the given factor. For instance, (2,-3) multiplied by 10 is (20,-30). The expressions myPos.multiply(n) and myPos * n are equivalent.

inline def nextPos(velocity: Velocity): Pos

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

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

inline def noFurtherLeftThan(xMin: Double): Pos

Returns a Pos that is as close to this Pos as possible but has a x coordinate equal to or greater than the given limit.

Returns a Pos that is as close to this Pos as possible but has a x coordinate equal to or greater than the given limit.

See also:
inline def noFurtherRightThan(xMax: Double): Pos

Returns a Pos that is as close to this Pos as possible but has a y coordinate less than or equal to the given limit.

Returns a Pos that is as close to this Pos as possible but has a y coordinate less than or equal to the given limit.

See also:
inline def noHigherThan(yMin: Double): Pos

Returns a Pos that is as close to this Pos as possible but has a y coordinate equal to or greater than the given limit.

Returns a Pos that is as close to this Pos as possible but has a y coordinate equal to or greater than the given limit.

See also:
inline def noLowerThan(yMax: Double): Pos

Returns a Pos that is as close to this Pos as possible but has a y coordinate less than or equal to the given limit.

Returns a Pos that is as close to this Pos as possible but has a y coordinate less than or equal to the given limit.

See also:
inline def offset(dx: Double, dy: Double): Pos

Returns the Pos that is dx and dy removed from this Pos. The expressions myPosoffset(dx, dy) and myPosadd(dx, dy) are equivalent.

Returns the Pos that is dx and dy removed from this Pos. The expressions myPosoffset(dx, dy) and myPosadd(dx, dy) are equivalent.

inline def offset(another: Pos): Pos

Returns the Pos that is removed from this Pos by the amount indicated by the given Pos. The expressions pos1.offset(pos2), pos1.add(pos2), and pos1 + pos2 are equivalent.

Returns the Pos that is removed from this Pos by the amount indicated by the given Pos. The expressions pos1.offset(pos2), pos1.add(pos2), and pos1 + pos2 are equivalent.

Returns a String description of the Pos that is identical to toString except it has two decimals for each coordinate.

Returns a String description of the Pos that is identical to toString except it has two decimals for each coordinate.

inline def setX(newX: Double): Pos

Returns a Pos whose x equals the given value and whose y equals this Pos’s y.

Returns a Pos whose x equals the given value and whose y equals this Pos’s y.

inline def setY(newY: Double): Pos

Returns a Pos whose x equals this Pos’s x and whose y equals the given value.

Returns a Pos whose x equals this Pos’s x and whose y equals the given value.

inline def subtract(another: Pos): Pos

Subtracts the x and y of the given Pos from the x and y of this Pos, respectively. Returns the resulting Pos. The expressions pos1.subtract(pos2) and pos1 - pos2 are equivalent.

Subtracts the x and y of the given Pos from the x and y of this Pos, respectively. Returns the resulting Pos. The expressions pos1.subtract(pos2) and pos1 - pos2 are equivalent.

inline def subtractX(dx: Double): Pos

Returns a Pos whose x coordinate is less than this Pos’s by the given amount.

Returns a Pos whose x coordinate is less than this Pos’s by the given amount.

inline def subtractY(dy: Double): Pos

Returns a Pos whose y coordinate is less than this Pos’s by the given amount.

Returns a Pos whose y coordinate is less than this Pos’s by the given amount.

inline def toPair: (Double, Double)

Returns the x and y coordinates of the Pos as a tuple.

Returns the x and y coordinates of the Pos as a tuple.

override def toString: String

Returns a String description of the Pos. It has the form "(x,y)".

Returns a String description of the Pos. It has the form "(x,y)".

See also:
Definition Classes
inline def turnInto[Result](f: (Double, Double) => Result): Result

Applies the given function to the two coordinates of the Pos and returns the result.

Applies the given function to the two coordinates of the Pos and returns the result.

inline def unary_-: Pos

Returns the Pos that is the opposite of this Pos. For instance, the opposite of (2,-3) is (-2,3).

Returns the Pos that is the opposite of this Pos. For instance, the opposite of (2,-3) is (-2,3).

inline def vectorTo(destination: Pos): Pos

Returns a Pos those x and y capture the relative distance from this Pos towards the given Pos. That is, subtracts the x and y of the this Pos from the x and y of given Pos, respectively. The expressions pos1.vectorTo(pos2) and pos2 - pos1 are equivalent.

Returns a Pos those x and y capture the relative distance from this Pos towards the given Pos. That is, subtracts the x and y of the this Pos from the x and y of given Pos, respectively. The expressions pos1.vectorTo(pos2) and pos2 - pos1 are equivalent.

inline def withX(computeNew: Double => Double): Pos

Returns a Pos whose x is determined by applying the given function to the x of this Pos and whose y equals that of this Pos.

Returns a Pos whose x is determined by applying the given function to the x of this Pos and whose y equals that of this Pos.

Value parameters:
computeNew

a function that takes in an x coordinate and returns the x for the resulting Pos

inline def withXY(computeNew: (Double, Double) => (Double, Double)): Pos

Returns a Pos whose x and y are determined by applying the given function to the x and y of this Pos.

Returns a Pos whose x and y are determined by applying the given function to the x and y of this Pos.

Value parameters:
computeNew

a function that takes in an x and a y and returns a pair that contains the coordinates of the resulting Pos

inline def withY(computeNew: Double => Double): Pos

Returns a Pos whose x equals that of this Pos and whose y is determined by applying the given function to the y of this Pos.

Returns a Pos whose x equals that of this Pos and whose y is determined by applying the given function to the y of this Pos.

Value parameters:
computeNew

a function that takes in a y coordinate and returns the y for the resulting Pos

inline def xDiff(another: Pos): Double

Returns the difference between this Pos’s x coordinate and the given one’s.

Returns the difference between this Pos’s x coordinate and the given one’s.

Returns:

the difference, which is positive if the given Pos’s x is greater than this one’s and negative if the reverse is true

inline def yDiff(another: Pos): Double

Returns the difference between this Pos’s y coordinate and the given one’s.

Returns the difference between this Pos’s y coordinate and the given one’s.

Returns:

the difference, which is positive if the given Pos’s y is greater than this one’s and negative if the reverse is true

Inherited methods

Inherited from:
Product