Loading [MathJax]/extensions/tex2jax.js
LSST Applications g0fba68d861+aa97b6e50c,g1ec0fe41b4+f536777771,g1fd858c14a+a9301854fb,g35bb328faa+fcb1d3bbc8,g4af146b050+a5c07d5b1d,g4d2262a081+78f4f01b60,g53246c7159+fcb1d3bbc8,g56a49b3a55+9c12191793,g5a012ec0e7+3632fc3ff3,g60b5630c4e+ded28b650d,g67b6fd64d1+ed4b5058f4,g78460c75b0+2f9a1b4bcd,g786e29fd12+cf7ec2a62a,g8352419a5c+fcb1d3bbc8,g87b7deb4dc+7b42cf88bf,g8852436030+e5453db6e6,g89139ef638+ed4b5058f4,g8e3bb8577d+d38d73bdbd,g9125e01d80+fcb1d3bbc8,g94187f82dc+ded28b650d,g989de1cb63+ed4b5058f4,g9d31334357+ded28b650d,g9f33ca652e+50a8019d8c,gabe3b4be73+1e0a283bba,gabf8522325+fa80ff7197,gb1101e3267+d9fb1f8026,gb58c049af0+f03b321e39,gb89ab40317+ed4b5058f4,gcf25f946ba+e5453db6e6,gcf6002c91b+2a0c9e9e84,gd6cbbdb0b4+bb83cc51f8,gdd1046aedd+ded28b650d,gde0f65d7ad+66b3a48cb7,ge278dab8ac+d65b3c2b70,ge410e46f29+ed4b5058f4,gf23fb2af72+b7cae620c0,gf5e32f922b+fcb1d3bbc8,gf67bdafdda+ed4b5058f4,w.2025.16
LSST Data Management Base Package
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
lsst::afw::table::QuadrupoleKey Class Referenceabstract

A FunctorKey used to get or set a geom::ellipses::Quadrupole from a tuple of constituent Keys. More...

#include <aggregates.h>

Inheritance diagram for lsst::afw::table::QuadrupoleKey:
lsst::afw::table::FunctorKey< lsst::afw::geom::ellipses::Quadrupole > lsst::afw::table::OutputFunctorKey< lsst::afw::geom::ellipses::Quadrupole > lsst::afw::table::InputFunctorKey< lsst::afw::geom::ellipses::Quadrupole >

Public Types

using Value
 The data type for get and set.
 

Public Member Functions

 QuadrupoleKey () noexcept
 Default constructor; instance will not be usable unless subsequently assigned to.
 
 QuadrupoleKey (Key< double > const &ixx, Key< double > const &iyy, Key< double > const &ixy) noexcept
 Construct from individual Keys.
 
 QuadrupoleKey (SubSchema const &s)
 Construct from a subschema with appropriate subfields.
 
 QuadrupoleKey (QuadrupoleKey const &) noexcept=default
 
 QuadrupoleKey (QuadrupoleKey &&) noexcept=default
 
QuadrupoleKeyoperator= (QuadrupoleKey const &) noexcept=default
 
QuadrupoleKeyoperator= (QuadrupoleKey &&) noexcept=default
 
 ~QuadrupoleKey () noexcept override=default
 
geom::ellipses::Quadrupole get (BaseRecord const &record) const override
 Get a Quadrupole from the given record.
 
void set (BaseRecord &record, geom::ellipses::Quadrupole const &value) const override
 Set a Quadrupole in the given record.
 
bool operator== (QuadrupoleKey const &other) const noexcept
 Compare the FunctorKey for equality with another, using the underlying Ixx, Iyy, Ixy Keys.
 
bool operator!= (QuadrupoleKey const &other) const noexcept
 
std::size_t hash_value () const noexcept
 Return a hash of this object.
 
bool isValid () const noexcept
 Return True if all the constituent Keys are valid.
 
Key< double > getIxx () const noexcept
 Return a constituent Key.
 
