affyfusion-109/src/affymetrix/calvin/utils/Region.java

Code
Comments
Other
Rev Date Author Line
11 13 Sep 07 nicklas 1 /////////////////////////////////////////////////////////////////
11 13 Sep 07 nicklas 2 //
11 13 Sep 07 nicklas 3 // Copyright (C) 2005 Affymetrix, Inc.
11 13 Sep 07 nicklas 4 //
11 13 Sep 07 nicklas 5 // This library is free software; you can redistribute it and/or modify
11 13 Sep 07 nicklas 6 // it under the terms of the GNU Lesser General Public License as published
11 13 Sep 07 nicklas 7 // by the Free Software Foundation; either version 2.1 of the License,
11 13 Sep 07 nicklas 8 // or (at your option) any later version.
11 13 Sep 07 nicklas 9 //
11 13 Sep 07 nicklas 10 // This library is distributed in the hope that it will be useful, but
11 13 Sep 07 nicklas 11 // WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
11 13 Sep 07 nicklas 12 // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
11 13 Sep 07 nicklas 13 // for more details.
11 13 Sep 07 nicklas 14 //
11 13 Sep 07 nicklas 15 // You should have received a copy of the GNU Lesser General Public License
11 13 Sep 07 nicklas 16 // along with this library; if not, write to the Free Software Foundation, Inc.,
11 13 Sep 07 nicklas 17 // 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
11 13 Sep 07 nicklas 18 //
11 13 Sep 07 nicklas 19 /////////////////////////////////////////////////////////////////
11 13 Sep 07 nicklas 20
11 13 Sep 07 nicklas 21 package affymetrix.calvin.utils;
11 13 Sep 07 nicklas 22
11 13 Sep 07 nicklas 23 import java.util.*;
11 13 Sep 07 nicklas 24
11 13 Sep 07 nicklas 25 /** Defines a region with integral point coordinates */
11 13 Sep 07 nicklas 26 public class Region {
11 13 Sep 07 nicklas 27     
11 13 Sep 07 nicklas 28     /** Creates a new instance of Region */
11 13 Sep 07 nicklas 29     public Region() {
11 13 Sep 07 nicklas 30         clear();
11 13 Sep 07 nicklas 31     }
11 13 Sep 07 nicklas 32     
11 13 Sep 07 nicklas 33     /** Clears the region. */
11 13 Sep 07 nicklas 34     public void clear(){ pts=null; }
11 13 Sep 07 nicklas 35
11 13 Sep 07 nicklas 36     /** A vector of points */
11 13 Sep 07 nicklas 37     private Vector /*Point*/ pts;
11 13 Sep 07 nicklas 38     
11 13 Sep 07 nicklas 39     /** Gets the size of the Point vector. */
11 13 Sep 07 nicklas 40     public int size() {
11 13 Sep 07 nicklas 41         if (pts != null)
11 13 Sep 07 nicklas 42             return pts.size();
11 13 Sep 07 nicklas 43         return 0;
11 13 Sep 07 nicklas 44     }
11 13 Sep 07 nicklas 45
11 13 Sep 07 nicklas 46     /** Gets the element at the given index position.
11 13 Sep 07 nicklas 47      * @param index The zero based index to the vector.
11 13 Sep 07 nicklas 48      * @return The integral point coordinate.
11 13 Sep 07 nicklas 49      */
11 13 Sep 07 nicklas 50     public Point elementAt(int index) {
11 13 Sep 07 nicklas 51         if (pts == null)
11 13 Sep 07 nicklas 52             return null;
11 13 Sep 07 nicklas 53         return (Point) pts.elementAt(index);
11 13 Sep 07 nicklas 54     }
11 13 Sep 07 nicklas 55     
11 13 Sep 07 nicklas 56     /** Adds a new value to the vector.
11 13 Sep 07 nicklas 57      * @param pt The new value to add.
11 13 Sep 07 nicklas 58      */
11 13 Sep 07 nicklas 59     public void add(Point pt) {
11 13 Sep 07 nicklas 60         if (pts == null)
11 13 Sep 07 nicklas 61             pts = new Vector();
11 13 Sep 07 nicklas 62         pts.add(pt);
11 13 Sep 07 nicklas 63     }
11 13 Sep 07 nicklas 64     
11 13 Sep 07 nicklas 65     /** Sets a new value to the vector. The vector must be sized appropriately.
11 13 Sep 07 nicklas 66      * @param index The zero based index to vector.
11 13 Sep 07 nicklas 67      * @param pt The new value to add.
11 13 Sep 07 nicklas 68      */
11 13 Sep 07 nicklas 69     public void set(int index, Point pt) {
11 13 Sep 07 nicklas 70         pts.set(index, pt);
11 13 Sep 07 nicklas 71     }
11 13 Sep 07 nicklas 72     
11 13 Sep 07 nicklas 73     /** Sets the size of the vector.
11 13 Sep 07 nicklas 74      * @param size The new size of the vector.
11 13 Sep 07 nicklas 75      */
11 13 Sep 07 nicklas 76     public void setSize(int size) {
11 13 Sep 07 nicklas 77         if (pts == null)
11 13 Sep 07 nicklas 78             pts = new Vector();
11 13 Sep 07 nicklas 79         pts.setSize(size);
11 13 Sep 07 nicklas 80     }
11 13 Sep 07 nicklas 81     
11 13 Sep 07 nicklas 82     /** Equality test */
11 13 Sep 07 nicklas 83     public boolean equals(Region lhs) { 
11 13 Sep 07 nicklas 84         if(lhs.pts.size() == pts.size())
11 13 Sep 07 nicklas 85         {
11 13 Sep 07 nicklas 86             int sz = pts.size();
11 13 Sep 07 nicklas 87             for(int i = 0; i < sz; i++)
11 13 Sep 07 nicklas 88             {
11 13 Sep 07 nicklas 89                 if(lhs.elementAt(i).equals(pts.elementAt(i)) == true)
11 13 Sep 07 nicklas 90                     continue;
11 13 Sep 07 nicklas 91                 return false;
11 13 Sep 07 nicklas 92             }
11 13 Sep 07 nicklas 93             return true;
11 13 Sep 07 nicklas 94         }
11 13 Sep 07 nicklas 95         return false;
11 13 Sep 07 nicklas 96     }
11 13 Sep 07 nicklas 97 }