PostGIS
2.3.8devr@@SVN_REVISION@@

Go to the source code of this file.
Functions  
static int  get_3dvector_from_points (POINT3DZ *p1, POINT3DZ *p2, VECTOR3D *v) 
static int  get_3dcross_product (VECTOR3D *v1, VECTOR3D *v2, VECTOR3D *v) 
static LWGEOM *  create_v_line (const LWGEOM *lwgeom, double x, double y, int srid) 
This function is used to create a vertical line used for cases where one if the geometries lacks zvalues. More...  
LWGEOM *  lwgeom_closest_line_3d (const LWGEOM *lw1, const LWGEOM *lw2) 
LWGEOM *  lwgeom_furthest_line_3d (LWGEOM *lw1, LWGEOM *lw2) 
LWGEOM *  lwgeom_closest_point_3d (const LWGEOM *lw1, const LWGEOM *lw2) 
LWGEOM *  lw_dist3d_distanceline (const LWGEOM *lw1, const LWGEOM *lw2, int srid, int mode) 
Function initializing 3dshortestline and 3dlongestline calculations. More...  
LWGEOM *  lw_dist3d_distancepoint (const LWGEOM *lw1, const LWGEOM *lw2, int srid, int mode) 
Function initializing 3dclosestpoint calculations. More...  
double  lwgeom_maxdistance3d (const LWGEOM *lw1, const LWGEOM *lw2) 
Function initializing 3d max distance calculation. More...  
double  lwgeom_maxdistance3d_tolerance (const LWGEOM *lw1, const LWGEOM *lw2, double tolerance) 
Function handling 3d max distance calculations and dfullywithin calculations. More...  
double  lwgeom_mindistance3d (const LWGEOM *lw1, const LWGEOM *lw2) 
Function initializing 3d min distance calculation. More...  
double  lwgeom_mindistance3d_tolerance (const LWGEOM *lw1, const LWGEOM *lw2, double tolerance) 
Function handling 3d min distance calculations and dwithin calculations. More...  
int  lw_dist3d_recursive (const LWGEOM *lwg1, const LWGEOM *lwg2, DISTPTS3D *dl) 
This is a recursive function delivering every possible combination of subgeometries. More...  
int  lw_dist3d_distribute_bruteforce (const LWGEOM *lwg1, const LWGEOM *lwg2, DISTPTS3D *dl) 
This function distributes the bruteforce for 3D so far the only type, tasks depending on type. More...  
int  lw_dist3d_point_point (LWPOINT *point1, LWPOINT *point2, DISTPTS3D *dl) 
point to point calculation More...  
int  lw_dist3d_point_line (LWPOINT *point, LWLINE *line, DISTPTS3D *dl) 
point to line calculation More...  
int  lw_dist3d_point_poly (LWPOINT *point, LWPOLY *poly, DISTPTS3D *dl) 
Computes point to polygon distance For mindistance that means: 1)find the plane of the polygon 2)projecting the point to the plane of the polygon 3)finding if that projected point is inside the polygon, if so the distance is measured to that projected point 4) if not in polygon above, check the distance against the boundary of the polygon for max distance it is always point against boundary. More...  
int  lw_dist3d_line_line (LWLINE *line1, LWLINE *line2, DISTPTS3D *dl) 
line to line calculation More...  
int  lw_dist3d_line_poly (LWLINE *line, LWPOLY *poly, DISTPTS3D *dl) 
line to polygon calculation More...  
int  lw_dist3d_poly_poly (LWPOLY *poly1, LWPOLY *poly2, DISTPTS3D *dl) 
polygon to polygon calculation More...  
int  lw_dist3d_pt_ptarray (POINT3DZ *p, POINTARRAY *pa, DISTPTS3D *dl) 
search all the segments of pointarray to see which one is closest to p Returns distance between point and pointarray More...  
int  lw_dist3d_pt_seg (POINT3DZ *p, POINT3DZ *A, POINT3DZ *B, DISTPTS3D *dl) 
If searching for min distance, this one finds the closest point on segment AB from p. More...  
double  distance3d_pt_pt (const POINT3D *p1, const POINT3D *p2) 
int  lw_dist3d_pt_pt (POINT3DZ *thep1, POINT3DZ *thep2, DISTPTS3D *dl) 
Compares incomming points and stores the points closest to each other or most far away from each other depending on dl>mode (max or min) More...  
int  lw_dist3d_ptarray_ptarray (POINTARRAY *l1, POINTARRAY *l2, DISTPTS3D *dl) 
Finds all combinationes of segments between two pointarrays. More...  
int  lw_dist3d_seg_seg (POINT3DZ *s1p1, POINT3DZ *s1p2, POINT3DZ *s2p1, POINT3DZ *s2p2, DISTPTS3D *dl) 
Finds the two closest points on two linesegments. More...  
int  lw_dist3d_pt_poly (POINT3DZ *p, LWPOLY *poly, PLANE3D *plane, POINT3DZ *projp, DISTPTS3D *dl) 
Checking if the point projected on the plane of the polygon actually is inside that polygon. More...  
int  lw_dist3d_ptarray_poly (POINTARRAY *pa, LWPOLY *poly, PLANE3D *plane, DISTPTS3D *dl) 
Computes pointarray to polygon distance. More...  
int  define_plane (POINTARRAY *pa, PLANE3D *pl) 
Here we define the plane of a polygon (boundary pointarray of a polygon) the plane is stored as a pont in plane (plane.pop) and a normal vector (plane.pv) More...  
double  project_point_on_plane (POINT3DZ *p, PLANE3D *pl, POINT3DZ *p0) 
Finds a point on a plane from where the original point is perpendicular to the plane. More...  
int  pt_in_ring_3d (const POINT3DZ *p, const POINTARRAY *ring, PLANE3D *plane) 
pt_in_ring_3d(): crossing number test for a point in a polygon input: p = a point, pa = vertex points of a ring V[n+1] with V[n]=V[0] plane=the plane that the vertex points are lying on returns: 0 = outside, 1 = inside More...  