PostGIS  3.4.0dev-r@@SVN_REVISION@@

◆ BOX3D_distance_internal()

double BOX3D_distance_internal ( BOX3D box1,
BOX3D box2 
)

Definition at line 884 of file lwgeom_box3d.c.

885 {
886  double sqrDist = 0;
887  double d;
888 
889  if (BOX3D_overlaps_internal(box1, box2))
890  return 0.0;
891 
892  /* X axis */
893  if (box1->xmax < box2->xmin)
894  {
895  d = box1->xmax - box2->xmin;
896  sqrDist += d * d;
897  }
898  else if (box1->xmin > box2->xmax)
899  {
900  d = box1->xmin - box2->xmax;
901  sqrDist += d * d;
902  }
903  /* Y axis */
904  if (box1->ymax < box2->ymin)
905  {
906  d = box1->ymax - box2->ymin;
907  sqrDist += d * d;
908  }
909  else if (box1->ymin > box2->ymax)
910  {
911  d = box1->ymin - box2->ymax;
912  sqrDist += d * d;
913  }
914  /* Z axis */
915  if (box1->zmax < box2->zmin)
916  {
917  d = box1->zmax - box2->zmin;
918  sqrDist += d * d;
919  }
920  else if (box1->zmin > box2->zmax)
921  {
922  d = box1->zmin - box2->zmax;
923  sqrDist += d * d;
924  }
925 
926  return sqrt(sqrDist);
927 }
bool BOX3D_overlaps_internal(BOX3D *box1, BOX3D *box2)
Definition: lwgeom_box3d.c:642
double xmax
Definition: liblwgeom.h:340
double zmin
Definition: liblwgeom.h:339
double ymax
Definition: liblwgeom.h:340
double ymin
Definition: liblwgeom.h:339
double zmax
Definition: liblwgeom.h:340
double xmin
Definition: liblwgeom.h:339

References BOX3D_overlaps_internal(), BOX3D::xmax, BOX3D::xmin, BOX3D::ymax, BOX3D::ymin, BOX3D::zmax, and BOX3D::zmin.

Referenced by BOX3D_distance().

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