DYT/Tool/OpenSceneGraph-3.6.5/include/geos/triangulate/quadedge/LastFoundQuadEdgeLocator.h

64 lines
1.8 KiB
C
Raw Normal View History

2024-12-24 23:49:36 +00:00
/**********************************************************************
*
* GEOS - Geometry Engine Open Source
* http://geos.osgeo.org
*
* Copyright (C) 2012 Excensus LLC.
*
* This is free software; you can redistribute and/or modify it under
* the terms of the GNU Lesser General Licence as published
* by the Free Software Foundation.
* See the COPYING file for more information.
*
**********************************************************************
*
* Last port: triangulate/quadedge/LastFoundQuadEdgeLocator.java r524
*
**********************************************************************/
#pragma once
#include <geos/triangulate/quadedge/QuadEdge.h>
#include <geos/triangulate/quadedge/QuadEdgeLocator.h>
namespace geos {
namespace triangulate { //geos.triangulate
namespace quadedge { //geos.triangulate.quadedge
//fwd declarations
class QuadEdgeSubdivision;
/** \brief
* Locates {@link QuadEdge}s in a {@link QuadEdgeSubdivision}, optimizing the
* search by starting in the locality of the last edge found.
*
* @author JTS: Martin Davis
* @author Benjamin Campbell
*/
class LastFoundQuadEdgeLocator : public QuadEdgeLocator {
private:
QuadEdgeSubdivision* subdiv;
QuadEdge* lastEdge;
public:
LastFoundQuadEdgeLocator(QuadEdgeSubdivision* subdiv);
private:
virtual void init();
virtual QuadEdge* findEdge();
public:
/**
* Locates an edge e, such that either v is on e, or e is an edge of a triangle containing v.
* The search starts from the last located edge amd proceeds on the general direction of v.
* @return The caller _does not_ take ownership of the returned object.
*/
QuadEdge* locate(const Vertex& v) override;
};
} //namespace geos.triangulate.quadedge
} //namespace geos.triangulate
} //namespace goes