Commit 4db13aab authored by Sasha Brownsberger's avatar Sasha Brownsberger
Browse files

Modified Process family of classes to support improved inheritance. Ref #02215

git-svn-id: http://subversion.wr.usgs.gov/repos/prog/isis3/trunk@6041 41f8697f-d340-4b68-9986-7bafba869bb8
parent 44d34ee0
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -277,7 +277,7 @@ void IsisMain() {
  Pvl pvl;
  pvl.addGroup(userGrp);
  pvl.addGroup(bandBinGrp);
  g_pgp.SetOutputCube("TO", pvl, g_bands);
  g_pgp.SetStatCubes("TO", pvl, g_bands);
  bool useCenter = true;
  if (ui.GetString("METHOD") == "CENTER") {
    useCenter = true;
+3 −0
Original line number Diff line number Diff line
@@ -216,6 +216,9 @@
    <change name="Janet Richie, Ella Lee" date="2013-11-21">
      Updated documentation.
    </change>
    <change name="Sasha Brownsberger" date="2015-01-19">
      Updated function calls to reflect changes to ProcessGroundPolygons object.
    </change>
  </history>

  <groups>
+11 −7
Original line number Diff line number Diff line
@@ -143,6 +143,10 @@ namespace Isis {
   *                          being propagated.
   *  @history 2012-02-24 Steven Lambright - Added Finalize() method and
   *                          deprecated EndProcess()
   *  @history 2015-01-15 Sasha Brownsberger - Added virtual keyword to several 
   *                                           functions to ensure successful 
   *                                           inheritance between Process and its
   *                                           child classes.  Fixes #2215.
   */
  class Process {
    protected:
@@ -214,24 +218,24 @@ namespace Isis {
       *
       * @param funct()  Name of your processing function
       */
      void StartProcess(void funct()) {
      virtual void StartProcess(void funct()) {
        funct();
      };
      virtual void EndProcess();
      virtual void Finalize();

      Isis::Cube *SetInputCube(const QString &parameter,
      virtual Isis::Cube *SetInputCube(const QString &parameter,
                               const int requirements = 0);
      Isis::Cube *SetInputCube(const QString &fname,
      virtual Isis::Cube *SetInputCube(const QString &fname,
                               const Isis::CubeAttributeInput &att,
                               int requirements = 0);
      void SetInputCube(Isis::Cube *inCube);
      virtual void SetInputCube(Isis::Cube *inCube);


      Isis::Cube *SetOutputCube(const QString &parameter);
      Isis::Cube *SetOutputCube(const QString &parameter, const int nsamps,
      virtual Isis::Cube *SetOutputCube(const QString &parameter);
      virtual Isis::Cube *SetOutputCube(const QString &parameter, const int nsamps,
                                const int nlines, const int nbands = 1);
      Isis::Cube *SetOutputCube(const QString &fname,
      virtual Isis::Cube *SetOutputCube(const QString &fname,
                                const Isis::CubeAttributeOutput &att,
                                const int nsamps, const int nlines,
                                const int nbands = 1);
+7 −2
Original line number Diff line number Diff line
@@ -45,6 +45,11 @@ namespace Isis {
   *   @history 2011-08-19 Jeannie Backer - Modified unitTest to use
   *                           $temporary variable instead of /tmp directory.
   *   @history 2012-02-24 Steven Lambright - Added Finalize() and ProcessCube()
   *   @history 2015-01-15 Sasha Brownsberger - Added virtual keyword to several 
   *                                           functions to ensure successful 
   *                                           inheritance between Process and its
   *                                           child classes.  Also made destructor
   *                                           virtual.  References #2215.
   */

  class ProcessByBoxcar : public Isis::Process {
@@ -63,11 +68,11 @@ namespace Isis {
      };

      //! Destroys the ProcessByBoxcar object.
      ~ProcessByBoxcar() {};
      virtual ~ProcessByBoxcar() {};

      void SetBoxcarSize(const int ns, const int nl);

      void StartProcess(void funct(Isis::Buffer &in, double &out));
      virtual void StartProcess(void funct(Isis::Buffer &in, double &out));
      void ProcessCube(void funct(Isis::Buffer &in, double &out)) {
        StartProcess(funct);
      }
+14 −9
Original line number Diff line number Diff line
@@ -84,6 +84,11 @@ namespace Isis {
   *   @history 2013-03-27 Jeannie Backer - Modified SetBrickSize() code to call
   *                           existing methods rather than duplicating code.
   *                           Added SetOutputCube() method.References #1248.
   *   @history 2015-01-15 Sasha Brownsberger - Added virtual keyword to several 
   *                                            functions to ensure successful 
   *                                            inheritance between Process and its
   *                                            child classes.  Also made destructor
   *                                            virtual.  Fixes #2215.
   */
  class ProcessByBrick : public Process {
    public:
@@ -91,7 +96,7 @@ namespace Isis {
      ProcessByBrick();

      //! Destroys the ProcessByBrick object
      ~ProcessByBrick();
      virtual ~ProcessByBrick();

      enum ProcessingDirection {
        LinesFirst,
@@ -121,7 +126,7 @@ namespace Isis {
      // Any other calls to this method will use the prototypes found in the
      //process class due to the using statement below. 
      using Process::SetOutputCube;
      Cube *SetOutputCube(const QString &fname,
      virtual Cube *SetOutputCube(const QString &fname,
                          const CubeAttributeOutput &att);

      void SetProcessingDirection(ProcessingDirection direction);
@@ -130,9 +135,9 @@ namespace Isis {
      void SetWrap(bool wrap);
      bool Wraps();

      void StartProcess(void funct(Buffer &in));
      void StartProcess(void funct(Buffer &in, Buffer &out));
      void StartProcess(void funct(std::vector<Buffer *> &in,
      virtual void StartProcess(void funct(Buffer &in));
      virtual void StartProcess(void funct(Buffer &in, Buffer &out));
      virtual void StartProcess(void funct(std::vector<Buffer *> &in,
                                   std::vector<Buffer *> &out));
      void EndProcess();// Depricated. Please use Finalize
      void Finalize();
@@ -361,7 +366,7 @@ namespace Isis {
          /**
           * Destructor
           */
          ~ProcessCubeInPlaceFunctor() {
          virtual ~ProcessCubeInPlaceFunctor() {
            m_cube = NULL;
            m_templateBrick = NULL;
          }
@@ -486,7 +491,7 @@ namespace Isis {
          /**
           * Destructor
           */
          ~ProcessCubeFunctor() {
          virtual ~ProcessCubeFunctor() {
            m_inputTemplateBrick = NULL;
            m_outputTemplateBrick = NULL;
          }
@@ -620,7 +625,7 @@ namespace Isis {
          /**
           * Destructor
           */
          ~ProcessCubesFunctor() {
          virtual ~ProcessCubesFunctor() {
          }


@@ -747,7 +752,7 @@ namespace Isis {
        public:
          ProcessIterator(int position);
          ProcessIterator(const ProcessIterator &other);
          ~ProcessIterator();
          virtual ~ProcessIterator();

          ProcessIterator &operator++();

Loading