Route.h
Go to the documentation of this file.
1 //=============================================================================
2 // Copyright (C) 2021-2024 Wageningen University - All Rights Reserved
3 // Author: Gonzalo Mier
4 // BSD-3 License
5 //=============================================================================
6 
7 #pragma once
8 #ifndef FIELDS2COVER_TYPES_ROUTE_H_
9 #define FIELDS2COVER_TYPES_ROUTE_H_
10 
11 #include <gdal/ogr_geometry.h>
12 #include <vector>
13 #include <numeric>
14 #include <optional>
20 
21 namespace f2c::types {
22 
23 struct Route {
24  public:
25  const std::vector<Swaths>& getVectorSwaths() const;
26 
27  Swaths& getSwaths(size_t i);
28  const Swaths& getSwaths(size_t i) const;
29  void setSwaths(size_t i, const Swaths& s);
30  void addSwaths(const Swaths& s = {});
31  void addConnectedSwaths(const MultiPoint& mp = {}, const Swaths& s = {});
32 
33  void addSwath(const Swath& s);
34  void addSwath(const Swath& s, Graph2D& g);
35  void addConnection();
36  void addConnection(const Point& p);
37  void addConnection(const MultiPoint& mp);
38  void addConnection(const std::vector<Point>& vp);
39 
41  const MultiPoint& getLastConnection() const;
43  const Swaths& getLastSwaths() const;
44 
45  const std::vector<MultiPoint>& getConnections() const;
46  MultiPoint& getConnection(size_t i);
47  const MultiPoint& getConnection(size_t i) const;
48  void setConnection(size_t i, const MultiPoint& mp);
49 
50  Point startPoint() const;
51  Point endPoint() const;
52 
53  size_t sizeVectorSwaths() const;
54  size_t sizeConnections() const;
55 
56 
57  double length() const;
58 
59  LineString asLineString() const;
60 
61  bool isEmpty() const;
62  Route clone() const;
63 
64  private:
65  std::vector<Swaths> v_swaths_;
66  std::vector<MultiPoint> connections_;
67 };
68 
69 
70 } // namespace f2c::types
71 
72 #endif // FIELDS2COVER_TYPES_ROUTE_H_
f2c::types::Graph2D
Definition: Graph2D.h:18
MultiPoint.h
f2c::types::Route::v_swaths_
std::vector< Swaths > v_swaths_
Definition: Route.h:65
f2c::types::Route::getLastConnection
MultiPoint & getLastConnection()
Definition: Route.cpp:91
f2c::types
Types used by fields2cover library.
Definition: Cell.h:20
Graph2D.h
f2c::types::Route::getConnections
const std::vector< MultiPoint > & getConnections() const
Definition: Route.cpp:107
f2c::types::Route::isEmpty
bool isEmpty() const
Definition: Route.cpp:179
f2c::types::Route::addSwath
void addSwath(const Swath &s)
Definition: Route.cpp:43
f2c::types::Route::startPoint
Point startPoint() const
Definition: Route.cpp:123
Swaths.h
f2c::types::Route::getSwaths
Swaths & getSwaths(size_t i)
Definition: Route.cpp:15
f2c::types::Swath
Definition: Swath.h:23
Swath.h
f2c::types::Route::asLineString
LineString asLineString() const
Definition: Route.cpp:154
f2c::types::Route::sizeVectorSwaths
size_t sizeVectorSwaths() const
Definition: Route.cpp:142
f2c::types::Route::getVectorSwaths
const std::vector< Swaths > & getVectorSwaths() const
Definition: Route.cpp:11
LineString.h
f2c::types::Route::getLastSwaths
Swaths & getLastSwaths()
Definition: Route.cpp:99
f2c::types::Route::addSwaths
void addSwaths(const Swaths &s={})
Definition: Route.cpp:27
f2c::types::MultiPoint
Definition: MultiPoint.h:18
f2c::types::LineString
Definition: LineString.h:19
f2c::types::Route::addConnection
void addConnection()
Definition: Route.cpp:63
f2c::types::Route::connections_
std::vector< MultiPoint > connections_
Definition: Route.h:66
f2c::types::Route::sizeConnections
size_t sizeConnections() const
Definition: Route.cpp:146
f2c::types::Route
Definition: Route.h:23
f2c::types::Route::length
double length() const
Definition: Route.cpp:150
f2c::types::Point
Definition: Point.h:21
f2c::types::Route::addConnectedSwaths
void addConnectedSwaths(const MultiPoint &mp={}, const Swaths &s={})
Definition: Route.cpp:38
f2c::types::Route::getConnection
MultiPoint & getConnection(size_t i)
Definition: Route.cpp:111
f2c::types::Route::setConnection
void setConnection(size_t i, const MultiPoint &mp)
Definition: Route.cpp:119
f2c::types::Route::setSwaths
void setSwaths(size_t i, const Swaths &s)
Definition: Route.cpp:23
f2c::types::Route::clone
Route clone() const
Definition: Route.cpp:183
f2c::types::Swaths
Definition: Swaths.h:20
f2c::types::Route::endPoint
Point endPoint() const
Definition: Route.cpp:132


fields2cover
Author(s):
autogenerated on Fri Apr 25 2025 02:18:31