pylucene 3.5.0-3
[pylucene.git] / lucene-java-3.5.0 / lucene / contrib / spatial / src / java / org / apache / lucene / spatial / geometry / CartesianPoint.java
1 /**
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements.  See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License.  You may obtain a copy of the License at
8  *
9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17
18 package org.apache.lucene.spatial.geometry;
19
20 /**
21  * Represents lat/lngs as fixed point numbers translated so that all
22  * world coordinates are in the first quadrant.  The same fixed point
23  * scale as is used for FixedLatLng is employed.
24  *
25  * <p><font color="red"><b>NOTE:</b> This API is still in
26  * flux and might change in incompatible ways in the next
27  * release.</font>
28  */
29 public class CartesianPoint {
30   private int x;
31   private int y;
32   
33   public CartesianPoint(int x, int y) {
34     this.x=x;
35     this.y=y;
36   }
37   
38   public int getX() {
39     return x;
40   }
41   
42   public int getY() {
43     return y;
44   }
45   
46   @Override
47   public String toString() {
48     return "Point(" + x + "," + y + ")";
49   }
50
51   /**
52    * Return a new point translated in the x and y dimensions
53    */
54   public CartesianPoint translate(int deltaX, int deltaY) {
55     return new CartesianPoint(this.x+deltaX, this.y+deltaY);
56   }
57
58   @Override
59   public int hashCode() {
60     final int prime = 31;
61     int result = 1;
62     result = prime * result + x;
63     result = prime * result + y;
64     return result;
65   }
66
67   @Override
68   public boolean equals(Object obj) {
69     if (this == obj)
70       return true;
71     if (obj == null)
72       return false;
73     if (getClass() != obj.getClass())
74       return false;
75     CartesianPoint other = (CartesianPoint) obj;
76     if (x != other.x)
77       return false;
78     if (y != other.y)
79       return false;
80     return true;
81   }
82   
83 }