Loading isis/src/control/objs/ControlNet/ControlNet.cpp +34 −33 Original line number Diff line number Diff line Loading @@ -640,16 +640,10 @@ namespace Isis { cubeGraphNodes->remove(serial); } // Remove the measure from the node. // Remove the measure from the associated node. m_controlGraph[m_vertexMap[serial]].measures.removeAll(measure); // you're deleting that vertex from the control point's graph. // TODO: decrement the strength on the correct edge. // Get the parent control point. // Get all other measures for the control point // All of the other serial numbers / verticies you're connected to. // decrement all their weights. // Decrement the edge strength & remove edge if -> 0 happens in measureIgnored // If this caused the node to be empty, then delete the node. if (m_controlGraph[m_vertexMap[serial]].measures.size() <= 0) { Loading Loading @@ -692,7 +686,15 @@ namespace Isis { neighborNode->removeConnection(node, point); node->removeConnection(neighborNode, point); } ImageConnection connection = boost::edge(m_vertexMap[serial], m_vertexMap[sn], m_controlGraph).first; m_controlGraph[connection].strength--; if (m_controlGraph[connection].strength <= 0) { boost::remove_edge(m_vertexMap[serial], m_vertexMap[sn], m_controlGraph); } } } } Loading Loading @@ -798,10 +800,10 @@ namespace Isis { QList< QList< QString > > ControlNet::GetSerialConnections() const { QList< QList< QString > > islandStrings; // boost::put(indexMapAdaptor, newVertex, i); // std::vector<int> component (boost::num_vertices (m_controlGraph)); // size_t numComponents = boost::connected_components(m_controlGraph, component) QList< QList< ControlCubeGraphNode * > > islands;// = m_controlGraph. for (int i = 0; i < islands.size(); i++) { QList< QString > newIsland; Loading Loading @@ -848,18 +850,12 @@ namespace Isis { * * @param serialNumber the cube serial number to validate */ void ControlNet::ValidateSerialNumber(QString serialNumber) const { // if (!cubeGraphNodes->contains(serialNumber)) { // IString msg = "Cube Serial Number [" + serialNumber + "] not found in " // "the network"; // throw IException(IException::Programmer, msg, _FILEINFO_); // } bool ControlNet::ValidateSerialNumber(QString serialNumber) const { if (!m_vertexMap.contains(serialNumber)) { IString msg = "Cube Serial Number [" + serialNumber + "] not found in " "the network"; throw IException(IException::Programmer, msg, _FILEINFO_); return false; } return true; } Loading @@ -869,9 +865,14 @@ namespace Isis { * @returns A list of all measures which are in a given cube */ QList< ControlMeasure * > ControlNet::GetMeasuresInCube(QString serialNumber) { ValidateSerialNumber(serialNumber); if( ValidateSerialNumber(serialNumber) ) { return m_controlGraph[m_vertexMap[serialNumber]].measures; // return (*cubeGraphNodes)[serialNumber]->getMeasures(); } else { IString msg = "Cube Serial Number [" + serialNumber + "] not found in " "the network"; throw IException(IException::Programmer, msg, _FILEINFO_); } } Loading @@ -881,16 +882,16 @@ namespace Isis { * @returns A list of all valid measures which are in a given cube */ QList< ControlMeasure * > ControlNet::GetValidMeasuresInCube(QString serialNumber) { ValidateSerialNumber(serialNumber); QList< ControlMeasure * > validMeasures; if (ValidateSerialNumber(serialNumber)) { QList< ControlMeasure * > measureList = GetMeasuresInCube(serialNumber); QList< ControlMeasure * > measureList = m_controlGraph[m_vertexMap[serialNumber]].measures; foreach(ControlMeasure * measure, measureList) { if (!measure->IsIgnored()) validMeasures.append(measure); } } return validMeasures; } Loading isis/src/control/objs/ControlNet/ControlNet.h +2 −1 Original line number Diff line number Diff line Loading @@ -331,7 +331,7 @@ namespace Isis { private: void nullify(); void ValidateSerialNumber(QString serialNumber) const; bool ValidateSerialNumber(QString serialNumber) const; void measureAdded(ControlMeasure *measure); void pointAdded(ControlPoint *point); void measureDeleted(ControlMeasure *measure); Loading Loading @@ -377,6 +377,7 @@ namespace Isis { struct Image { QString serial; QList<ControlMeasure* > measures; // QHash< ControlPoint *, ControlMeasure * > * measures; }; struct Connection { Loading Loading
isis/src/control/objs/ControlNet/ControlNet.cpp +34 −33 Original line number Diff line number Diff line Loading @@ -640,16 +640,10 @@ namespace Isis { cubeGraphNodes->remove(serial); } // Remove the measure from the node. // Remove the measure from the associated node. m_controlGraph[m_vertexMap[serial]].measures.removeAll(measure); // you're deleting that vertex from the control point's graph. // TODO: decrement the strength on the correct edge. // Get the parent control point. // Get all other measures for the control point // All of the other serial numbers / verticies you're connected to. // decrement all their weights. // Decrement the edge strength & remove edge if -> 0 happens in measureIgnored // If this caused the node to be empty, then delete the node. if (m_controlGraph[m_vertexMap[serial]].measures.size() <= 0) { Loading Loading @@ -692,7 +686,15 @@ namespace Isis { neighborNode->removeConnection(node, point); node->removeConnection(neighborNode, point); } ImageConnection connection = boost::edge(m_vertexMap[serial], m_vertexMap[sn], m_controlGraph).first; m_controlGraph[connection].strength--; if (m_controlGraph[connection].strength <= 0) { boost::remove_edge(m_vertexMap[serial], m_vertexMap[sn], m_controlGraph); } } } } Loading Loading @@ -798,10 +800,10 @@ namespace Isis { QList< QList< QString > > ControlNet::GetSerialConnections() const { QList< QList< QString > > islandStrings; // boost::put(indexMapAdaptor, newVertex, i); // std::vector<int> component (boost::num_vertices (m_controlGraph)); // size_t numComponents = boost::connected_components(m_controlGraph, component) QList< QList< ControlCubeGraphNode * > > islands;// = m_controlGraph. for (int i = 0; i < islands.size(); i++) { QList< QString > newIsland; Loading Loading @@ -848,18 +850,12 @@ namespace Isis { * * @param serialNumber the cube serial number to validate */ void ControlNet::ValidateSerialNumber(QString serialNumber) const { // if (!cubeGraphNodes->contains(serialNumber)) { // IString msg = "Cube Serial Number [" + serialNumber + "] not found in " // "the network"; // throw IException(IException::Programmer, msg, _FILEINFO_); // } bool ControlNet::ValidateSerialNumber(QString serialNumber) const { if (!m_vertexMap.contains(serialNumber)) { IString msg = "Cube Serial Number [" + serialNumber + "] not found in " "the network"; throw IException(IException::Programmer, msg, _FILEINFO_); return false; } return true; } Loading @@ -869,9 +865,14 @@ namespace Isis { * @returns A list of all measures which are in a given cube */ QList< ControlMeasure * > ControlNet::GetMeasuresInCube(QString serialNumber) { ValidateSerialNumber(serialNumber); if( ValidateSerialNumber(serialNumber) ) { return m_controlGraph[m_vertexMap[serialNumber]].measures; // return (*cubeGraphNodes)[serialNumber]->getMeasures(); } else { IString msg = "Cube Serial Number [" + serialNumber + "] not found in " "the network"; throw IException(IException::Programmer, msg, _FILEINFO_); } } Loading @@ -881,16 +882,16 @@ namespace Isis { * @returns A list of all valid measures which are in a given cube */ QList< ControlMeasure * > ControlNet::GetValidMeasuresInCube(QString serialNumber) { ValidateSerialNumber(serialNumber); QList< ControlMeasure * > validMeasures; if (ValidateSerialNumber(serialNumber)) { QList< ControlMeasure * > measureList = GetMeasuresInCube(serialNumber); QList< ControlMeasure * > measureList = m_controlGraph[m_vertexMap[serialNumber]].measures; foreach(ControlMeasure * measure, measureList) { if (!measure->IsIgnored()) validMeasures.append(measure); } } return validMeasures; } Loading
isis/src/control/objs/ControlNet/ControlNet.h +2 −1 Original line number Diff line number Diff line Loading @@ -331,7 +331,7 @@ namespace Isis { private: void nullify(); void ValidateSerialNumber(QString serialNumber) const; bool ValidateSerialNumber(QString serialNumber) const; void measureAdded(ControlMeasure *measure); void pointAdded(ControlPoint *point); void measureDeleted(ControlMeasure *measure); Loading Loading @@ -377,6 +377,7 @@ namespace Isis { struct Image { QString serial; QList<ControlMeasure* > measures; // QHash< ControlPoint *, ControlMeasure * > * measures; }; struct Connection { Loading