Fishnet 2.0.1
Framework for Graph-Based Analysis of GIS Vector Data
Loading...
Searching...
No Matches
IGeometry.hpp
Go to the documentation of this file.
1#pragma once
2#include "IPoint.hpp"
3#include "ILine.hpp"
4#include "ISegment.hpp"
5#include "IRay.hpp"
6#include "IRing.hpp"
7#include "IPolygon.hpp"
8#include "IMultiPolygon.hpp"
9
10namespace fishnet::geometry {
11
12template<typename L>
14
18
22template<typename S>
24
25static_assert(Shape<__impl::RingStub<double>>);
28static_assert(not Shape<double>);
29
30template<typename G>
32
40template<typename G>
41concept DynamicGeometry = fishnet::util::Object<G> && requires(const G & geometry){
42 { geometry.geometryType() } -> std::convertible_to<GeometryType>;
43};
44
51template<typename G>
53
61} // namespace fishnet::geometry
A geometry of a statically known type, or one which only knows it at runtime.
Definition IGeometry.hpp:52
A geometry which carries its type at runtime instead of statically.
Definition IGeometry.hpp:41
Definition IGeometry.hpp:31
Interface for a line A line is defined through two points p and q, defining a direction vector.
Definition ILine.hpp:76
Interface for a multi-polygon A multi-polygon is a collection of polygons.
Definition IMultiPolygon.hpp:93
Interface for a point.
Definition IPoint.hpp:92
Interface for a polygon A polygon is a two-dimensional shape defined by a boundary and zero or more h...
Definition IPolygon.hpp:98
Interface for a ray A ray is defined through its origin and a direction.
Definition IRay.hpp:69
Interface for a ring A ring is a closed loop of segments, forming a boundary of a shape.
Definition IRing.hpp:143
Interface for a segment A segment is formed between two points p and q, containing only the points on...
Definition ISegment.hpp:105
Definition IGeometry.hpp:13
A geometry enclosing an area: a ring, a polygon or a multi-polygon.
Definition IGeometry.hpp:23
Helper concept which checks whether a class is an object, meaning it has a string representation,...
Definition ObjectConcepts.hpp:51
Definition BoundingBoxWrapper.hpp:5