LSST Applications g0f08755f38+9c285cab97,g1635faa6d4+13f3999e92,g1653933729+a8ce1bb630,g1a0ca8cf93+bf6eb00ceb,g28da252d5a+0829b12dee,g29321ee8c0+5700dc9eac,g2bbee38e9b+9634bc57db,g2bc492864f+9634bc57db,g2cdde0e794+c2c89b37c4,g3156d2b45e+41e33cbcdc,g347aa1857d+9634bc57db,g35bb328faa+a8ce1bb630,g3a166c0a6a+9634bc57db,g3e281a1b8c+9f2c4e2fc3,g414038480c+077ccc18e7,g41af890bb2+fde0dd39b6,g5fbc88fb19+17cd334064,g781aacb6e4+a8ce1bb630,g80478fca09+55a9465950,g82479be7b0+d730eedb7d,g858d7b2824+9c285cab97,g9125e01d80+a8ce1bb630,g9726552aa6+10f999ec6a,ga5288a1d22+2a84bb7594,gacf8899fa4+c69c5206e8,gae0086650b+a8ce1bb630,gb58c049af0+d64f4d3760,gc28159a63d+9634bc57db,gcf0d15dbbd+4b7d09cae4,gda3e153d99+9c285cab97,gda6a2b7d83+4b7d09cae4,gdaeeff99f8+1711a396fd,ge2409df99d+5e831397f4,ge79ae78c31+9634bc57db,gf0baf85859+147a0692ba,gf3967379c6+41c94011de,gf3fb38a9a8+8f07a9901b,gfb92a5be7c+9c285cab97,w.2024.46
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
lsst::gauss2d::Gaussians Class Reference

An array of Gaussian objects. More...

#include <gaussian.h>

Inheritance diagram for lsst::gauss2d::Gaussians:
lsst::gauss2d::Object

Public Types

typedef std::vector< std::shared_ptr< Gaussian > > Data
 
using iterator = typename Data::iterator
 
using const_iterator = typename Data::const_iterator
 

Public Member Functions

 Gaussians (std::optional< const Data > data)
 
 Gaussians (std::vector< std::optional< const Data > > data)
 
Gaussianoperator[] (size_t i)
 
const Gaussianoperator[] (size_t i) const
 
Gaussianat (size_t i) const
 
const Gaussianat_const (size_t i) const
 
std::shared_ptr< Gaussianat_ptr (size_t i) const
 
Data::iterator begin () noexcept
 
Data::const_iterator cbegin () const noexcept
 
Data::const_iterator begin () const noexcept
 
Data::const_iterator end () const noexcept
 
Data::iterator end () noexcept
 
Data::const_iterator cend () const noexcept
 
Data get_data () const
 
size_t size () const
 
std::string repr (bool name_keywords=false, std::string_view namespace_separator=Object::CC_NAMESPACE_SEPARATOR) const override
 Return a full, callable string representation of this.
 
std::string str () const override
 Return a brief, human-readable string representation of this.
 

Static Public Member Functions

static std::string_view null_str (const std::string_view &namespace_separator)
 

Static Public Attributes

static constexpr std::string_view CC_NAMESPACE_SEPARATOR = "::"
 The C++ namespace separator.
 
static constexpr std::string_view NULL_STR_GENERAL = "None"
 
static constexpr std::string_view PY_NAMESPACE_SEPARATOR = "."
 

Detailed Description

An array of Gaussian objects.

This class exists partly to be an immutable container of Gaussians with convenient constructors, but also so that it can be neatly wrapped with pybind11.

Definition at line 175 of file gaussian.h.

Member Typedef Documentation

◆ const_iterator

using lsst::gauss2d::Gaussians::const_iterator = typename Data::const_iterator

Definition at line 191 of file gaussian.h.

◆ Data

Definition at line 177 of file gaussian.h.

◆ iterator

using lsst::gauss2d::Gaussians::iterator = typename Data::iterator

Definition at line 190 of file gaussian.h.

Constructor & Destructor Documentation

◆ Gaussians() [1/2]

lsst::gauss2d::Gaussians::Gaussians ( std::optional< const Data > data)
explicit

Definition at line 108 of file gaussian.cc.

108 {
109 if (data) {
110 size_t n_data = data->size();
111 if (n_data > 0) {
112 _data.resize(n_data, nullptr);
113 this->assign(*data);
114 }
115 }
116}
char * data
Definition BaseRecord.cc:61
T resize(T... args)

◆ Gaussians() [2/2]

lsst::gauss2d::Gaussians::Gaussians ( std::vector< std::optional< const Data > > data)
explicit

Definition at line 117 of file gaussian.cc.

117 {
118 size_t n_data = 0;
119 for (const auto& datum : data) {
120 if (datum) n_data += datum->size();
121 }
122 if (n_data > 0) {
123 size_t i = 0;
124 _data.resize(n_data);
125 for (const auto& datum : data) i = this->assign(*datum, i);
126 }
127}

Member Function Documentation

◆ at()

Gaussian & lsst::gauss2d::Gaussians::at ( size_t i) const

Definition at line 148 of file gaussian.cc.

148{ return *(_data.at(i)); }
T at(T... args)

◆ at_const()

const Gaussian & lsst::gauss2d::Gaussians::at_const ( size_t i) const

