EdgeEndBuilder.h

00001 /**********************************************************************
00002  * $Id: EdgeEndBuilder.h 1820 2006-09-06 16:54:23Z mloskot $
00003  *
00004  * GEOS - Geometry Engine Open Source
00005  * http://geos.refractions.net
00006  *
00007  * Copyright (C) 2006 Refractions Research Inc.
00008  *
00009  * This is free software; you can redistribute and/or modify it under
00010  * the terms of the GNU Lesser General Public Licence as published
00011  * by the Free Software Foundation. 
00012  * See the COPYING file for more information.
00013  *
00014  **********************************************************************/
00015 
00016 #ifndef GEOS_OP_RELATE_EDGEENDBUILDER_H
00017 #define GEOS_OP_RELATE_EDGEENDBUILDER_H
00018 
00019 #include <vector>
00020 
00021 // Forward declarations
00022 namespace geos {
00023         namespace geom {
00024                 class IntersectionMatrix;
00025                 class Coordinate;
00026         }
00027         namespace geomgraph {
00028                 class Edge;
00029                 class EdgeIntersection;
00030                 class EdgeEnd;
00031         }
00032 }
00033 
00034 
00035 namespace geos {
00036 namespace operation { // geos::operation
00037 namespace relate { // geos::operation::relate
00038 
00042 class EdgeEndBuilder {
00043 public:
00044         EdgeEndBuilder() {}
00045 
00046         std::vector<geomgraph::EdgeEnd*> *computeEdgeEnds(std::vector<geomgraph::Edge*> *edges);
00047         void computeEdgeEnds(geomgraph::Edge *edge,std::vector<geomgraph::EdgeEnd*> *l);
00048 
00049 protected:
00050 
00051         void createEdgeEndForPrev(geomgraph::Edge *edge,
00052                         std::vector<geomgraph::EdgeEnd*> *l,
00053                         geomgraph::EdgeIntersection *eiCurr,
00054                         geomgraph::EdgeIntersection *eiPrev);
00055 
00056         void createEdgeEndForNext(geomgraph::Edge *edge,
00057                         std::vector<geomgraph::EdgeEnd*> *l,
00058                         geomgraph::EdgeIntersection *eiCurr,
00059                         geomgraph::EdgeIntersection *eiNext);
00060 };
00061 
00062 } // namespace geos:operation:relate
00063 } // namespace geos:operation
00064 } // namespace geos
00065 
00066 #endif // GEOS_OP_RELATE_EDGEENDBUILDER_H
00067 
00068 /**********************************************************************
00069  * $Log$
00070  * Revision 1.1  2006/03/21 13:11:29  strk
00071  * opRelate.h header split
00072  *
00073  **********************************************************************/
00074 

Generated on Fri Mar 27 04:52:40 2009 for GEOS by  doxygen 1.5.4