LinearRing.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_LINEARRING_H_
9 #define FIELDS2COVER_TYPES_LINEARRING_H_
10 
11 #include <gdal/ogr_geometry.h>
12 #include <vector>
15 
16 namespace f2c::types {
17 
18 struct LinearRing : public Geometries<LinearRing, OGRLinearRing, wkbLinearRing,
19  Point> {
20  public:
22  LinearRing();
23  explicit LinearRing(const std::vector<Point>& ps);
24  explicit LinearRing(const std::initializer_list<Point>& ps);
25 
26  void operator*=(double b);
27 
28  double getX(size_t i) const;
29  double getY(size_t i) const;
30  double getZ(size_t i) const;
31  double length() const;
32  void reversePoints();
33  size_t size() const;
34 
35  void getGeometry(size_t i, Point& point);
36  void getGeometry(size_t i, Point& point) const;
37  Point getGeometry(size_t i);
38  const Point getGeometry(size_t i) const;
39 
40  void setGeometry(size_t i, const Point& p);
41 
42  void addPoint(double x, double y, double z = 0);
43  void addPoint(const Point& p);
44  void addGeometry(const Point& p);
45 
46  const Point startPoint() const;
47  const Point endPoint() const;
48  bool isClockwise() const;
49  bool isClosed() const;
51 
52  Point closestPointTo(const Point& p) const;
53 };
54 
55 
56 } // namespace f2c::types
57 
58 #endif // FIELDS2COVER_TYPES_LINEARRING_H_
f2c::types::LinearRing::getX
double getX(size_t i) const
Definition: LinearRing.cpp:37
Point.h
f2c::types
Types used by fields2cover library.
Definition: Cell.h:20
f2c::types::LinearRing::reversePoints
void reversePoints()
Definition: LinearRing.cpp:51
f2c::types::LinearRing::getZ
double getZ(size_t i) const
Definition: LinearRing.cpp:44
f2c::types::LinearRing::setGeometry
void setGeometry(size_t i, const Point &p)
Definition: LinearRing.cpp:97
f2c::types::LinearRing::getY
double getY(size_t i) const
Definition: LinearRing.cpp:41
f2c::types::LinearRing::addPoint
void addPoint(double x, double y, double z=0)
Definition: LinearRing.cpp:105
f2c::types::LinearRing
Definition: LinearRing.h:18
f2c::types::LinearRing::startPoint
const Point startPoint() const
Definition: LinearRing.cpp:113
f2c::types::LinearRing::getGeometry
void getGeometry(size_t i, Point &point)
Definition: LinearRing.cpp:59
f2c::types::LinearRing::isClockwise
bool isClockwise() const
Definition: LinearRing.cpp:121
f2c::types::LinearRing::isClosed
bool isClosed() const
Definition: LinearRing.cpp:125
f2c::types::LinearRing::addGeometry
void addGeometry(const Point &p)
Definition: LinearRing.cpp:101
8_complete_flow.ps
list ps
Definition: 8_complete_flow.py:43
Geometries.h
f2c::types::LinearRing::closestPointTo
Point closestPointTo(const Point &p) const
Definition: LinearRing.cpp:136
f2c::types::Point
Definition: Point.h:21
f2c::types::LinearRing::size
size_t size() const
Definition: LinearRing.cpp:55
f2c::types::LinearRing::endPoint
const Point endPoint() const
Definition: LinearRing.cpp:117
f2c::types::LinearRing::closeRing
LinearRing & closeRing()
Definition: LinearRing.cpp:129
f2c::types::LinearRing::operator*=
void operator*=(double b)
Definition: LinearRing.cpp:31
f2c::types::Geometries
Definition: Geometries.h:21
f2c::types::LinearRing::length
double length() const
Definition: LinearRing.cpp:47
f2c::types::LinearRing::LinearRing
LinearRing()
Definition: LinearRing.cpp:12


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