29 #include <QSharedPointer>
38 template<
typename A,
typename B >
class QHash;
39 template<
typename T >
class QList;
40 template<
typename A,
typename B >
struct QPair;
41 template<
typename T >
class QSet;
50 class ControlCubeGraphNode;
53 class SerialNumberList;
224 void Write(
const QString &filename,
bool pvl =
false);
243 double min,
double max);
262 double sample,
double line);
286 void SetImages(
const QString &imageListFile);
313 void ValidateSerialNumber(QString serialNumber)
const;
318 void UpdatePointReference(
ControlPoint *point, QString oldId);
319 void emitNetworkStructureModified();
333 class ControlMeasureLessThanFunctor :
334 public std::binary_function<ControlMeasure* const &,
335 ControlMeasure * const &, bool > {
337 ControlMeasureLessThanFunctor(
double(
ControlMeasure::*accessorMethod)()
const) {
338 m_accessor = accessorMethod;
340 ControlMeasureLessThanFunctor(ControlMeasureLessThanFunctor
const &other) {
341 this->m_accessor = other.m_accessor;
343 ~ControlMeasureLessThanFunctor() {}
346 ControlMeasureLessThanFunctor &
operator=(ControlMeasureLessThanFunctor
const &other);
363 class ControlVertex {
366 ControlVertex(ControlCubeGraphNode *node) {
383 void setParent(ControlVertex *v) { m_parent = v; }
386 ControlVertex * getRoot() {
387 ControlVertex *current =
this;
388 while (current->getParent() != NULL)
389 current = current->getParent();
394 ControlVertex * getParent() {
return m_parent; }
397 ControlCubeGraphNode * getNode() {
return m_node; }
403 static void join(ControlVertex *v1, ControlVertex *v2) {
404 v1->getRoot()->setParent(v2->getRoot());
409 ControlCubeGraphNode *m_node;
415 ControlVertex *m_parent;
428 QString p_targetName;
432 QString p_description;
434 std::map<QString, Isis::Camera *> p_cameraMap;
435 std::map<QString, int> p_cameraValidMeasuresMap;
436 std::map<QString, int> p_cameraRejectedMeasuresMap;
437 std::vector<Isis::Camera *> p_cameraList;
439 std::vector<Distance> p_targetRadii;
QString GetTarget() const
Return the target name.
Definition: ControlNet.cpp:1515
QString GetNetworkId() const
Definition: ControlNet.cpp:1350
Serial Number with added functionality for Control Networks.
Definition: ControlCubeGraphNode.h:67
void SetTarget(const QString &target)
Sets the target name and target radii, if available.
Definition: ControlNet.cpp:1695
void ReadControl(const QString &filename, Progress *progress=0)
Reads in the control points from the given file.
Definition: ControlNet.cpp:243
void ClearJigsawRejected()
Sets jigsaw rejected flag to false for all points and measures.
Definition: ControlNet.cpp:1431
std::vector< Distance > GetTargetRadii()
Get the target radii.
Definition: ControlNet.cpp:1954
friend class ControlMeasure
Definition: ControlNet.h:210
void SetMutex(QMutex *mutex)
Set mutex to lock for making Naif calls.
Definition: ControlNet.cpp:1669
QSharedPointer< ControlNet > ControlNetQsp
This typedef is for future implementation of target body.
Definition: ControlNet.h:446
bool ContainsPoint(QString pointId) const
Definition: ControlNet.cpp:781
double GetMaximumResidual()
Determine the maximum error of all points in the network.
Definition: ControlNet.cpp:1335
void ComputeResiduals()
Compute error for each point in the network.
Definition: ControlNet.cpp:1176
int GetNumValidMeasures()
Return the number of valid (non-ignored) measures for all control points in the network.
Definition: ControlNet.cpp:1487
QString Description() const
Return the description of the network.
Definition: ControlNet.cpp:1261
QList< ControlMeasure * > GetMeasuresInCube(QString serialNumber)
Get all the measures pertaining to a given cube serial number.
Definition: ControlNet.cpp:1081
void DecrementNumberOfRejectedMeasuresInImage(const QString &serialNumber)
Decrement number of jigsaw rejected measures in image specified by serialNumber.
Definition: ControlNet.cpp:1451
double AverageResidual()
Compute the average error of all points in the network.
Definition: ControlNet.cpp:1210
int GetNumMeasures() const
Returns the total number of measures for all control points in the network.
Definition: ControlNet.cpp:1462
QList< QList< ControlCubeGraphNode * > > GetNodeConnections() const
This method searches through all the cube serial numbers in the network.
Definition: ControlNet.cpp:821
QSet< ControlMeasure * > MinimumSpanningTree(QList< ControlCubeGraphNode * > &island, bool lessThan(const ControlMeasure *, const ControlMeasure *)) const
This method uses Kruskal's Algorithm to construct a minimum spanning tree of the given island...
Definition: ControlNet.cpp:887
void swap(ControlNet &other)
Swaps the member data with the given control net.
Definition: ControlNet.cpp:1834
void SetUserName(const QString &name)
Set the user name of the control network.
Definition: ControlNet.cpp:1815
Q_DECLARE_METATYPE(Isis::Cube *)
This allows Cube *'s to be stored in a QVariant.
QList< ControlPoint * > GetPoints()
Return QList of ControlPoints ordered by point ID.
Definition: ControlNet.cpp:1527
int GetNumPoints() const
Return the number of control points in the network.
Definition: ControlNet.cpp:1473
QString GetUserName() const
Return the user name.
Definition: ControlNet.cpp:1521
QList< ControlCubeGraphNode * > GetCubeGraphNodes()
Definition: ControlNet.cpp:1056
const ControlPoint * GetPoint(QString pointId) const
Definition: ControlNet.cpp:1884
const ControlCubeGraphNode * getGraphNode(QString serialNumber) const
Definition: ControlNet.cpp:1926
Program progress reporter.
Definition: Progress.h:58
a control network
Definition: ControlNet.h:207
friend class ControlPoint
Definition: ControlNet.h:211
void clear()
Clear the contents of this object.
Definition: ControlNet.cpp:148
void DeleteMeasuresWithId(QString serialNumber)
Essentially removes a cube from the networkid.
Definition: ControlNet.cpp:1160
void SetNetworkId(const QString &id)
Set the network id.
Definition: ControlNet.cpp:1679
void IncrementNumberOfRejectedMeasuresInImage(const QString &serialNumber)
Increment number of jigsaw rejected measures in image specified by serialNumber.
Definition: ControlNet.cpp:1442
QList< ControlPoint * > take()
Transfer ownership of all points to caller.
Definition: ControlNet.cpp:201
int DeletePoint(ControlPoint *point)
Delete a ControlPoint from the network by the point's address.
Definition: ControlNet.cpp:692
A single control point.
Definition: ControlPoint.h:339
QList< QList< QString > > GetSerialConnections() const
This method searches through all the cube serial numbers in the network.
Definition: ControlNet.cpp:797
void SetImages(const QString &imageListFile)
Creates the ControlNet's image cameras based on an input file.
Definition: ControlNet.cpp:1569
Container for cube-like labels.
Definition: Pvl.h:135
int GetNumValidPoints()
Returns the number of non-ignored control points.
Definition: ControlNet.cpp:1503
QList< ControlMeasure * > sortedMeasureList(double(ControlMeasure::*statFunc)() const, double min, double max)
Get a sorted list of all the measures that have values in a given ragen.
Definition: ControlNet.cpp:1124
int GetNumEditLockMeasures()
Return the total number of edit locked measures for all control points in the network.
Definition: ControlNet.cpp:1361
int GetNumIgnoredMeasures()
Return the total number of ignored measures for all control points in the network.
Definition: ControlNet.cpp:1393
Definition: Calculator.h:33
void AddPoint(ControlPoint *point)
Adds a ControlPoint to the ControlNet.
Definition: ControlNet.cpp:339
int getEdgeCount() const
Definition: ControlNet.cpp:1006
void networkStructureModified()
Definition: moc_ControlNet.cpp:124
int GetNumEditLockPoints()
Returns the number of edit locked control points.
Definition: ControlNet.cpp:1376
void SetModifiedDate(const QString &date)
Set the last modified date.
Definition: ControlNet.cpp:1657
Definition: BoxcarCachingAlgorithm.h:29
a control measurement
Definition: ControlMeasure.h:171
QString CubeGraphToString() const
Used for verifying graph intergrity.
Definition: ControlNet.cpp:1021
int GetNumberOfJigsawRejectedMeasuresInImage(const QString &serialNumber)
Return the number of jigsaw rejected measures in image specified by serialNumber. ...
Definition: ControlNet.cpp:1421
Isis::Camera * Camera(int index)
Returns the camera list from the given image number.
Definition: ControlNet.cpp:1239
QString CreatedDate() const
Return the Created Date.
Definition: ControlNet.cpp:1251
void ComputeApriori()
Compute aprior values for each point in the network.
Definition: ControlNet.cpp:1192
void SetCreatedDate(const QString &date)
Set the creation time.
Definition: ControlNet.cpp:1549
void SetDescription(const QString &newDescription)
Set the description of the network.
Definition: ControlNet.cpp:1559
QList< QString > GetPointIds() const
Return QList of ControlPoint Ids used in hash, in order of addition.
Definition: ControlNet.cpp:1539
ControlNet()
Creates an empty ControlNet object.
Definition: ControlNet.cpp:54
ControlNet & operator=(const ControlNet &other)
Assign other to this.
Definition: ControlNet.cpp:1872
Serial Number list generator.
Definition: SerialNumberList.h:78
Definition: CubeIoHandler.h:39
~ControlNet()
Destructor removes allocated memory.
Definition: ControlNet.cpp:128
ControlPoint * FindClosest(QString serialNumber, double sample, double line)
Finds and returns a pointer to the closest ControlPoint to the ControlMeasure with the given serial n...
Definition: ControlNet.cpp:1278
const ControlPoint * operator[](QString id) const
Definition: ControlNet.cpp:1959
void Write(const QString &filename, bool pvl=false)
Writes out the control network.
Definition: ControlNet.cpp:302
QList< QString > GetCubeSerials() const
Use this method to get a complete list of all the cube serial numbers in the network.
Definition: ControlNet.cpp:1048
int GetNumberOfValidMeasuresInImage(const QString &serialNumber)
Return the number of measures in image specified by serialNumber.
Definition: ControlNet.cpp:1411
Definition: ControlCubeGraphNode.h:28
bool IsValid() const
Return if the control point is invalid.
Definition: ControlNet.cpp:1324