namespace CGAL { /*! \ingroup kernel_classes3 An object `b` of the class `Bbox_3` is a bounding box in the three-dimensional Euclidean space \f$ \E^3\f$. \sa `CGAL::Bbox_2` */ class Bbox_3 { public: /// \name Creation /// @{ /*! introduces a bounding box `b` with lexicographically smallest corner point at `(xmin, ymin, zmin)` lexicographically largest corner point at `(xmax, ymax, zmax)`. */ Bbox_3(double x_min, double y_min, double z_min, double x_max, double y_max, double z_max); /// @} /// \name Operations /// @{ /*! Test for equality. */ bool operator==(const Bbox_3 &c) const; /*! Test for inequality. */ bool operator!=(const Bbox_3 &q) const; /*! Returns 3. */ int dimension() const; /*! */ double xmin() const; /*! */ double ymin() const; /*! */ double zmin() const; /*! */ double xmax() const; /*! */ double ymax() const; /*! */ double zmax() const; /*! Returns `xmin()` if `i==0` or `ymin()` if `i==1` or `zmin()` if `i==2`. \pre i>=0 and i<=2 */ double min(int i) const; /*! Returns `xmax()` if `i==0` or `ymax()` if `i==1` or `zmax()` if `i==2`. \pre i>=0 and i<=2 */ double max(int i) const; /*! returns a bounding box of `b` and `c`. */ Bbox_3 operator+(const Bbox_3 &c) const; /*! updates `b` to be the bounding box of `b` and `c` and returns itself. */ Bbox_3& operator+=(const Bbox_3 &c); /// @} }; /* end Bbox_3 */ /// \ingroup do_overlap_grp /// @{ /*! returns `true` iff `bb1` and `bb2` overlap, i.e., iff their intersection is non-empty. \relates Bbox_3 */ bool do_overlap(const Bbox_3 &bb1, const Bbox_3 &bb2); /// @} /*! returns the bounding box of the objects in the range `[first,past_end[`. Each object in the range must have a member function `BBox_3 bbox()` returning its bounding box. \relates Bbox_3 */ template Bbox_3 bbox_3(InputIterator begin, InputIterator past_end); /*! returns the bounding box of the objects in the range `[first,past_end[`. `Traits` must provide a functor `Traits::Construct_bbox_3` having an operator returning the bounding box of each object in the range. `Traits` must also have a member function `Traits::Construct_bbox_3 construct_bbox_3_object() const`. \relates Bbox_3 */ template Bbox_3 bbox_3(InputIterator begin, InputIterator past_end, const Traits& traits); } /* end namespace CGAL */