Go to the documentation of this file.
22 #ifndef ASTSHIM_FRAME_H
23 #define ASTSHIM_FRAME_H
168 explicit Frame(
int naxes, std::string
const &options =
"")
169 :
Mapping(reinterpret_cast<AstMapping *>(astFrame(naxes,
"%s", options.c_str()))) {
202 assertPointLength(a,
"a");
203 assertPointLength(b,
"b");
204 assertPointLength(c,
"c");
230 assertPointLength(a,
"a");
231 assertPointLength(b,
"b");
263 double axOffset(
int axis,
double v1,
double dist)
const {
459 std::shared_ptr<FrameSet>
convert(
Frame const &to, std::string
const &domainlist =
"");
475 assertPointLength(point1,
"point1");
476 assertPointLength(point2,
"point2");
769 std::shared_ptr<FrameSet>
findFrame(
Frame const &tmplt, std::string
const &domainlist =
"");
782 std::string
format(
int axis,
double value)
const {
783 char const *rawstr = astFormat(
getRawPtr(), axis, value);
785 return std::string(rawstr);
793 bool ret = astGetActiveUnit(
getRawPtr());
966 std::vector<double>
intersect(std::vector<double>
const &a1, std::vector<double>
const &a2,
967 std::vector<double>
const &b1, std::vector<double>
const &b2)
const;
986 std::vector<int> ret(other.
getNIn());
1076 assertPointLength(point1,
"point1");
1077 assertPointLength(point2,
"point2");
1079 astOffset(
getRawPtr(), point1.data(), point2.data(),
offset, ret.data());
1119 assertPointLength(point1,
"point1");
1197 std::vector<double>
const &point3)
const;
1504 int nread = astUnformat(
getRawPtr(), axis, str.c_str(), &value);
1519 explicit Frame(AstFrame *rawPtr) :
Mapping(reinterpret_cast<AstMapping *>(rawPtr)) {
1521 std::ostringstream os;
1522 os <<
"This is a " <<
getClassName() <<
", which is not a Frame";
1523 throw std::invalid_argument(os.str());
1527 virtual std::shared_ptr<Object>
copyPolymorphic()
const override {
return copyImpl<Frame, AstFrame>(); }
1536 template <
typename T>
1537 void assertPointLength(T
const &p,
char const *name)
const {
1538 if (
static_cast<int>(p.size()) !=
getNIn()) {
1539 std::ostringstream os;
1540 os <<
"point " << name <<
" has " << p.size() <<
" axes, but " <<
getNIn() <<
" required";
1541 throw std::invalid_argument(os.str());
NReadValue unformat(int axis, std::string const &str) const
Definition: Frame.h:1502
bool getPreserveAxes() const
Definition: Frame.h:907
void setDut1(double dut1)
Definition: Frame.h:1235
void setEpoch(std::string const &epoch)
Definition: Frame.h:1245
void setPreserveAxes(bool preserve)
Definition: Frame.h:1308
std::string format(int axis, double value) const
Definition: Frame.h:782
def next(self)
Definition: fitsChanContinued.py:105
std::string getLabel(int axis) const
Definition: Frame.h:853
virtual void setDomain(std::string const &domain)
Definition: Frame.h:1230
double value
Value that was read.
Definition: Frame.h:69
double distance(PointD const &point1, PointD const &point2) const
Definition: Frame.h:474
void setLabel(int axis, std::string const &label)
Definition: Frame.h:1257
bool getB(std::string const &attrib) const
Definition: Object.h:348
Definition: FrameSet.h:99
std::vector< int > matchAxes(Frame const &other) const
Definition: Frame.h:985
void setD(std::string const &attrib, double value)
Definition: Object.h:476
bool getPermute() const
Definition: Frame.h:902
bool getDirection(int axis) const
Definition: Frame.h:822
std::string getInternalUnit(int axis) const
Definition: Frame.h:848
void setSymbol(int axis, std::string const &symbol)
Definition: Frame.h:1313
int getMaxAxes() const
Definition: Frame.h:864
int nread
Number of characters that was read.
Definition: Frame.h:67
std::string getObsLon() const
Definition: Frame.h:897
void assertOK(AstObject *rawPtr1=nullptr, AstObject *rawPtr2=nullptr)
Definition: base.cc:49
std::string getObsLat() const
Definition: Frame.h:892
std::string getAlignSystem() const
Definition: Frame.h:802
void setB(std::string const &attrib, bool value)
Definition: Object.h:452
std::shared_ptr< Frame > copy() const
Return a deep copy of this object.
Definition: Frame.h:182
void setEpoch(double epoch)
Definition: Frame.h:1240
std::shared_ptr< FrameSet > convert(Frame const &to, std::string const &domainlist="")
Definition: Frame.cc:31
Frame & operator=(Frame const &)=delete
void setObsAlt(double alt)
Definition: Frame.h:1279
double direction
Direction, an angle in radians.
Definition: Frame.h:51
void astBadToNan(std::vector< double > &p)
Definition: utils.h:59
void setMinAxes(int minAxes)
Definition: Frame.h:1274
std::string getNormUnit(int axis) const
Definition: Frame.h:882
int getDigits() const
Definition: Frame.h:812
Frame & operator=(Frame &&)=default
void setMatchEnd(bool match)
Definition: Frame.h:1262
std::string getSystem() const
Definition: Frame.h:918
double axAngle(PointD const &a, PointD const &b, int axis) const
Definition: Frame.h:229
std::shared_ptr< Frame > frame
Frame.
Definition: Frame.h:101
Frame(Frame const &)=default
Copy constructor: make a deep copy.
Frame(int naxes, std::string const &options="")
Definition: Frame.h:168
ResolvedPoint(int naxes)
Definition: Frame.h:82
std::string getSymbol(int axis) const
Definition: Frame.h:912
int getNAxes() const
Definition: Frame.h:876
DirectionPoint(double direction, PointD const &point)
Definition: Frame.h:51
void setFormat(int axis, std::string const &format)
Definition: Frame.h:1250
std::string getClassName() const
Definition: Object.h:139
bool getActiveUnit() const
Definition: Frame.h:792
int getI(std::string const &attrib) const
Definition: Object.h:400
PointD point
Point.
Definition: Frame.h:53
void setActiveUnit(bool enable)
Definition: Frame.h:1295
PointD offset(PointD point1, PointD point2, double offset) const
Definition: Frame.h:1075
FrameMapping pickAxes(std::vector< int > const &axes) const
Definition: Frame.cc:68
ResolvedPoint resolve(std::vector< double > const &point1, std::vector< double > const &point2, std::vector< double > const &point3) const
Definition: Frame.cc:84
FrameMapping(std::shared_ptr< Frame > frame, std::shared_ptr< Mapping > mapping)
Definition: Frame.h:99
std::string getFormat(int axis) const
Definition: Frame.h:842
double getTop(int axis) const
Definition: Frame.h:928
void permAxes(std::vector< int > perm)
Definition: Frame.h:1138
double d2
Resolved vector component 2.
Definition: Frame.h:85
int getDigits(int axis) const
Definition: Frame.h:817
void setSystem(std::string const &system)
Definition: Frame.h:1321
PointD norm(PointD value) const
Definition: Frame.h:1045
bool getMatchEnd() const
Definition: Frame.h:858
void setDigits(int axis, int digits)
Definition: Frame.h:1218
std::string getTitle() const
Definition: Frame.h:923
double getBottom(int axis) const
Definition: Frame.h:807
double getDut1() const
Definition: Frame.h:832
CmpFrame under(Frame const &next) const
Definition: Frame.cc:66
virtual std::shared_ptr< Object > copyPolymorphic() const override
Definition: Frame.h:1527
NReadValue(int nread, double value)
Definition: Frame.h:67
std::vector< double > intersect(std::vector< double > const &a1, std::vector< double > const &a2, std::vector< double > const &b1, std::vector< double > const &b2) const
Definition: Frame.cc:51
double safeDouble(double val)
Definition: utils.h:100
double getEpoch() const
Definition: Frame.h:837
AST wrapper classes and functions.
Definition: attributes_channel.dox:1
int getNIn() const
Definition: Mapping.h:77
double getD(std::string const &attrib) const
Definition: Object.h:374
std::shared_ptr< Mapping > mapping
Mapping.
Definition: Frame.h:102
void setC(std::string const &attrib, std::string const &value)
Definition: Object.h:464
virtual ~Frame()
Definition: Frame.h:173
void setObsLat(std::string const &lat)
Definition: Frame.h:1284
void setMaxAxes(int maxAxes)
Definition: Frame.h:1268
void setTop(int axis, double top)
Definition: Frame.h:1331
int getMinAxes() const
Definition: Frame.h:870
std::string getDomain() const
Definition: Frame.h:827
void setTitle(std::string const &title)
Definition: Frame.h:1326
std::vector< double > PointD
Definition: base.h:57
void setI(std::string const &attrib, int value)
Definition: Object.h:500
void setDigits(int digits)
Definition: Frame.h:1213
std::string getUnit(int axis) const
Definition: Frame.h:933
void setAlignSystem(std::string const &system)
Definition: Frame.h:1203
std::string const getC(std::string const &attrib) const
Definition: Object.h:361
std::vector< double > point
Point.
Definition: Frame.h:83
double axOffset(int axis, double v1, double dist) const
Definition: Frame.h:263
void setUnit(int axis, std::string const &unit)
Definition: Frame.h:1336
void setBottom(int axis, double bottom)
Definition: Frame.h:1208
AstObject const * getRawPtr() const
Definition: Object.h:292
DirectionPoint offset2(PointD const &point1, double angle, double offset) const
Definition: Frame.h:1117
Frame(AstFrame *rawPtr)
Definition: Frame.h:1519
double d1
Resolved vector component 1.
Definition: Frame.h:84
Definition: CmpFrame.h:60
void assertEqual(T1 val1, std::string const &descr1, T2 val2, std::string const &descr2)
Definition: utils.h:48
void setDirection(bool direction, int axis)
Definition: Frame.h:1223
double getObsAlt() const
Definition: Frame.h:887
void setPermute(bool permute)
Definition: Frame.h:1303
double angle(PointD const &a, PointD const &b, PointD const &c) const
Definition: Frame.h:201
double axDistance(int axis, double v1, double v2) const
Definition: Frame.h:247
void setObsLon(std::string const &lon)
Definition: Frame.h:1289
std::shared_ptr< FrameSet > findFrame(Frame const &tmplt, std::string const &domainlist="")
Definition: Frame.cc:41
std::string formatAxisAttr(std::string const &name, int axis)
Definition: utils.h:79