Program Listing for File Swaths.h
↰ Return to documentation for file (fields2cover/types/Swaths.h
)
//=============================================================================
// Copyright (C) 2021-2024 Wageningen University - All Rights Reserved
// Author: Gonzalo Mier
// BSD-3 License
//=============================================================================
#pragma once
#ifndef FIELDS2COVER_TYPES_SWATHS_H_
#define FIELDS2COVER_TYPES_SWATHS_H_
#include <vector>
#include "fields2cover/types/LineString.h"
#include "fields2cover/types/MultiLineString.h"
#include "fields2cover/types/Cell.h"
#include "fields2cover/types/Cells.h"
#include "fields2cover/types/Swath.h"
namespace f2c::types {
struct Swaths {
Swaths();
explicit Swaths(int i);
Swaths(const std::initializer_list<Swath>& s);
explicit Swaths(const std::vector<Swath>& s);
~Swaths();
void emplace_back(const Swath& s);
void emplace_back(const LineString& l, double w, int id = 0,
SwathType type = SwathType::MAINLAND);
void push_back(const Swath& s);
std::vector<Swath>::iterator begin();
std::vector<Swath>::iterator end();
std::vector<Swath>::const_iterator begin() const;
std::vector<Swath>::const_iterator end() const;
void reverse();
Swath& back();
const Swath& back() const;
Swath& at(size_t i);
const Swath& at(size_t i) const;
size_t size() const;
Swath& operator[] (int i);
const Swath& operator[] (int i) const;
void append(const LineString& line, double width = 0,
SwathType type = SwathType::MAINLAND);
void append(const MultiLineString& line, double width = 0,
SwathType type = SwathType::MAINLAND);
void append(const LineString& line, const Cell& poly, double width = 0,
SwathType type = SwathType::MAINLAND);
void append(const MultiLineString& lines, const Cell& poly,
double width = 0, SwathType type = SwathType::MAINLAND);
void append(const LineString& line, const Cells& polys,
double width = 0, SwathType type = SwathType::MAINLAND);
void append(const MultiLineString& lines, const Cells& poly,
double width = 0, SwathType type = SwathType::MAINLAND);
void append(const Swaths& swaths);
void sort();
void reverseDirOddSwaths();
void moveTo(const Point& ref_pt);
Swaths clone() const;
private:
std::vector<Swath> data_;
};
} // namespace f2c::types
#endif // FIELDS2COVER_TYPES_SWATHS_H_