Pos

o1.world.Pos
See thePos companion object
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.*.

Parameters

x

the x coordinate of the Pos

y

the y coordinate of the Pos

Attributes

Companion
object
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Members list

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.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

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 myPos.add(dx, dy) and myPos.offset(dx, dy) are equivalent.

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

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

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).

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

Attributes

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).

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

Attributes

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).

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

Attributes

See also

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

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

Attributes

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”.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

See also

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.

Attributes

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.

Attributes

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.

Attributes

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

Returns the Pos that is dx and dy removed from this Pos. The expressions myPos.offset(dx, dy) and myPos.add(dx, dy) are equivalent.

Returns the Pos that is dx and dy removed from this Pos. The expressions myPos.offset(dx, dy) and myPos.add(dx, dy) are equivalent.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

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

Subtracts the two given values from the the x and y of this Pos, respectively. Returns the resulting Pos.

Subtracts the two given values from the the x and y of this Pos, respectively. Returns the resulting Pos.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

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)".

Attributes

See also
Definition Classes
Any
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.

Attributes

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).

Attributes

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.

Attributes

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.

Parameters

computeNew

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

Attributes

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.

Parameters

computeNew

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

Attributes

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.

Parameters

computeNew

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

Attributes

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.

Attributes

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.

Attributes

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

Attributes

Inherited from:
Product

Attributes

Inherited from:
Product