22#ifndef ASTSHIM_CMPMAP_H
23#define ASTSHIM_CMPMAP_H
78 :
Mapping(reinterpret_cast<AstMapping *>(astCmpMap(const_cast<AstObject *>(map1.
getRawPtr()),
79 const_cast<AstObject *>(map2.
getRawPtr()),
80 series,
"%s", options.c_str()))) {
108 return copyImpl<CmpMap, AstCmpMap>();
113 explicit CmpMap(AstCmpMap *rawptr) :
Mapping(reinterpret_cast<AstMapping *>(rawptr)) {
116 os <<
"this is a " <<
getClassName() <<
", which is not a CmpMap";
Abstract base class for SeriesMap and ParallelMap.
CmpMap(AstCmpMap *rawptr)
Construct a CmpMap from a raw AST pointer (protected instead of private so that SeriesMap and Paralle...
CmpMap & operator=(CmpMap const &)=delete
bool getSeries()
Return True if the map is in series.
CmpMap & operator=(CmpMap &&)=default
std::shared_ptr< CmpMap > copy() const
Return a deep copy of this object.
CmpMap(CmpMap const &)=default
Copy constructor: make a deep copy.
CmpMap(CmpMap &&)=default
virtual std::shared_ptr< Object > copyPolymorphic() const override
Return a deep copy of this object.
CmpMap(Mapping const &map1, Mapping const &map2, bool series, std::string const &options="")
Construct a CmpMap.
std::shared_ptr< Mapping > operator[](int i) const
Return a shallow copy of one of the two component mappings.
An abstract base class for objects which transform one set of coordinates to another.
Abstract base class for all AST objects.
std::string getClassName() const
Get Class: the name of the class (e.g.
AstObject const * getRawPtr() const
Get the raw AST pointer.
bool isSeries(AstCmpMap const *cmpMap)
Return true if the compound map is in series.
AST wrapper classes and functions.
void assertOK(AstObject *rawPtr1=nullptr, AstObject *rawPtr2=nullptr)
Throw std::runtime_error if AST's state is bad.