LSSTApplications
10.0-2-g4f67435,11.0.rc2+1,11.0.rc2+12,11.0.rc2+3,11.0.rc2+4,11.0.rc2+5,11.0.rc2+6,11.0.rc2+7,11.0.rc2+8
LSSTDataManagementBasePackage
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
home
lsstsw
stack
Linux64
afw
11.0.rc2+4
include
lsst
afw
geom
ellipses
PyPixelRegion.h
Go to the documentation of this file.
1
// -*- lsst-c++ -*-
2
3
/*
4
* LSST Data Management System
5
* Copyright 2008, 2009, 2010 LSST Corporation.
6
*
7
* This product includes software developed by the
8
* LSST Project (http://www.lsst.org/).
9
*
10
* This program is free software: you can redistribute it and/or modify
11
* it under the terms of the GNU General Public License as published by
12
* the Free Software Foundation, either version 3 of the License, or
13
* (at your option) any later version.
14
*
15
* This program is distributed in the hope that it will be useful,
16
* but WITHOUT ANY WARRANTY; without even the implied warranty of
17
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
* GNU General Public License for more details.
19
*
20
* You should have received a copy of the LSST License Statement and
21
* the GNU General Public License along with this program. If not,
22
* see <http://www.lsstcorp.org/LegalNotices/>.
23
*/
24
25
// This is a bit of swig-only C++ code that ideally we'd put in a %inline block,
26
// but it turns out %inline blocks don't get pulled in by %import statements,
27
// causing problems downstream problems in any module that %imports ellipsesLib.i
28
// or PixelRegion.i. So instead, we separate it into a .h file that must be
29
// #included inside a %{ %} block in any module that includes ellipsesLib.i.
30
// Still ugly, but at least it makes it possible for downstream modules to include
31
// ellipsesLib.i. If someone has a better solution, I'd love to hear about it.
32
// Note that we also have to put it in include/ rather than python/, because we
33
// need it to be in the include path when we compile SWIG modules, not just when
34
// we generate them.
35
36
class
PyPixelRegionIterator
:
private
boost::noncopyable {
37
public
:
38
39
lsst::afw::geom::Span
get
()
const
{
return
*
_current
; }
40
41
void
increment
() { ++
_current
; }
42
43
bool
atEnd
()
const
{
return
_current
==
_end
; }
44
45
PyPixelRegionIterator
(
46
lsst::afw::geom::ellipses::PixelRegion::Iterator
const
& begin,
47
lsst::afw::geom::ellipses::PixelRegion::Iterator
const
& end,
48
PyObject * owner = NULL
49
) :
_current
(begin),
_end
(end),
_owner
(owner) {
50
Py_XINCREF(
_owner
);
51
}
52
53
~PyPixelRegionIterator
() { Py_XDECREF(
_owner
); }
54
55
private
:
56
lsst::afw::geom::ellipses::PixelRegion::Iterator
_current
;
57
lsst::afw::geom::ellipses::PixelRegion::Iterator
_end
;
58
PyObject *
_owner
;
59
};
PyPixelRegionIterator::_owner
PyObject * _owner
Definition:
PyPixelRegion.h:58
PyPixelRegionIterator
Definition:
PyPixelRegion.h:36
lsst.afw.geom.ellipses::PixelRegion::Iterator
Definition:
PixelRegion.h:61
lsst.afw.geom::Span
A range of pixels within one row of an Image.
Definition:
Span.h:54
PyPixelRegionIterator::increment
void increment()
Definition:
PyPixelRegion.h:41
PyPixelRegionIterator::~PyPixelRegionIterator
~PyPixelRegionIterator()
Definition:
PyPixelRegion.h:53
PyPixelRegionIterator::atEnd
bool atEnd() const
Definition:
PyPixelRegion.h:43
PyPixelRegionIterator::_end
lsst::afw::geom::ellipses::PixelRegion::Iterator _end
Definition:
PyPixelRegion.h:57
PyPixelRegionIterator::_current
lsst::afw::geom::ellipses::PixelRegion::Iterator _current
Definition:
PyPixelRegion.h:56
PyPixelRegionIterator::PyPixelRegionIterator
PyPixelRegionIterator(lsst::afw::geom::ellipses::PixelRegion::Iterator const &begin, lsst::afw::geom::ellipses::PixelRegion::Iterator const &end, PyObject *owner=NULL)
Definition:
PyPixelRegion.h:45
Generated on Wed Sep 16 2015 13:35:24 for LSSTApplications by
1.8.5