lsst.astshim
gf5dcc679e7+7aca86229d
Toggle main menu visibility
Loading...
Searching...
No Matches
include
astshim
CmpFrame.h
Go to the documentation of this file.
1
/*
2
* LSST Data Management System
3
* Copyright 2017 AURA/LSST.
4
*
5
* This product includes software developed by the
6
* LSST Project (http://www.lsst.org/).
7
*
8
* This program is free software: you can redistribute it and/or modify
9
* it under the terms of the GNU General Public License as published by
10
* the Free Software Foundation, either version 3 of the License, or
11
* (at your option) any later version.
12
*
13
* This program is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
* GNU General Public License for more details.
17
*
18
* You should have received a copy of the LSST License Statement and
19
* the GNU General Public License along with this program. If not,
20
* see <https://www.lsstcorp.org/LegalNotices/>.
21
*/
22
#ifndef ASTSHIM_CMPFRAME_H
23
#define ASTSHIM_CMPFRAME_H
24
25
#include <memory>
26
#include <sstream>
27
#include <stdexcept>
28
29
#include "
astshim/base.h
"
30
#include "
astshim/Frame.h
"
31
32
namespace
ast
{
33
60
class
CmpFrame
:
public
Frame
{
61
friend
class
Object
;
62
63
public
:
74
explicit
CmpFrame
(
Frame
const
&frame1,
Frame
const
&frame2,
std::string
const
&options =
""
)
75
:
Frame
(reinterpret_cast<AstFrame *>(astCmpFrame(const_cast<AstObject *>(frame1.getRawPtr()),
76
const_cast<AstObject *>(frame2.getRawPtr()),
77
"%s"
, options.c_str()))) {
78
assertOK
();
79
}
80
81
virtual
~CmpFrame
() {}
82
84
CmpFrame
(
CmpFrame
const
&) =
default
;
85
CmpFrame
(
CmpFrame
&&) =
default
;
86
CmpFrame
&
operator=
(
CmpFrame
const
&) =
delete
;
87
CmpFrame
&
operator=
(
CmpFrame
&&) =
default
;
88
90
std::shared_ptr<CmpFrame>
copy
()
const
{
return
std::static_pointer_cast<CmpFrame>
(
copyPolymorphic
()); }
91
98
std::shared_ptr<Frame>
operator[]
(
int
i)
const
{
return
decompose<Frame>(i,
false
); }
99
100
protected
:
101
virtual
std::shared_ptr<Object>
copyPolymorphic
()
const override
{
102
return
copyImpl<CmpFrame, AstCmpFrame>();
103
}
104
107
explicit
CmpFrame
(AstCmpFrame *rawptr) :
Frame
(reinterpret_cast<AstFrame *>(rawptr)) {
108
if
(!astIsACmpFrame(getRawPtr())) {
109
std::ostringstream
os;
110
os <<
"this is a "
<< getClassName() <<
", which is not a CmpFrame"
;
111
throw
std::invalid_argument
(os.
str
());
112
}
113
}
114
};
115
116
}
// namespace ast
117
118
#endif
Frame.h
base.h
std::ostringstream
std::string
ast::CmpFrame::Object
friend class Object
Definition
CmpFrame.h:61
ast::CmpFrame::CmpFrame
CmpFrame(CmpFrame const &)=default
Copy constructor: make a deep copy.
ast::CmpFrame::CmpFrame
CmpFrame(Frame const &frame1, Frame const &frame2, std::string const &options="")
Construct a CmpFrame.
Definition
CmpFrame.h:74
ast::CmpFrame::CmpFrame
CmpFrame(AstCmpFrame *rawptr)
Construct a CmpFrame from a raw AST pointer (protected instead of private so that SeriesMap and Paral...
Definition
CmpFrame.h:107
ast::CmpFrame::operator=
CmpFrame & operator=(CmpFrame const &)=delete
ast::CmpFrame::CmpFrame
CmpFrame(CmpFrame &&)=default
ast::CmpFrame::operator[]
std::shared_ptr< Frame > operator[](int i) const
Return a shallow copy of one of the two component frames.
Definition
CmpFrame.h:98
ast::CmpFrame::~CmpFrame
virtual ~CmpFrame()
Definition
CmpFrame.h:81
ast::CmpFrame::operator=
CmpFrame & operator=(CmpFrame &&)=default
ast::CmpFrame::copy
std::shared_ptr< CmpFrame > copy() const
Return a deep copy of this object.
Definition
CmpFrame.h:90
ast::CmpFrame::copyPolymorphic
virtual std::shared_ptr< Object > copyPolymorphic() const override
Definition
CmpFrame.h:101
std::invalid_argument
ast
AST wrapper classes and functions.
Definition
attributes_channel.dox:1
ast::Frame
Frame(int naxes, std::string const &options="")
Frame is used to represent a coordinate system.
Definition
Frame.h:168
ast::assertOK
void assertOK(AstObject *rawPtr1=nullptr, AstObject *rawPtr2=nullptr)
Throw std::runtime_error if AST's state is bad.
Definition
base.cc:49
std::static_pointer_cast
T static_pointer_cast(T... args)
std::shared_ptr
std::ostringstream::str
T str(T... args)
Generated on
for lsst.astshim by
1.17.0