LSST Applications  21.0.0+04719a4bac,21.0.0-1-ga51b5d4+f5e6047307,21.0.0-11-g2b59f77+a9c1acf22d,21.0.0-11-ga42c5b2+86977b0b17,21.0.0-12-gf4ce030+76814010d2,21.0.0-13-g1721dae+760e7a6536,21.0.0-13-g3a573fe+768d78a30a,21.0.0-15-g5a7caf0+f21cbc5713,21.0.0-16-g0fb55c1+b60e2d390c,21.0.0-19-g4cded4ca+71a93a33c0,21.0.0-2-g103fe59+bb20972958,21.0.0-2-g45278ab+04719a4bac,21.0.0-2-g5242d73+3ad5d60fb1,21.0.0-2-g7f82c8f+8babb168e8,21.0.0-2-g8f08a60+06509c8b61,21.0.0-2-g8faa9b5+616205b9df,21.0.0-2-ga326454+8babb168e8,21.0.0-2-gde069b7+5e4aea9c2f,21.0.0-2-gecfae73+1d3a86e577,21.0.0-2-gfc62afb+3ad5d60fb1,21.0.0-25-g1d57be3cd+e73869a214,21.0.0-3-g357aad2+ed88757d29,21.0.0-3-g4a4ce7f+3ad5d60fb1,21.0.0-3-g4be5c26+3ad5d60fb1,21.0.0-3-g65f322c+e0b24896a3,21.0.0-3-g7d9da8d+616205b9df,21.0.0-3-ge02ed75+a9c1acf22d,21.0.0-4-g591bb35+a9c1acf22d,21.0.0-4-g65b4814+b60e2d390c,21.0.0-4-gccdca77+0de219a2bc,21.0.0-4-ge8a399c+6c55c39e83,21.0.0-5-gd00fb1e+05fce91b99,21.0.0-6-gc675373+3ad5d60fb1,21.0.0-64-g1122c245+4fb2b8f86e,21.0.0-7-g04766d7+cd19d05db2,21.0.0-7-gdf92d54+04719a4bac,21.0.0-8-g5674e7b+d1bd76f71f,master-gac4afde19b+a9c1acf22d,w.2021.13
LSST Data Management Base Package
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

typedef MaskPlaneDict::value_type value_type
 
typedef MaskPlaneDict::const_iterator 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

typedef MaskPlaneDict::const_iterator lsst::afw::image::detail::MaskDict::const_iterator

Definition at line 65 of file MaskDict.h.

◆ value_type

typedef MaskPlaneDict::value_type lsst::afw::image::detail::MaskDict::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  {
112  return GlobalState::get().copyOrGetDefault(mpd);
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  {
124  return GlobalState::get().detachDefault();
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
table::Key< int > a
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: