22 #ifndef ASTSHIM_FRAMESET_H
23 #define ASTSHIM_FRAMESET_H
29 #include "astshim/base.h"
30 #include "astshim/Frame.h"
104 static int constexpr
BASE = AST__BASE;
131 std::string
const &options =
"")
209 if (iframe == AST__ALLFRAMES) {
210 throw std::runtime_error(
"iframe = AST__ALLFRAMES; call addAxes instead");
274 auto *rawFrame =
reinterpret_cast<AstObject *
>(astGetFrame(
getRawPtr(), iframe));
277 throw std::runtime_error(
"getFrame failed (returned a null frame)");
279 return Object::fromAstObject<Frame>(rawFrame,
copy);
308 AstObject *rawMap =
reinterpret_cast<AstObject *
>(astGetMapping(
getRawPtr(), ind1, ind2));
311 throw std::runtime_error(
"getMapping failed (returned a null mapping)");
313 return Object::fromAstObject<Mapping>(rawMap,
true);
467 astAddVariant(
getRawPtr(),
nullptr, name.c_str());
483 return copyImpl<FrameSet, AstFrameSet>();
493 explicit FrameSet(AstFrameSet *rawPtr) :
Frame(reinterpret_cast<AstFrame *>(rawPtr)) {
495 std::ostringstream os;
496 os <<
"this is a " <<
getClassName() <<
", which is not a FrameSet";
497 throw std::invalid_argument(os.str());
AstObject const * getRawPtr() const
Definition: Object.h:286
void assertOK(AstObject *rawPtr1=nullptr, AstObject *rawPtr2=nullptr)
Definition: base.cc:49
virtual std::shared_ptr< Object > copyPolymorphic() const override
Definition: FrameSet.h:482
void setBase(int ind)
Definition: FrameSet.h:474
void mirrorVariants(int iframe)
Definition: FrameSet.h:370
static int constexpr CURRENT
index of current frame
Definition: FrameSet.h:105
int getNFrame() const
Definition: FrameSet.h:319
void addVariant(Mapping const &map, std::string const &name)
Definition: FrameSet.h:237
void remapFrame(int iframe, Mapping &map)
Definition: FrameSet.h:413
static int constexpr NOFRAME
an invalid frame index
Definition: FrameSet.h:106
std::string getVariant() const
Definition: FrameSet.h:326
void renameVariant(std::string const &name)
Definition: FrameSet.h:466
FrameSet(Frame const &baseFrame, Mapping const &mapping, Frame const ¤tFrame, std::string const &options="")
Definition: FrameSet.h:130
void addAxes(Frame const &frame)
Definition: FrameSet.h:158
int getCurrent() const
Definition: FrameSet.h:256
void addFrame(int iframe, Mapping const &map, Frame const &frame)
Definition: FrameSet.h:208
void setCurrent(int ind)
Definition: FrameSet.h:479
FrameSet(Frame const &frame, std::string const &options="")
Definition: FrameSet.h:117
std::string const getC(std::string const &attrib) const
Definition: Object.h:360
int getI(std::string const &attrib) const
Definition: Object.h:399
std::shared_ptr< Frame > getFrame(int iframe, bool copy=true) const
Definition: FrameSet.h:273
std::shared_ptr< FrameSet > copy() const
Return a deep copy of this object.
Definition: FrameSet.h:144
static int constexpr BASE
index of base frame
Definition: FrameSet.h:104
std::string getAllVariants() const
Definition: FrameSet.h:246
void setI(std::string const &attrib, int value)
Definition: Object.h:496
std::string getClassName() const
Definition: Object.h:133
int getBase() const
Definition: FrameSet.h:251
FrameSet(AstFrameSet *rawPtr)
Definition: FrameSet.h:493
Definition: FrameSet.h:99
std::shared_ptr< Mapping > getMapping(int ind1=BASE, int ind2=CURRENT) const
Definition: FrameSet.h:307
void removeFrame(int iframe)
Definition: FrameSet.h:445