Program Listing for File sg_objective.h

Return to documentation for file (fields2cover/objectives/sg_obj/sg_objective.h)

//=============================================================================
//    Copyright (C) 2021-2024 Wageningen University - All Rights Reserved
//                     Author: Gonzalo Mier
//                        BSD-3 License
//=============================================================================

#pragma once
#ifndef FIELDS2COVER_OBJECTIVES_SG_OBJECTIVE_H_
#define FIELDS2COVER_OBJECTIVES_SG_OBJECTIVE_H_

#include "fields2cover/types.h"
#include "fields2cover/objectives/base_objective.h"


namespace f2c::obj {

class SGObjective : public BaseObjective<SGObjective> {
 public:
  virtual bool isFastCompAvailable() const {return false;}

  virtual double computeCost(const F2CSwath&);
  virtual double computeCost(const F2CSwaths&);
  virtual double computeCost(const F2CSwathsByCells& swaths);
  virtual double computeCost(const F2CCell&);
  virtual double computeCost(const F2CCells&);
  virtual double computeCost(double ang, double op_width, const F2CCell& cell);
  virtual double computeCost(const F2CCell& c, const F2CSwath& s);
  virtual double computeCost(const F2CCell& c, const F2CSwaths& s);
  virtual double computeCost(const F2CCell& c,
      const F2CSwathsByCells& swaths);
  virtual double computeCost(const F2CCells& c, const F2CSwath& s);
  virtual double computeCost(const F2CCells& c, const F2CSwaths& s);
  virtual double computeCost(const F2CCells& c,
      const F2CSwathsByCells& swaths);
};


}  // namespace f2c::obj

#endif  // FIELDS2COVER_OBJECTIVES_SG_OBJECTIVE_H_