LSSTApplications  19.0.0-14-gb0260a2+6327455aeb,20.0.0+44dbdb3492,20.0.0+8a208d85ec,20.0.0+914fcaec49,20.0.0+a571b09ef0,20.0.0+f15d39cacd,20.0.0-1-g253301a+8a208d85ec,20.0.0-1-g5b95a8c+351e15424a,20.0.0-16-g760a3dc6+7dead9ab29,20.0.0-18-gcabc0c9fd+54cb7ade16,20.0.0-2-g4dae9ad+8a636d8bd2,20.0.0-2-g61b8584+b4ab3064f8,20.0.0-2-ga51b5d4+1f4ba438e8,20.0.0-2-gb780d76+d529cf1a41,20.0.0-2-ged6426c+3033df31e9,20.0.0-2-gf072044+8a208d85ec,20.0.0-2-gf1f7952+8a636d8bd2,20.0.0-22-g54e2caa+8bd7be2b67,20.0.0-25-g5eafb0f+8a636d8bd2,20.0.0-28-g73474ed+df2822652a,20.0.0-29-g1235a2f+94e05d8818,20.0.0-3-g8f21e14+2bd63a3b42,20.0.0-3-gbd60e8c+ffb20d0b0d,20.0.0-3-gbecbe05+7f0063ada4,20.0.0-4-g4bc9b9f+5be46ab906,20.0.0-4-g97dc21a+df2822652a,20.0.0-4-gb4befbc+928dca1c48,20.0.0-4-gf910f65+b4ab3064f8,20.0.0-42-g74ec3ae9+afa8208526,20.0.0-5-gfbfe500+d529cf1a41,20.0.0-6-g4aa86cc+9b37c72498,20.0.0-6-g9a5b7a1+9aa0dcac42,20.0.0-6-gd222c45+7040a8a6f6,20.0.0-73-gf477d90+d0de1c7e9f,20.0.0-9-g4aef684+2aec92f563,20.0.0-9-g5051ac2+d529cf1a41,w.2020.47
LSSTDataManagementBasePackage
Public Types | Public Member Functions | Static Public Member Functions | List of all members
lsst::afw::table::QuadrupoleKey Class Reference

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 = lsst::afw::geom::ellipses::Quadrupole
 The data type for get and set. More...
 

Public Member Functions

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

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. More...
 

Detailed Description

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

Definition at line 282 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 299 of file aggregates.h.

299 : _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 302 of file aggregates.h.

303  : _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 313 of file aggregates.h.

313 : _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 100 of file aggregates.cc.

101  {
102  std::string unit = coordType == CoordinateType::PIXEL ? "pixel^2" : "rad^2";
103 
104  Key<double> xxKey = schema.addField<double>(schema.join(name, "xx"), doc, unit);
105  Key<double> yyKey = schema.addField<double>(schema.join(name, "yy"), doc, unit);
106  Key<double> xyKey = schema.addField<double>(schema.join(name, "xy"), doc, unit);
107  return QuadrupoleKey(xxKey, yyKey, xyKey);
108 }

◆ 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 110 of file aggregates.cc.

110  {
111  return geom::ellipses::Quadrupole(record.get(_ixx), record.get(_iyy), record.get(_ixy));
112 }

◆ getIxx()

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

Return a constituent Key.

Definition at line 346 of file aggregates.h.

346 { return _ixx; }

◆ getIxy()

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

Definition at line 348 of file aggregates.h.

348 { return _ixy; }

◆ getIyy()

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

Definition at line 347 of file aggregates.h.

347 { return _iyy; }

◆ hash_value()

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

Return a hash of this object.

Definition at line 336 of file aggregates.h.

336  {
337  // Completely arbitrary seed
338  return utils::hashCombine(17, _ixx, _iyy, _ixy);
339  }

◆ isValid()

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

Return True if all the constituent Keys are valid.

Definition at line 342 of file aggregates.h.

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

◆ operator!=()

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

Definition at line 332 of file aggregates.h.

332 { 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 329 of file aggregates.h.

329  {
330  return _ixx == other._ixx && _iyy == other._iyy && _ixy == other._ixy;
331  }

◆ set()

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

Set a Quadrupole in the given record.

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

Definition at line 114 of file aggregates.cc.

114  {
115  record.set(_ixx, value.getIxx());
116  record.set(_iyy, value.getIyy());
117  record.set(_ixy, value.getIxy());
118 }

The documentation for this class was generated from the following files:
schema
table::Schema schema
Definition: python.h:134
lsst::afw::table::CoordinateType::PIXEL
@ PIXEL
std::string
STL class.
lsst::afw::geom.transform.transformContinued.name
string name
Definition: transformContinued.py:32
other
ItemVariant const * other
Definition: Schema.cc:56
lsst::afw::table::Key::isValid
bool isValid() const noexcept
Return true if the key was initialized to valid offset.
Definition: Key.h:97
lsst::utils::hashCombine
std::size_t hashCombine(std::size_t seed) noexcept
Combine hashes.
Definition: hashCombine.h:35
lsst::afw::table::QuadrupoleKey::QuadrupoleKey
QuadrupoleKey() noexcept
Default constructor; instance will not be usable unless subsequently assigned to.
Definition: aggregates.h:299