Skip to content
  • Mark OLESEN's avatar
    ENH: boundBox improvements (#2609) · 61deacd2
    Mark OLESEN authored
    - construct boundBox from Pair<point> of min/max limits,
      make sortable
    
    - additional bounding box intersections (linePointRef), add noexcept
    
    - templated access for boundBox hex-corners
      (used to avoid temporary point field).
      Eg, unrolled plane/bound-box intersection with early exit
    
    - bounding box grow() to expand box by absolute amounts
      Eg,
    
          bb.grow(ROOTVSMALL);   // Or: bb.grow(point::uniform(ROOTVSMALL));
      vs
          bb.min() -= point::uniform(ROOTVSMALL);
          bb.max() += point::uniform(ROOTVSMALL);
    
    - treeBoundBox bounding box extend with two or three parameters.
      The three parameter version includes grow(...) for reduced writing.
      Eg,
    
          bb = bb.extend(rndGen, 1e-4, ROOTVSMALL);
    
      vs
          bb = bb.extend(rndGen, 1e-4);
          bb.min() -= point::uniform(ROOTVSMALL);
          bb.max() += point::uniform(ROOTVSMALL);
    
      This also permits use as const variables or parameter passing.
      Eg,
    
          const treeBoundBox bb
          (
              treeBoundBox(some_points).extend(rndGen, 1e-4, ROOTVSMALL)
          );
    61deacd2