diff options
author | Jacopo Mondi <jacopo@jmondi.org> | 2020-07-01 10:21:17 +0200 |
---|---|---|
committer | Jacopo Mondi <jacopo@jmondi.org> | 2020-08-03 11:16:16 +0200 |
commit | dd0793ed1b28a6819116d6bfa676bc3d1a028780 (patch) | |
tree | 1c754df7ddfc5acf6ef2e39131464b1f37705042 | |
parent | d405d1fd5e791b3ebc45dc980be2fce9ac0f3529 (diff) |
libcamera: geometry: Add isNull() function to Rectangle class
It's common for code to check if a rectangle is null. Add a helper function
to do so and test the function in test/geometry.cpp
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
-rw-r--r-- | include/libcamera/geometry.h | 1 | ||||
-rw-r--r-- | src/libcamera/geometry.cpp | 6 | ||||
-rw-r--r-- | test/geometry.cpp | 14 |
3 files changed, 21 insertions, 0 deletions
diff --git a/include/libcamera/geometry.h b/include/libcamera/geometry.h index d858f85c..02fb63c0 100644 --- a/include/libcamera/geometry.h +++ b/include/libcamera/geometry.h @@ -181,6 +181,7 @@ public: unsigned int width; unsigned int height; + bool isNull() const { return !width && !height; } const std::string toString() const; }; diff --git a/src/libcamera/geometry.cpp b/src/libcamera/geometry.cpp index 23181bde..b12e1a62 100644 --- a/src/libcamera/geometry.cpp +++ b/src/libcamera/geometry.cpp @@ -386,6 +386,12 @@ bool operator==(const SizeRange &lhs, const SizeRange &rhs) */ /** + * \fn bool Rectangle::isNull() const + * \brief Check if the rectangle is null + * \return True if both the width and height are 0, or false otherwise + */ + +/** * \brief Assemble and return a string describing the rectangle * \return A string describing the Rectangle */ diff --git a/test/geometry.cpp b/test/geometry.cpp index 1a9fc1b8..08e268c9 100644 --- a/test/geometry.cpp +++ b/test/geometry.cpp @@ -182,6 +182,20 @@ protected: if (!compare(Size(200, 100), Size(100, 200), &operator>=, ">=", true)) return TestFail; + /* Test Rectangle::isNull(). */ + if (!Rectangle(0, 0, 0, 0).isNull() || + !Rectangle(1, 1, 0, 0).isNull()) { + cout << "Null rectangle incorrectly reported as not null" << endl; + return TestFail; + } + + if (Rectangle(0, 0, 0, 1).isNull() || + Rectangle(0, 0, 1, 0).isNull() || + Rectangle(0, 0, 1, 1).isNull()) { + cout << "Non-null rectangle incorrectly reported as null" << endl; + return TestFail; + } + return TestPass; } }; |