22 #ifndef ASTSHIM_WINMAP_H
23 #define ASTSHIM_WINMAP_H
30 #include "astshim/base.h"
31 #include "astshim/Mapping.h"
61 explicit WinMap(std::vector<double>
const &ina, std::vector<double>
const &inb,
62 std::vector<double>
const &outa, std::vector<double>
const &outb,
63 std::string
const &options =
"")
64 :
Mapping(reinterpret_cast<AstMapping *>(_makeRawWinMap(ina, inb, outa, outb, options))) {}
78 return copyImpl<WinMap, AstWinMap>();
82 explicit WinMap(AstWinMap *rawptr) :
Mapping(reinterpret_cast<AstMapping *>(rawptr)) {
84 std::ostringstream os;
85 os <<
"this is a " <<
getClassName() <<
", which is not a WinMap";
86 throw std::invalid_argument(os.str());
91 AstWinMap *_makeRawWinMap(std::vector<double>
const &ina, std::vector<double>
const &inb,
92 std::vector<double>
const &outa, std::vector<double>
const &outb,
93 std::string
const &options =
"") {
94 auto const ncoord = ina.size();
95 if (inb.size() != ncoord) {
96 std::ostringstream os;
97 os <<
"inb.size() = " << inb.size() <<
" != " << ncoord <<
" = ina.size()";
98 throw std::invalid_argument(os.str());
100 if (outa.size() != ncoord) {
101 std::ostringstream os;
102 os <<
"outa.size() = " << outa.size() <<
" != " << ncoord <<
" = ina.size()";
103 throw std::invalid_argument(os.str());
105 if (outb.size() != ncoord) {
106 std::ostringstream os;
107 os <<
"outb.size() = " << outb.size() <<
" != " << ncoord <<
" = ina.size()";
108 throw std::invalid_argument(os.str());
110 return astWinMap(static_cast<int>(ncoord), ina.data(), inb.data(), outa.data(), outb.data(),
"%s",
WinMap(AstWinMap *rawptr)
Construct a WinMap from a raw AST pointer.
Definition: WinMap.h:82
WinMap(std::vector< double > const &ina, std::vector< double > const &inb, std::vector< double > const &outa, std::vector< double > const &outb, std::string const &options="")
Definition: WinMap.h:61
AstObject const * getRawPtr() const
Definition: Object.h:286
std::shared_ptr< WinMap > copy() const
Return a deep copy of this object.
Definition: WinMap.h:74
virtual std::shared_ptr< Object > copyPolymorphic() const override
Definition: WinMap.h:77
std::string getClassName() const
Definition: Object.h:133