LSST Applications g02d81e74bb+86cf3d8bc9,g180d380827+7a4e862ed4,g2079a07aa2+86d27d4dc4,g2305ad1205+e1ca1c66fa,g29320951ab+012e1474a1,g295015adf3+341ea1ce94,g2bbee38e9b+0e5473021a,g337abbeb29+0e5473021a,g33d1c0ed96+0e5473021a,g3a166c0a6a+0e5473021a,g3ddfee87b4+c429d67c83,g48712c4677+f88676dd22,g487adcacf7+27e1e21933,g50ff169b8f+96c6868917,g52b1c1532d+585e252eca,g591dd9f2cf+b41db86c35,g5a732f18d5+53520f316c,g64a986408d+86cf3d8bc9,g858d7b2824+86cf3d8bc9,g8a8a8dda67+585e252eca,g99cad8db69+84912a7fdc,g9ddcbc5298+9a081db1e4,ga1e77700b3+15fc3df1f7,ga8c6da7877+a2b54eae19,gb0e22166c9+60f28cb32d,gba4ed39666+c2a2e4ac27,gbb8dafda3b+6681f309db,gc120e1dc64+f0fcc2f6d8,gc28159a63d+0e5473021a,gcf0d15dbbd+c429d67c83,gdaeeff99f8+f9a426f77a,ge6526c86ff+0433e6603d,ge79ae78c31+0e5473021a,gee10cc3b42+585e252eca,gff1a9f87cc+86cf3d8bc9,w.2024.17
LSST Data Management Base Package
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Member Functions | List of all members
lsst::afw::image::detail::MaskDict Class Referencefinal

#include <MaskDict.h>

Classes

class  GlobalState
 

Public Types

using value_type = MaskPlaneDict::value_type
 
using const_iterator = MaskPlaneDict::const_iterator
 

Public Member Functions

MaskDictoperator= (MaskDict const &)=delete
 
MaskDictoperator= (MaskDict &&)=delete
 
 ~MaskDict () noexcept
 
std::shared_ptr< MaskDictclone () const
 
int getUnusedPlane () const
 
int getMaskPlane (std::string const &name) const
 
void print () const
 
bool operator== (MaskDict const &rhs) const
 
bool operator!= (MaskDict const &rhs) const
 
const_iterator begin () const noexcept
 
const_iterator end () const noexcept
 
const_iterator find (std::string const &name) const
 
std::size_t size () const noexcept
 
bool empty () const noexcept
 
MaskPlaneDict const & getMaskPlaneDict () const noexcept
 
void add (std::string const &name, int bitId)
 
void erase (std::string const &name)
 
void clear ()
 

Static Public Member Functions

static std::shared_ptr< MaskDictcopyOrGetDefault (MaskPlaneDict const &dict)
 
static std::shared_ptr< MaskDictgetDefault ()
 
static void setDefault (std::shared_ptr< MaskDict > dict)
 
static std::shared_ptr< MaskDictdetachDefault ()
 
static void addAllMasksPlane (std::string const &name, int bitId)
 

Detailed Description

Definition at line 61 of file MaskDict.h.

Member Typedef Documentation

◆ const_iterator

using lsst::afw::image::detail::MaskDict::const_iterator = MaskPlaneDict::const_iterator

Definition at line 65 of file MaskDict.h.

◆ value_type

using lsst::afw::image::detail::MaskDict::value_type = MaskPlaneDict::value_type

Definition at line 64 of file MaskDict.h.

Constructor & Destructor Documentation

◆ ~MaskDict()

lsst::afw::image::detail::MaskDict::~MaskDict ( )
defaultnoexcept

Member Function Documentation

◆ add()

void lsst::afw::image::detail::MaskDict::add ( std::string const & name,
int bitId )

Definition at line 191 of file MaskDict.cc.

191 {
192 _dict[name] = bitId;
193 _hash = boost::hash<MaskPlaneDict>()(_dict);
194}
table::Key< std::string > name
Definition Amplifier.cc:116

◆ addAllMasksPlane()

void lsst::afw::image::detail::MaskDict::addAllMasksPlane ( std::string const & name,
int bitId )
static

Definition at line 127 of file MaskDict.cc.

127 {
129 [&name, bitId](MaskDict & dict) {
130 auto const found = std::find_if(
131 dict.begin(), dict.end(),
132 [bitId](auto const & item) { return item.second == bitId; }
133 );
134 if (found == dict.end()) {
135 // is name already in use?
136 if (dict.find(name) == dict.end()) {
137 dict.add(name, bitId);
138 }
139 }
140 }
141 );
142}
T find_if(T... args)

◆ begin()

const_iterator lsst::afw::image::detail::MaskDict::begin ( ) const
inlinenoexcept

Definition at line 131 of file MaskDict.h.

131{ return _dict.begin(); }
T begin(T... args)

◆ clear()

void lsst::afw::image::detail::MaskDict::clear ( )

Definition at line 201 of file MaskDict.cc.

201 {
202 _dict.clear();
203 _hash = 0x0;
204}
T clear(T... args)

◆ clone()

std::shared_ptr< MaskDict > lsst::afw::image::detail::MaskDict::clone ( ) const

Definition at line 146 of file MaskDict.cc.

146 {
147 return GlobalState::get().copy(*this);
148}
std::shared_ptr< MaskDict > copy(MaskDict const &dict)
Definition MaskDict.cc:49

