GEOS
3.4.2
Main Page
Related Pages
Namespaces
Classes
Files
File List
include
geos
operation
sharedpaths
SharedPathsOp.h
1
/**********************************************************************
2
*
3
* GEOS - Geometry Engine Open Source
4
* http://geos.osgeo.org
5
*
6
* Copyright (C) 2010 Sandro Santilli <strk@keybit.net>
7
*
8
* This is free software; you can redistribute and/or modify it under
9
* the terms of the GNU Lesser General Public Licence as published
10
* by the Free Software Foundation.
11
* See the COPYING file for more information.
12
*
13
**********************************************************************
14
*
15
* Last port: original work
16
*
17
* Developed by Sandro Santilli (strk@keybit.net)
18
* for Faunalia (http://www.faunalia.it)
19
* with funding from Regione Toscana - Settore SISTEMA INFORMATIVO
20
* TERRITORIALE ED AMBIENTALE - for the project: "Sviluppo strumenti
21
* software per il trattamento di dati geografici basati su QuantumGIS
22
* e Postgis (CIG 0494241492)"
23
*
24
**********************************************************************/
25
26
#ifndef GEOS_OPERATION_SHAREDPATHSOP_H
27
#define GEOS_OPERATION_SHAREDPATHSOP_H
28
29
#include <geos/export.h>
// for GEOS_DLL
30
31
#include <vector>
32
33
// Forward declarations
34
namespace
geos {
35
namespace
geom {
36
class
LineString;
37
class
Geometry;
38
class
GeometryFactory;
39
}
40
}
41
42
43
namespace
geos {
44
namespace
operation {
// geos.operation
45
namespace
sharedpaths {
// geos.operation.sharedpaths
46
64
class
GEOS_DLL
SharedPathsOp
65
{
66
public
:
67
69
typedef
std::vector<geom::LineString*>
PathList
;
70
72
//
89
static
void
sharedPathsOp(
const
geom::Geometry
& g1,
90
const
geom::Geometry
& g2,
91
PathList
& sameDirection,
92
PathList
& oppositeDirection);
93
95
//
102
SharedPathsOp
(
const
geom::Geometry
& g1,
const
geom::Geometry
& g2);
103
105
//
116
void
getSharedPaths(
PathList
& sameDirection,
PathList
& oppositeDirection);
117
119
static
void
clearEdges(
PathList
& from);
120
121
private
:
122
124
//
129
void
findLinearIntersections(
PathList
& to);
130
132
//
135
bool
isForward(
const
geom::LineString
& edge,
136
const
geom::Geometry
& geom);
137
140
bool
isSameDirection(
const
geom::LineString
& edge) {
141
return
(isForward(edge, _g1) == isForward(edge, _g2));
142
}
143
145
void
checkLinealInput(
const
geom::Geometry
& g);
146
147
const
geom::Geometry
& _g1;
148
const
geom::Geometry
& _g2;
149
const
geom::GeometryFactory
& _gf;
150
151
// Declare type as noncopyable
152
SharedPathsOp
(
const
SharedPathsOp
& other);
153
SharedPathsOp
& operator=(
const
SharedPathsOp
& rhs);
154
155
};
156
157
}
// namespace geos.operation.sharedpaths
158
}
// namespace geos.operation
159
}
// namespace geos
160
161
#endif
162
Generated on Sat Mar 14 2015 13:22:22 for GEOS by
1.8.2