lsst.astshim gf5dcc679e7+7aca86229d
Loading...
Searching...
No Matches
ast::CmpFrame Class Reference

A CmpFrame is a compound Frame which allows two component Frames (of any class) to be merged together to form a more complex Frame. More...

#include <CmpFrame.h>

Inheritance diagram for ast::CmpFrame:

Public Member Functions

 CmpFrame (Frame const &frame1, Frame const &frame2, std::string const &options="")
 Construct a CmpFrame.
virtual ~CmpFrame ()
 CmpFrame (CmpFrame const &)=default
 Copy constructor: make a deep copy.
 CmpFrame (CmpFrame &&)=default
CmpFrameoperator= (CmpFrame const &)=delete
CmpFrameoperator= (CmpFrame &&)=default
std::shared_ptr< CmpFramecopy () const
 Return a deep copy of this object.
std::shared_ptr< Frameoperator[] (int i) const
 Return a shallow copy of one of the two component frames.

Protected Member Functions

virtual std::shared_ptr< ObjectcopyPolymorphic () const override
 CmpFrame (AstCmpFrame *rawptr)
 Construct a CmpFrame from a raw AST pointer (protected instead of private so that SeriesMap and ParallelMap can call it).

Friends

class Object

Detailed Description

A CmpFrame is a compound Frame which allows two component Frames (of any class) to be merged together to form a more complex Frame.

The axes of the two component Frames then appear together in the resulting CmpFrame (those of the first Frame, followed by those of the second Frame).

Since a CmpFrame is itself a Frame, it can be used as a component in forming further CmpFrames. Frames of arbitrary complexity may be built from simple individual Frames in this way.

Attributes

CmpFrame has no attributes beyond those provided by Frame and Object. However, the attributes of the component Frames can be accessed as if they were attributes of the CmpFrame. For instance, if a CmpFrame contains a SpecFrame and a SkyFrame, then the CmpFrame will recognise the "Equinox" attribute and forward access requests to the component SkyFrame. Likewise, it will recognise the "RestFreq" attribute and forward access requests to the component SpecFrame. An axis index can optionally be appended to the end of any attribute name, in which case the request to access the attribute will be forwarded to the primary Frame defining the specified axis.

Definition at line 60 of file CmpFrame.h.

Constructor & Destructor Documentation

◆ CmpFrame() [1/4]

ast::CmpFrame::CmpFrame ( Frame const & frame1,
Frame const & frame2,
std::string const & options = "" )
inlineexplicit

Construct a CmpFrame.

Parameters
[in]frame1First frame, describing the lower numbered coordinates.
[in]frame2Second frame.
[in]optionsComma-separated list of attribute assignments.
Warning
CmpFrame contains shallow copies of the provided frames (just like AST). If you deep copies then provide deep copies to this constructor.

Definition at line 74 of file CmpFrame.h.

◆ ~CmpFrame()

virtual ast::CmpFrame::~CmpFrame ( )
inlinevirtual

Definition at line 81 of file CmpFrame.h.

◆ CmpFrame() [2/4]

ast::CmpFrame::CmpFrame ( CmpFrame const & )
default

Copy constructor: make a deep copy.

◆ CmpFrame() [3/4]

ast::CmpFrame::CmpFrame ( CmpFrame && )
default

◆ CmpFrame() [4/4]

ast::CmpFrame::CmpFrame ( AstCmpFrame * rawptr)
inlineexplicitprotected

Construct a CmpFrame from a raw AST pointer (protected instead of private so that SeriesMap and ParallelMap can call it).

Definition at line 107 of file CmpFrame.h.

Member Function Documentation

◆ copy()

std::shared_ptr< CmpFrame > ast::CmpFrame::copy ( ) const
inline

Return a deep copy of this object.

Definition at line 90 of file CmpFrame.h.

◆ copyPolymorphic()

virtual std::shared_ptr< Object > ast::CmpFrame::copyPolymorphic ( ) const
inlineoverrideprotectedvirtual

Definition at line 101 of file CmpFrame.h.

◆ operator=() [1/2]

CmpFrame & ast::CmpFrame::operator= ( CmpFrame && )
default

◆ operator=() [2/2]

CmpFrame & ast::CmpFrame::operator= ( CmpFrame const & )
delete

◆ operator[]()

std::shared_ptr< Frame > ast::CmpFrame::operator[] ( int i) const
inline

Return a shallow copy of one of the two component frames.

Parameters
[in]iIndex: 0 for the first frame, 1 for the second.
Exceptions
std::invalid_argumentif i is not 0 or 1.

Definition at line 98 of file CmpFrame.h.

◆ Object

friend class Object
friend

Definition at line 61 of file CmpFrame.h.


The documentation for this class was generated from the following file: