Loading isis/src/base/objs/EquatorialCylindricalShape/EquatorialCylindricalShape.cpp +13 −9 Original line number Diff line number Diff line #include "EquatorialCylindricalShape.h" #include <QDebug> #include <QVector> #include <algorithm> #include <cfloat> Loading @@ -20,6 +21,8 @@ // #include "LinearAlgebra.h" #include "Longitude.h" #include "NaifStatus.h" #include "Spice.h" #include "ShapeModel.h" #include "SpecialPixel.h" #include "SurfacePoint.h" #include "Table.h" Loading Loading @@ -419,15 +422,16 @@ namespace Isis { /** * Override of virtual function for intersectEllipsoid * * param &a SpiceDouble reference to be set * * param &b SpiceDouble reference to be set * * param &c SpiceDouble reference to be set * @return tuple of three SpiceDoubles: SpiceDouble a, SpiceDouble b, SpiceDouble c */ void EquatorialCylindricalShape::setTargetRadii(SpiceDouble &a, SpiceDouble &b, SpiceDouble &c) { a = m_maxRadius->kilometers(); b = m_maxRadius->kilometers(); c = m_maxRadius->kilometers(); QVector<SpiceDouble> EquatorialCylindricalShape::setTargetRadii() { QVector<SpiceDouble> spiceVector(3); SpiceDouble a = m_maxRadius->kilometers(); SpiceDouble b = m_maxRadius->kilometers(); SpiceDouble c = m_maxRadius->kilometers(); spiceVector.insert(0, a); spiceVector.insert(1, b); spiceVector.insert(2, c); return spiceVector; } } isis/src/base/objs/EquatorialCylindricalShape/EquatorialCylindricalShape.h +8 −5 Original line number Diff line number Diff line Loading @@ -24,6 +24,9 @@ #include "DemShape.h" #include <QVector> #include "Spice.h" namespace Isis { class Pvl; Loading @@ -48,10 +51,10 @@ namespace Isis { * and attempt the iterative method even when the ellipsoid is not * intersected. Fixes #1438 * @history 2018-02-05 Cole Neubauer - Added the setTargetRadii virtual method so that the * intersectEllipsoid method can use a the MaximumRadius found in the * intersectEllipsoid method can use the MaximumRadius found in the * ShapeModelStatistics group of the labels (often written during a run of * demprep) as a starting radius for the ellipsoid as opposed to the * default radius of the target. * default radius of the target. Fixes #5242 */ class EquatorialCylindricalShape : public DemShape { public: Loading @@ -66,7 +69,7 @@ namespace Isis { std::vector<double> lookDirection); protected: virtual void setTargetRadii(SpiceDouble &a, SpiceDouble &b, SpiceDouble &c); virtual QVector<SpiceDouble> setTargetRadii(); // returns a QVector of SpiceDouble private: Loading isis/src/base/objs/ShapeModel/ShapeModel.cpp +18 −14 Original line number Diff line number Diff line #include "ShapeModel.h" #include <QDebug> #include <QVector> #include <algorithm> #include <cfloat> Loading Loading @@ -198,21 +199,23 @@ namespace Isis { return acos(angle) * RAD2DEG; } /** * Sets the parameters to the Target radii * * param &a SpiceDouble reference to be set * Override of virtual function for intersectEllipsoid * * param &b SpiceDouble reference to be set * * param &c SpiceDouble reference to be set * @return tuple of three SpiceDoubles: SpiceDouble a, SpiceDouble b, SpiceDouble c */ void ShapeModel::setTargetRadii(SpiceDouble &a, SpiceDouble &b, SpiceDouble &c) { QVector<SpiceDouble> ShapeModel::setTargetRadii() { QVector<SpiceDouble> spiceVector(3); // get target radii std::vector<Distance> radii = targetRadii(); a = radii[0].kilometers(); b = radii[1].kilometers(); c = radii[2].kilometers(); SpiceDouble a = radii[0].kilometers(); SpiceDouble b = radii[1].kilometers(); SpiceDouble c = radii[2].kilometers(); spiceVector.insert(0, a); spiceVector.insert(1, b); spiceVector.insert(2, c); return spiceVector; } Loading Loading @@ -290,10 +293,11 @@ namespace Isis { memcpy(lookB,&observerLookVectorToTarget[0], 3*sizeof(double)); // get target radii SpiceDouble a; SpiceDouble b; SpiceDouble c; setTargetRadii(a, b, c); QVector<SpiceDouble> spiceVector = setTargetRadii(); SpiceDouble a = spiceVector.at(0); SpiceDouble b = spiceVector.at(1); SpiceDouble c = spiceVector.at(2); // check if observer look vector intersects the target SpiceDouble intersectionPoint[3]; Loading isis/src/base/objs/ShapeModel/ShapeModel.h +14 −17 Original line number Diff line number Diff line Loading @@ -23,10 +23,10 @@ */ #include <vector> #include <QVector> #include "Spice.h" template<class T> class QVector; class QString; Loading Loading @@ -81,7 +81,7 @@ namespace Isis { * called from intersectEllipsoid. This is to avoid * redundant code that comes with having intersectEllipsoid be * virtual as the only code that was changed will now be handled * in setTargetRadii Fixes m05242 * in setTargetRadii Fixes #5242 */ class ShapeModel { public: Loading Loading @@ -172,17 +172,14 @@ namespace Isis { const std::vector<double> lookDirection); protected: // Virtual function to be called in intersectEllipsoid to avoid redundant code virtual void setTargetRadii(SpiceDouble &a, SpiceDouble &b, SpiceDouble &c); virtual QVector<SpiceDouble> setTargetRadii(); // returns a QVector of SpiceDouble // Set the normal (surface or local) of the current intersection point void setNormal(const std::vector<double>); void setNormal(const double a, const double b, const double c); // accessor and setter for m_hasEllipsoidIntersection // accessor for m_hasEllipsoidIntersection bool hasEllipsoidIntersection(); // void setHasEllipsoidIntersection(bool status); // Set shape name void setName(QString name); Loading Loading
isis/src/base/objs/EquatorialCylindricalShape/EquatorialCylindricalShape.cpp +13 −9 Original line number Diff line number Diff line #include "EquatorialCylindricalShape.h" #include <QDebug> #include <QVector> #include <algorithm> #include <cfloat> Loading @@ -20,6 +21,8 @@ // #include "LinearAlgebra.h" #include "Longitude.h" #include "NaifStatus.h" #include "Spice.h" #include "ShapeModel.h" #include "SpecialPixel.h" #include "SurfacePoint.h" #include "Table.h" Loading Loading @@ -419,15 +422,16 @@ namespace Isis { /** * Override of virtual function for intersectEllipsoid * * param &a SpiceDouble reference to be set * * param &b SpiceDouble reference to be set * * param &c SpiceDouble reference to be set * @return tuple of three SpiceDoubles: SpiceDouble a, SpiceDouble b, SpiceDouble c */ void EquatorialCylindricalShape::setTargetRadii(SpiceDouble &a, SpiceDouble &b, SpiceDouble &c) { a = m_maxRadius->kilometers(); b = m_maxRadius->kilometers(); c = m_maxRadius->kilometers(); QVector<SpiceDouble> EquatorialCylindricalShape::setTargetRadii() { QVector<SpiceDouble> spiceVector(3); SpiceDouble a = m_maxRadius->kilometers(); SpiceDouble b = m_maxRadius->kilometers(); SpiceDouble c = m_maxRadius->kilometers(); spiceVector.insert(0, a); spiceVector.insert(1, b); spiceVector.insert(2, c); return spiceVector; } }
isis/src/base/objs/EquatorialCylindricalShape/EquatorialCylindricalShape.h +8 −5 Original line number Diff line number Diff line Loading @@ -24,6 +24,9 @@ #include "DemShape.h" #include <QVector> #include "Spice.h" namespace Isis { class Pvl; Loading @@ -48,10 +51,10 @@ namespace Isis { * and attempt the iterative method even when the ellipsoid is not * intersected. Fixes #1438 * @history 2018-02-05 Cole Neubauer - Added the setTargetRadii virtual method so that the * intersectEllipsoid method can use a the MaximumRadius found in the * intersectEllipsoid method can use the MaximumRadius found in the * ShapeModelStatistics group of the labels (often written during a run of * demprep) as a starting radius for the ellipsoid as opposed to the * default radius of the target. * default radius of the target. Fixes #5242 */ class EquatorialCylindricalShape : public DemShape { public: Loading @@ -66,7 +69,7 @@ namespace Isis { std::vector<double> lookDirection); protected: virtual void setTargetRadii(SpiceDouble &a, SpiceDouble &b, SpiceDouble &c); virtual QVector<SpiceDouble> setTargetRadii(); // returns a QVector of SpiceDouble private: Loading
isis/src/base/objs/ShapeModel/ShapeModel.cpp +18 −14 Original line number Diff line number Diff line #include "ShapeModel.h" #include <QDebug> #include <QVector> #include <algorithm> #include <cfloat> Loading Loading @@ -198,21 +199,23 @@ namespace Isis { return acos(angle) * RAD2DEG; } /** * Sets the parameters to the Target radii * * param &a SpiceDouble reference to be set * Override of virtual function for intersectEllipsoid * * param &b SpiceDouble reference to be set * * param &c SpiceDouble reference to be set * @return tuple of three SpiceDoubles: SpiceDouble a, SpiceDouble b, SpiceDouble c */ void ShapeModel::setTargetRadii(SpiceDouble &a, SpiceDouble &b, SpiceDouble &c) { QVector<SpiceDouble> ShapeModel::setTargetRadii() { QVector<SpiceDouble> spiceVector(3); // get target radii std::vector<Distance> radii = targetRadii(); a = radii[0].kilometers(); b = radii[1].kilometers(); c = radii[2].kilometers(); SpiceDouble a = radii[0].kilometers(); SpiceDouble b = radii[1].kilometers(); SpiceDouble c = radii[2].kilometers(); spiceVector.insert(0, a); spiceVector.insert(1, b); spiceVector.insert(2, c); return spiceVector; } Loading Loading @@ -290,10 +293,11 @@ namespace Isis { memcpy(lookB,&observerLookVectorToTarget[0], 3*sizeof(double)); // get target radii SpiceDouble a; SpiceDouble b; SpiceDouble c; setTargetRadii(a, b, c); QVector<SpiceDouble> spiceVector = setTargetRadii(); SpiceDouble a = spiceVector.at(0); SpiceDouble b = spiceVector.at(1); SpiceDouble c = spiceVector.at(2); // check if observer look vector intersects the target SpiceDouble intersectionPoint[3]; Loading
isis/src/base/objs/ShapeModel/ShapeModel.h +14 −17 Original line number Diff line number Diff line Loading @@ -23,10 +23,10 @@ */ #include <vector> #include <QVector> #include "Spice.h" template<class T> class QVector; class QString; Loading Loading @@ -81,7 +81,7 @@ namespace Isis { * called from intersectEllipsoid. This is to avoid * redundant code that comes with having intersectEllipsoid be * virtual as the only code that was changed will now be handled * in setTargetRadii Fixes m05242 * in setTargetRadii Fixes #5242 */ class ShapeModel { public: Loading Loading @@ -172,17 +172,14 @@ namespace Isis { const std::vector<double> lookDirection); protected: // Virtual function to be called in intersectEllipsoid to avoid redundant code virtual void setTargetRadii(SpiceDouble &a, SpiceDouble &b, SpiceDouble &c); virtual QVector<SpiceDouble> setTargetRadii(); // returns a QVector of SpiceDouble // Set the normal (surface or local) of the current intersection point void setNormal(const std::vector<double>); void setNormal(const double a, const double b, const double c); // accessor and setter for m_hasEllipsoidIntersection // accessor for m_hasEllipsoidIntersection bool hasEllipsoidIntersection(); // void setHasEllipsoidIntersection(bool status); // Set shape name void setName(QString name); Loading