[v2,28/35] libcamera: Add transpose() function to size
diff mbox series

Message ID 20251023144841.403689-29-stefan.klug@ideasonboard.com
State New
Headers show
Series
  • Full dewarper support on imx8mp
Related show

Commit Message

Stefan Klug Oct. 23, 2025, 2:48 p.m. UTC
Add a transpose() function to size that applies the
Transformation::Transpose operation in the size. This is useful when
handling orientation adjustments.

Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>
---
 include/libcamera/geometry.h |  6 ++++++
 src/libcamera/geometry.cpp   | 10 ++++++++++
 2 files changed, 16 insertions(+)

Comments

Stefan Klug Oct. 24, 2025, 6:58 a.m. UTC | #1
Note to self:

I missed to implement the corresponding Test mentioned by Kieran.
To be done in v3.

Stefan

Quoting Stefan Klug (2025-10-23 16:48:29)
> Add a transpose() function to size that applies the
> Transformation::Transpose operation in the size. This is useful when
> handling orientation adjustments.
> 
> Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>
> ---
>  include/libcamera/geometry.h |  6 ++++++
>  src/libcamera/geometry.cpp   | 10 ++++++++++
>  2 files changed, 16 insertions(+)
> 
> diff --git a/include/libcamera/geometry.h b/include/libcamera/geometry.h
> index d9378efeca8c..572a07e2cf92 100644
> --- a/include/libcamera/geometry.h
> +++ b/include/libcamera/geometry.h
> @@ -108,6 +108,12 @@ public:
>                 return *this;
>         }
>  
> +       Size &transpose()
> +       {
> +               std::swap(width, height);
> +               return *this;
> +       }
> +
>         [[nodiscard]] constexpr Size alignedDownTo(unsigned int hAlignment,
>                                                    unsigned int vAlignment) const
>         {
> diff --git a/src/libcamera/geometry.cpp b/src/libcamera/geometry.cpp
> index de76d0c12a8c..2763967a6e57 100644
> --- a/src/libcamera/geometry.cpp
> +++ b/src/libcamera/geometry.cpp
> @@ -209,6 +209,16 @@ std::string Size::toString() const
>   * \return A reference to this object
>   */
>  
> +/**
> + * \fn Size::transpose()
> + * \brief Transpose the size in place
> + *
> + * This function swaps width and height of this size. This effectively applies
> + * the \a Transform::Transpose transformation on this size.
> + *
> + * \return A reference to this object
> + */
> +
>  /**
>   * \fn Size::alignedDownTo(unsigned int hAlignment, unsigned int vAlignment)
>   * \brief Align the size down horizontally and vertically
> -- 
> 2.48.1
>

Patch
diff mbox series

diff --git a/include/libcamera/geometry.h b/include/libcamera/geometry.h
index d9378efeca8c..572a07e2cf92 100644
--- a/include/libcamera/geometry.h
+++ b/include/libcamera/geometry.h
@@ -108,6 +108,12 @@  public:
 		return *this;
 	}
 
+	Size &transpose()
+	{
+		std::swap(width, height);
+		return *this;
+	}
+
 	[[nodiscard]] constexpr Size alignedDownTo(unsigned int hAlignment,
 						   unsigned int vAlignment) const
 	{
diff --git a/src/libcamera/geometry.cpp b/src/libcamera/geometry.cpp
index de76d0c12a8c..2763967a6e57 100644
--- a/src/libcamera/geometry.cpp
+++ b/src/libcamera/geometry.cpp
@@ -209,6 +209,16 @@  std::string Size::toString() const
  * \return A reference to this object
  */
 
+/**
+ * \fn Size::transpose()
+ * \brief Transpose the size in place
+ *
+ * This function swaps width and height of this size. This effectively applies
+ * the \a Transform::Transpose transformation on this size.
+ *
+ * \return A reference to this object
+ */
+
 /**
  * \fn Size::alignedDownTo(unsigned int hAlignment, unsigned int vAlignment)
  * \brief Align the size down horizontally and vertically