QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
core
pal
geomfunction.h
Go to the documentation of this file.
1
/*
2
* libpal - Automated Placement of Labels Library
3
*
4
* Copyright (C) 2008 Maxence Laurent, MIS-TIC, HEIG-VD
5
* University of Applied Sciences, Western Switzerland
6
* http://www.hes-so.ch
7
*
8
* Contact:
9
* maxence.laurent <at> heig-vd <dot> ch
10
* or
11
* eric.taillard <at> heig-vd <dot> ch
12
*
13
* This file is part of libpal.
14
*
15
* libpal is free software: you can redistribute it and/or modify
16
* it under the terms of the GNU General Public License as published by
17
* the Free Software Foundation, either version 3 of the License, or
18
* (at your option) any later version.
19
*
20
* libpal is distributed in the hope that it will be useful,
21
* but WITHOUT ANY WARRANTY; without even the implied warranty of
22
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23
* GNU General Public License for more details.
24
*
25
* You should have received a copy of the GNU General Public License
26
* along with libpal. If not, see <http://www.gnu.org/licenses/>.
27
*
28
*/
29
30
#ifndef PAL_GEOM_FUNCTION
31
#define PAL_GEOM_FUNCTION
32
33
34
#include <cmath>
35
36
#include "qgis_core.h"
37
#include "
qgsgeos.h
"
38
39
#define SIP_NO_FILE
40
41
namespace
pal
42
{
43
50
class
CORE_EXPORT
GeomFunction
51
{
52
public
:
53
/*
54
* o(x2,y2)
55
* /
56
* cp > 0 /
57
* / cp < 0
58
* /
59
* /
60
* o (x1, y1)
61
*/
62
static
inline
double
cross_product
(
double
x1,
double
y1,
double
x2,
double
y2,
double
x3,
double
y3 ) {
return
( x2 - x1 ) * ( y3 - y1 ) - ( x3 - x1 ) * ( y2 - y1 ); }
63
64
static
void
findLineCircleIntersection(
double
cx,
double
cy,
double
radius,
double
x1,
double
y1,
double
x2,
double
y2,
double
&xRes,
double
&yRes );
65
73
static
std::vector< int > convexHullId( std::vector<int> &
id
,
const
std::vector< double > &x,
const
std::vector< double > &y );
74
78
static
bool
isSegIntersects(
79
double
x1,
80
double
y1,
81
double
x2,
82
double
y2,
// 1st segment
83
double
x3,
84
double
y3,
85
double
x4,
86
double
y4
87
);
// 2nd segment
88
93
static
bool
computeLineIntersection(
94
double
x1,
95
double
y1,
96
double
x2,
97
double
y2,
// 1st line (segment)
98
double
x3,
99
double
y3,
100
double
x4,
101
double
y4,
// 2nd line segment
102
double
*x,
103
double
*y
104
);
105
107
static
bool
reorderPolygon( std::vector< double > &x, std::vector< double> &y );
108
119
static
bool
containsCandidate(
const
GEOSPreparedGeometry *geom,
double
x,
double
y,
double
width,
double
height,
double
alpha );
120
};
121
}
//namespace pal
122
123
#endif
pal::GeomFunction
Pal labeling engine geometry functions.
Definition
geomfunction.h:51
pal::GeomFunction::cross_product
static double cross_product(double x1, double y1, double x2, double y2, double x3, double y3)
Definition
geomfunction.h:62
pal
Definition
qgsdiagramrenderer.h:51
qgsgeos.h
Generated on
for QGIS API Documentation by
1.17.0