Definition at line 149 of file gaussian.cc.

149{ return *(_data.at(i)); }

◆ at_ptr()

std::shared_ptr< Gaussian > lsst::gauss2d::Gaussians::at_ptr ( size_t i) const

Definition at line 150 of file gaussian.cc.

150{ return _data.at(i); }

◆ begin() [1/2]

Gaussians::Data::const_iterator lsst::gauss2d::Gaussians::begin ( ) const
noexcept

Definition at line 153 of file gaussian.cc.

153{ return _data.cbegin(); }
T cbegin(T... args)

◆ begin() [2/2]

Gaussians::Data::iterator lsst::gauss2d::Gaussians::begin ( )
noexcept

Definition at line 152 of file gaussian.cc.

152{ return _data.begin(); }

◆ cbegin()

Gaussians::Data::const_iterator lsst::gauss2d::Gaussians::cbegin ( ) const
noexcept

Definition at line 154 of file gaussian.cc.

154{ return _data.cbegin(); }

◆ cend()

Gaussians::Data::const_iterator lsst::gauss2d::Gaussians::cend ( ) const
noexcept

Definition at line 158 of file gaussian.cc.

158{ return _data.cend(); }
T cend(T... args)

◆ end() [1/2]

Gaussians::Data::const_iterator lsst::gauss2d::Gaussians::end ( ) const
noexcept

Definition at line 157 of file gaussian.cc.

157{ return _data.cend(); }

◆ end() [2/2]

Gaussians::Data::iterator lsst::gauss2d::Gaussians::end ( )
noexcept

Definition at line 156 of file gaussian.cc.

156{ return _data.end(); }

◆ get_data()

Gaussians::Data lsst::gauss2d::Gaussians::get_data ( ) const

Definition at line 160 of file gaussian.cc.

160{ return _data; }

◆ null_str()

static std::string_view lsst::gauss2d::Object::null_str ( const std::string_view & namespace_separator)
inlinestaticinherited

Definition at line 49 of file object.h.

49 {
50 return namespace_separator == CC_NAMESPACE_SEPARATOR ? "nullptr" : NULL_STR_GENERAL;
51 }
static constexpr std::string_view CC_NAMESPACE_SEPARATOR
The C++ namespace separator.
Definition object.h:45
static constexpr std::string_view NULL_STR_GENERAL
Definition object.h:46

◆ operator[]() [1/2]

Gaussian & lsst::gauss2d::Gaussians::operator[] ( size_t i)

Definition at line 129 of file gaussian.cc.

129{ return *(_data[i]); }

◆ operator[]() [2/2]

const Gaussian & lsst::gauss2d::Gaussians::operator[] ( size_t i) const

Definition at line 130 of file gaussian.cc.

130{ return *(_data[i]); }

◆ repr()

std::string lsst::gauss2d::Gaussians::repr ( bool name_keywords = false,
std::string_view namespace_separator = Object::CC_NAMESPACE_SEPARATOR ) const
overridevirtual

Return a full, callable string representation of this.

Parameters
name_keywordsWhether to prefix arguments with "{name}=", where name is the arg name in the header (as with keyword arguments in Python).
namespace_separatorThe string to use to delimit namespaces, i.e. :: in C++ and . in Python.
Returns
A callable string representation of this, which should return an an identical object to this.
Note
The representation with name_keywords=false must be callable in C++. The representation with name_keywords=true should be callable in Python, if there are any bindings.

Implements lsst::gauss2d::Object.

Definition at line 164 of file gaussian.cc.

164 {
165 std::string str
166 = type_name_str<Gaussians>(false, namespace_separator) + "(" + (name_keywords ? "data=" : "");
167 str += repr_iter_ptr(_data, name_keywords, namespace_separator);
168 return str + ")";
169}
std::string repr_iter_ptr(const T &container, bool name_keywords=false, std::string_view namespace_separator=Object::CC_NAMESPACE_SEPARATOR)
Definition object.h:88

◆ size()

size_t lsst::gauss2d::Gaussians::size ( ) const

Definition at line 162 of file gaussian.cc.

162{ return _data.size(); }
T size(T... args)

◆ str()

std::string lsst::gauss2d::Gaussians::str ( ) const
overridevirtual

Return a brief, human-readable string representation of this.

Implements lsst::gauss2d::Object.

Definition at line 171 of file gaussian.cc.

171 {
172 std::string str = type_name_str<Gaussians>(true) + "(data=";
173 str += str_iter_ptr(_data);
174 return str + ")";
175}
std::string str_iter_ptr(const T &container)
Definition object.h:137

Member Data Documentation

◆ CC_NAMESPACE_SEPARATOR

constexpr std::string_view lsst::gauss2d::Object::CC_NAMESPACE_SEPARATOR = "::"
staticconstexprinherited

The C++ namespace separator.

Definition at line 45 of file object.h.

◆ NULL_STR_GENERAL

constexpr std::string_view lsst::gauss2d::Object::NULL_STR_GENERAL = "None"
staticconstexprinherited

Definition at line 46 of file object.h.

◆ PY_NAMESPACE_SEPARATOR

constexpr std::string_view lsst::gauss2d::Object::PY_NAMESPACE_SEPARATOR = "."
staticconstexprinherited

Definition at line 47 of file object.h.


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