summaryrefslogtreecommitdiff
path: root/src/libcamera/geometry.cpp
blob: 6dc8e74d280107af2c9f95aa83cd09229aa3cd06 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
/* SPDX-License-Identifier: LGPL-2.1-or-later */
/*
 * Copyright (C) 2019, Google Inc.
 *
 * geometry.cpp - Geometry-related structures
 */

#include <sstream>

#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
 */

/**
 * \brief Assemble and return a string describing the rectangle
 *
 * \return A string describing the Rectangle
 */
const std::string Rectangle::toString() const
{
	std::stringstream ss;

	ss << "(" << x << "x" << y << ")/" << w << "x" << h;

	return ss.str();
}

/**
 * \struct SizeRange
 * \brief Describe a range of image sizes
 *
 * SizeRange describes a range of image sizes included in the (minWidth,
 * minHeight) - (maxWidth, maxHeight) interval. If the minimum and
 * maximum sizes are identical it represents a single image resolution.
 */

/**
 * \fn SizeRange::SizeRange()
 * \brief Construct a size range
 */

/**
 * \var SizeRange::minWidth
 * \brief The minimum image width
 */

/**
 * \var SizeRange::minHeight
 * \brief The minimum image height
 */

/**
 * \var SizeRange::maxWidth
 * \brief The maximum image width
 */

/**
 * \var SizeRange::maxHeight
 * \brief The maximum image height
 */

} /* namespace libcamera */