--- /dev/null
+package jalview.datamodel;
+
+/**
+ * A bean that models an (x, y, z) position in 3-D space
+ */
+public final class Point
+{
+ public final float x;
+
+ public final float y;
+
+ public final float z;
+
+ public Point(float xVal, float yVal, float zVal)
+ {
+ x = xVal;
+ y = yVal;
+ z = zVal;
+ }
+
+ /**
+ * toString for convenience of inspection in debugging or logging
+ */
+ @Override
+ public String toString()
+ {
+ return String.format("[%f, %f, %f]", x, y, z);
+ }
+
+ @Override
+ public int hashCode()
+ {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + Float.floatToIntBits(x);
+ result = prime * result + Float.floatToIntBits(y);
+ result = prime * result + Float.floatToIntBits(z);
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj)
+ {
+ if (this == obj)
+ {
+ return true;
+ }
+ if (obj == null)
+ {
+ return false;
+ }
+ if (getClass() != obj.getClass())
+ {
+ return false;
+ }
+ Point other = (Point) obj;
+ if (Float.floatToIntBits(x) != Float.floatToIntBits(other.x))
+ {
+ return false;
+ }
+ if (Float.floatToIntBits(y) != Float.floatToIntBits(other.y))
+ {
+ return false;
+ }
+ if (Float.floatToIntBits(z) != Float.floatToIntBits(other.z))
+ {
+ return false;
+ }
+ return true;
+ }
+}