Key< double > getIyy () const noexcept
 
Key< double > getIxy () const noexcept
 
virtual void set (BaseRecord &record, lsst::afw::geom::ellipses::Quadrupole const &value) const=0
 
virtual void set (BaseRecord &record, lsst::afw::geom::ellipses::Quadrupole const &value) const=0
 

Static Public Member Functions

static QuadrupoleKey addFields (Schema &schema, std::string const &name, std::string const &doc, CoordinateType coordType=CoordinateType::PIXEL)
 Add a set of quadrupole subfields to a schema and return a QuadrupoleKey that points to them.
 

Detailed Description

A FunctorKey used to get or set a geom::ellipses::Quadrupole from a tuple of constituent Keys.

Definition at line 369 of file aggregates.h.

Member Typedef Documentation

◆ Value

The data type for get and set.

Definition at line 77 of file FunctorKey.h.

Constructor & Destructor Documentation

◆ QuadrupoleKey() [1/5]

lsst::afw::table::QuadrupoleKey::QuadrupoleKey ( )
inlinenoexcept

Default constructor; instance will not be usable unless subsequently assigned to.

Definition at line 386 of file aggregates.h.

386: _ixx(), _iyy(), _ixy() {}

◆ QuadrupoleKey() [2/5]

lsst::afw::table::QuadrupoleKey::QuadrupoleKey ( Key< double > const & ixx,
Key< double > const & iyy,
Key< double > const & ixy )
inlinenoexcept

Construct from individual Keys.

Definition at line 389 of file aggregates.h.

390 : _ixx(ixx), _iyy(iyy), _ixy(ixy) {}

◆ QuadrupoleKey() [3/5]

lsst::afw::table::QuadrupoleKey::QuadrupoleKey ( SubSchema const & s)
inline

Construct from a subschema with appropriate subfields.

If the schema has "a_xx", "a_yy" and "a_xy" fields this constructor enables you to construct a QuadrupoleKey via:

QuadrupoleKey k(schema["a"], coordType);

Definition at line 400 of file aggregates.h.

400: _ixx(s["xx"]), _iyy(s["yy"]), _ixy(s["xy"]) {}

◆ QuadrupoleKey() [4/5]

lsst::afw::table::QuadrupoleKey::QuadrupoleKey ( QuadrupoleKey const & )
defaultnoexcept

◆ QuadrupoleKey() [5/5]

lsst::afw::table::QuadrupoleKey::QuadrupoleKey ( QuadrupoleKey && )
defaultnoexcept

◆ ~QuadrupoleKey()

lsst::afw::table::QuadrupoleKey::~QuadrupoleKey ( )
overridedefaultnoexcept

Member Function Documentation

◆ addFields()

QuadrupoleKey lsst::afw::table::QuadrupoleKey::addFields ( Schema & schema,
std::string const & name,
std::string const & doc,
CoordinateType coordType = CoordinateType::PIXEL )
static

Add a set of quadrupole subfields to a schema and return a QuadrupoleKey that points to them.

Parameters
[in,out]schemaSchema to add fields to.
[in]nameName prefix for all fields; ("_xx", "_yy", "_xy") will be appended to this to form the full field names. In celestial coordinates, we use "x" as a synonym for "RA" and "y" for "dec".
[in]docString used as the documentation for the fields.
[in]coordTypeType of coordinates in use (PIXEL or CELESTIAL).

Definition at line 134 of file aggregates.cc.

135 {
136 std::string unit = coordType == CoordinateType::PIXEL ? "pixel^2" : "rad^2";
137
138 Key<double> xxKey = schema.addField<double>(schema.join(name, "xx"), doc, unit);
139 Key<double> yyKey = schema.addField<double>(schema.join(name, "yy"), doc, unit);
140 Key<double> xyKey = schema.addField<double>(schema.join(name, "xy"), doc, unit);
141 return QuadrupoleKey(xxKey, yyKey, xyKey);
142}
QuadrupoleKey() noexcept
Default constructor; instance will not be usable unless subsequently assigned to.
Definition aggregates.h:386

