summaryrefslogtreecommitdiff
path: root/src/GM/GM.cpp
diff options
context:
space:
mode:
authorDebian GIS Project <pkg-grass-devel@lists.alioth.debian.org>2018-07-31 14:13:20 +0200
committerBas Couwenberg <sebastic@debian.org>2018-07-31 14:13:20 +0200
commit1a8efd6ac60bff38fd9fc5e3d36933420916e082 (patch)
tree95b081e289fd41207659af9d1f6c0053aedfa107 /src/GM/GM.cpp
parentefa9679a7f55dcce8b5000dc9a776a02eae3ad68 (diff)
fix_issue
Gbp-Pq: Name fix_issue.patch
Diffstat (limited to 'src/GM/GM.cpp')
-rw-r--r--src/GM/GM.cpp194
1 files changed, 97 insertions, 97 deletions
diff --git a/src/GM/GM.cpp b/src/GM/GM.cpp
index fabb976..f8a9036 100644
--- a/src/GM/GM.cpp
+++ b/src/GM/GM.cpp
@@ -20,8 +20,8 @@
#define GM_ACCY 1.0E-8
/* --- Makroer -- */
-#define max(a,b) (((a) > (b)) ? (a) : (b))
-#define min(a,b) (((a) < (b)) ? (a) : (b))
+#define fymax(a,b) (((a) > (b)) ? (a) : (b))
+#define fymin(a,b) (((a) < (b)) ? (a) : (b))
/*
@@ -214,10 +214,10 @@ SK_EntPnt_GM short GM_wtstPunkt(double PktA, double PktN, double wa1, double wn1
short sAntSkjaer;
// Sjekk 1: Ligger punktet utenfor omskrevet rektangel - så ligger det utenfor vinduet
- dPolyMaxA=max(wa1,wa2); dPolyMaxA=max(dPolyMaxA,wa3); dPolyMaxA=max(dPolyMaxA,wa4);
- dPolyMaxN=max(wn1,wn2); dPolyMaxN=max(dPolyMaxN,wn3); dPolyMaxN=max(dPolyMaxN,wn4);
- dPolyMinA=min(wa1,wa2); dPolyMinA=min(dPolyMinA,wa3); dPolyMinA=min(dPolyMinA,wa4);
- dPolyMinN=min(wn1,wn2); dPolyMinN=min(dPolyMinN,wn3); dPolyMinN=min(dPolyMinN,wn4);
+ dPolyMaxA=fymax(wa1,wa2); dPolyMaxA=fymax(dPolyMaxA,wa3); dPolyMaxA=fymax(dPolyMaxA,wa4);
+ dPolyMaxN=fymax(wn1,wn2); dPolyMaxN=fymax(dPolyMaxN,wn3); dPolyMaxN=fymax(dPolyMaxN,wn4);
+ dPolyMinA=fymin(wa1,wa2); dPolyMinA=fymin(dPolyMinA,wa3); dPolyMinA=fymin(dPolyMinA,wa4);
+ dPolyMinN=fymin(wn1,wn2); dPolyMinN=fymin(dPolyMinN,wn3); dPolyMinN=fymin(dPolyMinN,wn4);
if((PktA>dPolyMaxA) || (PktA<dPolyMinA) || (PktN>dPolyMaxN) || (PktN<dPolyMinN))
return 0;
@@ -276,16 +276,16 @@ SK_EntPnt_GM short GM_sver(double ka,double kn,double la,double ln,double na,dou
unsigned int kryss = 0;
double mini,maxi;
- mini = min(ka,la);
- maxi = max(ka,la);
+ mini = fymin(ka,la);
+ maxi = fymax(ka,la);
if (na >= mini && ma <= maxi){ /* (ma er lik na) */
if (fabs(la-ka) > 0.0001){
/* Beregn skjæringspunktet */
*sa = ma;
*sn = kn + ((*sa-ka)*(ln-kn))/(la-ka);
- mini = min(mn,nn) - ACCY;
- maxi = max(mn,nn) + ACCY;
+ mini = fymin(mn,nn) - ACCY;
+ maxi = fymax(mn,nn) + ACCY;
/* Sjekk om det er skjæring */
kryss = (unsigned int)(*sn >= mini && *sn <= maxi);
}
@@ -335,16 +335,16 @@ SK_EntPnt_GM short GM_shor(double ka,double kn,double la,double ln,double na,dou
unsigned int kryss = 0;
double mini,maxi;
- mini = min(kn,ln);
- maxi = max(kn,ln);
+ mini = fymin(kn,ln);
+ maxi = fymax(kn,ln);
if (mn >= mini && nn <= maxi){ /* (mn er lik nn) */
if (fabs(ln-kn) > 0.0001){
/* Beregn skjæringspunktet */
*sn = mn;
*sa = ka + ((*sn-kn)*(la-ka))/(ln-kn);
- mini = min(ma,na) - ACCY;
- maxi = max(ma,na) + ACCY;
+ mini = fymin(ma,na) - ACCY;
+ maxi = fymax(ma,na) + ACCY;
/* Sjekk om det er skjæring */
kryss = (unsigned int)(*sa >= mini && *sa <= maxi);
}
@@ -401,10 +401,10 @@ SK_EntPnt_GM short GM_sLinLin(double ka,double kn,double la,double ln,double ma,
/* Sorterer først ut åpenbare tilfeller der det ikke er skjæring */
- if (max(ka,la) < min(ma,na)) return 0;
- if (min(ka,la) > max(ma,na)) return 0;
- if (max(kn,ln) < min(mn,nn)) return 0;
- if (min(kn,ln) > max(mn,nn)) return 0;
+ if (fymax(ka,la) < fymin(ma,na)) return 0;
+ if (fymin(ka,la) > fymax(ma,na)) return 0;
+ if (fymax(kn,ln) < fymin(mn,nn)) return 0;
+ if (fymin(kn,ln) > fymax(mn,nn)) return 0;
det = anm * nlk - nnm * alk;
@@ -429,10 +429,10 @@ SK_EntPnt_GM short GM_sLinLin(double ka,double kn,double la,double ln,double ma,
* Sjekker etterpå om skjæringspunktet ligger på linjebitene.
*/
if (GM_sVektVekt(ka,kn,la,ln,ma,mn,na,nn,sa,sn)){
- if (*sn <= max(kn,ln)+ACCY && *sn >= min(kn,ln)-ACCY &&
- *sa <= max(ka,la)+ACCY && *sa >= min(ka,la)-ACCY &&
- *sn <= max(mn,nn)+ACCY && *sn >= min(mn,nn)-ACCY &&
- *sa <= max(ma,na)+ACCY && *sa >= min(ma,na)-ACCY) {
+ if (*sn <= fymax(kn,ln)+ACCY && *sn >= fymin(kn,ln)-ACCY &&
+ *sa <= fymax(ka,la)+ACCY && *sa >= fymin(ka,la)-ACCY &&
+ *sn <= fymax(mn,nn)+ACCY && *sn >= fymin(mn,nn)-ACCY &&
+ *sa <= fymax(ma,na)+ACCY && *sa >= fymin(ma,na)-ACCY) {
return 1; /* Skjæring funnet ==> returnerer */
}
@@ -486,17 +486,17 @@ CD kryss = GM_Overlapp(ka,kn,la,ln,ma,mn,na,nn);
SK_EntPnt_GM short GM_Overlapp(double ka,double kn,double la,double ln,double ma,double mn,double na,double nn)
{
// Sorterer først ut åpenbare tilfeller der det ikke er skjæring
- if (max(ka,la) < min(ma,na)) return 0;
- if (min(ka,la) > max(ma,na)) return 0;
- if (max(kn,ln) < min(mn,nn)) return 0;
- if (min(kn,ln) > max(mn,nn)) return 0;
+ if (fymax(ka,la) < fymin(ma,na)) return 0;
+ if (fymin(ka,la) > fymax(ma,na)) return 0;
+ if (fymax(kn,ln) < fymin(mn,nn)) return 0;
+ if (fymin(kn,ln) > fymax(mn,nn)) return 0;
// Linjene er like
- if (fabs((min(ka,la) - min(ma,na))) < GM_ACCY &&
- fabs((max(ka,la) - max(ma,na))) < GM_ACCY &&
- fabs((min(kn,ln) - min(mn,nn))) < GM_ACCY &&
- fabs((max(kn,ln) - max(mn,nn))) < GM_ACCY)
+ if (fabs((fymin(ka,la) - fymin(ma,na))) < GM_ACCY &&
+ fabs((fymax(ka,la) - fymax(ma,na))) < GM_ACCY &&
+ fabs((fymin(kn,ln) - fymin(mn,nn))) < GM_ACCY &&
+ fabs((fymax(kn,ln) - fymax(mn,nn))) < GM_ACCY)
{
return 3;
}
@@ -594,10 +594,10 @@ SK_EntPnt_GM short GM_sVektVekt(double ka,double kn,double la,double ln,double m
/* Sorterer først ut åpenbare tilfeller der det ikke er skjæring */
- //if (max(ka,la) < min(ma,na)) return 0;
- //if (min(ka,la) > max(ma,na)) return 0;
- //if (max(kn,ln) < min(mn,nn)) return 0;
- //if (min(kn,ln) > max(mn,nn)) return 0;
+ //if (fymax(ka,la) < fymin(ma,na)) return 0;
+ //if (fymin(ka,la) > fymax(ma,na)) return 0;
+ //if (fymax(kn,ln) < fymin(mn,nn)) return 0;
+ //if (fymin(kn,ln) > fymax(mn,nn)) return 0;
det = anm * nlk - nnm * alk;
@@ -679,10 +679,10 @@ SK_EntPnt_GM short GM_sLinBue(double sa,double sn,double radius,double fi,double
/* Sjekk om punktene ligger på linjen */
if (kryss > 0){
- minn = min(kn,ln) - ACCY;
- mina = min(ka,la) - ACCY;
- maxn = max(kn,ln) + ACCY;
- maxa = max(ka,la) + ACCY;
+ minn = fymin(kn,ln) - ACCY;
+ mina = fymin(ka,la) - ACCY;
+ maxn = fymax(kn,ln) + ACCY;
+ maxa = fymax(ka,la) + ACCY;
if (kryss == 2){
if (! (*a2 <= maxa && *a2 >= mina &&
@@ -1025,8 +1025,8 @@ SK_EntPnt_GM short GM_fotp(double a1,double n1,double a2,double n2,double ap,dou
}
/* Sjekk at fotpunktet er på linjen */
- //if ( (*nf <= max(n1,n2)+ACCY) && (*nf >= min(n1,n2)-ACCY) ) {
- if ( (*nf <= max(n1,n2)) && (*nf >= min(n1,n2)) ) {
+ //if ( (*nf <= fymax(n1,n2)+ACCY) && (*nf >= fymin(n1,n2)-ACCY) ) {
+ if ( (*nf <= fymax(n1,n2)) && (*nf >= fymin(n1,n2)) ) {
beregnet = 2;
} else {
beregnet = 1;
@@ -1038,8 +1038,8 @@ SK_EntPnt_GM short GM_fotp(double a1,double n1,double a2,double n2,double ap,dou
*nf = n1;
/* Sjekk at fotpunktet er på linjen */
- //if ( (*af <= max(a1,a2)+ACCY) && (*af >= min(a1,a2)-ACCY) ) {
- if ( (*af <= max(a1,a2)) && (*af >= min(a1,a2)) ) {
+ //if ( (*af <= fymax(a1,a2)+ACCY) && (*af >= fymin(a1,a2)-ACCY) ) {
+ if ( (*af <= fymax(a1,a2)) && (*af >= fymin(a1,a2)) ) {
beregnet = 2;
} else {
beregnet = 1;
@@ -1073,10 +1073,10 @@ SK_EntPnt_GM short GM_fotp(double a1,double n1,double a2,double n2,double ap,dou
*/
/* Sjekk at fotpunktet er på linjen */
- //if (*nf <= (max(n1,n2)+ACCY) && *nf >= (min(n1,n2)-ACCY) &&
- // *af <= (max(a1,a2)+ACCY) && *af >= (min(a1,a2)-ACCY)){
- if (*nf <= (max(n1,n2)) && *nf >= (min(n1,n2)) &&
- *af <= (max(a1,a2)) && *af >= (min(a1,a2))){
+ //if (*nf <= (fymax(n1,n2)+ACCY) && *nf >= (fymin(n1,n2)-ACCY) &&
+ // *af <= (fymax(a1,a2)+ACCY) && *af >= (fymin(a1,a2)-ACCY)){
+ if (*nf <= (fymax(n1,n2)) && *nf >= (fymin(n1,n2)) &&
+ *af <= (fymax(a1,a2)) && *af >= (fymin(a1,a2))){
beregnet = 2; /* På linjen */
} else {
beregnet = 1; /* Utenfor linjen */
@@ -1186,7 +1186,7 @@ SK_EntPnt_GM short GM_fotp_ny(double a1, double n1, double a2, double n2, double
}
/* Sjekk at fotpunktet er på linjen */
- if ( (*nf <= max(n1,n2)+ACCY) && (*nf >= min(n1,n2)-ACCY) ) {
+ if ( (*nf <= fymax(n1,n2)+ACCY) && (*nf >= fymin(n1,n2)-ACCY) ) {
beregnet = 2;
} else {
beregnet = 1;
@@ -1198,7 +1198,7 @@ SK_EntPnt_GM short GM_fotp_ny(double a1, double n1, double a2, double n2, double
*nf = n1;
/* Sjekk at fotpunktet er på linjen */
- if ( (*af <= max(a1,a2)+ACCY) && (*af >= min(a1,a2)-ACCY) ) {
+ if ( (*af <= fymax(a1,a2)+ACCY) && (*af >= fymin(a1,a2)-ACCY) ) {
beregnet = 2;
} else {
beregnet = 1;
@@ -1212,12 +1212,12 @@ SK_EntPnt_GM short GM_fotp_ny(double a1, double n1, double a2, double n2, double
// Forslag til ny metode for fotpunktberegning. Endrer ikke de opprinnelige punktene,
// og det blir da mulig å gi korrekt tilbakemelding om punktet ligger inne på den gitte linjen.
retning = GM_RetnGon(a1,n1,a2,n2);
- GM_PolRettv(&ap1, &np1, retning+100.0, max(da,dn));
+ GM_PolRettv(&ap1, &np1, retning+100.0, fymax(da,dn));
GM_sVektVekt(a1,n1,a2,n2,ap,np,ap1,np1,af,nf);
/* Sjekk at fotpunktet er på linjen */
- if (*nf <= (max(n1,n2)+ACCY) && *nf >= (min(n1,n2)-ACCY) &&
- *af <= (max(a1,a2)+ACCY) && *af >= (min(a1,a2)-ACCY)){
+ if (*nf <= (fymax(n1,n2)+ACCY) && *nf >= (fymin(n1,n2)-ACCY) &&
+ *af <= (fymax(a1,a2)+ACCY) && *af >= (fymin(a1,a2)-ACCY)){
beregnet = 2; /* På linjen */
} else {
beregnet = 1; /* Utenfor linjen */
@@ -1658,8 +1658,8 @@ SK_EntPnt_GM short GM_bepa(double a1, double n1, double a2, double n2,
if(atmp > ACCY || ntmp > ACCY) {
- dmx = max(atmp,ntmp);
- dmn = min(atmp,ntmp);
+ dmx = fymax(atmp,ntmp);
+ dmn = fymin(atmp,ntmp);
div = dmn / dmx;
rinv = 1.0 / (dmx * sqrt(1.0+div*div));
@@ -2035,10 +2035,10 @@ SK_EntPnt_GM void GM_buebox(double as,double ns,double radius,double fi,double d
a2 = as + r*cos(fi+dfi);
n2 = ns + r*sin(fi+dfi);
- *nva = min(a1,a2);
- *nvn = min(n1,n2);
- *oha = max(a1,a2);
- *ohn = max(n1,n2);
+ *nva = fymin(a1,a2);
+ *nvn = fymin(n1,n2);
+ *oha = fymax(a1,a2);
+ *ohn = fymax(n1,n2);
// For hver akse (fra sentrumspunktet) som krysses utvides omskrevet boks
radius = fabs(radius);
@@ -2103,27 +2103,27 @@ SK_EntPnt_GM void GM_buebox(double as,double ns,double radius,double fi,double d
if (fi >= 0.0 && fi < PI/2.0){
// Slutt i 1. kvadrant
if (r2 >= 0.0 && r2 < PI/2.0){
- *nva = min(a1,a2);
- *nvn = min(n1,n2);
- *oha = max(a1,a2);
- *ohn = max(n1,n2);
+ *nva = fymin(a1,a2);
+ *nvn = fymin(n1,n2);
+ *oha = fymax(a1,a2);
+ *ohn = fymax(n1,n2);
// Slutt i 2. kvadrant
} else if (r2 >= PI/2.0L && r2 < PI){
- *nva = min(a1,a2);
- *nvn = min(n1,n2);
- *oha = max(a1,a2);
+ *nva = fymin(a1,a2);
+ *nvn = fymin(n1,n2);
+ *oha = fymax(a1,a2);
*ohn = ns + r;
// Slutt i 3. kvadrant
} else if (r2 >=PI && r2 < PI*3.0L/2.0L){
*nva = as - r;
- *nvn = min(n1,n2);
- *oha = max(a1,a2);
+ *nvn = fymin(n1,n2);
+ *oha = fymax(a1,a2);
*ohn = ns + r;
// Slutt i 4. kvadrant
} else{
*nva = as - r;
*nvn = ns - r;
- *oha = max(a1,a2);
+ *oha = fymax(a1,a2);
*ohn = ns + r;
}
@@ -2134,82 +2134,82 @@ SK_EntPnt_GM void GM_buebox(double as,double ns,double radius,double fi,double d
*nva = as - r;
*nvn = ns - r;
*oha = as + r;
- *ohn = max(n1,n2);
+ *ohn = fymax(n1,n2);
// Slutt i 2. kvadrant
} else if (r2 >= PI/2.0L && r2 < PI){
- *nva = min(a1,a2);
- *nvn = min(n1,n2);
- *oha = max(a1,a2);
- *ohn = max(n1,n2);
+ *nva = fymin(a1,a2);
+ *nvn = fymin(n1,n2);
+ *oha = fymax(a1,a2);
+ *ohn = fymax(n1,n2);
// Slutt i 3. kvadrant
} else if (r2 >=PI && r2 < PI*3.0L/2.0L){
*nva = as - r;
- *nvn = min(n1,n2);
- *oha = max(a1,a2);
- *ohn = max(n1,n2);
+ *nvn = fymin(n1,n2);
+ *oha = fymax(a1,a2);
+ *ohn = fymax(n1,n2);
// Slutt i 4. kvadrant
} else{
*nva = as - r;
*nvn = ns - r;
- *oha = max(a1,a2);
- *ohn = max(n1,n2);
+ *oha = fymax(a1,a2);
+ *ohn = fymax(n1,n2);
}
// Start i 3. kvadrant
} else if (fi >=PI && fi < PI*3.0L/2.0L){
// Slutt i 1. kvadrant
if (r2 >= 0.0 && r2 < PI/2.0){
- *nva = min(a1,a2);
+ *nva = fymin(a1,a2);
*nvn = ns - r;
*oha = as + r;
- *ohn = max(n1,n2);
+ *ohn = fymax(n1,n2);
// Slutt i 2. kvadrant
} else if (r2 >= PI/2.0L && r2 < PI){
- *nva = min(a1,a2);
+ *nva = fymin(a1,a2);
*nvn = ns - r;
*oha = as + r;
*ohn = ns + r;
// Slutt i 3. kvadrant
} else if (r2 >=PI && r2 < PI*3.0L/2.0L){
- *nva = min(a1,a2);
- *nvn = min(n1,n2);
- *oha = max(a1,a2);
- *ohn = max(n1,n2);
+ *nva = fymin(a1,a2);
+ *nvn = fymin(n1,n2);
+ *oha = fymax(a1,a2);
+ *ohn = fymax(n1,n2);
} else{
// Slutt i 4. kvadrant
- *nva = min(a1,a2);
+ *nva = fymin(a1,a2);
*nvn = ns - r;
- *oha = max(a1,a2);
- *ohn = max(n1,n2);
+ *oha = fymax(a1,a2);
+ *ohn = fymax(n1,n2);
}
// Start i 4. kvadrant
} else {
// Slutt i 1. kvadrant
if (r2 >= 0.0 && r2 < PI/2.0) {
- *nva = min(a1,a2);
- *nvn = min(n1,n2);
+ *nva = fymin(a1,a2);
+ *nvn = fymin(n1,n2);
*oha = as + r;
- *ohn = max(n1,n2);
+ *ohn = fymax(n1,n2);
// Slutt i 2. kvadrant
} else if (r2 >= PI/2.0L && r2 < PI) {
- *nva = min(a1,a2);
- *nvn = min(n1,n2);
+ *nva = fymin(a1,a2);
+ *nvn = fymin(n1,n2);
*oha = as + r;
*ohn = ns + r;
// Slutt i 3. kvadrant
} else if (r2 >=PI && r2 < PI*3.0L/2.0L) {
*nva = as - r;
- *nvn = min(n1,n2);
+ *nvn = fymin(n1,n2);
*oha = as + r;
*ohn = ns + r;
// Slutt i 4. kvadrant
} else {
- *nva = min(a1,a2);
- *nvn = min(n1,n2);
- *oha = max(a1,a2);
- *ohn = max(n1,n2);
+ *nva = fymin(a1,a2);
+ *nvn = fymin(n1,n2);
+ *oha = fymax(a1,a2);
+ *ohn = fymax(n1,n2);
}
}
}