GEOS
3.4.2
Main Page
Related Pages
Namespaces
Classes
Files
File List
include
geos
algorithm
Angle.h
1
/**********************************************************************
2
*
3
* GEOS - Geometry Engine Open Source
4
* http://geos.osgeo.org
5
*
6
* Copyright (C) 2009-2011 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: algorithm/Angle.java r378 (JTS-1.12)
16
*
17
**********************************************************************/
18
19
#ifndef GEOS_ALGORITHM_ANGLE_H
20
#define GEOS_ALGORITHM_ANGLE_H
21
22
#include <geos/export.h>
23
#include <geos/algorithm/CGAlgorithms.h>
// for constants
24
25
// Forward declarations
26
namespace
geos {
27
namespace
geom {
28
class
Coordinate;
29
}
30
}
31
32
namespace
geos {
33
namespace
algorithm {
// geos::algorithm
34
36
//
39
class
GEOS_DLL
Angle
40
{
41
public
:
42
43
static
const
double
PI_TIMES_2;
// 2.0 * PI;
44
static
const
double
PI_OVER_2;
// PI / 2.0;
45
static
const
double
PI_OVER_4;
// PI / 4.0;
46
48
static
const
int
COUNTERCLOCKWISE = CGAlgorithms::COUNTERCLOCKWISE;
49
51
static
const
int
CLOCKWISE = CGAlgorithms::CLOCKWISE;
52
54
static
const
int
NONE = CGAlgorithms::COLLINEAR;
55
57
//
61
static
double
toDegrees(
double
radians);
62
64
//
68
static
double
toRadians(
double
angleDegrees);
69
73
//
79
static
double
angle(
const
geom::Coordinate
& p0,
80
const
geom::Coordinate
& p1);
81
85
//
91
static
double
angle(
const
geom::Coordinate
& p);
92
94
//
104
static
bool
isAcute(
const
geom::Coordinate
& p0,
105
const
geom::Coordinate
& p1,
106
const
geom::Coordinate
& p2);
107
109
//
119
static
bool
isObtuse(
const
geom::Coordinate
& p0,
120
const
geom::Coordinate
& p1,
121
const
geom::Coordinate
& p2);
122
124
//
132
static
double
angleBetween(
const
geom::Coordinate
& tip1,
133
const
geom::Coordinate
& tail,
134
const
geom::Coordinate
& tip2);
135
137
//
148
static
double
angleBetweenOriented(
const
geom::Coordinate
& tip1,
149
const
geom::Coordinate
& tail,
150
const
geom::Coordinate
& tip2);
151
153
//
165
static
double
interiorAngle(
const
geom::Coordinate
& p0,
166
const
geom::Coordinate
& p1,
167
const
geom::Coordinate
& p2);
168
178
static
int
getTurn(
double
ang1,
double
ang2);
179
187
static
double
normalize(
double
angle);
188
207
static
double
normalizePositive(
double
angle);
208
209
211
//
220
static
double
diff(
double
ang1,
double
ang2);
221
};
222
223
224
}
// namespace geos::algorithm
225
}
// namespace geos
226
227
228
#endif // GEOS_ALGORITHM_ANGLE_H
Generated on Fri Mar 6 2015 15:59:25 for GEOS by
1.8.2