Represents a polygon.
More...
#include <luciad/geometries/Polygon.h>
|
size_t | getHash () const override |
| Returns the hash value for this geometry. More...
|
|
size_t | getHash () const override |
| Returns the hash value for this geometry. More...
|
|
virtual size_t | getHash () const =0 |
| Returns the hash value for this geometry. More...
|
|
Represents a polygon.
- See also
- GeometryFactory::createPolygon
◆ appendInteriorRing()
std::shared_ptr< Polygon > luciad::Polygon::appendInteriorRing |
( |
std::shared_ptr< PolylineRing > |
interiorRing | ) |
const |
Creates a new Polygon instance based on this instance, but with a new interior ring appended to the list of interior rings.
- Parameters
-
interiorRing | the new interior ring. |
- Returns
- a new Polyline instance, with a new interior ring.
- Exceptions
-
- Since
- 2024.1
◆ getArea()
double luciad::Polygon::getArea |
( |
| ) |
const |
Returns the 2D area of this polygon.
The calculations are performed in the coordinate reference of this geometry. This means that
- for geodetic references, the curvature of the line segments are taken into account
- for other references, the calculations are cartesian.
The returned value is expressed in the unit of measure of the reference of this geometry.
- for geodetic references, this is always meters.
- or other references this is typically meters, but depending on the reference the unit of measure can also be something else like millimeters or feet.
Limitations:
- The area calculation is performed in 2D. For 3D polygons, the z value will be ignored and considered as 0.
- For this reason, geometries with a geocentric reference are not supported at all. In this case, an exception is thrown.
- Geometries with a
rhumb line
interpolation type are not supported. In this case, an exception is thrown.
- The calculations assume non-degenerare polygons. This means that the exterior and interior rings are not self intersecting, and that none of the (exterior or interior) rings overlap with other (exterior or interior) rings. The calculations will still produce a result, though it will not be well-defined (since the input is also no well-defined).
- Returns
- the 2D area of this polygon.
- Exceptions
-
- Since
- 2025.0
◆ getHash()
size_t luciad::Polygon::getHash |
( |
| ) |
const |
|
overrideprotectedvirtual |
Returns the hash value for this geometry.
- Returns
- the hash value for this geometry.
Reimplemented from luciad::CompositePatch.
◆ removeInteriorRing()
std::shared_ptr< Polygon > luciad::Polygon::removeInteriorRing |
( |
size_t |
index | ) |
const |
Creates a new Polygon instance based on this instance, but with the interior ring at location 'index' removed.
- Parameters
-
index | the index of the interior ring to remove |
- Returns
- a new Polyline instance, with the interior ring at location 'index' removed.
- Exceptions
-
- Since
- 2024.1
◆ replaceExteriorRing()
std::shared_ptr< Polygon > luciad::Polygon::replaceExteriorRing |
( |
std::shared_ptr< PolylineRing > |
exteriorRing | ) |
const |
Creates a new Polygon instance using the interior rings from this instance, but with a new exterior ring.
- Parameters
-
exteriorRing | the new exterior ring. |
- Returns
- a new Polyline instance.
- Exceptions
-
- Since
- 2024.1
◆ replaceInteriorRing()
std::shared_ptr< Polygon > luciad::Polygon::replaceInteriorRing |
( |
size_t |
index, |
|
|
std::shared_ptr< PolylineRing > |
interiorRing |
|
) |
| const |
Creates a new Polygon instance with the exterior and interior rings from this instance, but with a new interior ring at location 'index'.
- Parameters
-
index | the index of the interior ring to replace |
interiorRing | the new interior ring. |
- Returns
- a new Polyline instance
- Exceptions
-
- Since
- 2024.1