• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright@ Samsung Electronics Co. LTD
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15 */
16 
17 /*!
18  * \file      ExynosRect.h
19  * \brief     header file for ExynosRect
20  * \author    Sangwoo, Park(sw5771.park@samsung.com)
21  * \date      2011/06/02
22  *
23  * <b>Revision History: </b>
24  * - 2010/06/03 : Sangwoo, Park(sw5771.park@samsung.com) \n
25  *   Initial version
26  *
27  * - 2012/03/14 : sangwoo.park(sw5771.park@samsung.com) \n
28  *   Change file, struct name to ExynosXXX.
29  *
30  */
31 
32 #ifndef EXYNOS_RECT_H_
33 #define EXYNOS_RECT_H_
34 
35 //! Rectangle information
36 /*!
37  * \ingroup Exynos
38  */
39 struct ExynosRect
40 {
41     int x;           //!< x pos
42     int y;           //!< y pos
43     int w;           //!< width
44     int h;           //!< height
45     int fullW;       //!< full width of image
46     int fullH;       //!< full height of image
47     int colorFormat; //!< V4L2_PIX_FMT_XXX
48 
49 #ifdef __cplusplus
50     //! Constructor
51     ExynosRect(int _x_ = 0,
52             int _y_ = 0,
53             int _w_ = 0,
54             int _h_ = 0,
55             int _fullW_ = 0,
56             int _fullH_ = 0,
57             int _colorFormat_ = 0)
58     {
59         x = _x_;
60         y = _y_;
61         w = _w_;
62         h = _h_;
63         fullW = _fullW_;
64         fullH = _fullH_;
65         colorFormat = _colorFormat_;
66     }
67 
68     //! Constructor
ExynosRectExynosRect69     ExynosRect(const ExynosRect *other)
70     {
71         x           = other->x;
72         y           = other->y;
73         w           = other->w;
74         h           = other->h;
75         fullW       = other->fullW;
76         fullH       = other->fullH;
77         colorFormat = other->colorFormat;
78     }
79 
80     //! Operator(=) override
81     ExynosRect& operator =(const ExynosRect &other)
82     {
83         x           = other.x;
84         y           = other.y;
85         w           = other.w;
86         h           = other.h;
87         fullW       = other.fullW;
88         fullH       = other.fullH;
89         colorFormat = other.colorFormat;
90         return *this;
91     }
92 
93     //! Operator(==) override
94     bool operator ==(const ExynosRect &other) const
95     {
96         return (   x           == other.x
97                 && y           == other.y
98                 && w           == other.w
99                 && h           == other.h
100                 && fullW       == other.fullW
101                 && fullH       == other.fullH
102                 && colorFormat == other.colorFormat);
103     }
104 
105     //! Operator(!=) override
106     bool operator !=(const ExynosRect &other) const
107     {
108         // use operator(==)
109         return !(*this == other);
110     }
111 #endif
112 };
113 
114 //! Clip information
115 /*!
116  * \ingroup Exynos
117  */
118 struct ExynosRect2
119 {
120     int x1; //!< Left   (The x-coordinate value of upper-left corner)
121     int y1; //!< Top    (The y-coordinate value of upper-left corner)
122     int x2; //!< Right  (The x-coordinate value of lower-right corner)
123     int y2; //!< Bottom (The y-coordinate value of lower-right corner)
124 
125 #ifdef __cplusplus
126     //! Constructor
127     ExynosRect2(int _x1_ = 0, int _y1_ = 0, int _x2_ = 0, int _y2_ = 0)
128     {
129         x1 = _x1_;
130         y1 = _y1_;
131         x2 = _x2_;
132         y2 = _y2_;
133     }
134 
135     //! Constructor
ExynosRect2ExynosRect2136     ExynosRect2(const ExynosRect2 *other)
137     {
138         x1 = other->x1;
139         y1 = other->y1;
140         x2 = other->x2;
141         y2 = other->y2;
142     }
143 
144     //! Operator(=) override
145     ExynosRect2& operator =(const ExynosRect2 &other)
146     {
147         x1 = other.x1;
148         y1 = other.y1;
149         x2 = other.x2;
150         y2 = other.y2;
151         return *this;
152     }
153 
154     //! Operator(==) override
155     bool operator ==(const ExynosRect2 &other) const
156     {
157         return (   x1 == other.x1
158                 && y1 == other.y1
159                 && x2 == other.x2
160                 && y2 == other.y2);
161     }
162 
163     //! Operator(!=) override
164     bool operator !=(const ExynosRect2 &other) const
165     {
166         // use operator(==)
167         return !(*this == other);
168     }
169 #endif
170 };
171 
172 #endif //EXYNOS_RECT_H_
173