/* * Copyright (C) 2011-2015, Peter Abeles. All Rights Reserved. * * This file is part of Geometric Regression Library (GeoRegression). * * 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.apache.org/licenses/LICENSE-2.0 * * 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 georegression.struct.point; import georegression.struct.GeoTuple; /** * An integer 2D point */ public class Point2D_I32 extends GeoTuple<Point2D_I32> { public int x; public int y; public Point2D_I32( int x, int y ) { this.x = x; this.y = y; } public Point2D_I32( Point2D_I32 orig ) { this.x = orig.x; this.y = orig.y; } public Point2D_I32() { } public void set( Point2D_I32 v ) { this.x = v.x; this.y = v.y; } public void set( int x, int y ) { this.x = x; this.y = y; } public void setX( int x ) { this.x = x; } public void setY( int y ) { this.y = y; } public final int getX() { return x; } public final int getY() { return y; } public double distance( Point2D_I32 a ) { int dx = x-a.x; int dy = y-a.y; return Math.sqrt(dx*dx + dy*dy); } /** * <p> * Returns the Euclidean distance squared from 'this' to 'a'. No floating point * operations are used. * </p> * * <p> * d<sup>2</sup> = (this.x-a.x)<sup>2</sup> + (this.y-a.y)<sup>2</sup> * </p> * * @param a Point that distance is computed from. * @return Euclidean distance squared. */ public int distance2( Point2D_I32 a ) { int dx = x-a.x; int dy = y-a.y; return dx*dx + dy*dy; } public Point2D_I32 copy() { return new Point2D_I32( this ); } @Override public String toString() { return "Point2D_I32{" + "x=" + x + ", y=" + y + '}'; } @Override public int getDimension() { return 2; } @Override public Point2D_I32 createNewInstance() { return new Point2D_I32(); } }