21#include <geos/index/strtree/TemplateSTRtree.h>
22#include <geos/operation/distance/FacetSequence.h>
36class GEOS_DLL FacetSequenceTreeBuilder {
41 static const std::size_t FACET_SEQUENCE_SIZE = 6;
44 static const std::size_t STR_TREE_NODE_CAPACITY = 4;
46 static void addFacetSequences(
const geom::CoordinateSequence* pts,
47 std::vector<FacetSequence> & sections);
48 static std::vector<FacetSequence> computeFacetSequences(
const geom::Geometry* g);
50 class FacetSequenceTree :
public geos::index::strtree::TemplateSTRtree<const FacetSequence*> {
53 FacetSequenceTree(std::vector<FacetSequence> &&seq) :
54 TemplateSTRtree(STR_TREE_NODE_CAPACITY, seq.size()), sequences(seq) {
55 for (
auto& fs : sequences) {
56 TemplateSTRtree::insert(fs.getEnvelope(), &fs);
61 std::vector<FacetSequence> sequences;
72 static std::unique_ptr<geos::index::strtree::TemplateSTRtree<const FacetSequence*>> build(
const geom::Geometry* g);
The internal representation of a list of coordinates inside a Geometry.
Definition CoordinateSequence.h:56
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition Geometry.h:201
Provides classes for computing the distance between geometries.
Definition namespaces.h:185
Provides classes for implementing operations on geometries.
Definition CleanCoverage.h:34
Basic namespace for all GEOS functionalities.
Definition geos.h:38