Isis 3 Programmer Reference
ControlNetDiff.h
1 #ifndef ControlNetDiff_h
2 #define ControlNetDiff_h
3 
10 /* SPDX-License-Identifier: CC0-1.0 */
11 
12 #include <QString>
13 
14 template< typename A, typename B > class QMap;
15 template< typename T > class QSet;
16 
17 namespace Isis {
18  class ControlNet;
19  class FileName;
20  class Pvl;
21  class PvlContainer;
22  class PvlKeyword;
23  class PvlObject;
24 
54  public:
56  explicit ControlNetDiff(Pvl &diffFile);
57  virtual ~ControlNetDiff();
58 
59  void addTolerances(Pvl &diffFile);
60  Pvl compare(FileName &net1Name, FileName &net2Name);
61 
62 
63  protected:
64  void compare(PvlObject &point1Pvl, PvlObject &point2Pvl, PvlObject &report);
65  void compareGroups(PvlContainer &g1, PvlContainer &g2, PvlObject &report);
66  void compare(PvlKeyword &k1, PvlKeyword &k2, PvlContainer &report);
67 
68  void diff(QString name, PvlObject &o1, PvlObject &o2, PvlContainer &report);
69  void diff(QString name, QString v1, QString v2, PvlContainer &report);
70  PvlKeyword makeKeyword(QString name, QString v1, QString v2);
71 
72  void diff(QString name, double v1, double v2, double tol, PvlContainer &report);
73  PvlKeyword makeKeyword(QString name, double v1, double v2, double tol);
74 
75  void addUniquePoint(QString label, QString v1, QString v2, PvlObject &parent);
76  void addUniqueMeasure(QString label, QString v1, QString v2, PvlObject &parent);
77 
78 
79  private:
80  void init();
81 
82  private:
85 
88  };
89 }
90 
91 #endif
Isis::ControlNetDiff::m_ignoreKeys
QSet< QString > * m_ignoreKeys
The set of keywords to ignore by name.
Definition: ControlNetDiff.h:87
Isis::PvlObject
Contains Pvl Groups and Pvl Objects.
Definition: PvlObject.h:61
Isis::PvlKeyword
A single keyword-value pair.
Definition: PvlKeyword.h:82
Isis::ControlNetDiff::addUniquePoint
void addUniquePoint(QString label, QString v1, QString v2, PvlObject &parent)
Add a new keyword for the given point to the parent object.
Definition: ControlNetDiff.cpp:378
Isis::ControlNetDiff::diff
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...
Definition: ControlNetDiff.cpp:285
Isis::FileName
File name manipulation and expansion.
Definition: FileName.h:100
Isis::ControlNetDiff::compare
Pvl compare(FileName &net1Name, FileName &net2Name)
Compare two Control Networks given their file names, and return their differences.
Definition: ControlNetDiff.cpp:92
QSet
This is free and unencumbered software released into the public domain.
Definition: Process.h:16
Isis::ControlNetDiff::m_tolerances
QMap< QString, double > * m_tolerances
The map of tolerances going from keyword name to tolerance value.
Definition: ControlNetDiff.h:84
Isis::ControlNetDiff::addTolerances
void addTolerances(Pvl &diffFile)
Add the given ignore keys and tolerances to the persisent collections of such values.
Definition: ControlNetDiff.cpp:68
Isis::Pvl
Container for cube-like labels.
Definition: Pvl.h:119
Isis::ControlNetDiff::makeKeyword
PvlKeyword makeKeyword(QString name, QString v1, QString v2)
Create a new keyword with the given label name and the given values.
Definition: ControlNetDiff.cpp:319
Isis::ControlNetDiff::ControlNetDiff
ControlNetDiff()
Create a ControlNetDiff without any tolerances.
Definition: ControlNetDiff.cpp:33
Isis::ControlNetDiff
Compares two Control Networks and reports their differences.
Definition: ControlNetDiff.h:53
Isis::ControlNetDiff::compareGroups
void compareGroups(PvlContainer &g1, PvlContainer &g2, PvlObject &report)
Compare two collections, or groupings, of PvlKeywords.
Definition: ControlNetDiff.cpp:214
Isis::ControlNetDiff::~ControlNetDiff
virtual ~ControlNetDiff()
Destroy the ControlNetDiff.
Definition: ControlNetDiff.cpp:52
Isis::ControlNetDiff::addUniqueMeasure
void addUniqueMeasure(QString label, QString v1, QString v2, PvlObject &parent)
Add a new keyword for the given measure to the parent object.
Definition: ControlNetDiff.cpp:400
QMap
This is free and unencumbered software released into the public domain.
Definition: CubeIoHandler.h:22
Isis::PvlContainer
Contains more than one keyword-value pair.
Definition: PvlContainer.h:49
Isis::ControlNetDiff::init
void init()
Initialize the persistent structures used to maintain the state of this instance: its ignore keys and...
Definition: ControlNetDiff.cpp:417
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16