diff options
-rw-r--r-- | include/libcamera/geometry.h | 2 | ||||
-rw-r--r-- | src/libcamera/geometry.cpp | 16 |
2 files changed, 18 insertions, 0 deletions
diff --git a/include/libcamera/geometry.h b/include/libcamera/geometry.h index 03962d7d..52f4d010 100644 --- a/include/libcamera/geometry.h +++ b/include/libcamera/geometry.h @@ -92,6 +92,8 @@ public: { } + bool contains(const Size &size) const; + std::string toString() const; Size min; diff --git a/src/libcamera/geometry.cpp b/src/libcamera/geometry.cpp index e598f6ad..32b0faea 100644 --- a/src/libcamera/geometry.cpp +++ b/src/libcamera/geometry.cpp @@ -267,6 +267,22 @@ bool operator<(const Size &lhs, const Size &rhs) */ /** + * \brief Test if a size is contained in the range + * \param[in] size Size to check + * \returns True if \a size is contained in the range + */ +bool SizeRange::contains(const Size &size) const +{ + if (size.width < min.width || size.width > max.width || + size.height < min.height || size.height > max.height || + (hStep && (size.width - min.width) % hStep) || + (vStep && (size.height - min.height) % vStep)) + return false; + + return true; +} + +/** * \brief Assemble and return a string describing the size range * \return A string describing the SizeRange */ |