GRASS GIS 8 Programmer's Manual  8.4.0dev(2024)-535c39c9fc
e_intersect.c File Reference

Vector library - intersection (lower level functions) More...

#include <stdlib.h>
#include <math.h>
#include <grass/gis.h>
#include "e_intersect.h"
Include dependency graph for e_intersect.c:

Go to the source code of this file.

Macros

#define SWAP(a, b)
 
#define D   ((ax2 - ax1) * (by1 - by2) - (ay2 - ay1) * (bx1 - bx2))
 
#define DA   ((bx1 - ax1) * (by1 - by2) - (by1 - ay1) * (bx1 - bx2))
 
#define DB   ((ax2 - ax1) * (by1 - ay1) - (ay2 - ay1) * (bx1 - ax1))
 
#define N   52 /* double's mantisa size in bits */
 

Functions

int segment_intersection_2d_tol (double ax1, double ay1, double ax2, double ay2, double bx1, double by1, double bx2, double by2, double *x1, double *y1, double *x2, double *y2, double tol)
 
int segment_intersection_2d (double ax1, double ay1, double ax2, double ay2, double bx1, double by1, double bx2, double by2, double *x1, double *y1, double *x2, double *y2)
 
int almost_equal (double a, double b, int bits)
 

Detailed Description

Vector library - intersection (lower level functions)

Higher level functions for reading/writing/manipulating vectors.

(C) 2008-2009 by the GRASS Development Team

This program is free software under the GNU General Public License (>=v2). Read the file COPYING that comes with GRASS for details.

Author
Rewritten by Rosen Matev (Google Summer of Code 2008)

Definition in file e_intersect.c.

Macro Definition Documentation

◆ D

#define D   ((ax2 - ax1) * (by1 - by2) - (ay2 - ay1) * (bx1 - bx2))

Definition at line 29 of file e_intersect.c.

◆ DA

#define DA   ((bx1 - ax1) * (by1 - by2) - (by1 - ay1) * (bx1 - bx2))

Definition at line 30 of file e_intersect.c.

◆ DB

#define DB   ((ax2 - ax1) * (by1 - ay1) - (ay2 - ay1) * (bx1 - ax1))

Definition at line 31 of file e_intersect.c.

◆ N

#define N   52 /* double's mantisa size in bits */

Definition at line 926 of file e_intersect.c.

◆ SWAP

#define SWAP (   a,
  b 
)
Value:
{ \
double t = a; \
a = b; \
b = t; \
}
double b
Definition: r_raster.c:39
double t
Definition: r_raster.c:39

Definition at line 23 of file e_intersect.c.

Function Documentation

◆ almost_equal()

int almost_equal ( double  a,
double  b,
int  bits 
)

Definition at line 928 of file e_intersect.c.

◆ segment_intersection_2d()

int segment_intersection_2d ( double  ax1,
double  ay1,
double  ax2,
double  ay2,
double  bx1,
double  by1,
double  bx2,
double  by2,
double *  x1,
double *  y1,
double *  x2,
double *  y2 
)

Definition at line 692 of file e_intersect.c.

◆ segment_intersection_2d_tol()

int segment_intersection_2d_tol ( double  ax1,
double  ay1,
double  ax2,
double  ay2,
double  bx1,
double  by1,
double  bx2,
double  by2,
double *  x1,
double *  y1,
double *  x2,
double *  y2,
double  tol 
)

Definition at line 361 of file e_intersect.c.