22 #ifndef ASTSHIM_MAPPING_H 23 #define ASTSHIM_MAPPING_H 138 std::shared_ptr<Mapping>
inverted()
const;
217 double result = astRate(
getRawPtr(), const_cast<double *>(at.data()), ax1, ax2);
249 AstObject *rawSimpMap =
reinterpret_cast<AstObject *
>(astSimplify(
getRawPtr()));
251 return Object::fromAstObject<Mapping>(rawSimpMap,
true);
270 _tran(from,
true, to);
280 std::vector<double>
applyForward(std::vector<double>
const &from)
const {
282 std::vector<double> to(fromArr.getSize<1>() *
getNOut());
284 _tran(fromArr,
true, toArr);
304 _tran(from,
false, to);
314 std::vector<double>
applyInverse(std::vector<double>
const &from)
const {
316 std::vector<double> to(fromArr.getSize<1>() *
getNIn());
318 _tran(fromArr,
false, toArr);
360 _tranGrid(lbnd, ubnd, tol, maxpix,
true, to);
371 _tranGrid(lbnd, ubnd, tol, maxpix,
true, to);
382 _tranGrid(lbnd, ubnd, tol, maxpix,
false, to);
392 _tranGrid(lbnd, ubnd, tol, maxpix,
false, to);
400 explicit Mapping(AstMapping *rawMap) :
Object(reinterpret_cast<AstObject *>(rawMap)) {
403 std::ostringstream os;
404 os <<
"this is a " <<
getClassName() <<
", which is not a Mapping";
405 throw std::invalid_argument(os.str());
411 return std::static_pointer_cast<
Mapping>(copyImpl<Mapping, AstMapping>());
427 template <
typename Class>
443 void _tranGrid(
PointI const &lbnd,
PointI const &ubnd,
double tol,
int maxpix,
bool doForward,
Definition: SeriesMap.h:53
std::vector< double > applyInverse(std::vector< double > const &from) const
Definition: Mapping.h:314
double rate(PointD const &at, int ax1, int ax2) const
Definition: Mapping.h:215
ndarray::Array< const double, 2, 2 > ConstArray2D
Definition: base.h:46
virtual std::shared_ptr< Object > copyPolymorphic() const override
Definition: Mapping.h:410
Mapping(Mapping const &)=default
Copy constructor: make a deep copy.
AstObject const * getRawPtr() const
Definition: Object.h:291
void setB(std::string const &attrib, bool value)
Definition: Object.h:448
Array2D tranGridForward(PointI const &lbnd, PointI const &ubnd, double tol, int maxpix, int nPts) const
Definition: Mapping.h:369
int getI(std::string const &attrib) const
Definition: Object.h:399
bool hasInverse() const
Definition: Mapping.h:123
ndarray::Array< double, 2, 2 > Array2D
Definition: base.h:42
AST wrapper classes and functions.
Definition: attributes_channel.dox:1
std::string getClassName() const
Definition: Object.h:138
void tranGridForward(PointI const &lbnd, PointI const &ubnd, double tol, int maxpix, Array2D const &to) const
Definition: Mapping.h:358
void assertOK(AstObject *rawPtr1=nullptr, AstObject *rawPtr2=nullptr)
Definition: base.cc:49
SeriesMap then(Mapping const &next) const
Definition: Mapping.cc:37
std::shared_ptr< Class > decompose(int i, bool copy) const
Definition: Mapping.cc:64
bool isInverted() const
Definition: Mapping.h:95
std::shared_ptr< Mapping > inverted() const
Definition: Mapping.cc:41
std::shared_ptr< Mapping > simplified() const
Definition: Mapping.h:248
std::vector< int > PointI
Definition: base.h:50
void tranGridInverse(PointI const &lbnd, PointI const &ubnd, double tol, int maxpix, Array2D const &to) const
Definition: Mapping.h:380
Mapping(AstMapping *rawMap)
Definition: Mapping.h:400
std::vector< double > applyForward(std::vector< double > const &from) const
Definition: Mapping.h:280
Definition: ParallelMap.h:53
Mapping & operator=(Mapping const &)=delete
bool getB(std::string const &attrib) const
Definition: Object.h:347
bool getReport() const
Definition: Mapping.h:105
void applyForward(ConstArray2D const &from, Array2D const &to) const
Definition: Mapping.h:260
std::shared_ptr< Mapping > copy() const
Return a deep copy of this object.
Definition: Mapping.h:72
bool getIsLinear() const
Definition: Mapping.h:100
Array2D linearApprox(PointD const &lbnd, PointD const &ubnd, double tol) const
Definition: Mapping.cc:49
std::vector< double > PointD
Definition: base.h:57
ParallelMap under(Mapping const &next) const
Definition: Mapping.cc:39
void setReport(bool report)
Definition: Mapping.h:225
void applyInverse(ConstArray2D const &from, Array2D const &to) const
Definition: Mapping.h:294
int getNIn() const
Definition: Mapping.h:77
bool getIsSimple() const
Definition: Mapping.h:87
Array2D applyInverse(ConstArray2D const &from) const
Definition: Mapping.h:302
void assertEqual(T1 val1, std::string const &descr1, T2 val2, std::string const &descr2)
Definition: utils.h:47
ConstArray2D arrayFromVector(std::vector< double > const &vec, int nAxes)
Definition: base.cc:65
bool hasForward() const
Definition: Mapping.h:114
Array2D tranGridInverse(PointI const &lbnd, PointI const &ubnd, double tol, int maxpix, int nPts) const
Definition: Mapping.h:390
int getNOut() const
Definition: Mapping.h:82
Array2D applyForward(ConstArray2D const &from) const
Definition: Mapping.h:268
virtual ~Mapping()
Definition: Mapping.h:63