OOPS
GeometryQGIterator.h
Go to the documentation of this file.
1
/*
2
* (C) Copyright 2009-2016 ECMWF.
3
*
4
* This software is licensed under the terms of the Apache Licence Version 2.0
5
* which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
6
* In applying this licence, ECMWF does not waive the privileges and immunities
7
* granted to it by virtue of its status as an intergovernmental organisation nor
8
* does it submit to any jurisdiction.
9
*/
10
11
#ifndef QG_MODEL_GEOMETRYQGITERATOR_H_
12
#define QG_MODEL_GEOMETRYQGITERATOR_H_
13
14
#include <iterator>
15
#include <string>
16
17
#include "eckit/geometry/Point2.h"
18
19
#include "oops/util/ObjectCounter.h"
20
#include "oops/util/Printable.h"
21
22
#include "oops/qg/GeometryQG.h"
23
#include "oops/qg/QgFortran.h"
24
25
namespace
qg
{
26
27
class
GeometryQG;
28
29
// -----------------------------------------------------------------------------
30
class
GeometryQGIterator
:
public
std::iterator<std::forward_iterator_tag,
31
eckit::geometry::Point2>,
32
public
util::Printable,
33
private
util::ObjectCounter<GeometryQGIterator> {
34
public
:
35
static
const
std::string
classname
() {
return
"qg::GeometryQGIterator"
;}
36
37
GeometryQGIterator
(
const
GeometryQGIterator
&);
38
explicit
GeometryQGIterator
(
const
GeometryQG
& geom,
const
int
& index = 1);
39
~GeometryQGIterator
();
40
41
bool
operator==
(
const
GeometryQGIterator
&)
const
;
42
bool
operator!=
(
const
GeometryQGIterator
&)
const
;
43
eckit::geometry::Point2
operator*
()
const
;
44
GeometryQGIterator
&
operator++
();
45
46
const
F90iter
&
toFortran
()
const
{
return
keyIter_
;}
47
48
private
:
49
void
print
(std::ostream &)
const
;
50
F90iter
keyIter_
;
51
};
52
53
}
// namespace qg
54
55
#endif // QG_MODEL_GEOMETRYQGITERATOR_H_
qg
The namespace for the qg model.
Definition:
qg/model/AnalyticInit.cc:13
qg::GeometryQGIterator::operator!=
bool operator!=(const GeometryQGIterator &) const
Definition:
GeometryQGIterator.cc:49
qg::GeometryQGIterator::GeometryQGIterator
GeometryQGIterator(const GeometryQGIterator &)
Definition:
GeometryQGIterator.cc:22
qg::F90iter
int F90iter
Definition:
QgFortran.h:45
qg::GeometryQGIterator::toFortran
const F90iter & toFortran() const
Definition:
GeometryQGIterator.h:46
qg::GeometryQGIterator::classname
static const std::string classname()
Definition:
GeometryQGIterator.h:35
qg::GeometryQGIterator::print
void print(std::ostream &) const
Definition:
GeometryQGIterator.cc:72
qg::GeometryQGIterator
Definition:
GeometryQGIterator.h:33
qg::GeometryQGIterator::~GeometryQGIterator
~GeometryQGIterator()
Definition:
GeometryQGIterator.cc:35
qg::GeometryQGIterator::keyIter_
F90iter keyIter_
Definition:
GeometryQGIterator.h:50
qg::GeometryQGIterator::operator*
eckit::geometry::Point2 operator*() const
Definition:
GeometryQGIterator.cc:57
qg::GeometryQGIterator::operator++
GeometryQGIterator & operator++()
Definition:
GeometryQGIterator.cc:65
qg::GeometryQG
GeometryQG handles geometry for QG model.
Definition:
GeometryQG.h:54
qg::GeometryQGIterator::operator==
bool operator==(const GeometryQGIterator &) const
Definition:
GeometryQGIterator.cc:41
fv3-bundle
oops
qg
model
GeometryQGIterator.h
Generated on Sun Oct 25 2020 12:42:57 for OOPS by
1.8.18