indigoX
iters.hpp
Go to the documentation of this file.
1
//
2
// iters.hpp
3
// indigox
4
//
5
// Created by Ivan Welsh on 7/01/18.
6
// Copyright © 2018 Hermes Productions. All rights reserved.
7
//
8
9
#include "
atom.hpp
"
10
#include "
bond.hpp
"
11
#include "
molecule.hpp
"
12
13
#include <array>
14
#include <cstdint>
15
#include <unordered_map>
16
#include <vector>
17
18
#ifndef INDIGOX_CLASSES_ITERS_HPP
19
#define INDIGOX_CLASSES_ITERS_HPP
20
21
namespace
indigox
{
22
23
enum
IteratorType
{
24
ATOM_NEIGHBOUR
,
25
BOND_ATOM
,
26
MOLECULE_ATOM
,
27
ATOM_BOND
,
28
MOLECULE_BOND
,
29
UNDEFINED
30
};
31
32
class
AtomIterator
{
33
public
:
34
AtomIterator
();
35
AtomIterator
(
Atom
);
36
AtomIterator
(
Bond
);
37
AtomIterator
(
Molecule
);
38
AtomIterator
(
const
AtomIterator
&);
39
~AtomIterator
();
40
41
AtomIterator
&
operator=
(
const
AtomIterator
&);
42
operator
bool()
const
;
43
// Preincrement
44
AtomIterator
&
operator++
();
45
// Post increment
46
AtomIterator
operator++
(
int
);
47
// Shared pointer to current atom
48
Atom
operator->
()
const
;
49
Atom
operator*
()
const
;
50
51
private
:
52
void
ResetToOther(
const
AtomIterator
&);
53
54
private
:
55
IteratorType
type_;
56
MolAtomIterator itMol_;
57
Molecule
parentMol_;
58
BondAtomIterator itBond_;
59
Bond
parentBond_;
60
AtomBondIter itAtom_;
61
Atom
parentAtom_;
62
63
Atom
ptr_;
64
};
65
}
// namespace indigox
66
67
#endif
/* INDIGOX_CLASSES_ITERS_HPP */
indigox::ATOM_BOND
Definition:
iters.hpp:27
indigox::Bond
Definition:
bond.hpp:11
indigox::Atom
Definition:
atom.hpp:13
indigox::BOND_ATOM
Definition:
iters.hpp:25
indigox::ATOM_NEIGHBOUR
Definition:
iters.hpp:24
indigox::AtomIterator::operator *
Atom operator *() const
indigox::UNDEFINED
Definition:
iters.hpp:29
indigox::IteratorType
IteratorType
Definition:
iters.hpp:23
indigox
Namespace for all graph related functionality.
Definition:
access.hpp:7
indigox::AtomIterator::~AtomIterator
~AtomIterator()
atom.hpp
indigox::AtomIterator
Definition:
iters.hpp:32
indigox::AtomIterator::operator->
Atom operator->() const
indigox::AtomIterator::operator++
AtomIterator & operator++()
molecule.hpp
indigox::Molecule
Definition:
molecule.hpp:15
indigox::AtomIterator::operator=
AtomIterator & operator=(const AtomIterator &)
indigox::MOLECULE_BOND
Definition:
iters.hpp:28
bond.hpp
indigox::AtomIterator::AtomIterator
AtomIterator()
indigox::MOLECULE_ATOM
Definition:
iters.hpp:26
include
indigox
classes
iters.hpp
Generated on Tue Feb 19 2019 07:25:31 for indigoX by
1.8.15