Isis 3 Programmer Reference
ControlNetDiff.h
Go to the documentation of this file.
1 #ifndef ControlNetDiff_h
2 #define ControlNetDiff_h
3 
26 #include <QString>
27 
28 template< typename A, typename B > class QMap;
29 template< typename T > class QSet;
30 
31 namespace Isis {
32  class ControlNet;
33  class FileName;
34  class Pvl;
35  class PvlContainer;
36  class PvlKeyword;
37  class PvlObject;
38 
68  public:
70  explicit ControlNetDiff(Pvl &diffFile);
71  virtual ~ControlNetDiff();
72 
73  void addTolerances(Pvl &diffFile);
74  Pvl compare(FileName &net1Name, FileName &net2Name);
75 
76 
77  protected:
78  void compare(PvlObject &point1Pvl, PvlObject &point2Pvl, PvlObject &report);
79  void compareGroups(PvlContainer &g1, PvlContainer &g2, PvlObject &report);
80  void compare(PvlKeyword &k1, PvlKeyword &k2, PvlContainer &report);
81 
82  void diff(QString name, PvlObject &o1, PvlObject &o2, PvlContainer &report);
83  void diff(QString name, QString v1, QString v2, PvlContainer &report);
84  PvlKeyword makeKeyword(QString name, QString v1, QString v2);
85 
86  void diff(QString name, double v1, double v2, double tol, PvlContainer &report);
87  PvlKeyword makeKeyword(QString name, double v1, double v2, double tol);
88 
89  void addUniquePoint(QString label, QString v1, QString v2, PvlObject &parent);
90  void addUniqueMeasure(QString label, QString v1, QString v2, PvlObject &parent);
91 
92 
93  private:
94  void init();
95 
96  private:
99 
102  };
103 }
104 
105 #endif
void addUniqueMeasure(QString label, QString v1, QString v2, PvlObject &parent)
Add a new keyword for the given measure to the parent object.
Definition: Process.h:32
void diff(QString name, PvlObject &o1, PvlObject &o2, PvlContainer &report)
Add a new difference keyword to the given report if the PvlObjects have different values for the keyw...
void compareGroups(PvlContainer &g1, PvlContainer &g2, PvlObject &report)
Compare two collections, or groupings, of PvlKeywords.
void init()
Initialize the persistent structures used to maintain the state of this instance: its ignore keys and...
Contains more than one keyword-value pair.
Definition: PvlContainer.h:63
File name manipulation and expansion.
Definition: FileName.h:116
Compares two Control Networks and reports their differences.
QMap< QString, double > * m_tolerances
The map of tolerances going from keyword name to tolerance value.
ControlNetDiff()
Create a ControlNetDiff without any tolerances.
A single keyword-value pair.
Definition: PvlKeyword.h:98
PvlKeyword makeKeyword(QString name, QString v1, QString v2)
Create a new keyword with the given label name and the given values.
Container for cube-like labels.
Definition: Pvl.h:135
void addUniquePoint(QString label, QString v1, QString v2, PvlObject &parent)
Add a new keyword for the given point to the parent object.
Namespace for ISIS/Bullet specific routines.
Definition: Apollo.h:31
virtual ~ControlNetDiff()
Destroy the ControlNetDiff.
Pvl compare(FileName &net1Name, FileName &net2Name)
Compare two Control Networks given their file names, and return their differences.
Contains Pvl Groups and Pvl Objects.
Definition: PvlObject.h:74
QSet< QString > * m_ignoreKeys
The set of keywords to ignore by name.
void addTolerances(Pvl &diffFile)
Add the given ignore keys and tolerances to the persisent collections of such values.