◆ get()

geom::ellipses::Quadrupole lsst::afw::table::QuadrupoleKey::get ( BaseRecord const & record) const
overridevirtual

Get a Quadrupole from the given record.

Implements lsst::afw::table::OutputFunctorKey< lsst::afw::geom::ellipses::Quadrupole >.

Definition at line 144 of file aggregates.cc.

144 {
145 return geom::ellipses::Quadrupole(record.get(_ixx), record.get(_iyy), record.get(_ixy));
146}

◆ getIxx()

Key< double > lsst::afw::table::QuadrupoleKey::getIxx ( ) const
inlinenoexcept

Return a constituent Key.

Definition at line 433 of file aggregates.h.

433{ return _ixx; }

◆ getIxy()

Key< double > lsst::afw::table::QuadrupoleKey::getIxy ( ) const
inlinenoexcept

Definition at line 435 of file aggregates.h.

435{ return _ixy; }

◆ getIyy()

Key< double > lsst::afw::table::QuadrupoleKey::getIyy ( ) const
inlinenoexcept

Definition at line 434 of file aggregates.h.

434{ return _iyy; }

◆ hash_value()

std::size_t lsst::afw::table::QuadrupoleKey::hash_value ( ) const
inlinenoexcept

Return a hash of this object.

Definition at line 423 of file aggregates.h.

423 {
424 // Completely arbitrary seed
425 return cpputils::hashCombine(17, _ixx, _iyy, _ixy);
426 }
std::size_t hashCombine(std::size_t seed) noexcept
Combine hashes.
Definition hashCombine.h:35

◆ isValid()

bool lsst::afw::table::QuadrupoleKey::isValid ( ) const
inlinenoexcept

Return True if all the constituent Keys are valid.

Definition at line 429 of file aggregates.h.

429{ return _ixx.isValid() && _iyy.isValid() && _ixy.isValid(); }

◆ operator!=()

bool lsst::afw::table::QuadrupoleKey::operator!= ( QuadrupoleKey const & other) const
inlinenoexcept

Definition at line 419 of file aggregates.h.

419{ return !(*this == other); }

◆ operator=() [1/2]

QuadrupoleKey & lsst::afw::table::QuadrupoleKey::operator= ( QuadrupoleKey && )
defaultnoexcept

◆ operator=() [2/2]

QuadrupoleKey & lsst::afw::table::QuadrupoleKey::operator= ( QuadrupoleKey const & )
defaultnoexcept

◆ operator==()

bool lsst::afw::table::QuadrupoleKey::operator== ( QuadrupoleKey const & other) const
inlinenoexcept

Compare the FunctorKey for equality with another, using the underlying Ixx, Iyy, Ixy Keys.

Definition at line 416 of file aggregates.h.

416 {
417 return _ixx == other._ixx && _iyy == other._iyy && _ixy == other._ixy;
418 }

◆ set() [1/3]

virtual void lsst::afw::table::InputFunctorKey< lsst::afw::geom::ellipses::Quadrupole >::set ( BaseRecord & record,
lsst::afw::geom::ellipses::Quadrupole const & value ) const
pure virtualinherited

◆ set() [2/3]

virtual void lsst::afw::table::InputFunctorKey< lsst::afw::geom::ellipses::Quadrupole >::set ( BaseRecord & record,
lsst::afw::geom::ellipses::Quadrupole const & value ) const
pure virtualinherited

◆ set() [3/3]

void lsst::afw::table::QuadrupoleKey::set ( BaseRecord & record,
geom::ellipses::Quadrupole const & value ) const
override

Set a Quadrupole in the given record.

Definition at line 148 of file aggregates.cc.

148 {
149 record.set(_ixx, value.getIxx());
150 record.set(_iyy, value.getIyy());
151 record.set(_ixy, value.getIxy());
152}

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