21 #include <geos/export.h>
22 #include <geos/index/quadtree/NodeBase.h>
23 #include <geos/geom/Coordinate.h>
24 #include <geos/geom/Envelope.h>
31 #pragma warning(disable: 4251)
59 std::unique_ptr<geom::Envelope> env;
71 Node* getSubnode(
int index);
73 std::unique_ptr<Node> createSubnode(
int index);
80 return env->intersects(searchEnv);
86 static std::unique_ptr<Node> createNode(
const geom::Envelope& env);
96 Node(std::unique_ptr<geom::Envelope> nenv,
int nlevel)
99 centre((env->getMinX() + env->getMaxX()) / 2,
100 (env->getMinY() + env->getMaxY()) / 2),
128 void insertNode(std::unique_ptr<Node> node);
130 std::string toString()
const override;
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:217
An Envelope defines a rectangulare region of the 2D coordinate plane.
Definition: Envelope.h:59
The base class for nodes in a Quadtree.
Definition: quadtree/NodeBase.h:54
Represents a node of a Quadtree.
Definition: index/quadtree/Node.h:54
geom::Envelope * getEnvelope()
Definition: index/quadtree/Node.h:110
NodeBase * find(const geom::Envelope *searchEnv)
Returns the smallest existing node containing the envelope.
static std::unique_ptr< Node > createExpanded(std::unique_ptr< Node > node, const geom::Envelope &addEnv)
Create a node containing the given node and envelope.
Node * getNode(const geom::Envelope *searchEnv)
Returns the subquad containing the envelope. Creates the subquad if it does not already exist.
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25