Program Listing for File headland_generator_base.h

Return to documentation for file (fields2cover/headland_generator/headland_generator_base.h)

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

#pragma once
#ifndef FIELDS2COVER_HEADLAND_GENERATOR_HEADLAND_GENERATOR_BASE_H_
#define FIELDS2COVER_HEADLAND_GENERATOR_HEADLAND_GENERATOR_BASE_H_

#include <vector>
#include "fields2cover/types.h"

namespace f2c::hg {

class HeadlandGeneratorBase {
 public:
  virtual F2CCells generateHeadlands(
    const F2CCells& field, double dist_headland) = 0;

  virtual F2CCells generateHeadlandArea(
    const F2CCells& field, double swath_width, int n_swaths) = 0;

  virtual std::vector<F2CCells> generateHeadlandSwaths(
    const F2CCells& field, double swath_width, int n_swaths,
    bool dir_out2in = true) = 0;

  virtual ~HeadlandGeneratorBase() = default;
};

}  // namespace f2c::hg

#endif  // FIELDS2COVER_HEADLAND_GENERATOR_HEADLAND_GENERATOR_BASE_H_