Isis 3.0 Object Programmers' Reference
Home
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
ControlGraph.h
Go to the documentation of this file.
1
#ifndef ControlGraph_h
2
#define ControlGraph_h
3
25
template
<
class
A,
class
B >
class
QHash
;
26
template
<
class
A,
class
B >
class
QMap
;
27
template
<
class
A,
class
B >
class
QPair
;
28
template
<
class
A>
class
QVector
;
29
class
QString;
30
31
namespace
Isis {
32
class
ControlNet;
33
class
GroupedStatistics;
34
55
class
ControlGraph
{
56
public
:
57
ControlGraph
(
ControlNet
*someControlNet);
58
ControlGraph
(
const
ControlGraph
&other);
59
~ControlGraph
();
60
61
const
bool
IsConnected
()
const
;
62
const
int
GetIslandCount
()
const
;
63
const
QVector< QString >
GetCubesOnIsland
(
const
int
&island)
const
;
64
const
QVector< QString >
GetCubeList
()
const
;
65
const
GroupedStatistics
&
GetMeasureStats
(
const
QString &
66
CubeSerialNumber)
const
;
67
68
ControlGraph
&
operator=
(
const
ControlGraph
&other);
69
70
private
:
71
// nested class forward declaration
72
class
AdjacentCubeList
;
73
74
void
HashCubesAndPopulateGraph
();
75
void
CalculateIslands
();
76
78
ControlNet
*
cnet
;
79
81
QHash< QString, int >
*
cubeIdToIndexHash
;
82
84
QHash< int, QString >
*
cubeIndexToIdHash
;
85
93
QMap< int, QPair< AdjacentCubeList, GroupedStatistics >
> *
graph
;
94
99
bool
connected
;
100
102
QVector< QVector< int >
> *
islands
;
103
118
class
AdjacentCubeList
{
119
public
:
120
AdjacentCubeList
(
const
int
&cubeIndex,
const
int
&cpIndex,
const
int
121
& cmIndex);
122
AdjacentCubeList
(
const
AdjacentCubeList
&other);
123
~AdjacentCubeList
();
124
125
const
QVector< int >
GetAdjacentCubes
()
const
;
126
void
AddConnection
(
const
int
&cubeIndex,
const
int
&cpIndex,
const
127
int
&cmIndex);
128
AdjacentCubeList
&
operator=
(
const
AdjacentCubeList
&other);
129
130
private
:
132
QMap< int, QVector< QPair< int, int >
> > *
connections
;
133
};
134
};
135
};
136
137
#endif
138