Program Listing for File required_headland.h
↰ Return to documentation for file (fields2cover/headland_generator/required_headland.h)
//=============================================================================
// Copyright (C) 2021-2024 Wageningen University - All Rights Reserved
// Author: Gonzalo Mier
// BSD-3 License
//=============================================================================
#pragma once
#ifndef FIELDS2COVER_HEADLAND_GENERATOR_REQUIRED_HEADLAND_H_
#define FIELDS2COVER_HEADLAND_GENERATOR_REQUIRED_HEADLAND_H_
#include <vector>
#include "fields2cover/types.h"
#include "fields2cover/headland_generator/headland_generator_base.h"
namespace f2c::hg {
class ReqHL : public HeadlandGeneratorBase {
public:
F2CCells generateHeadlands(
const F2CCell& field, const F2CRobot& robot, double track_ang) override;
F2CCells generateHeadlands(
const F2CCells& field, const F2CRobot& robot,
const std::vector<double>& track_angs) override;
F2CCells generateHeadlands(
const F2CCells& field, double dist_headland) override;
F2CCells generateHeadlandArea(
const F2CCells& field, double swath_width, int n_swaths) override;
std::vector<F2CCells> generateHeadlandSwaths(
const F2CCells& field, double swath_width, int n_swaths,
bool dir_out2in = true) override;
double requiredHeadlandDist(const F2CRobot& robot,
double track_ang, double border_ang) const;
std::vector<double> requiredHeadlandDist(const F2CRobot& robot,
double track_ang, const F2CLinearRing& ring) const;
};
} // namespace f2c::hg
#endif // FIELDS2COVER_HEADLAND_GENERATOR_REQUIRED_HEADLAND_H_