GEOS
3.3.3
Main Page
Related Pages
Namespaces
Classes
Files
File List
include
geos
operation
sharedpaths
SharedPathsOp.h
1
/**********************************************************************
2
* $Id$
3
*
4
* GEOS - Geometry Engine Open Source
5
* http://geos.refractions.net
6
*
7
* Copyright (C) 2010 Sandro Santilli <strk@keybit.net>
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: original work
17
*
18
* Developed by Sandro Santilli (strk@keybit.net)
19
* for Faunalia (http://www.faunalia.it)
20
* with funding from Regione Toscana - Settore SISTEMA INFORMATIVO
21
* TERRITORIALE ED AMBIENTALE - for the project: "Sviluppo strumenti
22
* software per il trattamento di dati geografici basati su QuantumGIS
23
* e Postgis (CIG 0494241492)"
24
*
25
**********************************************************************/
26
27
#ifndef GEOS_OPERATION_SHAREDPATHSOP_H
28
#define GEOS_OPERATION_SHAREDPATHSOP_H
29
30
#include <geos/export.h>
// for GEOS_DLL
31
32
#include <vector>
33
34
// Forward declarations
35
namespace
geos {
36
namespace
geom {
37
class
LineString;
38
class
Geometry;
39
class
GeometryFactory;
40
}
41
}
42
43
44
namespace
geos {
45
namespace
operation {
// geos.operation
46
namespace
sharedpaths {
// geos.operation.sharedpaths
47
65
class
GEOS_DLL
SharedPathsOp
66
{
67
public
:
68
70
typedef
std::vector<geom::LineString*>
PathList
;
71
73
//
90
static
void
sharedPathsOp(
const
geom::Geometry
& g1,
91
const
geom::Geometry
& g2,
92
PathList
& sameDirection,
93
PathList
& oppositeDirection);
94
96
//
103
SharedPathsOp
(
const
geom::Geometry
& g1,
const
geom::Geometry
& g2);
104
106
//
117
void
getSharedPaths(
PathList
& sameDirection,
PathList
& oppositeDirection);
118
120
static
void
clearEdges(
PathList
& from);
121
122
private
:
123
125
//
130
void
findLinearIntersections(
PathList
& to);
131
133
//
136
bool
isForward(
const
geom::LineString
& edge,
137
const
geom::Geometry
& geom);
138
141
bool
isSameDirection(
const
geom::LineString
& edge) {
142
return
(isForward(edge, _g1) == isForward(edge, _g2));
143
}
144
146
void
checkLinealInput(
const
geom::Geometry
& g);
147
148
const
geom::Geometry
& _g1;
149
const
geom::Geometry
& _g2;
150
const
geom::GeometryFactory
& _gf;
151
152
// Declare type as noncopyable
153
SharedPathsOp
(
const
SharedPathsOp
& other);
154
SharedPathsOp
& operator=(
const
SharedPathsOp
& rhs);
155
156
};
157
158
}
// namespace geos.operation.sharedpaths
159
}
// namespace geos.operation
160
}
// namespace geos
161
162
#endif
163
Generated on Thu Mar 13 2014 09:55:44 for GEOS by
1.8.1.2