#ifndef ANDROID_DVR_RANGE_H_ #define ANDROID_DVR_RANGE_H_ #include namespace android { namespace dvr { // TODO(skiazyk): Replace all instances of this with Eigen::AlignedBox // Container of two points that define a 2D range. template struct Range { // Construct an uninitialized Range. Range() {} Range(Eigen::Vector p1, Eigen::Vector p2) : p1(p1), p2(p2) {} static Range FromSize(Eigen::Vector p1, Eigen::Vector size) { return Range(p1, p1 + size); } bool operator==(const Range& rhs) const { return p1 == rhs.p1 && p2 == rhs.p2; } Eigen::Vector GetMinPoint() const { return p1; } Eigen::Vector GetMaxPoint() const { return p2; } Eigen::Vector GetSize() const { return p2 - p1; } Eigen::Vector p1; Eigen::Vector p2; }; typedef Range Range2i; typedef Range Range2f; } // namespace dvr } // namespace android #endif // ANDROID_DVR_RANGE_H_