22#ifndef ASTSHIM_SKYFRAME_H
23#define ASTSHIM_SKYFRAME_H
125 :
Frame(reinterpret_cast<AstFrame *>(astSkyFrame(
"%s", options.c_str()))) {
171 for (
int axis = 1; axis < 3; ++axis) {
184 for (
int axis = 1; axis < 3; ++axis) {
211 for (
int i = 0; i < 2; ++i) {
222 for (
int i = 0; i < 2; ++i) {
239 auto *rawMap =
reinterpret_cast<AstObject *
>(astSkyOffsetMap(
getRawPtr()));
241 return Object::fromAstObject<Mapping>(rawMap,
false);
246 return copyImpl<SkyFrame, AstSkyFrame>();
250 explicit SkyFrame(AstSkyFrame *rawptr) :
Frame(reinterpret_cast<AstFrame *>(rawptr)) {
253 os <<
"this is a " <<
getClassName() <<
", which is not a SkyFrame";
table::Key< double > equinox
Frame is used to represent a coordinate system.
Abstract base class for all AST objects.
void setD(std::string const &attrib, double value)
Set the value of an attribute as a double.
double getD(std::string const &attrib) const
Get the value of an attribute as a double.
std::string const getC(std::string const &attrib) const
Get the value of an attribute as a string.
std::string getClassName() const
Get Class: the name of the class (e.g.
bool getB(std::string const &attrib) const
Get the value of an attribute as a bool.
int getI(std::string const &attrib) const
Get the value of an attribute as an int.
void setC(std::string const &attrib, std::string const &value)
Set the value of an attribute as a string.
void setB(std::string const &attrib, bool value)
Set the value of an attribute as a bool.
AstObject const * getRawPtr() const
Get the raw AST pointer.
SkyFrame is a specialised form of Frame which describes celestial longitude/latitude coordinate syste...
bool getNegLon() const
Get NegLon: display longitude values in the range [-pi,pi]?
virtual std::shared_ptr< Object > copyPolymorphic() const override
Return a deep copy of this object.
SkyFrame & operator=(SkyFrame const &)=delete
std::vector< double > getSkyRefP() const
Get SkyRefP for both axes: position defining orientation of the offset coordinate system.
void setNegLon(bool negLon)
Set NegLon: display longitude values in the range [-pi,pi]?
bool getAsTime(int axis) const
Get AsTime(axis) for one axis: format celestial coordinates as times?
SkyFrame(std::string const &options="")
Construct a SkyFrame.
SkyFrame(SkyFrame &&)=default
std::string getProjection() const
Get Projection: sky projection description.
std::shared_ptr< SkyFrame > copy() const
Return a deep copy of this object.
void setSkyRef(std::vector< double > const &skyRef)
Set SkyRef: position defining location of the offset coordinate system.
void setProjection(std::string const &projection)
Set Projection: sky projection description.
double getSkyTol() const
Get SkyTol: smallest significant shift in sky coordinates.
void setEquinox(double equinox)
Set Equinox: epoch of the mean equinox.
std::vector< double > getSkyRef() const
Get SkyRef for both axes: position defining location of the offset coordinate system.
int getLatAxis() const
Get LatAxis: index of the latitude axis.
SkyFrame & operator=(SkyFrame &&)=default
bool getIsLonAxis(int axis) const
Get IsLonAxis(axis) for one axis: is the specified axis the longitude axis?
bool getIsLatAxis(int axis) const
Get IsLatAxis(axis) for one axis: is the specified axis the latitude axis?
SkyFrame(AstSkyFrame *rawptr)
Construct a SkyFrame from a raw AST pointer.
void setSkyRefP(std::vector< double > const &skyRefP)
Set SkyRefP: position defining orientation of the offset coordinate system.
void setSkyRefIs(std::string const &skyRefIs)
Set SkyRefIs: selects the nature of the offset coordinate system.
SkyFrame(SkyFrame const &)=default
Copy constructor: make a deep copy.
void setAsTime(int axis, bool asTime)
Set AsTime(axis) for one axis: format celestial coordinates as times?
std::shared_ptr< Mapping > skyOffsetMap()
Get a sky offset map.
void setSkyTol(double skyTol)
Set SkyTol: smallest significant shift in sky coordinates.
int getLonAxis() const
Get LonAxis: index of the longitude axis.
bool getAlignOffset() const
Get AlignOffset: align SkyFrames using the offset coordinate system?
void setAlignOffset(bool alignOffset)
Set AlignOffset: align SkyFrames using the offset coordinate system?
double getEquinox() const
Get Equinox: epoch of the mean equinox.
std::string getSkyRefIs() const
Get SkyRefIs: selects the nature of the offset coordinate system.
std::string formatAxisAttr(std::string const &name, int axis)
Format an axis-specific attribute by appending the axis index.
void assertEqual(T1 val1, std::string const &descr1, T2 val2, std::string const &descr2)
AST wrapper classes and functions.
void assertOK(AstObject *rawPtr1=nullptr, AstObject *rawPtr2=nullptr)
Throw std::runtime_error if AST's state is bad.