[libcamera-devel,11/27] libcamera: Add geometry.h

Message ID 20190206060818.13907-12-laurent.pinchart@ideasonboard.com
State Accepted
Headers show
Series
  • Capture frames throught requests
Related show

Commit Message

Laurent Pinchart Feb. 6, 2019, 6:08 a.m. UTC
From: Jacopo Mondi <jacopo@jmondi.org>

Add geometry-related definitions in the geometry.h internal header.

Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 src/libcamera/geometry.cpp       | 49 ++++++++++++++++++++++++++++++++
 src/libcamera/include/geometry.h | 22 ++++++++++++++
 src/libcamera/meson.build        |  1 +
 3 files changed, 72 insertions(+)
 create mode 100644 src/libcamera/geometry.cpp
 create mode 100644 src/libcamera/include/geometry.h

Patch

diff --git a/src/libcamera/geometry.cpp b/src/libcamera/geometry.cpp
new file mode 100644
index 000000000000..57f4fc7716d9
--- /dev/null
+++ b/src/libcamera/geometry.cpp
@@ -0,0 +1,49 @@ 
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+/*
+ * Copyright (C) 2019, Google Inc.
+ *
+ * geometry.cpp - Geometry-related structures
+ */
+
+#include "geometry.h"
+
+/**
+ * \file geometry.h
+ * \brief Data structures related to geometric objects
+ */
+
+namespace libcamera {
+
+/**
+ * \struct Rectangle
+ * \brief Describe a rectangle's position and dimensions
+ *
+ * Rectangles are used to identify an area of an image. They are specified by
+ * the coordinates of top-left corner and their horizontal and vertical size.
+ *
+ * The measure unit of the rectangle coordinates and size, as well as the
+ * reference point from which the Rectangle::x and Rectangle::y displacements
+ * refers to, are defined by the context were rectangle is used.
+ */
+
+/**
+ * \var Rectangle::x
+ * \brief The horizontal coordinate of the rectangle's top-left corner
+ */
+
+/**
+ * \var Rectangle::y
+ * \brief The vertical coordinate of the rectangle's top-left corner
+ */
+
+/**
+ * \var Rectangle::w
+ * \brief The distance between the left and right sides
+ */
+
+/**
+ * \var Rectangle::h
+ * \brief The distance between the top and bottom sides
+ */
+
+} /* namespace libcamera */
diff --git a/src/libcamera/include/geometry.h b/src/libcamera/include/geometry.h
new file mode 100644
index 000000000000..cc146da7cb0d
--- /dev/null
+++ b/src/libcamera/include/geometry.h
@@ -0,0 +1,22 @@ 
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+/*
+ * Copyright (C) 2019, Google Inc.
+ *
+ * geometry.h - Geometry-related structure
+ */
+
+#ifndef __LIBCAMERA_GEOMETRY_H__
+#define __LIBCAMERA_GEOMETRY_H__
+
+namespace libcamera {
+
+struct Rectangle {
+	int x;
+	int y;
+	unsigned int w;
+	unsigned int h;
+};
+
+} /* namespace libcamera */
+
+#endif /* __LIBCAMERA_GEOMETRY_H__ */
diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build
index a4e9cc8f936c..8b33c4b25c30 100644
--- a/src/libcamera/meson.build
+++ b/src/libcamera/meson.build
@@ -6,6 +6,7 @@  libcamera_sources = files([
     'event_dispatcher.cpp',
     'event_dispatcher_poll.cpp',
     'event_notifier.cpp',
+    'geometry.cpp',
     'log.cpp',
     'media_device.cpp',
     'media_object.cpp',