• Main Page
  • Related Pages
  • Namespaces
  • Classes
  • Files
  • File List

EdgeEndBundle.h

00001 /**********************************************************************
00002  * $Id: EdgeEndBundle.h 2557 2009-06-08 09:30:55Z strk $
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  * Last port: operation/relate/EdgeEndBundle.java rev. 1.17 (JTS-1.10)
00017  *
00018  **********************************************************************/
00019 
00020 #ifndef GEOS_OP_RELATE_EDGEENDBUNDLE_H
00021 #define GEOS_OP_RELATE_EDGEENDBUNDLE_H
00022 
00023 #include <geos/export.h>
00024 
00025 #include <geos/geomgraph/EdgeEnd.h> // for EdgeEndBundle inheritance
00026 
00027 #include <string>
00028 
00029 // Forward declarations
00030 namespace geos {
00031         namespace algorithm {
00032                 class BoundaryNodeRule;
00033         }
00034         namespace geom {
00035                 class IntersectionMatrix;
00036         }
00037 }
00038 
00039 
00040 namespace geos {
00041 namespace operation { // geos::operation
00042 namespace relate { // geos::operation::relate
00043 
00048 class GEOS_DLL EdgeEndBundle: public geomgraph::EdgeEnd 
00049 {
00050 public:
00051         EdgeEndBundle(geomgraph::EdgeEnd *e);
00052         virtual ~EdgeEndBundle();
00053         geomgraph::Label *getLabel();
00054         std::vector<geomgraph::EdgeEnd*>* getEdgeEnds();
00055         void insert(geomgraph::EdgeEnd *e);
00056 
00057         void computeLabel(const algorithm::BoundaryNodeRule& bnr); 
00058 
00059         void updateIM(geom::IntersectionMatrix *im);
00060         std::string print();
00061 protected:
00062         std::vector<geomgraph::EdgeEnd*> *edgeEnds;
00063 
00093         void computeLabelOn(int geomIndex,
00094                 const algorithm::BoundaryNodeRule& boundaryNodeRule);
00095 
00096         void computeLabelSides(int geomIndex);
00097         void computeLabelSide(int geomIndex,int side);
00098 };
00099 
00100 } // namespace geos:operation:relate
00101 } // namespace geos:operation
00102 } // namespace geos
00103 
00104 #endif // GEOS_OP_RELATE_EDGEENDBUNDLE_H
00105 
00106 /**********************************************************************
00107  * $Log$
00108  * Revision 1.1  2006/03/21 13:11:29  strk
00109  * opRelate.h header split
00110  *
00111  **********************************************************************/
00112 

Generated on Thu Jul 22 2010 for GEOS by  doxygen 1.7.1