◆ copyOrGetDefault()

std::shared_ptr< MaskDict > lsst::afw::image::detail::MaskDict::copyOrGetDefault ( MaskPlaneDict const & dict)
static

Definition at line 111 of file MaskDict.cc.

111 {
113}
std::shared_ptr< MaskDict > copyOrGetDefault(MaskPlaneDict const &mpd)
Definition MaskDict.cc:39

◆ detachDefault()

std::shared_ptr< MaskDict > lsst::afw::image::detail::MaskDict::detachDefault ( )
static

Definition at line 123 of file MaskDict.cc.

123 {
125}
std::shared_ptr< MaskDict > detachDefault()
Definition MaskDict.cc:64

◆ empty()

bool lsst::afw::image::detail::MaskDict::empty ( ) const
inlinenoexcept

Definition at line 141 of file MaskDict.h.

141{ return _dict.empty(); }
T empty(T... args)

◆ end()

const_iterator lsst::afw::image::detail::MaskDict::end ( ) const
inlinenoexcept

Definition at line 132 of file MaskDict.h.

132{ return _dict.end(); }
T end(T... args)

◆ erase()

void lsst::afw::image::detail::MaskDict::erase ( std::string const & name)

Definition at line 196 of file MaskDict.cc.

196 {
197 _dict.erase(name);
198 _hash = boost::hash<MaskPlaneDict>()(_dict);
199}
T erase(T... args)

◆ find()

const_iterator lsst::afw::image::detail::MaskDict::find ( std::string const & name) const
inline

Definition at line 135 of file MaskDict.h.

135{ return _dict.find(name); }

◆ getDefault()

std::shared_ptr< MaskDict > lsst::afw::image::detail::MaskDict::getDefault ( )
static

Definition at line 115 of file MaskDict.cc.

115 {
116 return GlobalState::get().getDefault();
117}
std::shared_ptr< MaskDict > getDefault() const noexcept
Definition MaskDict.cc:56

◆ getMaskPlane()

int lsst::afw::image::detail::MaskDict::getMaskPlane ( std::string const & name) const

Definition at line 176 of file MaskDict.cc.

176 {
177 auto iter = find(name);
178 return (iter == end()) ? -1 : iter->second;
179}
const_iterator end() const noexcept
Definition MaskDict.h:132
const_iterator find(std::string const &name) const
Definition MaskDict.h:135

◆ getMaskPlaneDict()

MaskPlaneDict const & lsst::afw::image::detail::MaskDict::getMaskPlaneDict ( ) const
inlinenoexcept

Definition at line 144 of file MaskDict.h.

144{ return _dict; }

◆ getUnusedPlane()

int lsst::afw::image::detail::MaskDict::getUnusedPlane ( ) const

Definition at line 150 of file MaskDict.cc.

150 {
151 if (empty()) {
152 return 0;
153 }
154
155 auto const maxIter = std::max_element(
156 begin(), end(),
157 [](auto const & a, auto const & b) { return a.second < b.second; }
158 );
159 assert(maxIter != end());
160 int id = maxIter->second + 1; // The maskPlane to use if there are no gaps
161
162 for (int i = 0; i < id; ++i) {
163 // is i already used in this Mask?
164 auto const sameIter = std::find_if(
165 begin(), end(),
166 [i](auto const & item) { return item.second == i; }
167 );
168 if (sameIter == end()) { // Not used; so we'll use it
169 return i;
170 }
171 }
172
173 return id;
174}
table::Key< int > id
Definition Detector.cc:162
table::Key< int > b
const_iterator begin() const noexcept
Definition MaskDict.h:131
bool empty() const noexcept
Definition MaskDict.h:141
T max_element(T... args)

◆ operator!=()

bool lsst::afw::image::detail::MaskDict::operator!= ( MaskDict const & rhs) const
inline

Definition at line 128 of file MaskDict.h.

128{ return !(*this == rhs); }

◆ operator=() [1/2]

MaskDict & lsst::afw::image::detail::MaskDict::operator= ( MaskDict && )
delete

◆ operator=() [2/2]

MaskDict & lsst::afw::image::detail::MaskDict::operator= ( MaskDict const & )
delete

◆ operator==()

bool lsst::afw::image::detail::MaskDict::operator== ( MaskDict const & rhs) const

Definition at line 187 of file MaskDict.cc.

187 {
188 return this == &rhs || (_hash == rhs._hash && _dict == rhs._dict);
189}

◆ print()

void lsst::afw::image::detail::MaskDict::print ( ) const

Definition at line 181 of file MaskDict.cc.

181 {
182 for (auto const & item : *this) {
183 std::cout << "Plane " << item.second << " -> " << item.first << std::endl;
184 }
185}
T endl(T... args)

◆ setDefault()

void lsst::afw::image::detail::MaskDict::setDefault ( std::shared_ptr< MaskDict > dict)
static

Definition at line 119 of file MaskDict.cc.

119 {
121}
void setDefault(std::shared_ptr< MaskDict > dict)
Definition MaskDict.cc:60
T move(T... args)

◆ size()

std::size_t lsst::afw::image::detail::MaskDict::size ( ) const
inlinenoexcept

Definition at line 138 of file MaskDict.h.

138{ return _dict.size(); }
T size(T... args)

The documentation for this class was generated from the following files: