3 #include "AbstractMeasureItem.h"     9 #include "CnetDisplayProperties.h"    16 #include "TableColumn.h"    17 #include "TableColumnList.h"    21   QString AbstractMeasureItem::getColumnName(Column col) {
    38         return "Measure Type";
    39       case Obsolete_Eccentricity:
    40         return "Obsolete_Eccentricity";
    42         return "Goodness of Fit";
    44         return "Minimum Pixel Z-Score";
    46         return "Maximum Pixel Z-Score";
    48         return "Sample Shift";
    52         return "Sample Sigma";
    56         return "A Priori Sample";
    58         return "A Priori Line";
    62         return "Rejected by Jigsaw";
    64         return "Residual Sample";
    66         return "Residual Line";
    67       case ResidualMagnitude:
    68         return "Residual Magnitude";
    76   AbstractMeasureItem::Column AbstractMeasureItem::getColumn(
    77     QString columnTitle) {
    78     for (
int i = 0; i < COLS; i++) {
    79       if (columnTitle == getColumnName((Column) i))
    83     QString msg = 
"Column title [" + columnTitle + 
"] does not match any of "    84         "the defined column types";
    89   TableColumnList *AbstractMeasureItem::createColumns() {
    90     TableColumnList *columnList = 
new TableColumnList;
    92     columnList->append(
new TableColumn(getColumnName(PointId), 
true, 
false));
    93     columnList->append(
new TableColumn(getColumnName(ImageId), 
true,
    95     columnList->append(
new TableColumn(getColumnName(Sample), 
true, 
false));
    96     columnList->append(
new TableColumn(getColumnName(Line), 
true, 
false));
    97     columnList->append(
new TableColumn(getColumnName(EditLock), 
false,
    99     columnList->append(
new TableColumn(getColumnName(Ignored), 
false, 
true));
   100     columnList->append(
new TableColumn(getColumnName(Reference), 
true, 
true));
   101     columnList->append(
new TableColumn(getColumnName(Type), 
false, 
false));
   102     columnList->append(
new TableColumn(getColumnName(Obsolete_Eccentricity), 
true,
   104     columnList->append(
new TableColumn(getColumnName(GoodnessOfFit), 
true,
   106     columnList->append(
new TableColumn(getColumnName(MinPixelZScore), 
true,
   108     columnList->append(
new TableColumn(getColumnName(MaxPixelZScore), 
true,
   110     columnList->append(
new TableColumn(getColumnName(SampleShift), 
true,
   112     columnList->append(
new TableColumn(getColumnName(LineShift), 
true,
   114     columnList->append(
new TableColumn(getColumnName(SampleSigma), 
false,
   116     columnList->append(
new TableColumn(getColumnName(LineSigma), 
false,
   118     columnList->append(
new TableColumn(getColumnName(APrioriSample), 
true,
   120     columnList->append(
new TableColumn(getColumnName(APrioriLine), 
true,
   122     columnList->append(
new TableColumn(getColumnName(Diameter), 
false,
   124     columnList->append(
new TableColumn(getColumnName(JigsawRejected), 
true,
   126     columnList->append(
new TableColumn(getColumnName(ResidualSample), 
true,
   128     columnList->append(
new TableColumn(getColumnName(ResidualLine), 
true,
   130     columnList->append(
new TableColumn(getColumnName(ResidualMagnitude),
   136   AbstractMeasureItem::AbstractMeasureItem(ControlMeasure *cm,
   137       int avgCharWidth, AbstractTreeItem *parent)
   138     : AbstractTreeItem(parent) {
   141     calcDataWidth(avgCharWidth);
   143     connect(m_measure, SIGNAL(destroyed(
QObject *)), 
this, SLOT(sourceDeleted()));
   147   AbstractMeasureItem::~AbstractMeasureItem() {
   152   QVariant AbstractMeasureItem::getData()
 const {
   153     return getData(getColumnName(ImageId));
   157   QVariant AbstractMeasureItem::getData(QString columnTitle)
 const {
   159       Column column = getColumn(columnTitle);
   161       switch ((Column) column) {
   163           return QVariant((QString) m_measure->Parent()->
GetId());
   165           return QVariant(CnetDisplayProperties::getInstance()->getImageName(
   168           return QVariant(m_measure->GetSample());
   170           return QVariant(m_measure->GetLine());
   173             return QVariant(
"Yes");
   175             return QVariant(
"No");
   177           if (m_measure->IsIgnored())
   178             return QVariant(
"Yes");
   180             return QVariant(
"No");
   183             return QVariant(
"Yes");
   185             return QVariant(
"No");
   189         case Obsolete_Eccentricity:
   191               m_measure->GetLogData(
   195               m_measure->GetLogData(
   200               GetNumericalValue());
   204               GetNumericalValue());
   206           return QVariant(m_measure->GetSampleShift());
   208           return QVariant(m_measure->GetLineShift());
   210           return QVariant(m_measure->GetSampleSigma());
   212           return QVariant(m_measure->GetLineSigma());
   214           return QVariant(m_measure->GetAprioriSample());
   216           return QVariant(m_measure->GetAprioriLine());
   220           if (m_measure->IsRejected())
   221             return QVariant(
"Yes");
   223             return QVariant(
"No");
   225           return QVariant(m_measure->GetSampleResidual());
   227           return QVariant(m_measure->GetLineResidual());
   228         case ResidualMagnitude:
   238   void AbstractMeasureItem::setData(QString 
const &columnTitle,
   239       QString 
const &newData) {
   241       Column column = getColumn(columnTitle);
   243       switch ((Column) column) {
   249             CnetDisplayProperties::getInstance()->getSerialNumber(newData));
   253               m_measure->GetLine());
   260           if (newData == 
"Yes")
   261             m_measure->SetEditLock(
true);
   263             m_measure->SetEditLock(
false);
   266           if (newData == 
"Yes")
   267             m_measure->SetIgnored(
true);
   268           else if (newData == 
"No")
   269             m_measure->SetIgnored(
false);
   277               CnetDisplayProperties::getInstance()->getSerialNumber(
   280         case Obsolete_Eccentricity:
   301           m_measure->SetSampleSigma(catchNull(newData));
   304           m_measure->SetLineSigma(catchNull(newData));
   307           m_measure->SetAprioriSample(catchNull(newData));
   310           m_measure->SetAprioriLine(catchNull(newData));
   320             catchNull(newData), m_measure->GetLineResidual());
   324             m_measure->GetSampleResidual(), catchNull(newData));
   326         case ResidualMagnitude:
   339   bool AbstractMeasureItem::isDataEditable(QString columnTitle)
 const {
   340     bool parentLocked = !m_measure->Parent() ||
   341         m_measure->Parent()->IsEditLocked();
   342     bool locked = m_measure->
IsEditLocked() || parentLocked;
   344     if (getColumn(columnTitle) == EditLock && !parentLocked) {
   352   void AbstractMeasureItem::deleteSource() {
   354       if (m_measure->Parent()->IsEditLocked()) {
   355         QString msg = 
"Measures in point [" +
   356             getFormattedData(getColumnName(PointId)) +
   357             "] cannot be deleted because point is edit locked";
   362         QString msg = 
"Measure [" + getFormattedData() + 
"] in point [" +
   363             getFormattedData(getColumnName(PointId)) +
   364             "] cannot be deleted because m_measure is edit locked";
   374       ControlMeasure *tempMeasure = m_measure;
   376       tempMeasure->Parent()->
Delete(tempMeasure);
   381   AbstractTreeItem::InternalPointerType AbstractMeasureItem::getPointerType()
   383     return AbstractTreeItem::Measure;
   387   void *AbstractMeasureItem::getPointer()
 const {
   392   bool AbstractMeasureItem::hasMeasure(ControlMeasure *m)
 const {
   393     return m_measure == m;
   397   void AbstractMeasureItem::sourceDeleted() {
   402   void AbstractMeasureItem::setLogData(ControlMeasure *m_measure,
   403       int m_measureLogDataEnum, 
const QString &value) {
   406     QString newDataStr = value.toLower();
   410     if (newDataStr == 
"null") {
   411       m_measure->DeleteLogData(type);
   414       m_measure->SetLogData(ControlMeasureLogData(type,
 Status SetType(MeasureType type)
Set how the coordinate was obtained. 
 
Deprecated keyword kept for backwards compatability with older Control Networks. 
 
NumericLogDataType
Please do not change existing values in this list except the size - it will break backwards compadibi...
 
double GetResidualMagnitude() const
Return Residual magnitude. 
 
This error is for when a programmer made an API call that was illegal. 
 
Control measures store z-scores in pairs. 
 
Status SetDiameter(double diameter)
Set the crater diameter at the coordinate. 
 
Status SetResidual(double sampResidual, double lineResidual)
Set the BundleAdjust Residual of the coordinate. 
 
QString GetId() const
Return the Id of the control point. 
 
#define _FILEINFO_
Macro for the filename and line number. 
 
A type of error that could only have occurred due to a mistake on the user's part (e...
 
const ControlMeasure * GetRefMeasure() const
Get the reference control measure. 
 
GoodnessOfFit is pointreg information for reference measures. 
 
Namespace for ISIS/Bullet specific routines. 
 
bool IsEditLocked() const
Return value for p_editLock or implicit lock on reference measure. 
 
Status SetCubeSerialNumber(QString newSerialNumber)
Set cube serial number. 
 
Status SetCoordinate(double sample, double line)
Set the coordinate of the measurement. 
 
int Delete(ControlMeasure *measure)
Remove a measurement from the control point, deleting reference measure is allowed. 
 
double GetNumericalValue() const
Get the value associated with this log data. 
 
double GetDiameter() const
Return the diameter of the crater in pixels (0 implies no crater) 
 
QString GetCubeSerialNumber() const
Return the serial number of the cube containing the coordinate. 
 
static MeasureType StringToMeasureType(QString str)
 
static QString MeasureTypeToString(MeasureType type)
Return the String Control Measure type.