21#include <geos/index/strtree/TemplateSTRtree.h>
22#include <geos/operation/distance/FacetSequence.h>
27class CoordinateSequence;
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);
Basic namespace for all GEOS functionalities.
Definition geos.h:38