Jogamp
moved com.jogamp.javafx.* to com.jogamp.*.
[jogl.git] / src / newt / classes / com / jogamp / newt / Insets.java
1 /*
2  * Copyright (c) 2009 Sun Microsystems, Inc. All Rights Reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions are
6  * met:
7  *
8  * - Redistribution of source code must retain the above copyright
9  *   notice, this list of conditions and the following disclaimer.
10  *
11  * - Redistribution in binary form must reproduce the above copyright
12  *   notice, this list of conditions and the following disclaimer in the
13  *   documentation and/or other materials provided with the distribution.
14  *
15  * Neither the name of Sun Microsystems, Inc. or the names of
16  * contributors may be used to endorse or promote products derived from
17  * this software without specific prior written permission.
18  *
19  * This software is provided "AS IS," without a warranty of any kind. ALL
20  * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
21  * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
22  * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN
23  * MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR
24  * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
25  * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR
26  * ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR
27  * DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE
28  * DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
29  * ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF
30  * SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
31  *
32  */
33 package com.jogamp.newt;
34
35 /**
36  * Simple class representing insets.
37  * 
38  * @author tdv
39  */
40 public class Insets implements Cloneable {
41     public int top;
42     public int left;
43     public int bottom;
44     public int right;
45
46     /**
47      * Creates and initializes a new <code>Insets</code> object with the
48      * specified top, left, bottom, and right insets.
49      * @param       top   the inset from the top.
50      * @param       left   the inset from the left.
51      * @param       bottom   the inset from the bottom.
52      * @param       right   the inset from the right.
53      */
54     public Insets(int top, int left, int bottom, int right) {
55         this.top = top;
56         this.left = left;
57         this.bottom = bottom;
58         this.right = right;
59     }
60
61     /**
62      * Checks whether two insets objects are equal. Two instances
63      * of <code>Insets</code> are equal if the four integer values
64      * of the fields <code>top</code>, <code>left</code>,
65      * <code>bottom</code>, and <code>right</code> are all equal.
66      * @return      <code>true</code> if the two insets are equal;
67      *                          otherwise <code>false</code>.
68      */
69     public boolean equals(Object obj) {
70         if (obj instanceof Insets) {
71             Insets insets = (Insets)obj;
72             return ((top == insets.top) && (left == insets.left) &&
73                 (bottom == insets.bottom) && (right == insets.right));
74         }
75         return false;
76     }
77
78     /**
79      * Returns the hash code for this Insets.
80      *
81      * @return    a hash code for this Insets.
82      */
83     public int hashCode() {
84         int sum1 = left + bottom;
85         int sum2 = right + top;
86         int val1 = sum1 * (sum1 + 1)/2 + left;
87         int val2 = sum2 * (sum2 + 1)/2 + top;
88         int sum3 = val1 + val2;
89         return sum3 * (sum3 + 1)/2 + val2;
90     }
91
92     public String toString() {
93         return getClass().getName() + "[top="  + top + ",left=" + left +
94             ",bottom=" + bottom + ",right=" + right + "]";
95     }
96
97     public Object clone() {
98         try {
99             return super.clone();
100         } catch (CloneNotSupportedException ex) {
101             throw new InternalError();
102         }
103     }
104
105 }
http://JogAmp.org git info: FAQ, tutorial and man pages.