|
Isis 3.0 Developer's Reference (API) |
Home |
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