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 Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
lsst::gauss2d::CoordinateSystem Class Reference

A coordinate system specifying image scale and orientation. More...

#include <coordinatesystem.h>

Inheritance diagram for lsst::gauss2d::CoordinateSystem:
lsst::gauss2d::Object

Public Member Functions

 CoordinateSystem (double dx1=1., double dy2=1, double x_min=0, double y_min=0)
 
 ~CoordinateSystem ()
 
double get_dx1 () const
 
double get_dy2 () const
 
double get_x_min () const
 
double get_y_min () const
 
bool is_xy_aligned () const
 
bool operator== (const CoordinateSystem &other) const
 
bool operator!= (const CoordinateSystem &other) 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

A coordinate system specifying image scale and orientation.

This is intended to mimic some of the functionality of e.g. basic FITS headers, in order for evaluators to draw images at different scales and/or with rotation/translation. Rotation is not yet supported.

Definition at line 43 of file coordinatesystem.h.

Constructor & Destructor Documentation

◆ CoordinateSystem()

lsst::gauss2d::CoordinateSystem::CoordinateSystem ( double dx1 = 1.,
double dy2 = 1,
double x_min = 0,
double y_min = 0 )
explicit

Definition at line 64 of file coordinatesystem.cc.

65 : _dx1(dx1), _dy2(dy2), _x_min(x_min), _y_min(y_min) {
66 std::string errmsg = "";
67 if (!((dx1 != 0) && std::isfinite(dx1) && (dy2 != 0) && std::isfinite(dy2))) {
68 errmsg += "dx1, dy2 = " + to_string_float(_dx1) + ", " + to_string_float(_dy2) + " ==0 or !finite; ";
69 }
70 if (!(std::isfinite(_x_min) && std::isfinite(_y_min))) {
71 errmsg += "x_min, y_min = " + to_string_float(_x_min) + ", " + to_string_float(_y_min) + " !finite; ";
72 }
73 if (errmsg != "") {
74 throw std::invalid_argument(errmsg);
75 }
76}
T isfinite(T... args)
std::string to_string_float(const T value, const int precision=6, const bool scientific=true)
Definition to_string.h:15

◆ ~CoordinateSystem()

lsst::gauss2d::CoordinateSystem::~CoordinateSystem ( )

Definition at line 78 of file coordinatesystem.cc.

78{}

Member Function Documentation

◆ get_dx1()

double lsst::gauss2d::CoordinateSystem::get_dx1 ( ) const

Definition at line 36 of file coordinatesystem.cc.

36{ return _dx1; }

◆ get_dy2()

double lsst::gauss2d::CoordinateSystem::get_dy2 ( ) const

Definition at line 37 of file coordinatesystem.cc.

37{ return _dy2; }

◆ get_x_min()

double lsst::gauss2d::CoordinateSystem::get_x_min ( ) const

Definition at line 39 of file coordinatesystem.cc.

39{ return _x_min; }

◆ get_y_min()

double lsst::gauss2d::CoordinateSystem::get_y_min ( ) const

Definition at line 40 of file coordinatesystem.cc.

40{ return _y_min; }

◆ is_xy_aligned()

bool lsst::gauss2d::CoordinateSystem::is_xy_aligned ( ) const

Definition at line 42 of file coordinatesystem.cc.

42{ return true; }

◆ 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!=()

bool lsst::gauss2d::CoordinateSystem::operator!= ( const CoordinateSystem & other) const

Definition at line 49 of file coordinatesystem.cc.

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

◆ operator==()

bool lsst::gauss2d::CoordinateSystem::operator== ( const CoordinateSystem & other) const

Definition at line 44 of file coordinatesystem.cc.

44 {
45 return (_dx1 == other.get_dx1()) && (_dy2 == other.get_dy2()) && (_x_min == other.get_x_min())
46 && (_y_min == other.get_y_min());
47}

◆ repr()

std::string lsst::gauss2d::CoordinateSystem::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 51 of file coordinatesystem.cc.

51 {
52 return type_name_str<CoordinateSystem>(false, namespace_separator) + "(" + (name_keywords ? "dx1=" : "")
53 + to_string_float(_dx1) + ", " + (name_keywords ? "dy2=" : "") + to_string_float(_dy2) + ", "
54 + (name_keywords ? "x_min=" : "") + to_string_float(_x_min) + ", "
55 + (name_keywords ? "y_min=" : "") + to_string_float(_y_min) + ")";
56}

◆ str()

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

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

Implements lsst::gauss2d::Object.

Definition at line 58 of file coordinatesystem.cc.

58 {
59 return type_name_str<CoordinateSystem>(true) + "(dx1=" + to_string_float(_dx1)
60 + ", dy2=" + to_string_float(_dy2) + ", x_min=" + to_string_float(_x_min)
61 + ", y_min=" + to_string_float(_y_min) + ")";
62}

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: