Commit 8051bd40 authored by Ian Humphrey's avatar Ian Humphrey
Browse files

Updated documentation/coding standards and unit test for BundleMeasure in...

Updated documentation/coding standards and unit test for BundleMeasure in preparation for merging into trunk. Fixes #4077.

git-svn-id: http://subversion.wr.usgs.gov/repos/prog/isis3/branches/ipce@6913 41f8697f-d340-4b68-9986-7bafba869bb8
parent efd2d04b
Loading
Loading
Loading
Loading
+92 −16
Original line number Diff line number Diff line
@@ -7,7 +7,14 @@
namespace Isis {

  /**
   * constructor
   * Constructor
   *
   * Constructs a BundleMeasure from a ControlMeasure with the passed BundleControlPoint as its
   * parent control point 
   *
   * @param controlMeasure Pointer to the ControlMeasure to store
   * @param bundleControlPoint Pointer to the BundleControlPoint that contains this
   *                           BundleMeasure
   */
  BundleMeasure::BundleMeasure(ControlMeasure *controlMeasure,
                               BundleControlPoint *bundleControlPoint) {
@@ -20,14 +27,18 @@ namespace Isis {


  /**
   * destructor
   * Destructor
   */
  BundleMeasure::~BundleMeasure() {
  }


  /**
   * copy constructor
   * Copy constructor
   *
   * Constructs a BundleMeasure from another BundleMeasure
   *
   * @param src The source BundleMeasure to copy
   */
  BundleMeasure::BundleMeasure(const BundleMeasure &src) {
    m_controlMeasure = src.m_controlMeasure;
@@ -38,7 +49,31 @@ namespace Isis {


  /**
   * TODO
   * Assignment operator
   *
   * Assigns the state of this BundleMeasure from another BundleMeasure
   *
   * @param src The source BundleMeasure to assign state from 
   *
   * @return @b BundleMeasure& Returns a reference to this BundleMeasure
   */
  BundleMeasure &BundleMeasure::operator=(const BundleMeasure &src) {
    // Prevent self assignment
    if (this != &src) {
      m_controlMeasure = src.m_controlMeasure;
      m_parentControlPoint = src.m_parentControlPoint;
      m_parentBundleImage = src.m_parentBundleImage;
      m_parentObservation = src.m_parentObservation;
    }

    return *this;
  }


  /**
   * Sets the parent bundle observation
   *
   * @param observation Pointer to the parent BundleObservation  
   */
  void BundleMeasure::setParentObservation(BundleObservation *observation) {
    m_parentObservation = observation;
@@ -46,7 +81,9 @@ namespace Isis {


  /**
   * TODO
   * Determines whether or not this BundleMeasure is rejected
   *
   * @return @b bool Returns a boolean indicating whether this BundleMeasure is rejected
   */
  bool BundleMeasure::isRejected() {
    return m_controlMeasure->IsRejected();
@@ -54,7 +91,11 @@ namespace Isis {


  /**
   * TODO
   * Accesses the associated camera for this bundle measure
   *
   * @see ControlMeasure::camera()
   *
   * @return @b Camera* Returns a pointer to the camera associated with this bundle measure
   */
  Camera *BundleMeasure::camera() {
    return m_controlMeasure->Camera();
@@ -62,7 +103,9 @@ namespace Isis {


  /**
   * TODO
   * Accesses the parent BundleControlPoint for this bundle measure
   *
   * @return @b BundleControlPoint* Returns a pointer to the parent BundleControlPoint
   */
  BundleControlPoint *BundleMeasure::parentControlPoint() {
    return m_parentControlPoint;
@@ -70,7 +113,9 @@ namespace Isis {


  /**
   * TODO
   * Access the parent BundleImage for this bundle measure
   *
   * @return @b BundleImage* Returns a pointer to the parent BundleImage
   */
  BundleImage *BundleMeasure::parentBundleImage() {
    return m_parentBundleImage;
@@ -78,7 +123,9 @@ namespace Isis {


  /**
   * TODO
   * Accesses the parent BundleObservation for this bundle measure
   *
   * @return @b BundleObservation* Returns a pointer to the parent BundleObservation
   */
  BundleObservation *BundleMeasure::parentBundleObservation() {
    return m_parentObservation;
@@ -86,7 +133,12 @@ namespace Isis {


  /**
   * TODO
   * Accesses the parent observation's solve settings
   *
   * @see BundleObservation::solveSettings()
   *
   * @return @b const BundleObservationSolveSettings* Returns a const pointer to the 
   *     BundleObservationSolveSettings for the parent BundleObservation
   */
  const BundleObservationSolveSettings *BundleMeasure::observationSolveSettings() {
    return m_parentObservation->solveSettings();
@@ -94,7 +146,11 @@ namespace Isis {


  /**
   * TODO
   * Accesses the current sample measurement for this control measure
   *
   * @see ControlMeasure::GetSample()
   *
   * @return @b double Returns the sample measurement for this control measure 
   */
  double BundleMeasure::sample() const {
    return m_controlMeasure->GetSample();
@@ -102,7 +158,11 @@ namespace Isis {


  /**
   * TODO
   * Accesses the current line measurement for this control measure
   *
   * @see ControlMeasure::GetLine()
   *
   * @return @b double Returns the line measurement for this control measure 
   */
  double BundleMeasure::line() const {
    return m_controlMeasure->GetLine();
@@ -110,7 +170,11 @@ namespace Isis {


  /**
   * TODO
   * Accesses the serial number of the cube containing this control measure 
   *
   * @see ControlMeasure::GetCubeSerialNumber()
   * 
   * @return @b QString Returns the serial number of the cube that contains this control measure
   */
  QString BundleMeasure::cubeSerialNumber() const {
    return m_controlMeasure->GetCubeSerialNumber();
@@ -118,7 +182,11 @@ namespace Isis {


  /**
   * TODO
   * Accesses the measured focal plane x value for this control measure //TODO verify?
   *
   * @see ControlMeasure::GetFocalPlaneMeasuredX()
   *
   * @return @b double Returns the measured focal plane x value
   */
  double BundleMeasure::focalPlaneMeasuredX() const {
    return m_controlMeasure->GetFocalPlaneMeasuredX();
@@ -126,14 +194,22 @@ namespace Isis {


  /**
   * TODO
   * Accesses the measured focal plane y value for this control measure  //TODO verify?
   *
   * @see ControlMeasure::GetFocalPlaneMeasuredY()
   *
   * @return @b double Returns the measured focal plane y value
   */
  double BundleMeasure::focalPlaneMeasuredY() const {
    return m_controlMeasure->GetFocalPlaneMeasuredY();
  }

  /**
   * TODO
   * Accesses the observation index for the parent observation
   *
   * @see BundleObservation::index()
   *
   * @return @b int Returns the observation index of the parent observation
   */
  int BundleMeasure::observationIndex() const {
    return m_parentObservation->index();
+14 −8
Original line number Diff line number Diff line
@@ -27,16 +27,21 @@

namespace Isis {
  /**
   * @brief 
   * @brief A container class for a control measure
   *
   * This class is used as a wrapper around a control measure for use with bundle adjust.
   *
   * @ingroup ControlNetworks
   *
   * @author 2014-07-09 Ken Edmundson
   *
   * @internal
   *   @history 2015-02-20 Jeannie Backer - Added assignment operator. Brought closer to Isis coding
   *                           standards.
   *   @history 2015-02-20 Jeannie Backer - Added assignment operator. Brought closer to Isis
   *                           coding standards.
   *
   *   @history 2016-07-14 Ian Humphrey - Updated documentation and coding standards in preparation
   *                           to merge into trunk. Updated unit test for BundleMeasure. Fixes
   *                           #4145, #4077.
   */

  class BundleControlPoint;
@@ -78,10 +83,11 @@ namespace Isis {
      int observationIndex() const;

    private:
      ControlMeasure *m_controlMeasure;
      BundleControlPoint *m_parentControlPoint;
      BundleImage *m_parentBundleImage;
      BundleObservation *m_parentObservation;
      ControlMeasure *m_controlMeasure;         /**< Contained control measure **/
      BundleControlPoint *m_parentControlPoint; /**< Parent bundle control point that contains this
                                                     bundle control measure **/
      BundleImage *m_parentBundleImage; /**< Parent image of this bundle control measure **/
      BundleObservation *m_parentObservation; /**< Parent bundle observation **/
  };
}

+21 −8
Original line number Diff line number Diff line
@@ -546,11 +546,6 @@ number of parameters: "0"
init exterior orientiation successful?   "Yes"
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Testing BundleMeasure...

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Testing BundleControlPoint...
Create FreePoint with free point containing 2 measures...
@@ -834,10 +829,28 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Testing BundleMeasure...
parent control point id "FixedPoint"

rejected? "No"
measure sample  "1.0"
measure line    "2.0"
measure serial number "NotIgnored"
focal x "-1.79769313486231e+308"
focal y "-1.79769313486231e+308"
observation index "0"

rejected? "No"
measure sample  "1.0"
measure line    "2.0"
measure serial number "NotIgnored"
focal x "-1.79769313486231e+308"
focal y "-1.79769313486231e+308"
observation index "0"

rejected? "No"
measure sample  "0.0"
measure line    "0.0"
measure serial number "Ignored"
measure sample  "1.0"
measure line    "2.0"
measure serial number "NotIgnored"
focal x "-1.79769313486231e+308"
focal y "-1.79769313486231e+308"
observation index "0"
+49 −46
Original line number Diff line number Diff line
@@ -34,6 +34,8 @@
using namespace std;
using namespace Isis;

void printBundleMeasure(BundleMeasure &);

/**
 * @author 2014 Jeannie Backer
 *
@@ -577,33 +579,6 @@ int main(int argc, char *argv[]) {
    qDebug() << "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
    qDebug() << "";
    qDebug() << "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
    qDebug() << "Testing BundleMeasure...";
    #if 0
    Move test after BundleObservation to setObs
    // constructor
    BundleMeasure(ControlMeasure *controlMeasure, BundleControlPoint *bundleControlPoint);
    // copy constructor
    BundleMeasure(const BundleMeasure &src);
    bundleMeasure.setParentObservation(BundleObservation *observation);
    BundleObservation  *parentObs = parentBundleObservation();
    BundleControlPoint *parentBCP = parentControlPoint();
    BundleImage        *parentImage = parentBundleImage();

    BundleObservationSolveSettings solveSettings = observationSolveSettings();
    Camera *cam = bundleMeasure.camera();

    qDebug() << "rejected?" << toString(bundleMeasure.isRejected());
    qDebug() << "measure sample " << toString(bundleMeasure.sample());
    qDebug() << "measure line   " << toString(bundleMeasure.line());
    qDebug() << "measure serial number" << bundleMeasure.cubeSerialNumber();
    qDebug() << "focal x" << toString(bundleMeasure.focalPlaneMeasuredX());
    qDebug() << "focal y" << toString(bundleMeasure.focalPlaneMeasuredY());
    qDebug() << "focal z" << toString(bundleMeasure.observationIndex());
    #endif
    qDebug() << "";    
    qDebug() << "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
    qDebug() << "";
    qDebug() << "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
    qDebug() << "Testing BundleControlPoint...";
    #if 0
    TEST COVERAGE (SCOPE) FOR THIS SOURCE FILE: 100%
@@ -832,29 +807,57 @@ int main(int argc, char *argv[]) {
    qDebug() << "";
    qDebug() << "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
    qDebug() << "Testing BundleMeasure...";
    #if 0
    TEST COVERAGE (SCOPE) FOR THIS SOURCE FILE: 86%
    Camera *cam = bundleMeasure.camera();
    BundleObservationSolveSettings solveSettings = bundleMeasure.observationSolveSettings();
    #endif
    BundleMeasure bundleMeasure(cm1, bcp3);
    BundleMeasure bundleMeasureCopy(bcm);
    bundleMeasure.setParentObservation(&bo);
//    BundleObservation  *parentObs = bundleMeasure.parentBundleObservation();
//    BundleControlPoint *parentBCP = bundleMeasure.parentControlPoint();
//    BundleImage        *parentImage = bundleMeasure.parentBundleImage();
    qDebug() << "rejected?" << toString(bundleMeasure.isRejected());
    qDebug() << "measure sample " << toString(bundleMeasure.sample());
    qDebug() << "measure line   " << toString(bundleMeasure.line());
    qDebug() << "measure serial number" << bundleMeasure.cubeSerialNumber();
    qDebug() << "focal x" << toString(bundleMeasure.focalPlaneMeasuredX());
    qDebug() << "focal y" << toString(bundleMeasure.focalPlaneMeasuredY());
    qDebug() << "observation index" << toString(bundleMeasure.observationIndex());

    // TEST COVERAGE (SCOPE) FOR THIS SOURCE FILE: 86% //TODO update when SquishCoco works again
    BundleMeasure bundleMeasure(cm2, bcp3);

    bundleMeasure.setParentObservation(&bo2);
    // const BundleObservationSolveSettings *solveSettings = 
    bundleMeasure.observationSolveSettings();
    // Camera *cam = 
    bundleMeasure.camera();
    // BundleObservation  *parentObs = 
    bundleMeasure.parentBundleObservation();
    BundleControlPoint *parentBCP = bundleMeasure.parentControlPoint();
    qDebug() << "parent control point id" << parentBCP->getId();
    // BundleImage        *parentImage = 
    bundleMeasure.parentBundleImage(); //TODO m_parentBundleImage always NULL ??? 

    // Copy and =
    BundleMeasure bundleMeasureCopy(bundleMeasure);
    BundleMeasure bundleMeasureEq = bundleMeasure;

    // Test self-assignment
    bundleMeasure = bundleMeasure;

    qDebug() << "";
    // Verify state and copies
    printBundleMeasure(bundleMeasure);
    printBundleMeasure(bundleMeasureCopy);
    printBundleMeasure(bundleMeasureEq);
      
    qDebug() << "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
    qDebug() << "";
  } 
  catch (IException &e) {
    e.print();
  }

}


/**
 * Outputs the BundleMeasure state fo testing and verification
 *
 * @param m The BundleMeasure to print information on
 */
 void printBundleMeasure(BundleMeasure &m) {
   qDebug() << "rejected?" << toString(m.isRejected());
   qDebug() << "measure sample " << toString(m.sample());
   qDebug() << "measure line   " << toString(m.line());
   qDebug() << "measure serial number" << m.cubeSerialNumber();
   qDebug() << "focal x" << toString(m.focalPlaneMeasuredX());
   qDebug() << "focal y" << toString(m.focalPlaneMeasuredY());
   qDebug() << "observation index" << toString(m.observationIndex());
   qDebug() << "";  
}