Package sim.util
Class MutableDouble2D
java.lang.Object
sim.util.NumberND
sim.util.MutableNumberND
sim.util.MutableDouble2D
- All Implemented Interfaces:
Serializable
,Cloneable
MutableDouble2D is more or less the same class as java.awt.geom.Point2D.Double, except that it is hash-equivalent to Double2D.
Just as with MutableInt2D: you use MutableDouble2D as a STORED hash key at your peril: it has the same misfeature as java.awt.geom.Point2D.Double, and you should read the warning in Double2D. However, you can look up Double2D-keyed objects in a hash table by passing in a MutableDouble2D instead.
- See Also:
-
Field Summary
Fields inherited from class sim.util.NumberND
TYPE_DOUBLE_2D, TYPE_DOUBLE_3D, TYPE_INT_2D, TYPE_INT_3D, TYPE_MUTABLE_DOUBLE_2D, TYPE_MUTABLE_DOUBLE_3D, TYPE_MUTABLE_INT_2D, TYPE_MUTABLE_INT_3D
-
Constructor Summary
ConstructorDescriptionMutableDouble2D
(double[] vals) MutableDouble2D
(double x, double y) Only included for completeness' sakes, in case a new Point2D subclass is created in the future. -
Method Summary
Modifier and TypeMethodDescriptionfinal MutableDouble2D
add
(Double2D other1, MutableDouble2D other2) Sets me to the sum of other1 and other2, returning me.final MutableDouble2D
add
(MutableDouble2D other1, Double2D other2) Sets me to the sum of other1 and other2, returning me.final MutableDouble2D
add
(MutableDouble2D other1, MutableDouble2D other2) Sets me to the sum of other1 and other2, returning me.final MutableDouble2D
addIn
(double x, double y) Adds the x and y values into my x and y values, returning me.final MutableDouble2D
Adds other into me, returning me.final MutableDouble2D
addIn
(MutableDouble2D other) Adds other into me, returning me.final double
angle()
Returns the length of the vector between -Pi and Pi.clone()
double
distance
(double x, double y) Returns the distance FROM this MutableDouble2D TO the specified pointdouble
Returns the distance FROM this MutableDouble2D TO the specified point.double
Returns the distance FROM this MutableDouble2D TO the specified point.double
Returns the distance FROM this MutableDouble2D TO the specified point.double
Returns the distance FROM this MutableDouble2D TO the specified point.double
Returns the distance FROM this MutableDouble2D TO the specified point.double
distanceSq
(double x, double y) Returns the distance FROM this MutableDouble2D TO the specified pointdouble
Returns the distance FROM this Point2D TO the specified pointdouble
Returns the distance FROM this MutableDouble2D TO the specified point.double
distanceSq
(Int2D p) Returns the distance FROM this MutableDouble2D TO the specified point.double
Returns the distance FROM this MutableDouble2D TO the specified point.double
Returns the distance FROM this MutableDouble2D TO the specified point.final double
dot
(MutableDouble2D other) Returns the dot product of myself against other, that is me DOT other.final MutableDouble2D
dup()
Equivalent to (new MutableDouble2D(d)), but (d.dup()) shorter of course, but perhaps not quite as fast.final boolean
Returns whether this NumberND is equivalent to some other NumberND.double
getVal
(int val) Returns the value at position VAL in this NumberND (val should 0, 1, or sometimes 2)final double
getX()
final double
getY()
final int
hashCode()
Provides a hashcode for this NumberND.final double
length()
Returns the length of the vector.final double
lengthSq()
Returns the square of the length of the MutableDouble2D.double
manhattanDistance
(double x, double y) Returns the manhtattan distance FROM this MuableDouble2D TO the specified pointdouble
Returns the manhtattan distance FROM this MuableDouble2D TO the specified pointdouble
Returns the manhtattan distance FROM this MuableDouble2D TO the specified pointdouble
Returns the manhtattan distance FROM this MuableDouble2D TO the specified pointdouble
Returns the manhtattan distance FROM this MuableDouble2D TO the specified pointdouble
Returns the manhtattan distance FROM this MuableDouble2D TO the specified pointfinal MutableDouble2D
Multiplies other by val, setting me to the result and returning me.final MutableDouble2D
multiply
(MutableDouble2D other, double val) Multiplies other by val, setting me to the result and returning me.final MutableDouble2D
multiplyIn
(double val) Extends my length so that it is multiplied by val, and returns me.boolean
mutable()
Returns whether this NumberND is mutable.final MutableDouble2D
negate()
Negates the MutableDouble2D's values and returns it.final MutableDouble2D
int
Returns the number of dimensions of this NumberND (normally 2 or 3)double
perpDot
(MutableDouble2D other) 2D version of the cross product: returns the dot product of me rotated 90 degrees dotted against the other vector.final MutableDouble2D
resize
(double val) Sets my length, which should be >= 0.final MutableDouble2D
rotate
(double theta) Rotates me by theta radians, returning me.final MutableDouble2D
setLength
(double val) Deprecated.use resize instead [renaming]final void
setTo
(double bx, double by) final void
final void
final void
final void
final MutableDouble2D
Sets the values to the negation of the values in the provided MutableDouble2Dvoid
setVal
(int val, double to) final void
setX
(double val) final void
setY
(double val) final MutableDouble2D
subtract
(Double2D other1, MutableDouble2D other2) Subtracts other2 from other1, setting me to the result and returning me.final MutableDouble2D
subtract
(MutableDouble2D other1, Double2D other2) Subtracts other2 from other1, setting me to the result and returning me.final MutableDouble2D
subtract
(MutableDouble2D other1, MutableDouble2D other2) Subtracts other2 from other1, setting me to the result and returning me.final MutableDouble2D
subtractIn
(Double2D other) Sets me to me minus other, returning me.final MutableDouble2D
subtractIn
(MutableDouble2D other) Sets me to me minus other, returning me.double[]
byte[]
toBytes()
Flattens out the NumberND to an array of bytes, including the NumberND subtype.Returns this NumberND in mathematical coordinates as a formatted String.toString()
Returns this NumberND as a nicely formatted String.final MutableDouble2D
zero()
Sets the values to 0 and returns it.Methods inherited from class sim.util.MutableNumberND
isMutable
Methods inherited from class sim.util.NumberND
doubleFromBytes, doubleToBytes, fromBytes, getDistanceSq, getOffsets, intFromBytes, intToBytes, main
-
Field Details
-
x
public double x -
y
public double y
-
-
Constructor Details
-
MutableDouble2D
public MutableDouble2D() -
MutableDouble2D
-
MutableDouble2D
-
MutableDouble2D
-
MutableDouble2D
-
MutableDouble2D
-
MutableDouble2D
-
MutableDouble2D
-
MutableDouble2D
Only included for completeness' sakes, in case a new Point2D subclass is created in the future. -
MutableDouble2D
public MutableDouble2D(double x, double y) -
MutableDouble2D
public MutableDouble2D(double[] vals)
-
-
Method Details
-
mutable
public boolean mutable()Description copied from class:NumberND
Returns whether this NumberND is mutable. This is equivalent to asking (instanceof val MutableNumberND) -
numDimensions
public int numDimensions()Description copied from class:NumberND
Returns the number of dimensions of this NumberND (normally 2 or 3)- Specified by:
numDimensions
in classNumberND
-
getVal
public double getVal(int val) Description copied from class:NumberND
Returns the value at position VAL in this NumberND (val should 0, 1, or sometimes 2) -
setVal
public void setVal(int val, double to) - Specified by:
setVal
in classMutableNumberND
-
toBytes
public byte[] toBytes()Description copied from class:NumberND
Flattens out the NumberND to an array of bytes, including the NumberND subtype. -
getX
public final double getX() -
getY
public final double getY() -
setX
public final void setX(double val) -
setY
public final void setY(double val) -
setTo
public final void setTo(double bx, double by) -
setTo
-
setTo
-
setTo
-
setTo
-
toString
Description copied from class:NumberND
Returns this NumberND as a nicely formatted String. -
toCoordinates
Description copied from class:NumberND
Returns this NumberND in mathematical coordinates as a formatted String.- Specified by:
toCoordinates
in classNumberND
-
toPoint2D
-
toArrayAsDouble
public double[] toArrayAsDouble()- Specified by:
toArrayAsDouble
in classNumberND
-
clone
-
hashCode
public final int hashCode()Description copied from class:NumberND
Provides a hashcode for this NumberND. -
equals
Description copied from class:NumberND
Returns whether this NumberND is equivalent to some other NumberND. -
distance
public double distance(double x, double y) Returns the distance FROM this MutableDouble2D TO the specified point -
distance
Returns the distance FROM this MutableDouble2D TO the specified point. -
distance
Returns the distance FROM this MutableDouble2D TO the specified point. -
distance
Returns the distance FROM this MutableDouble2D TO the specified point. -
distance
Returns the distance FROM this MutableDouble2D TO the specified point. -
distance
Returns the distance FROM this MutableDouble2D TO the specified point. -
distanceSq
public double distanceSq(double x, double y) Returns the distance FROM this MutableDouble2D TO the specified point -
distanceSq
Returns the distance FROM this MutableDouble2D TO the specified point. -
distanceSq
Returns the distance FROM this MutableDouble2D TO the specified point. -
distanceSq
Returns the distance FROM this MutableDouble2D TO the specified point. -
distanceSq
Returns the distance FROM this MutableDouble2D TO the specified point. -
distanceSq
Returns the distance FROM this Point2D TO the specified point -
manhattanDistance
public double manhattanDistance(double x, double y) Returns the manhtattan distance FROM this MuableDouble2D TO the specified point -
manhattanDistance
Returns the manhtattan distance FROM this MuableDouble2D TO the specified point -
manhattanDistance
Returns the manhtattan distance FROM this MuableDouble2D TO the specified point -
manhattanDistance
Returns the manhtattan distance FROM this MuableDouble2D TO the specified point -
manhattanDistance
Returns the manhtattan distance FROM this MuableDouble2D TO the specified point -
manhattanDistance
Returns the manhtattan distance FROM this MuableDouble2D TO the specified point -
addIn
Adds other into me, returning me. -
addIn
Adds other into me, returning me. -
addIn
Adds the x and y values into my x and y values, returning me. -
add
Sets me to the sum of other1 and other2, returning me. -
add
Sets me to the sum of other1 and other2, returning me. -
add
Sets me to the sum of other1 and other2, returning me. -
dup
Equivalent to (new MutableDouble2D(d)), but (d.dup()) shorter of course, but perhaps not quite as fast. -
subtractIn
Sets me to me minus other, returning me. -
subtractIn
Sets me to me minus other, returning me. -
subtract
Subtracts other2 from other1, setting me to the result and returning me. -
subtract
Subtracts other2 from other1, setting me to the result and returning me. -
subtract
Subtracts other2 from other1, setting me to the result and returning me. -
length
public final double length()Returns the length of the vector. -
lengthSq
public final double lengthSq()Returns the square of the length of the MutableDouble2D. -
angle
public final double angle()Returns the length of the vector between -Pi and Pi. -
multiplyIn
Extends my length so that it is multiplied by val, and returns me. -
multiply
Multiplies other by val, setting me to the result and returning me. -
multiply
Multiplies other by val, setting me to the result and returning me. -
normalize
-
setLength
Deprecated.use resize instead [renaming]Sets my length, which should be >= 0. -
resize
Sets my length, which should be >= 0. -
rotate
Rotates me by theta radians, returning me. -
dot
Returns the dot product of myself against other, that is me DOT other. -
perpDot
2D version of the cross product: returns the dot product of me rotated 90 degrees dotted against the other vector. Does not modify either vector. -
zero
Sets the values to 0 and returns it. -
setToMinus
Sets the values to the negation of the values in the provided MutableDouble2D -
negate
Negates the MutableDouble2D's values and returns it.
-