/*
* Copyright 2004-2010 Information & Software Engineering Group (188/1)
* Institute of Software Technology and Interactive Systems
* Vienna University of Technology, Austria
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.ifs.tuwien.ac.at/dm/somtoolbox/license.html
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package at.tuwien.ifs.somtoolbox.util;
import java.awt.Point;
/**
* A representation of a 3-dimensional point, similar to {@link Point}, but using double (or float ({@link Float})
* precision.
*
* @author Rudolf Mayer
* @version $Id: Point3d.java 3583 2010-05-21 10:07:41Z mayer $
*/
public class Point3d {
public double x;
public double y;
public double z;
public Point3d() {
this(0, 0, 0);
}
public Point3d(double x, double y, double z) {
this.x = x;
this.y = y;
this.z = z;
}
public double getX() {
return x;
}
public double getY() {
return y;
}
public double getZ() {
return z;
}
/** Returns the Euclidean distance between this point and the other. */
public double distance(Point3d other) {
double distX = this.x - other.x;
double distY = this.y - other.y;
double distZ = this.z - other.z;
return Math.sqrt(distX * distX + distY * distY + distZ * distZ);
}
@Override
public Object clone() {
return new Point3d(x, y, z);
}
}