22 #ifndef ASTSHIM_FRAMEDICT_H 23 #define ASTSHIM_FRAMEDICT_H 30 #include <unordered_map> 82 _domainIndexDict = _makeNewDict(*
this);
99 :
FrameSet(baseFrame, mapping, currentFrame) {
100 _domainIndexDict = _makeNewDict(*
this);
111 _domainIndexDict = _makeNewDict(*
this);
191 auto it = _domainIndexDict.
find(domainUpper);
192 if (it == _domainIndexDict.
end()) {
258 return copyImpl<FrameDict, AstFrameSet>();
295 _domainIndexDict = _makeNewDict(frameSet);
296 this->swapRawPointers(frameSet);
int getIndex(std::string const &domain) const
Get the index of a frame specified by domain.
virtual std::shared_ptr< Object > copyPolymorphic() const override
Return a deep copy of this object.
AST wrapper classes and functions.
std::string stringToUpper(std::string const &str)
Return a copy of a string in which all characters are uppercase.
std::shared_ptr< Mapping > getMapping(std::string const &from, int to) const
Variant of FrameSet::getMapping with the first frame specified by domain.
std::shared_ptr< Frame > getFrame(int iframe, bool copy=true) const
Obtain a deep copy of the specified Frame.
FrameDict(FrameSet const &frameSet)
Construct a FrameDict from a FrameSet.
void setBase(int ind)
Set Base: index of base Frame.
void mirrorVariants(int iframe)
Indicates that all access to the Variant attribute of the current Frame should should be forwarded to...
An abstract base class for objects which transform one set of coordinates to another.
std::set< std::string > getAllDomains() const
Get the domain names for all contained Frames (excluding frames with empty or defaulted domain names)...
FrameDict & operator=(FrameDict const &)=delete
void setBase(std::string const &domain)
Variant of setBase(int) with the frame specified by domain.
void setCurrent(std::string const &domain)
Variant of setCurrent(int) with the frame specified by domain.
FrameDict(Frame const &baseFrame, Mapping const &mapping, Frame const ¤tFrame, std::string const &options="")
Construct a FrameDict from two frames and a mapping that connects them.
void remapFrame(std::string const &domain, Mapping &map)
Variant of remapFrame(int, Mapping&) with the frame specified by domain.
void addFrame(int iframe, Mapping const &map, Frame const &frame) override
Add a new Frame and an associated Mapping to this FrameSet so as to define a new coordinate system...
void remapFrame(int iframe, Mapping &map)
Modify the relationship (i.e.
Frame is used to represent a coordinate system.
std::shared_ptr< Frame > getFrame(std::string const &domain, bool copy=true) const
Variant of getFrame(int, bool) where the frame is specified by domain name.
std::shared_ptr< FrameDict > copy() const
Return a deep copy of this object.
T static_pointer_cast(T... args)
std::shared_ptr< Mapping > getMapping(int from, std::string const &to) const
Variant of FrameSet::getMapping with the second frame specified by domain.
void setDomain(std::string const &domain) override
Set the domain of the current frame (and update the internal dict).
void mirrorVariants(std::string const &domain)
Variant of mirrorVariants(int) with the frame specified by domain.
void setCurrent(int ind)
Set Current: index of current Frame, starting from 1.
std::shared_ptr< Mapping > getMapping(std::string const &from, std::string const &to) const
Variant of FrameSet::getMapping with the both frames specified by domain.
A FrameSet whose frames can be referenced by domain name.
void removeFrame(int iframe) override
Remove a Frame from a FrameSet.
Abstract base class for all AST objects.
std::shared_ptr< FrameSet > getFrameSet() const
Return a deep copy as a FrameSet.
A FrameSet consists of a set of one or more Frames (which describe coordinate systems), connected together by Mappings (which describe how the coordinate systems are inter-related).
std::shared_ptr< Mapping > getMapping(int from=BASE, int to=CURRENT) const
Obtain a Mapping that converts between two Frames in a FrameSet.
bool hasDomain(std::string const &domain) const
Return True if a frame in this FrameDict has the specified domain.
FrameDict(Frame const &frame, std::string const &options="")
Construct a FrameDict from a single Frame.