LSSTApplications
10.0+286,10.0+36,10.0+46,10.0-2-g4f67435,10.1+152,10.1+37,11.0,11.0+1,11.0-1-g47edd16,11.0-1-g60db491,11.0-1-g7418c06,11.0-2-g04d2804,11.0-2-g68503cd,11.0-2-g818369d,11.0-2-gb8b8ce7
LSSTDataManagementBasePackage
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
home
lsstsw
stack
Linux64
afw
11.0-2-g04d2804
include
lsst
afw
geom
ellipses
PixelRegion.h
Go to the documentation of this file.
1
// -*- lsst-c++ -*-
2
/*
3
* LSST Data Management System
4
* Copyright 2008, 2009, 2010 LSST Corporation.
5
*
6
* This product includes software developed by the
7
* LSST Project (http://www.lsst.org/).
8
*
9
* This program is free software: you can redistribute it and/or modify
10
* it under the terms of the GNU General Public License as published by
11
* the Free Software Foundation, either version 3 of the License, or
12
* (at your option) any later version.
13
*
14
* This program is distributed in the hope that it will be useful,
15
* but WITHOUT ANY WARRANTY; without even the implied warranty of
16
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
* GNU General Public License for more details.
18
*
19
* You should have received a copy of the LSST License Statement and
20
* the GNU General Public License along with this program. If not,
21
* see <http://www.lsstcorp.org/LegalNotices/>.
22
*/
23
24
#ifndef LSST_AFW_GEOM_ELLIPSES_PixelRegion_h_INCLUDED
25
#define LSST_AFW_GEOM_ELLIPSES_PixelRegion_h_INCLUDED
26
27
#include "boost/iterator/iterator_facade.hpp"
28
29
#include "
lsst/afw/geom/Span.h
"
30
#include "
lsst/afw/geom/Box.h
"
31
#include "
lsst/afw/geom/ellipses/Ellipse.h
"
32
33
namespace
lsst {
namespace
afw {
namespace
geom {
namespace
ellipses {
34
35
class
PixelRegion
{
36
public
:
37
38
#ifndef SWIG
39
class
Iterator
;
40
41
Iterator
begin
()
const
;
42
Iterator
end
()
const
;
43
#endif
44
45
Box2I
const
&
getBBox
()
const
{
return
_bbox
; }
46
47
Span
const
getSpanAt
(
int
y
)
const
;
48
49
explicit
PixelRegion
(
Ellipse
const
& ellipse);
50
51
private
:
52
Point2D
_center
;
53
double
_detQ
;
54
double
_invQxx
;
55
double
_alpha
;
56
Box2I
_bbox
;
57
};
58
59
#ifndef SWIG
60
61
class
PixelRegion::Iterator
:
62
public
boost::iterator_facade<PixelRegion::Iterator,Span const,boost::random_access_traversal_tag> {
63
public
:
64
65
explicit
Iterator
(
Span
const
& s =
Span
(0,0,0),
PixelRegion
const
* region = NULL) :
66
_s
(s),
_region
(region) {}
67
68
private
:
69
70
friend
class
boost::iterator_core_access
;
71
72
Span
const
&
dereference
()
const
{
return
_s
; }
73
74
void
increment
() {
_s
=
_region
->
getSpanAt
(
_s
.
getY
()+1); }
75
76
void
decrement
() {
_s
=
_region
->
getSpanAt
(
_s
.
getY
()-1); }
77
78
void
advance
(
int
n) {
_s
=
_region
->
getSpanAt
(
_s
.
getY
() + n); }
79
80
bool
equal
(
Iterator
const
& other)
const
{
return
_s
== other.
_s
; }
81
82
int
distance_to
(
Iterator
const
& other)
const
{
83
return
other.
_s
.
getY
() -
_s
.
getY
();
84
}
85
86
Span
_s
;
87
PixelRegion
const
*
_region
;
88
};
89
90
91
inline
PixelRegion::Iterator
PixelRegion::begin
()
const
{
92
return
Iterator
(
getSpanAt
(
_bbox
.
getBeginY
()),
this
);
93
}
94
inline
PixelRegion::Iterator
PixelRegion::end
()
const
{
95
return
Iterator
(
getSpanAt
(
_bbox
.
getEndY
()),
this
);
96
}
97
98
#endif
99
100
}}}}
// namespace lsst::afw::geom::ellipses
101
102
#endif // !LSST_AFW_GEOM_ELLIPSES_PixelRegion_h_INCLUDED
y
int y
Definition:
GaussianCentroid.cc:36
lsst::afw::geom::Box2I::getEndY
int getEndY() const
Definition:
Box.h:144
lsst::afw::geom::Box2I::getBeginY
int getBeginY() const
Definition:
Box.h:140
lsst::afw::geom::ellipses::PixelRegion::Iterator
Definition:
PixelRegion.h:61
lsst::afw::geom::ellipses::PixelRegion::Iterator::_s
Span _s
Definition:
PixelRegion.h:86
lsst::afw::geom::Span
A range of pixels within one row of an Image.
Definition:
Span.h:54
lsst::afw::geom::ellipses::PixelRegion::Iterator::equal
bool equal(Iterator const &other) const
Definition:
PixelRegion.h:80
lsst::afw::geom::ellipses::PixelRegion::_detQ
double _detQ
Definition:
PixelRegion.h:53
lsst::afw::geom::ellipses::PixelRegion::_invQxx
double _invQxx
Definition:
PixelRegion.h:54
Ellipse.h
Forward declarations, typedefs, and definitions for Ellipse.
lsst::afw::geom::Point< double, 2 >
lsst::afw::geom::Box2I
An integer coordinate rectangle.
Definition:
Box.h:53
lsst::afw::geom::ellipses::PixelRegion::Iterator::distance_to
int distance_to(Iterator const &other) const
Definition:
PixelRegion.h:82
lsst::afw::geom::ellipses::PixelRegion::Iterator::dereference
Span const & dereference() const
Definition:
PixelRegion.h:72
lsst::afw::geom::ellipses::PixelRegion::getSpanAt
Span const getSpanAt(int y) const
lsst::afw::geom::ellipses::PixelRegion::_alpha
double _alpha
Definition:
PixelRegion.h:55
lsst::afw::geom::ellipses::PixelRegion
Definition:
PixelRegion.h:35
lsst::afw::geom::ellipses::PixelRegion::_bbox
Box2I _bbox
Definition:
PixelRegion.h:56
lsst::afw::geom::Span::getY
int getY() const
Return the y-value.
Definition:
Span.h:81
lsst::afw::geom::ellipses::PixelRegion::Iterator::decrement
void decrement()
Definition:
PixelRegion.h:76
lsst::afw::geom::ellipses::PixelRegion::Iterator::_region
PixelRegion const * _region
Definition:
PixelRegion.h:87
lsst::afw::geom::ellipses::Ellipse
An ellipse defined by an arbitrary BaseCore and a center point.
Definition:
Ellipse.h:50
lsst::afw::geom::ellipses::PixelRegion::end
Iterator end() const
Definition:
PixelRegion.h:94
lsst::afw::geom::ellipses::PixelRegion::PixelRegion
PixelRegion(Ellipse const &ellipse)
lsst::afw::geom::ellipses::PixelRegion::getBBox
Box2I const & getBBox() const
Definition:
PixelRegion.h:45
Span.h
lsst::afw::geom::ellipses::PixelRegion::begin
Iterator begin() const
Definition:
PixelRegion.h:91
lsst::afw::geom::ellipses::PixelRegion::Iterator::Iterator
Iterator(Span const &s=Span(0, 0, 0), PixelRegion const *region=NULL)
Definition:
PixelRegion.h:65
lsst::afw::geom::ellipses::PixelRegion::Iterator::iterator_core_access
friend class boost::iterator_core_access
Definition:
PixelRegion.h:70
lsst::afw::geom::ellipses::PixelRegion::Iterator::advance
void advance(int n)
Definition:
PixelRegion.h:78
Box.h
lsst::afw::geom::ellipses::PixelRegion::_center
Point2D _center
Definition:
PixelRegion.h:52
lsst::afw::geom::ellipses::PixelRegion::Iterator::increment
void increment()
Definition:
PixelRegion.h:74
Generated on Thu Sep 24 2015 02:29:14 for LSSTApplications by
1.8.5