Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv
Commits
43f821af
Commit
43f821af
authored
Jul 06, 2018
by
Arnaud Brejeon
Committed by
Alexander Alekhin
Jul 06, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Merge pull request #11899 from arnaudbrejeon:moveable_types
Add missing constructors and operator= (#11899)
parent
3165baa1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
91 additions
and
2 deletions
+91
-2
types.hpp
modules/core/include/opencv2/core/types.hpp
+91
-2
No files found.
modules/core/include/opencv2/core/types.hpp
View file @
43f821af
...
...
@@ -163,10 +163,12 @@ public:
Point_
();
Point_
(
_Tp
_x
,
_Tp
_y
);
Point_
(
const
Point_
&
pt
);
Point_
(
Point_
&&
pt
)
noexcept
;
Point_
(
const
Size_
<
_Tp
>&
sz
);
Point_
(
const
Vec
<
_Tp
,
2
>&
v
);
Point_
&
operator
=
(
const
Point_
&
pt
);
Point_
&
operator
=
(
Point_
&&
pt
)
noexcept
;
//! conversion to another data type
template
<
typename
_Tp2
>
operator
Point_
<
_Tp2
>
()
const
;
...
...
@@ -243,10 +245,12 @@ public:
Point3_
();
Point3_
(
_Tp
_x
,
_Tp
_y
,
_Tp
_z
);
Point3_
(
const
Point3_
&
pt
);
Point3_
(
Point3_
&&
pt
)
noexcept
;
explicit
Point3_
(
const
Point_
<
_Tp
>&
pt
);
Point3_
(
const
Vec
<
_Tp
,
3
>&
v
);
Point3_
&
operator
=
(
const
Point3_
&
pt
);
Point3_
&
operator
=
(
Point3_
&&
pt
)
noexcept
;
//! conversion to another data type
template
<
typename
_Tp2
>
operator
Point3_
<
_Tp2
>
()
const
;
//! conversion to cv::Vec<>
...
...
@@ -317,9 +321,11 @@ public:
Size_
();
Size_
(
_Tp
_width
,
_Tp
_height
);
Size_
(
const
Size_
&
sz
);
Size_
(
Size_
&&
sz
)
noexcept
;
Size_
(
const
Point_
<
_Tp
>&
pt
);
Size_
&
operator
=
(
const
Size_
&
sz
);
Size_
&
operator
=
(
Size_
&&
sz
)
noexcept
;
//! the area (width*height)
_Tp
area
()
const
;
//! aspect ratio (width/height)
...
...
@@ -420,10 +426,12 @@ public:
Rect_
();
Rect_
(
_Tp
_x
,
_Tp
_y
,
_Tp
_width
,
_Tp
_height
);
Rect_
(
const
Rect_
&
r
);
Rect_
(
Rect_
&&
r
)
noexcept
;
Rect_
(
const
Point_
<
_Tp
>&
org
,
const
Size_
<
_Tp
>&
sz
);
Rect_
(
const
Point_
<
_Tp
>&
pt1
,
const
Point_
<
_Tp
>&
pt2
);
Rect_
&
operator
=
(
const
Rect_
&
r
);
Rect_
&
operator
=
(
Rect_
&&
r
)
noexcept
;
//! the top-left corner
Point_
<
_Tp
>
tl
()
const
;
//! the bottom-right corner
...
...
@@ -633,6 +641,12 @@ public:
Scalar_
(
_Tp
v0
,
_Tp
v1
,
_Tp
v2
=
0
,
_Tp
v3
=
0
);
Scalar_
(
_Tp
v0
);
Scalar_
(
const
Scalar_
&
s
);
Scalar_
(
Scalar_
&&
s
)
noexcept
;
Scalar_
&
operator
=
(
const
Scalar_
&
s
);
Scalar_
&
operator
=
(
Scalar_
&&
s
)
noexcept
;
template
<
typename
_Tp2
,
int
cn
>
Scalar_
(
const
Vec
<
_Tp2
,
cn
>&
v
);
...
...
@@ -1147,6 +1161,10 @@ template<typename _Tp> inline
Point_
<
_Tp
>::
Point_
(
const
Point_
&
pt
)
:
x
(
pt
.
x
),
y
(
pt
.
y
)
{}
template
<
typename
_Tp
>
inline
Point_
<
_Tp
>::
Point_
(
Point_
&&
pt
)
noexcept
:
x
(
std
::
move
(
pt
.
x
)),
y
(
std
::
move
(
pt
.
y
))
{}
template
<
typename
_Tp
>
inline
Point_
<
_Tp
>::
Point_
(
const
Size_
<
_Tp
>&
sz
)
:
x
(
sz
.
width
),
y
(
sz
.
height
)
{}
...
...
@@ -1162,6 +1180,13 @@ Point_<_Tp>& Point_<_Tp>::operator = (const Point_& pt)
return
*
this
;
}
template
<
typename
_Tp
>
inline
Point_
<
_Tp
>&
Point_
<
_Tp
>::
operator
=
(
Point_
&&
pt
)
noexcept
{
x
=
std
::
move
(
pt
.
x
);
y
=
std
::
move
(
pt
.
y
);
return
*
this
;
}
template
<
typename
_Tp
>
template
<
typename
_Tp2
>
inline
Point_
<
_Tp
>::
operator
Point_
<
_Tp2
>
()
const
{
...
...
@@ -1403,6 +1428,10 @@ template<typename _Tp> inline
Point3_
<
_Tp
>::
Point3_
(
const
Point3_
&
pt
)
:
x
(
pt
.
x
),
y
(
pt
.
y
),
z
(
pt
.
z
)
{}
template
<
typename
_Tp
>
inline
Point3_
<
_Tp
>::
Point3_
(
Point3_
&&
pt
)
noexcept
:
x
(
std
::
move
(
pt
.
x
)),
y
(
std
::
move
(
pt
.
y
)),
z
(
std
::
move
(
pt
.
z
))
{}
template
<
typename
_Tp
>
inline
Point3_
<
_Tp
>::
Point3_
(
const
Point_
<
_Tp
>&
pt
)
:
x
(
pt
.
x
),
y
(
pt
.
y
),
z
(
_Tp
())
{}
...
...
@@ -1430,6 +1459,13 @@ Point3_<_Tp>& Point3_<_Tp>::operator = (const Point3_& pt)
return
*
this
;
}
template
<
typename
_Tp
>
inline
Point3_
<
_Tp
>&
Point3_
<
_Tp
>::
operator
=
(
Point3_
&&
pt
)
noexcept
{
x
=
std
::
move
(
pt
.
x
);
y
=
std
::
move
(
pt
.
y
);
z
=
std
::
move
(
pt
.
z
);
return
*
this
;
}
template
<
typename
_Tp
>
inline
_Tp
Point3_
<
_Tp
>::
dot
(
const
Point3_
&
pt
)
const
{
...
...
@@ -1646,6 +1682,10 @@ template<typename _Tp> inline
Size_
<
_Tp
>::
Size_
(
const
Size_
&
sz
)
:
width
(
sz
.
width
),
height
(
sz
.
height
)
{}
template
<
typename
_Tp
>
inline
Size_
<
_Tp
>::
Size_
(
Size_
&&
sz
)
noexcept
:
width
(
std
::
move
(
sz
.
width
)),
height
(
std
::
move
(
sz
.
height
))
{}
template
<
typename
_Tp
>
inline
Size_
<
_Tp
>::
Size_
(
const
Point_
<
_Tp
>&
pt
)
:
width
(
pt
.
x
),
height
(
pt
.
y
)
{}
...
...
@@ -1663,6 +1703,13 @@ Size_<_Tp>& Size_<_Tp>::operator = (const Size_<_Tp>& sz)
return
*
this
;
}
template
<
typename
_Tp
>
inline
Size_
<
_Tp
>&
Size_
<
_Tp
>::
operator
=
(
Size_
<
_Tp
>&&
sz
)
noexcept
{
width
=
std
::
move
(
sz
.
width
);
height
=
std
::
move
(
sz
.
height
);
return
*
this
;
}
template
<
typename
_Tp
>
inline
_Tp
Size_
<
_Tp
>::
area
()
const
{
...
...
@@ -1777,6 +1824,10 @@ template<typename _Tp> inline
Rect_
<
_Tp
>::
Rect_
(
const
Rect_
<
_Tp
>&
r
)
:
x
(
r
.
x
),
y
(
r
.
y
),
width
(
r
.
width
),
height
(
r
.
height
)
{}
template
<
typename
_Tp
>
inline
Rect_
<
_Tp
>::
Rect_
(
Rect_
<
_Tp
>&&
r
)
noexcept
:
x
(
std
::
move
(
r
.
x
)),
y
(
std
::
move
(
r
.
y
)),
width
(
std
::
move
(
r
.
width
)),
height
(
std
::
move
(
r
.
height
))
{}
template
<
typename
_Tp
>
inline
Rect_
<
_Tp
>::
Rect_
(
const
Point_
<
_Tp
>&
org
,
const
Size_
<
_Tp
>&
sz
)
:
x
(
org
.
x
),
y
(
org
.
y
),
width
(
sz
.
width
),
height
(
sz
.
height
)
{}
...
...
@@ -1800,6 +1851,16 @@ Rect_<_Tp>& Rect_<_Tp>::operator = ( const Rect_<_Tp>& r )
return
*
this
;
}
template
<
typename
_Tp
>
inline
Rect_
<
_Tp
>&
Rect_
<
_Tp
>::
operator
=
(
Rect_
<
_Tp
>&&
r
)
noexcept
{
x
=
std
::
move
(
r
.
x
);
y
=
std
::
move
(
r
.
y
);
width
=
std
::
move
(
r
.
width
);
height
=
std
::
move
(
r
.
height
);
return
*
this
;
}
template
<
typename
_Tp
>
inline
Point_
<
_Tp
>
Rect_
<
_Tp
>::
tl
()
const
{
...
...
@@ -1984,8 +2045,6 @@ inline
RotatedRect
::
RotatedRect
(
const
Point2f
&
_center
,
const
Size2f
&
_size
,
float
_angle
)
:
center
(
_center
),
size
(
_size
),
angle
(
_angle
)
{}
///////////////////////////////// Range /////////////////////////////////
inline
...
...
@@ -2085,6 +2144,36 @@ Scalar_<_Tp>::Scalar_(_Tp v0, _Tp v1, _Tp v2, _Tp v3)
this
->
val
[
3
]
=
v3
;
}
template
<
typename
_Tp
>
inline
Scalar_
<
_Tp
>::
Scalar_
(
const
Scalar_
<
_Tp
>&
s
)
:
Vec
<
_Tp
,
4
>
(
s
)
{
}
template
<
typename
_Tp
>
inline
Scalar_
<
_Tp
>::
Scalar_
(
Scalar_
<
_Tp
>&&
s
)
noexcept
{
this
->
val
[
0
]
=
std
::
move
(
s
.
val
[
0
]);
this
->
val
[
1
]
=
std
::
move
(
s
.
val
[
1
]);
this
->
val
[
2
]
=
std
::
move
(
s
.
val
[
2
]);
this
->
val
[
3
]
=
std
::
move
(
s
.
val
[
3
]);
}
template
<
typename
_Tp
>
inline
Scalar_
<
_Tp
>&
Scalar_
<
_Tp
>::
operator
=
(
const
Scalar_
<
_Tp
>&
s
)
{
this
->
val
[
0
]
=
s
.
val
[
0
];
this
->
val
[
1
]
=
s
.
val
[
1
];
this
->
val
[
2
]
=
s
.
val
[
2
];
this
->
val
[
3
]
=
s
.
val
[
3
];
return
*
this
;
}
template
<
typename
_Tp
>
inline
Scalar_
<
_Tp
>&
Scalar_
<
_Tp
>::
operator
=
(
Scalar_
<
_Tp
>&&
s
)
noexcept
{
this
->
val
[
0
]
=
std
::
move
(
s
.
val
[
0
]);
this
->
val
[
1
]
=
std
::
move
(
s
.
val
[
1
]);
this
->
val
[
2
]
=
std
::
move
(
s
.
val
[
2
]);
this
->
val
[
3
]
=
std
::
move
(
s
.
val
[
3
]);
return
*
this
;
}
template
<
typename
_Tp
>
template
<
typename
_Tp2
,
int
cn
>
inline
Scalar_
<
_Tp
>::
Scalar_
(
const
Vec
<
_Tp2
,
cn
>&
v
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment