Updated double versions.
This commit is contained in:
@@ -17,6 +17,17 @@ public abstract class AbstractVector implements IVector
|
|||||||
return x()*other.x() + y()*other.y();
|
return x()*other.x() + y()*other.y();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override // from interface IVector
|
||||||
|
public Vector cross (IVector other) {
|
||||||
|
return cross(other, new Vector());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override // from interface IVector
|
||||||
|
public Vector cross (IVector other, Vector result) {
|
||||||
|
double x = x(), y = y(), ox = other.x(), oy = other.y();
|
||||||
|
return result.set(y*ox - x*oy, x*oy - y*ox);
|
||||||
|
}
|
||||||
|
|
||||||
@Override // from interface IVector
|
@Override // from interface IVector
|
||||||
public Vector negate () {
|
public Vector negate () {
|
||||||
return negate(new Vector());
|
return negate(new Vector());
|
||||||
@@ -125,6 +136,16 @@ public abstract class AbstractVector implements IVector
|
|||||||
return result.set(x() + x, y() + y);
|
return result.set(x() + x, y() + y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override // from interface IVector
|
||||||
|
public Vector subtract (double x, double y) {
|
||||||
|
return subtract(x, y, new Vector());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override // from interface IVector
|
||||||
|
public Vector subtract (double x, double y, Vector result) {
|
||||||
|
return result.set(x() - x, y() - y);
|
||||||
|
}
|
||||||
|
|
||||||
@Override // from interface IVector
|
@Override // from interface IVector
|
||||||
public Vector addScaled (IVector other, double v) {
|
public Vector addScaled (IVector other, double v) {
|
||||||
return addScaled(other, v, new Vector());
|
return addScaled(other, v, new Vector());
|
||||||
|
|||||||
@@ -18,6 +18,15 @@ public interface IVector
|
|||||||
/** Computes and returns the dot product of this and the specified other vector. */
|
/** Computes and returns the dot product of this and the specified other vector. */
|
||||||
double dot (IVector other);
|
double dot (IVector other);
|
||||||
|
|
||||||
|
/** Computes the cross product of this and the specified other vector.
|
||||||
|
* @return a new vector containing the result. */
|
||||||
|
Vector cross (IVector other);
|
||||||
|
|
||||||
|
/** Computes the cross product of this and the specified other vector, placing the result in
|
||||||
|
* the object supplied.
|
||||||
|
* @return a reference to the result, for chaining. */
|
||||||
|
Vector cross (IVector other, Vector result);
|
||||||
|
|
||||||
/** Negates this vector.
|
/** Negates this vector.
|
||||||
* @return a new vector containing the result. */
|
* @return a new vector containing the result. */
|
||||||
Vector negate ();
|
Vector negate ();
|
||||||
@@ -106,6 +115,14 @@ public interface IVector
|
|||||||
* @return a reference to the result, for chaining. */
|
* @return a reference to the result, for chaining. */
|
||||||
Vector subtract (IVector other, Vector result);
|
Vector subtract (IVector other, Vector result);
|
||||||
|
|
||||||
|
/** Subtracts a vector from this one.
|
||||||
|
* @return a new vector containing the result. */
|
||||||
|
Vector subtract (double x, double y);
|
||||||
|
|
||||||
|
/** Subtracts a vector from this one and places the result in the supplied object.
|
||||||
|
* @return a reference to the result, for chaining. */
|
||||||
|
Vector subtract (double x, double y, Vector result);
|
||||||
|
|
||||||
/** Rotates this vector by the specified angle.
|
/** Rotates this vector by the specified angle.
|
||||||
* @return a new vector containing the result. */
|
* @return a new vector containing the result. */
|
||||||
Vector rotate (double angle);
|
Vector rotate (double angle);
|
||||||
|
|||||||
@@ -29,6 +29,13 @@ public class Vector extends AbstractVector
|
|||||||
public Vector () {
|
public Vector () {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Computes the cross product of this and the specified other vector, storing the result in
|
||||||
|
* this vector.
|
||||||
|
* @return a reference to this vector, for chaining. */
|
||||||
|
public Vector crossLocal (IVector other) {
|
||||||
|
return cross(other, this);
|
||||||
|
}
|
||||||
|
|
||||||
/** Negates this vector in-place.
|
/** Negates this vector in-place.
|
||||||
* @return a reference to this vector, for chaining. */
|
* @return a reference to this vector, for chaining. */
|
||||||
public Vector negateLocal () {
|
public Vector negateLocal () {
|
||||||
|
|||||||
Reference in New Issue
Block a user