|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectsim.util.Double3D
public final class Double3D
Double3D is more or less the same class as javax.vecmath.Point3d, but it is immutable: once the x and y and z values are set, they cannot be changed (they're final). Why use this immutable class when you could just use Point3d? Because Point3d is broken with respect to hash tables. You use Point3d as a key in a hash table at your own peril. Try this: hash an object by a Point3d as key. Then change the x value of the original Point3d. Ta-da! The object is lost in the hash table. Additionally, Point3d is in a nonstandard package (javax.vecmath) that we may or may not distribute with.
One day in the far future, Double2D should also be HIGHLY efficient; since it is immutable, it can be passed by value rather than by pointer by a smart compiler. Not today, though. But it's not bad.
This class has an elaborate hash code generation that is much more random than Sun's standard generator, but takes more time. For very large numbers of objects, this is a good idea, but we may change it to a simpler version in the future.
Double3D.equals(...) can compare by value against other Int3Ds and Double3Ds.
Field Summary | |
---|---|
double |
x
|
double |
y
|
double |
z
|
Constructor Summary | |
---|---|
Double3D()
|
|
Double3D(Double2D p)
Explicitly assumes the z value is set to 0 |
|
Double3D(Double2D p,
double z)
|
|
Double3D(Double3D p)
|
|
Double3D(double x,
double y,
double z)
|
|
Double3D(Int2D p)
Explicitly assumes the z value is set to 0 |
|
Double3D(Int2D p,
double z)
|
|
Double3D(Int3D p)
|
|
Double3D(MutableDouble2D p)
Explicitly assumes the z value is set to 0 |
|
Double3D(MutableDouble2D p,
double z)
|
|
Double3D(MutableDouble3D p)
|
|
Double3D(MutableInt2D p)
Explicitly assumes the z value is set to 0 |
|
Double3D(MutableInt2D p,
double z)
|
|
Double3D(MutableInt3D p)
|
Method Summary | |
---|---|
double |
distance(Double3D p)
Returns the distance FROM this Double3D TO the specified point. |
double |
distance(double x,
double y,
double z)
Returns the distance FROM this Double3D TO the specified point |
double |
distance(Int3D p)
Returns the distance FROM this Double3D TO the specified point. |
double |
distance(MutableInt3D p)
Returns the distance FROM this Double3D TO the specified point. |
double |
distanceSq(Double3D p)
Returns the squared distance FROM this Double3D TO the specified point. |
double |
distanceSq(double x,
double y,
double z)
Returns the squared distance FROM this Double3D TO the specified point |
double |
distanceSq(Int3D p)
Returns the squared distance FROM this Double3D TO the specified point. |
double |
distanceSq(MutableInt3D p)
Returns the squared distance FROM this Double3D TO the specified point. |
boolean |
equals(java.lang.Object obj)
|
double |
getX()
|
double |
getY()
|
double |
getZ()
|
int |
hashCode()
|
java.lang.String |
toCoordinates()
|
java.lang.String |
toString()
|
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public final double x
public final double y
public final double z
Constructor Detail |
---|
public Double3D()
public Double3D(Int2D p)
public Double3D(Int2D p, double z)
public Double3D(Int3D p)
public Double3D(MutableInt2D p)
public Double3D(MutableInt2D p, double z)
public Double3D(MutableInt3D p)
public Double3D(Double2D p)
public Double3D(Double2D p, double z)
public Double3D(Double3D p)
public Double3D(MutableDouble2D p)
public Double3D(MutableDouble2D p, double z)
public Double3D(MutableDouble3D p)
public Double3D(double x, double y, double z)
Method Detail |
---|
public final double getX()
public final double getY()
public final double getZ()
public java.lang.String toString()
toString
in class java.lang.Object
public java.lang.String toCoordinates()
public int hashCode()
hashCode
in class java.lang.Object
public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
public double distance(double x, double y, double z)
public double distance(Double3D p)
public double distance(Int3D p)
public double distance(MutableInt3D p)
public double distanceSq(double x, double y, double z)
public double distanceSq(Double3D p)
public double distanceSq(Int3D p)
public double distanceSq(MutableInt3D p)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |