LSST Applications  21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
LSST Data Management Base Package
Public Member Functions | List of all members
lsst::afw::image::Color Class Referencefinal

Describe the colour of a source. More...

#include <Color.h>

Public Member Functions

 Color (double g_r=std::numeric_limits< double >::quiet_NaN())
 
 Color (Color const &)=default
 
 Color (Color &&)=default
 
Coloroperator= (Color const &)=default
 
Coloroperator= (Color &&)=default
 
 ~Color () noexcept=default
 
bool isIndeterminate () const noexcept
 Whether the color is the special value that indicates that it is unspecified. More...
 
bool operator== (Color const &other) const noexcept
 Equality comparison for colors. More...
 
bool operator!= (Color const &other) const noexcept
 
std::size_t hash_value () const noexcept
 Return a hash of this object. More...
 
double getLambdaEff (Filter const &) const
 Return the effective wavelength for this object in the given filter. More...
 

Detailed Description

Describe the colour of a source.

We need a concept of colour more general than "g - r" in order to calculate e.g. atmospheric dispersion or a source's PSF

Note
This is very much just a place holder until we work out what we need. A full SED may be required, in which case a constructor from an SED name might be appropriate, or a couple of colours, or ...

Definition at line 26 of file Color.h.

Constructor & Destructor Documentation

◆ Color() [1/3]

lsst::afw::image::Color::Color ( double  g_r = std::numeric_limits<double>::quiet_NaN())
inlineexplicit

Definition at line 28 of file Color.h.

28 : _g_r(g_r) {}

◆ Color() [2/3]

lsst::afw::image::Color::Color ( Color const &  )
default

◆ Color() [3/3]

lsst::afw::image::Color::Color ( Color &&  )
default

◆ ~Color()

lsst::afw::image::Color::~Color ( )
defaultnoexcept

Member Function Documentation

◆ getLambdaEff()

double lsst::afw::image::Color::getLambdaEff ( Filter const &  ) const
inline

Return the effective wavelength for this object in the given filter.

Definition at line 64 of file Color.h.

65  {
66  return 1000 * _g_r;
67  }

◆ hash_value()

std::size_t lsst::afw::image::Color::hash_value ( ) const
inlinenoexcept

Return a hash of this object.

Definition at line 57 of file Color.h.

57 { return isIndeterminate() ? 42 : std::hash<double>()(_g_r); }
bool isIndeterminate() const noexcept
Whether the color is the special value that indicates that it is unspecified.
Definition: Color.h:37

◆ isIndeterminate()

bool lsst::afw::image::Color::isIndeterminate ( ) const
inlinenoexcept

Whether the color is the special value that indicates that it is unspecified.

Definition at line 37 of file Color.h.

37 { return std::isnan(_g_r); }
T isnan(T... args)

◆ operator!=()

bool lsst::afw::image::Color::operator!= ( Color const &  other) const
inlinenoexcept

Definition at line 53 of file Color.h.

53 { return !operator==(other); }
bool operator==(Color const &other) const noexcept
Equality comparison for colors.
Definition: Color.h:50

◆ operator=() [1/2]

Color& lsst::afw::image::Color::operator= ( Color &&  )
default

◆ operator=() [2/2]

Color& lsst::afw::image::Color::operator= ( Color const &  )
default

◆ operator==()

bool lsst::afw::image::Color::operator== ( Color const &  other) const
inlinenoexcept

Equality comparison for colors.

Just a placeholder like everything else, but we explicitly let indeterminate colors compare as equal.

In the future, we'll probably want some way of doing fuzzy comparisons on colors, but then we'd have to define some kind of "color difference" matric, and it's not worthwhile doing that yet.

Definition at line 50 of file Color.h.

50  {
51  return (isIndeterminate() && other.isIndeterminate()) || other._g_r == _g_r;
52  }

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