lsst.afw
gb3a676b8dc+b4feba26a1
Loading...
Searching...
No Matches
include
lsst
afw
detection
FootprintCtrl.h
Go to the documentation of this file.
1
/*
2
* LSST Data Management System
3
* Copyright 2008, 2009, 2010 LSST Corporation.
4
*
5
* This product includes software developed by the
6
* LSST Project (http://www.lsst.org/).
7
*
8
* This program is free software: you can redistribute it and/or modify
9
* it under the terms of the GNU General Public License as published by
10
* the Free Software Foundation, either version 3 of the License, or
11
* (at your option) any later version.
12
*
13
* This program is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
* GNU General Public License for more details.
17
*
18
* You should have received a copy of the LSST License Statement and
19
* the GNU General Public License along with this program. If not,
20
* see <http://www.lsstcorp.org/LegalNotices/>.
21
*/
22
#if !defined(LSST_DETECTION_FOOTPRINTCTRL_H)
23
#define LSST_DETECTION_FOOTPRINTCTRL_H
24
/*
25
* Control Footprint-related algorithms
26
*/
27
28
namespace
lsst
{
29
namespace
afw {
30
namespace
detection {
34
class
FootprintControl
{
35
enum
TBool { FALSE_ =
false
, TRUE_ =
true
, NONE_ };
// ternary boolean value. N.b. _XXX is reserved
36
37
static
std::pair<bool, bool>
makePairFromTBool(TBool
const
val) {
38
return
(val == NONE_) ?
std::make_pair
(
false
,
false
) :
std::make_pair
(
true
, val == TRUE_);
39
}
40
41
public
:
42
explicit
FootprintControl
()
43
: _circular(NONE_), _isotropic(NONE_), _left(NONE_), _right(NONE_), _up(NONE_), _down(NONE_) {}
44
explicit
FootprintControl
(
bool
circular,
bool
isotropic =
false
)
45
: _circular(circular ? TRUE_ : FALSE_),
46
_isotropic(isotropic ? TRUE_ : FALSE_),
47
_left(NONE_),
48
_right(NONE_),
49
_up(NONE_),
50
_down(NONE_) {}
51
explicit
FootprintControl
(
bool
left,
bool
right,
bool
up,
bool
down)
52
: _circular(NONE_),
53
_isotropic(NONE_),
54
_left(left ? TRUE_ : FALSE_),
55
_right(right ? TRUE_ : FALSE_),
56
_up(up ? TRUE_ : FALSE_),
57
_down(down ? TRUE_ : FALSE_) {}
58
~FootprintControl
() =
default
;
59
FootprintControl
(
FootprintControl
const
&) =
default
;
60
FootprintControl
(
FootprintControl
&&) =
default
;
61
FootprintControl
&
operator=
(
FootprintControl
const
&) =
default
;
62
FootprintControl
&
operator=
(
FootprintControl
&&) =
default
;
63
64
#define DEFINE_ACCESSORS(NAME, UNAME) \
65
\
66
void grow##UNAME(bool val \
67
) { \
68
_##NAME = val ? TRUE_ : FALSE_; \
69
} \
70
\
71
std::pair<bool, bool> is##UNAME() const { return makePairFromTBool(_##NAME); }
72
73
DEFINE_ACCESSORS
(circular, Circular)
74
// DEFINE_ACCESSORS(isotropic, Isotropic) // special, as isotropic => circular
75
DEFINE_ACCESSORS
(left, Left)
76
DEFINE_ACCESSORS
(right, Right)
77
DEFINE_ACCESSORS
(up, Up)
78
DEFINE_ACCESSORS
(down, Down)
79
81
void
growIsotropic
(
bool
val
82
) {
83
_circular = TRUE_;
84
_isotropic = val ? TRUE_ : FALSE_;
85
}
87
std::pair<bool, bool>
isIsotropic
()
const
{
return
makePairFromTBool(_isotropic); }
88
89
#undef DEFINE_ACCESSORS
90
private
:
91
TBool _circular;
// grow in all directions ( == left & right & up & down)
92
TBool _isotropic;
// go to the expense of as isotropic a grow as possible
93
TBool _left, _right, _up, _down;
// grow in selected directions?
94
};
95
99
class
HeavyFootprintCtrl
{
100
public
:
101
enum
ModifySource
{
102
NONE
,
103
SET
,
104
};
105
106
explicit
HeavyFootprintCtrl
(
ModifySource
modifySource =
NONE
)
107
: _modifySource(modifySource), _imageVal(0.0), _maskVal(0), _varianceVal(0.0) {}
108
109
~HeavyFootprintCtrl
() =
default
;
110
HeavyFootprintCtrl
(
HeavyFootprintCtrl
const
&) =
default
;
111
HeavyFootprintCtrl
(
HeavyFootprintCtrl
&&) =
default
;
112
HeavyFootprintCtrl
&
operator=
(
HeavyFootprintCtrl
const
&) =
default
;
113
HeavyFootprintCtrl
&
operator=
(
HeavyFootprintCtrl
&&) =
default
;
114
115
ModifySource
getModifySource
()
const
{
return
_modifySource; }
116
void
setModifySource
(
ModifySource
modifySource) { _modifySource = modifySource; }
117
118
double
getImageVal
()
const
{
return
_imageVal; }
119
void
setImageVal
(
double
imageVal) { _imageVal = imageVal; }
120
long
getMaskVal
()
const
{
return
_maskVal; }
121
void
setMaskVal
(
long
maskVal) { _maskVal = maskVal; }
122
double
getVarianceVal
()
const
{
return
_varianceVal; }
123
void
setVarianceVal
(
double
varianceVal) { _varianceVal = varianceVal; }
124
125
private
:
126
ModifySource
_modifySource;
127
double
_imageVal;
128
long
_maskVal;
129
double
_varianceVal;
130
};
131
}
// namespace detection
132
}
// namespace afw
133
}
// namespace lsst
134
135
#endif
DEFINE_ACCESSORS
#define DEFINE_ACCESSORS(NAME, UNAME)
Definition
FootprintCtrl.h:64
lsst::afw::detection::FootprintControl
A Control Object for Footprints, controlling e.g.
Definition
FootprintCtrl.h:34
lsst::afw::detection::FootprintControl::~FootprintControl
~FootprintControl()=default
lsst::afw::detection::FootprintControl::growIsotropic
void growIsotropic(bool val)
Set whether Footprint should be grown isotropically.
Definition
FootprintCtrl.h:81
lsst::afw::detection::FootprintControl::operator=
FootprintControl & operator=(FootprintControl const &)=default
lsst::afw::detection::FootprintControl::operator=
FootprintControl & operator=(FootprintControl &&)=default
lsst::afw::detection::FootprintControl::FootprintControl
FootprintControl()
Definition
FootprintCtrl.h:42
lsst::afw::detection::FootprintControl::isIsotropic
std::pair< bool, bool > isIsotropic() const
Return <isSet, Value> for isotropic grows.
Definition
FootprintCtrl.h:87
lsst::afw::detection::FootprintControl::FootprintControl
FootprintControl(FootprintControl &&)=default
lsst::afw::detection::FootprintControl::FootprintControl
FootprintControl(bool left, bool right, bool up, bool down)
Definition
FootprintCtrl.h:51
lsst::afw::detection::FootprintControl::FootprintControl
FootprintControl(bool circular, bool isotropic=false)
Definition
FootprintCtrl.h:44
lsst::afw::detection::FootprintControl::FootprintControl
FootprintControl(FootprintControl const &)=default
lsst::afw::detection::HeavyFootprintCtrl
A control object for HeavyFootprints.
Definition
FootprintCtrl.h:99
lsst::afw::detection::HeavyFootprintCtrl::ModifySource
ModifySource
Definition
FootprintCtrl.h:101
lsst::afw::detection::HeavyFootprintCtrl::NONE
@ NONE
Definition
FootprintCtrl.h:102
lsst::afw::detection::HeavyFootprintCtrl::SET
@ SET
Definition
FootprintCtrl.h:103
lsst::afw::detection::HeavyFootprintCtrl::HeavyFootprintCtrl
HeavyFootprintCtrl(HeavyFootprintCtrl const &)=default
lsst::afw::detection::HeavyFootprintCtrl::operator=
HeavyFootprintCtrl & operator=(HeavyFootprintCtrl &&)=default
lsst::afw::detection::HeavyFootprintCtrl::getVarianceVal
double getVarianceVal() const
Definition
FootprintCtrl.h:122
lsst::afw::detection::HeavyFootprintCtrl::setVarianceVal
void setVarianceVal(double varianceVal)
Definition
FootprintCtrl.h:123
lsst::afw::detection::HeavyFootprintCtrl::getModifySource
ModifySource getModifySource() const
Definition
FootprintCtrl.h:115
lsst::afw::detection::HeavyFootprintCtrl::HeavyFootprintCtrl
HeavyFootprintCtrl(HeavyFootprintCtrl &&)=default
lsst::afw::detection::HeavyFootprintCtrl::HeavyFootprintCtrl
HeavyFootprintCtrl(ModifySource modifySource=NONE)
Definition
FootprintCtrl.h:106
lsst::afw::detection::HeavyFootprintCtrl::~HeavyFootprintCtrl
~HeavyFootprintCtrl()=default
lsst::afw::detection::HeavyFootprintCtrl::setMaskVal
void setMaskVal(long maskVal)
Definition
FootprintCtrl.h:121
lsst::afw::detection::HeavyFootprintCtrl::getMaskVal
long getMaskVal() const
Definition
FootprintCtrl.h:120
lsst::afw::detection::HeavyFootprintCtrl::operator=
HeavyFootprintCtrl & operator=(HeavyFootprintCtrl const &)=default
lsst::afw::detection::HeavyFootprintCtrl::setImageVal
void setImageVal(double imageVal)
Definition
FootprintCtrl.h:119
lsst::afw::detection::HeavyFootprintCtrl::getImageVal
double getImageVal() const
Definition
FootprintCtrl.h:118
lsst::afw::detection::HeavyFootprintCtrl::setModifySource
void setModifySource(ModifySource modifySource)
Definition
FootprintCtrl.h:116
std::make_pair
T make_pair(T... args)
lsst
std::pair
Generated on Thu May 16 2024 03:19:13 for lsst.afw by
1.10.0