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