001package org.opencv.core; 002 003//javadoc:Size_ 004public class Size { 005 006 public double width, height; 007 008 public Size(double width, double height) { 009 this.width = width; 010 this.height = height; 011 } 012 013 public Size() { 014 this(0, 0); 015 } 016 017 public Size(Point p) { 018 width = p.x; 019 height = p.y; 020 } 021 022 public Size(double[] vals) { 023 set(vals); 024 } 025 026 public void set(double[] vals) { 027 if (vals != null) { 028 width = vals.length > 0 ? vals[0] : 0; 029 height = vals.length > 1 ? vals[1] : 0; 030 } else { 031 width = 0; 032 height = 0; 033 } 034 } 035 036 public double area() { 037 return width * height; 038 } 039 040 public Size clone() { 041 return new Size(width, height); 042 } 043 044 @Override 045 public int hashCode() { 046 final int prime = 31; 047 int result = 1; 048 long temp; 049 temp = Double.doubleToLongBits(height); 050 result = prime * result + (int) (temp ^ (temp >>> 32)); 051 temp = Double.doubleToLongBits(width); 052 result = prime * result + (int) (temp ^ (temp >>> 32)); 053 return result; 054 } 055 056 @Override 057 public boolean equals(Object obj) { 058 if (this == obj) return true; 059 if (!(obj instanceof Size)) return false; 060 Size it = (Size) obj; 061 return width == it.width && height == it.height; 062 } 063 064 @Override 065 public String toString() { 066 return (int)width + "x" + (int)height; 067 } 068 069}