GEOS: EdgeEndBundle.h Source File

GEOS 3.3.8

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- File List

EdgeEndBundle.h
1 /**********************************************************************
2 * $Id: EdgeEndBundle.h 2557 2009-06-08 09:30:55Z strk $
3 *
4 * GEOS - Geometry Engine Open Source
5 * http://geos.refractions.net
6 *
7 * Copyright (C) 2006 Refractions Research Inc.
8 *
9 * This is free software; you can redistribute and/or modify it under
10 * the terms of the GNU Lesser General Public Licence as published
11 * by the Free Software Foundation.
12 * See the COPYING file for more information.
13 *
14 **********************************************************************
15 *
16 * Last port: operation/relate/EdgeEndBundle.java rev. 1.17 (JTS-1.10)
17 *
18 **********************************************************************/
19
20 #ifndef GEOS_OP_RELATE_EDGEENDBUNDLE_H
21 #define GEOS_OP_RELATE_EDGEENDBUNDLE_H
22
23 #include <geos/export.h>
24
25 #include <geos/geomgraph/EdgeEnd.h> // for EdgeEndBundle inheritance
26
27 #include <string>
28
29 // Forward declarations
30 namespace geos {
31 namespace algorithm {
32 class BoundaryNodeRule;
33 }
34 namespace geom {
35 class IntersectionMatrix;
36 }
37 }
38
39
40 namespace geos {
41 namespace operation { // geos::operation
42 namespace relate { // geos::operation::relate
43
48 class GEOS_DLL EdgeEndBundle: public geomgraph::EdgeEnd
49 {
50 public:
51 EdgeEndBundle(geomgraph::EdgeEnd *e);
52 virtual ~EdgeEndBundle();
53 geomgraph::Label *getLabel();
54 std::vector<geomgraph::EdgeEnd*>* getEdgeEnds();
55 void insert(geomgraph::EdgeEnd *e);
56
57 void computeLabel(const algorithm::BoundaryNodeRule& bnr);
58
59 void updateIM(geom::IntersectionMatrix *im);
60 std::string print();
61 protected:
62 std::vector<geomgraph::EdgeEnd*> *edgeEnds;
63
93 void computeLabelOn(int geomIndex,
94 const algorithm::BoundaryNodeRule& boundaryNodeRule);
95
96 void computeLabelSides(int geomIndex);
97 void computeLabelSide(int geomIndex,int side);
98 };
99
100 } // namespace geos:operation:relate
101 } // namespace geos:operation
102 } // namespace geos
103
104 #endif // GEOS_OP_RELATE_EDGEENDBUNDLE_H
105
106 /**********************************************************************
107 * $Log$
108 * Revision 1.1 2006/03/21 13:11:29 strk
109 * opRelate.h header split
110 *
111 **********************************************************************/
112