PostGIS  3.7.0dev-r@@SVN_REVISION@@

◆ BOX3D_distance_internal()

double BOX3D_distance_internal ( BOX3D box1,
BOX3D box2 
)

Definition at line 919 of file lwgeom_box3d.c.

920 {
921  double sqrDist = 0;
922  double d;
923 
924  if (BOX3D_overlaps_internal(box1, box2))
925  return 0.0;
926 
927  /* X axis */
928  if (box1->xmax < box2->xmin)
929  {
930  d = box1->xmax - box2->xmin;
931  sqrDist += d * d;
932  }
933  else if (box1->xmin > box2->xmax)
934  {
935  d = box1->xmin - box2->xmax;
936  sqrDist += d * d;
937  }
938  /* Y axis */
939  if (box1->ymax < box2->ymin)
940  {
941  d = box1->ymax - box2->ymin;
942  sqrDist += d * d;
943  }
944  else if (box1->ymin > box2->ymax)
945  {
946  d = box1->ymin - box2->ymax;
947  sqrDist += d * d;
948  }
949  /* Z axis */
950  if (box1->zmax < box2->zmin)
951  {
952  d = box1->zmax - box2->zmin;
953  sqrDist += d * d;
954  }
955  else if (box1->zmin > box2->zmax)
956  {
957  d = box1->zmin - box2->zmax;
958  sqrDist += d * d;
959  }
960 
961  return sqrt(sqrDist);
962 }
bool BOX3D_overlaps_internal(BOX3D *box1, BOX3D *box2)
Definition: lwgeom_box3d.c:677
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: