1 package org.opencv.core; 2 3 //javadoc:Point3_ 4 public class Point3 { 5 6 public double x, y, z; 7 Point3(double x, double y, double z)8 public Point3(double x, double y, double z) { 9 this.x = x; 10 this.y = y; 11 this.z = z; 12 } 13 Point3()14 public Point3() { 15 this(0, 0, 0); 16 } 17 Point3(Point p)18 public Point3(Point p) { 19 x = p.x; 20 y = p.y; 21 z = 0; 22 } 23 Point3(double[] vals)24 public Point3(double[] vals) { 25 this(); 26 set(vals); 27 } 28 set(double[] vals)29 public void set(double[] vals) { 30 if (vals != null) { 31 x = vals.length > 0 ? vals[0] : 0; 32 y = vals.length > 1 ? vals[1] : 0; 33 z = vals.length > 2 ? vals[2] : 0; 34 } else { 35 x = 0; 36 y = 0; 37 z = 0; 38 } 39 } 40 clone()41 public Point3 clone() { 42 return new Point3(x, y, z); 43 } 44 dot(Point3 p)45 public double dot(Point3 p) { 46 return x * p.x + y * p.y + z * p.z; 47 } 48 cross(Point3 p)49 public Point3 cross(Point3 p) { 50 return new Point3(y * p.z - z * p.y, z * p.x - x * p.z, x * p.y - y * p.x); 51 } 52 53 @Override hashCode()54 public int hashCode() { 55 final int prime = 31; 56 int result = 1; 57 long temp; 58 temp = Double.doubleToLongBits(x); 59 result = prime * result + (int) (temp ^ (temp >>> 32)); 60 temp = Double.doubleToLongBits(y); 61 result = prime * result + (int) (temp ^ (temp >>> 32)); 62 temp = Double.doubleToLongBits(z); 63 result = prime * result + (int) (temp ^ (temp >>> 32)); 64 return result; 65 } 66 67 @Override equals(Object obj)68 public boolean equals(Object obj) { 69 if (this == obj) return true; 70 if (!(obj instanceof Point3)) return false; 71 Point3 it = (Point3) obj; 72 return x == it.x && y == it.y && z == it.z; 73 } 74 75 @Override toString()76 public String toString() { 77 return "{" + x + ", " + y + ", " + z + "}"; 78 } 79 } 80