LineString.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_LINESTRING_H_
9 #define FIELDS2COVER_TYPES_LINESTRING_H_
10 
11 #include <gdal/ogr_geometry.h>
12 #include <vector>
16 
17 namespace f2c::types {
18 
19 struct LineString : public Geometries<LineString, OGRLineString, wkbLineString,
20  Point> {
21  public:
23  LineString();
24  explicit LineString(const LinearRing& ring);
25  explicit LineString(const std::vector<Point>& ps);
26  explicit LineString(const Point& p1, const Point& p2);
27  explicit LineString(const std::initializer_list<Point>& ps);
28 
29  void operator*=(double b);
30 
31  double X(size_t i) const;
32  double Y(size_t i) const;
33  double Z(size_t i) const;
34  double getX(size_t i) const;
35  double getY(size_t i) const;
36  double getZ(size_t i) const;
37  double length() const;
38  void reversePoints();
39  size_t size() const;
40 
41  void getGeometry(size_t i, Point& point);
42  void getGeometry(size_t i, Point& point) const;
43  Point getGeometry(size_t i);
44  const Point getGeometry(size_t i) const;
45  void setGeometry(size_t i, const Point& p);
46 
47  void addPoint(double x, double y, double z = 0);
48  void addPoint(const Point& p);
49  void addGeometry(const Point& p);
50 
51  const Point startPoint() const;
52  double startAngle() const;
53 
54  const Point endPoint() const;
55  double endAngle() const;
56 
57  Point closestPointTo(const Point& p) const;
58 };
59 
60 
61 } // namespace f2c::types
62 
63 #endif // FIELDS2COVER_TYPES_LINESTRING_H_
f2c::types::LineString::getX
double getX(size_t i) const
Definition: LineString.cpp:44
f2c::types::LineString::closestPointTo
Point closestPointTo(const Point &p) const
Definition: LineString.cpp:130
1_basic_types.p1
p1
Definition: 1_basic_types.py:11
Point.h
f2c::types
Types used by fields2cover library.
Definition: Cell.h:20
f2c::types::LineString::Z
double Z(size_t i) const
Definition: LineString.cpp:43
f2c::types::LineString::getGeometry
void getGeometry(size_t i, Point &point)
Definition: LineString.cpp:54
f2c::types::LineString::X
double X(size_t i) const
Definition: LineString.cpp:41
f2c::types::LineString::startAngle
double startAngle() const
Definition: LineString.cpp:122
f2c::types::LineString::setGeometry
void setGeometry(size_t i, const Point &p)
Definition: LineString.cpp:92
f2c::types::LineString::getZ
double getZ(size_t i) const
Definition: LineString.cpp:46
f2c::types::LinearRing
Definition: LinearRing.h:18
f2c::types::LineString::LineString
LineString()
Definition: LineString.cpp:11
f2c::types::LineString::Y
double Y(size_t i) const
Definition: LineString.cpp:42
f2c::types::LineString::operator*=
void operator*=(double b)
Definition: LineString.cpp:101
1_basic_types.p2
p2
Definition: 1_basic_types.py:15
1_basic_types.ring
ring
Definition: 1_basic_types.py:68
f2c::types::LineString::addGeometry
void addGeometry(const Point &p)
Definition: LineString.cpp:96
f2c::types::LineString::startPoint
const Point startPoint() const
Definition: LineString.cpp:114
f2c::types::LineString
Definition: LineString.h:19
8_complete_flow.ps
list ps
Definition: 8_complete_flow.py:43
Geometries.h
f2c::types::LineString::addPoint
void addPoint(double x, double y, double z=0)
Definition: LineString.cpp:107
f2c::types::Point
Definition: Point.h:21
f2c::types::LineString::getY
double getY(size_t i) const
Definition: LineString.cpp:45
f2c::types::LineString::endPoint
const Point endPoint() const
Definition: LineString.cpp:118
f2c::types::LineString::size
size_t size() const
Definition: LineString.cpp:49
LinearRing.h
f2c::types::LineString::reversePoints
void reversePoints()
Definition: LineString.cpp:48
f2c::types::Geometries
Definition: Geometries.h:21
f2c::types::LineString::length
double length() const
Definition: LineString.cpp:47
f2c::types::LineString::endAngle
double endAngle() const
Definition: LineString.cpp:126


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