lsst.afw
g3a5ebb7d8a+28b83bf6a5
Toggle main menu visibility
Loading...
Searching...
No Matches
include
lsst
afw
geom
SpanPixelIterator.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
#ifndef LSST_AFW_GEOM_SpanPixelIterator_h_INCLUDED
26
#define LSST_AFW_GEOM_SpanPixelIterator_h_INCLUDED
27
28
#include "boost/iterator/iterator_facade.hpp"
29
30
#include "
lsst/geom/Point.h
"
31
32
namespace
lsst
{
33
namespace
afw
{
34
namespace
geom
{
35
42
class
SpanPixelIterator
:
public
boost::iterator_facade<SpanPixelIterator, lsst::geom::Point2I const,
43
boost::random_access_traversal_tag> {
44
public
:
45
explicit
SpanPixelIterator
(
lsst::geom::Point2I
const
& p =
lsst::geom::Point2I
()) noexcept : _p(p) {}
46
47
SpanPixelIterator
(
SpanPixelIterator
const
&)
noexcept
=
default
;
48
SpanPixelIterator
(
SpanPixelIterator
&&) noexcept = default;
49
SpanPixelIterator
& operator=(
SpanPixelIterator
const&) noexcept = default;
50
SpanPixelIterator
& operator=(
SpanPixelIterator
&&) noexcept = default;
51
~
SpanPixelIterator
() noexcept = default;
52
53
private:
54
friend class
boost
::
iterator_core_access
;
55
56
lsst
::
geom
::Point2I const& dereference()
const
{
return
_p; }
57
58
void
increment() { ++_p.getX(); }
59
60
void
decrement() { --_p.getX(); }
61
62
void
advance(
int
n) { _p.getX() += n; }
63
64
bool
equal(
SpanPixelIterator
const
& other)
const
{
65
return
_p.getX() == other._p.getX() && _p.getY() == other._p.getY();
66
}
67
68
int
distance_to(
SpanPixelIterator
const
& other)
const
{
69
assert(other._p.getY() == _p.getY());
70
return
other._p.getX() - _p.getX();
71
}
72
73
lsst::geom::Point2I
_p;
74
};
75
}
// namespace geom
76
}
// namespace afw
77
}
// namespace lsst
78
79
#endif
// !LSST_AFW_GEOM_SpanPixelIterator_h_INCLUDED
Point.h
lsst::afw::geom::SpanPixelIterator::SpanPixelIterator
SpanPixelIterator(SpanPixelIterator &&) noexcept=default
lsst::afw::geom::SpanPixelIterator::SpanPixelIterator
SpanPixelIterator(lsst::geom::Point2I const &p=lsst::geom::Point2I()) noexcept
Definition
SpanPixelIterator.h:45
lsst::afw::geom::SpanPixelIterator::SpanPixelIterator
SpanPixelIterator(SpanPixelIterator const &) noexcept=default
lsst::afw::geom::SpanPixelIterator::iterator_core_access
friend class boost::iterator_core_access
Definition
SpanPixelIterator.h:54
boost
lsst::afw::geom
Definition
frameSetUtils.h:40
lsst::afw
Definition
imageAlgorithm.dox:1
lsst::geom
lsst::geom::Point2I
Point< int, 2 > Point2I
lsst
Generated on
for lsst.afw by
1.17.0