USGS

Isis 3.0 Developer's Reference (API)

Home

ControlCubeGraphNode.h

Go to the documentation of this file.
00001 #ifndef ControlCubeGraphNode_h
00002 #define ControlCubeGraphNode_h
00003 
00026 #include <QObject>
00027 
00028 template< typename A, typename B > class QHash;
00029 template< typename T > class QList;
00030 
00031 class QString;
00032 
00033 namespace Isis {
00034   class ControlMeasure;
00035   class ControlPoint;
00036 
00067   class ControlCubeGraphNode : public QObject {
00068 
00069       Q_OBJECT
00070 
00071     public:
00072       explicit ControlCubeGraphNode(QString sn);
00073       ControlCubeGraphNode(const ControlCubeGraphNode &other);
00074       virtual ~ControlCubeGraphNode();
00075 
00076       void addMeasure(ControlMeasure *measure);
00077       void removeMeasure(ControlMeasure *measure);
00078       void addConnection(ControlCubeGraphNode *, ControlPoint *);
00079       void removeConnection(ControlCubeGraphNode *, ControlPoint *);
00080 
00081       bool contains(ControlPoint *point) const;
00082       QString getSerialNumber() const;
00083       int getMeasureCount() const;
00084       QList< ControlMeasure * > getMeasures() const;
00085       QList< ControlMeasure * > getValidMeasures() const;
00086       QList< ControlCubeGraphNode * > getAdjacentNodes() const;
00087       bool isConnected(ControlCubeGraphNode *other) const;
00088 
00089       ControlMeasure *getMeasure(ControlPoint *point);
00090       const ControlMeasure *getMeasure(ControlPoint *point) const;
00091       ControlMeasure *operator[](ControlPoint *point);
00092       const ControlMeasure *operator[](ControlPoint *point) const;
00093 
00094       const ControlCubeGraphNode &operator=(ControlCubeGraphNode);
00095 
00096       QString connectionsToString() const;
00097 
00098 
00099     private:
00100       void nullify();
00101 
00102 
00103     private:
00104       QString *serialNumber;
00105 
00107       QHash< ControlPoint *, ControlMeasure * > * measures;
00108 
00113       QHash< ControlCubeGraphNode *, QList< ControlPoint * > > * connections;
00114 
00115   };
00116 }
00117 
00118 #endif