PostGIS  3.4.0dev-r@@SVN_REVISION@@

◆ lw_dist3d_line_tri()

int lw_dist3d_line_tri ( LWLINE line,
LWTRIANGLE tri,
DISTPTS3D dl 
)

line to triangle calculation

Definition at line 817 of file measures3d.c.

818 {
819  PLANE3D plane;
820 
821  if (dl->mode == DIST_MAX)
822  return lw_dist3d_ptarray_ptarray(line->points, tri->points, dl);
823 
824  /* if triangle does not define a plane: Return distance line to line */
825  if (!define_plane(tri->points, &plane))
826  return lw_dist3d_ptarray_ptarray(line->points, tri->points, dl);
827 
828  return lw_dist3d_ptarray_tri(line->points, tri, &plane, dl);
829 }
int define_plane(POINTARRAY *pa, PLANE3D *pl)
Definition: measures3d.c:1448
int lw_dist3d_ptarray_tri(POINTARRAY *pa, LWTRIANGLE *tri, PLANE3D *plane, DISTPTS3D *dl)
Computes pointarray to triangle distance.
Definition: measures3d.c:1370
int lw_dist3d_ptarray_ptarray(POINTARRAY *l1, POINTARRAY *l2, DISTPTS3D *dl)
Finds all combinations of segments between two pointarrays.
Definition: measures3d.c:1085
#define DIST_MAX
Definition: measures.h:43
int mode
Definition: measures3d.h:43
POINTARRAY * points
Definition: liblwgeom.h:483
POINTARRAY * points
Definition: liblwgeom.h:495

References define_plane(), DIST_MAX, lw_dist3d_ptarray_ptarray(), lw_dist3d_ptarray_tri(), DISTPTS3D::mode, LWLINE::points, and LWTRIANGLE::points.

Referenced by lw_dist3d_distribute_bruteforce().

Here is the call graph for this function:
Here is the caller graph for this function: