001    package physics3d;
002    
003    /**
004     * <code>Vect3Pair</code> is a simple immutable record type representing a
005     * pair of <code>Vect3</code>s.
006     * 
007     * @see Vect3
008     */
009    public strictfp class Vect3Pair {
010      public final Vect3 v1;
011    
012      public final Vect3 v2;
013    
014      /**
015       * Creates a VectPair with <code>v1</code> and <code>v2</code> as given
016       */
017      public Vect3Pair(Vect3 v1, Vect3 v2) {
018        this.v1 = v1;
019        this.v2 = v2;
020      }
021    
022      public String toString() {
023        return "[" + v1 + "," + v2 + "]";
024      }
025    
026      public boolean equals(Object o) {
027        return (o instanceof Vect3Pair) && equals((Vect3Pair) o);
028      }
029    
030      public boolean equals(Vect3Pair p) {
031        if (p == null)
032          return false;
033        return ((v1 == null) ? (p.v1 == null) : v1.equals(p.v1))
034            && ((v2 == null) ? (p.v2 == null) : v2.equals(p.v2));
035      }
036    
037      public int hashCode() {
038        return ((v1 == null) ? 0 : (3 * v1.hashCode()))
039            + ((v2 == null) ? 0 : (7 * v2.hashCode()));
040      }
041    
042      static final long serialVersionUID = -7049301303826376772L;
043    }