lsst.jointcal
g29ae962dfc+02fd6c6d17
Toggle main menu visibility
Loading...
Searching...
No Matches
include
lsst
jointcal
Frame.h
Go to the documentation of this file.
1
// -*- LSST-C++ -*-
2
/*
3
* This file is part of jointcal.
4
*
5
* Developed for the LSST Data Management System.
6
* This product includes software developed by the LSST Project
7
* (https://www.lsst.org).
8
* See the COPYRIGHT file at the top-level directory of this distribution
9
* for details of code ownership.
10
*
11
* This program is free software: you can redistribute it and/or modify
12
* it under the terms of the GNU General Public License as published by
13
* the Free Software Foundation, either version 3 of the License, or
14
* (at your option) any later version.
15
*
16
* This program is distributed in the hope that it will be useful,
17
* but WITHOUT ANY WARRANTY; without even the implied warranty of
18
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
* GNU General Public License for more details.
20
*
21
* You should have received a copy of the GNU General Public License
22
* along with this program. If not, see <https://www.gnu.org/licenses/>.
23
*/
24
25
#ifndef LSST_JOINTCAL_FRAME_H
26
#define LSST_JOINTCAL_FRAME_H
27
28
#include <iostream>
29
#include "
lsst/jointcal/Point.h
"
30
31
namespace
lsst
{
32
namespace
jointcal
{
33
35
37
38
class
Frame
{
39
public
:
41
double
xMin
{},
xMax
{},
yMin
{},
yMax
{};
42
44
Frame
();
45
48
Frame
(
double
xMin
,
double
yMin
,
double
xMax
,
double
yMax
);
49
51
Frame
(
const
Point &lowerLeft,
const
Point &upperRight);
52
54
double
getWidth
()
const
{
return
xMax
-
xMin
; }
55
57
double
getHeight
()
const
{
return
yMax
-
yMin
; }
58
60
Point
getCenter
()
const
{
return
Point
((
xMax
+
xMin
) * 0.5, (
yMax
+
yMin
) * 0.5); }
61
63
Frame
operator*
(
const
Frame
&
right
)
const
;
/* intersection : a = b n c */
64
66
Frame
&
operator*=
(
const
Frame
&
right
);
/* intersection : a = a n b */
67
69
Frame
operator+
(
const
Frame
&
right
)
const
;
/* union : a = b u c */
70
72
Frame
&
operator+=
(
const
Frame
&
right
);
/* intersection : a = a u b */
73
75
void
cutMargin
(
double
marginSize);
76
78
void
cutMargin
(
double
marginX,
double
marginY);
79
81
bool
operator==
(
const
Frame
&
right
)
const
;
82
84
bool
operator!=
(
const
Frame
&
right
)
const
{
return
!(*
this
==
right
); }
85
87
Frame
rescale
(
double
factor)
const
;
88
89
// the area.
90
double
getArea
()
const
;
91
93
bool
inFrame
(
double
x,
double
y)
const
;
94
96
bool
inFrame
(
const
Point
&point)
const
{
return
inFrame
(point.
x
, point.
y
); }
97
99
double
minDistToEdges
(
const
Point
&point)
const
;
100
101
void
print
(
std::ostream
&out)
const
;
102
104
friend
std::ostream
&
operator<<
(
std::ostream
&stream,
const
Frame
&
right
) {
105
right
.print(stream);
106
return
stream;
107
};
108
109
private
:
110
void
order();
111
};
112
}
// namespace jointcal
113
}
// namespace lsst
114
115
#endif
// LSST_JOINTCAL_FRAME_H
Point.h
std::ostream
lsst::jointcal::Frame
rectangle with sides parallel to axes.
Definition
Frame.h:38
lsst::jointcal::Frame::getCenter
Point getCenter() const
Center of the frame.
Definition
Frame.h:60
lsst::jointcal::Frame::getHeight
double getHeight() const
size along y axis
Definition
Frame.h:57
lsst::jointcal::Frame::operator<<
friend std::ostream & operator<<(std::ostream &stream, const Frame &right)
allows
Definition
Frame.h:104
lsst::jointcal::Frame::yMax
double yMax
Definition
Frame.h:41
lsst::jointcal::Frame::print
void print(std::ostream &out) const
Definition
Frame.cc:124
lsst::jointcal::Frame::cutMargin
void cutMargin(double marginSize)
shrinks the frame (if marginSize>0), enlarges it (if marginSize<0).
Definition
Frame.cc:108
lsst::jointcal::Frame::inFrame
bool inFrame(double x, double y) const
inside?
Definition
Frame.cc:120
lsst::jointcal::Frame::operator*
Frame operator*(const Frame &right) const
intersection of Frame's.
Definition
Frame.cc:54
lsst::jointcal::Frame::minDistToEdges
double minDistToEdges(const Point &point) const
distance to closest boundary.
Definition
Frame.cc:49
lsst::jointcal::Frame::xMin
double xMin
coordinate of boundary.
Definition
Frame.h:41
lsst::jointcal::Frame::Frame
Frame()
Default constructor.
Definition
Frame.cc:46
lsst::jointcal::Frame::operator==
bool operator==(const Frame &right) const
necessary for comparisons (!= is defined from this one implicitely)
Definition
Frame.cc:97
lsst::jointcal::Frame::rescale
Frame rescale(double factor) const
rescale it. The center does not move.
Definition
Frame.cc:110
lsst::jointcal::Frame::operator!=
bool operator!=(const Frame &right) const
comparison
Definition
Frame.h:84
lsst::jointcal::Frame::getArea
double getArea() const
Definition
Frame.cc:118
lsst::jointcal::Frame::operator*=
Frame & operator*=(const Frame &right)
intersection of Frame's
Definition
Frame.cc:60
lsst::jointcal::Frame::operator+=
Frame & operator+=(const Frame &right)
union of Frames
Definition
Frame.cc:80
lsst::jointcal::Frame::yMin
double yMin
Definition
Frame.h:41
lsst::jointcal::Frame::getWidth
double getWidth() const
size along x axis
Definition
Frame.h:54
lsst::jointcal::Frame::operator+
Frame operator+(const Frame &right) const
union of Frames
Definition
Frame.cc:74
lsst::jointcal::Frame::inFrame
bool inFrame(const Point &point) const
same as above
Definition
Frame.h:96
lsst::jointcal::Frame::xMax
double xMax
Definition
Frame.h:41
lsst::jointcal::Point
A point in a plane.
Definition
Point.h:37
lsst::jointcal::Point::x
double x
coordinate
Definition
Point.h:42
lsst::jointcal::Point::y
double y
Definition
Point.h:42
std::right
T right(T... args)
lsst::jointcal
Definition
Associations.h:50
lsst
Generated on
for lsst.jointcal by
1.17.0