Blender
V4.3
intern
libmv
libmv
autotrack
libmv/autotrack/region.h
Go to the documentation of this file.
1
// Copyright (c) 2014 libmv authors.
2
//
3
// Permission is hereby granted, free of charge, to any person obtaining a copy
4
// of this software and associated documentation files (the "Software"), to
5
// deal in the Software without restriction, including without limitation the
6
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7
// sell copies of the Software, and to permit persons to whom the Software is
8
// furnished to do so, subject to the following conditions:
9
//
10
// The above copyright notice and this permission notice shall be included in
11
// all copies or substantial portions of the Software.
12
//
13
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
18
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
19
// IN THE SOFTWARE.
20
//
21
// Author: mierle@gmail.com (Keir Mierle)
22
23
#ifndef LIBMV_AUTOTRACK_REGION_H_
24
#define LIBMV_AUTOTRACK_REGION_H_
25
26
#include "
libmv/numeric/numeric.h
"
27
28
namespace
mv
{
29
30
using
libmv::Vec2f
;
31
32
// A region is a bounding box within an image.
33
//
34
// +----------> x
35
// |
36
// | (min.x, min.y) (max.x, min.y)
37
// | +-------------------------+
38
// | | |
39
// | | |
40
// | | |
41
// | +-------------------------+
42
// v (min.x, max.y) (max.x, max.y)
43
// y
44
//
45
struct
Region
{
46
Vec2f
min
;
47
Vec2f
max
;
48
49
template
<
typename
T>
50
void
Offset
(
const
T& offset) {
51
min
+= offset.template
cast<float>
();
52
max += offset.template
cast<float>
();
53
}
54
55
Region
Rounded
()
const
{
56
Region
result
;
57
result.
min
(0) =
ceil
(this->
min
(0));
58
result.
min
(1) =
ceil
(this->
min
(1));
59
result.
max
(0) =
ceil
(this->
max
(0));
60
result.
max
(1) =
ceil
(this->
max
(1));
61
return
result
;
62
}
63
};
64
65
}
// namespace mv
66
67
#endif
// LIBMV_AUTOTRACK_REGION_H_
result
double result
Definition
BLI_expr_pylike_eval_test.cc:351
ceil
ccl_device_inline float3 ceil(const float3 a)
Definition
math_float3.h:336
cast
ccl_device_inline int4 cast(const float4 a)
Definition
math_float4.h:29
libmv::Vec2f
Eigen::Vector2f Vec2f
Definition
numeric.h:125
mv
Definition
libmv/autotrack/autotrack.cc:31
numeric.h
mv::Region
Definition
libmv/autotrack/region.h:45
mv::Region::min
Vec2f min
Definition
libmv/autotrack/region.h:46
mv::Region::max
Vec2f max
Definition
libmv/autotrack/region.h:47
mv::Region::Rounded
Region Rounded() const
Definition
libmv/autotrack/region.h:55
mv::Region::Offset
void Offset(const T &offset)
Definition
libmv/autotrack/region.h:50
Generated on Thu Feb 6 2025 07:36:39 for Blender by
doxygen
1.11.0