19 #ifndef GEOS_IDX_CHAIN_MONOTONECHAINBUILDER_H
20 #define GEOS_IDX_CHAIN_MONOTONECHAINBUILDER_H
22 #include <geos/export.h>
30 class CoordinateSequence;
49 class GEOS_DLL MonotoneChainBuilder {
53 MonotoneChainBuilder() {}
59 static std::unique_ptr<std::vector<std::unique_ptr<MonotoneChain>>> getChains(
60 const geom::CoordinateSequence* pts,
71 static void getChains(
const geom::CoordinateSequence* pts,
73 std::vector<std::unique_ptr<MonotoneChain>>& mcList);
75 static std::unique_ptr<std::vector<std::unique_ptr<MonotoneChain>>>
76 getChains(
const geom::CoordinateSequence* pts)
78 return getChains(pts,
nullptr);
85 MonotoneChainBuilder(
const MonotoneChainBuilder&) =
delete;
86 MonotoneChainBuilder& operator=(
const MonotoneChainBuilder&) =
delete;
105 static std::size_t findChainEnd(
const geom::CoordinateSequence& pts,
113 #endif // GEOS_IDX_CHAIN_MONOTONECHAINBUILDER_H