34 assertOK(reinterpret_cast<AstObject *>(rawFrameSet));
38 return Object::fromAstObject<FrameSet>(
reinterpret_cast<AstObject *
>(rawFrameSet),
false);
44 assertOK(reinterpret_cast<AstObject *>(rawFrameSet));
48 return Object::fromAstObject<FrameSet>(
reinterpret_cast<AstObject *
>(rawFrameSet),
false);
71 reinterpret_cast<AstFrame *
>(astPickAxes(
getRawPtr(), axes.
size(), axes.
data(), &rawMap));
72 assertOK(reinterpret_cast<AstObject *>(rawFrame), reinterpret_cast<AstObject *>(rawMap));
75 frame = Object::fromAstObject<Frame>(
reinterpret_cast<AstObject *
>(rawFrame),
false);
80 auto map = Object::fromAstObject<Mapping>(
reinterpret_cast<AstObject *
>(rawMap),
false);
A CmpFrame is a compound Frame which allows two component Frames (of any class) to be merged together...
Struct returned by Frame::resolve containing a point and the resolved vector components.
AstObject const * getRawPtr() const
Get the raw AST pointer.
Struct returned by Frame::pickAxes containing a frame and a mapping.
AST wrapper classes and functions.
double d2
Resolved vector component 2.
void assertOK(AstObject *rawPtr1=nullptr, AstObject *rawPtr2=nullptr)
Throw std::runtime_error if AST's state is bad.
std::vector< double > point
Point.
void astBadToNan(std::vector< double > &p)
Replace AST__BAD with a quiet NaN in a vector.
Frame is used to represent a coordinate system.
int getNAxes() const
Get NAxes: the number of axes in the frame (i.e.
std::shared_ptr< FrameSet > convert(Frame const &to, std::string const &domainlist="")
Compute a frameset that describes the conversion between this frame and another frame.
ResolvedPoint resolve(std::vector< double > const &point1, std::vector< double > const &point2, std::vector< double > const &point3) const
Resolve a vector into two orthogonal components.
std::vector< double > intersect(std::vector< double > const &a1, std::vector< double > const &a2, std::vector< double > const &b1, std::vector< double > const &b2) const
Find the point of intersection between two geodesic curves.
double d1
Resolved vector component 1.
std::shared_ptr< FrameSet > findFrame(Frame const &tmplt, std::string const &domainlist="")
Find a coordinate system with specified characteristics.
FrameMapping pickAxes(std::vector< int > const &axes) const
Create a new Frame whose axes are copied from an existing Frame along with other Frame attributes...
void assertEqual(T1 val1, std::string const &descr1, T2 val2, std::string const &descr2)
CmpFrame under(Frame const &next) const
Combine this frame with another to form a compound frame (CmpFrame), with the axes of this frame foll...