Files
cgal/Spatial_searching/doc/Spatial_searching/CGAL/Kd_tree_rectangle.h
T
Sébastien Loriot 2dfe8a3d73 workaround for a doxygen bug: remove space after /!* to avoid a verbatim env
this happens if you have an empty line or the text directly after /!*
to find them in the generated documentation, grep for "pre class=\"fragment\""
(a few of them are legitimate however)
2013-07-25 14:58:53 +02:00

99 lines
2.0 KiB
C++

namespace CGAL {
/*!
\ingroup AdvancedClasses
The class `Kd_tree_rectangle` implements `d`-dimensional iso-rectangles and related operations,
e.g., methods to compute bounding boxes of point sets.
*/
template< typename FT >
class Kd_tree_rectangle {
public:
/// \name Types
/// @{
/*!
Number type.
*/
typedef FT FT;
/// @}
/// \name Creation
/// @{
/*!
Constructs a `d`-dimensional rectangle `r` with lower bound and upper bound set to zero
in each dimension.
*/
Kd_tree_rectangle(int d);
/*!
Constructs the bounding box of the points in the range `[begin,end)`, where the value
type of `PointIter` can be used by operators of functors `Construct_cartesian_const_iterator_d`
to define iterators with value type `FT`.
*/
template <class Construct_cartesian_const_iterator_d,class PointIter>
Kd_tree_rectangle(int d, PointIter begin, PointIter end,const Construct_cartesian_const_iterator_d& construct_it);
/// @}
/// \name Operations
/// @{
/*!
Returns the lower bound of the rectangle in dimension `i`.
*/
FT min_coord(int i) const;
/*!
Returns the upper bound of the rectangle in dimension `i`.
*/
FT max_coord(int i) const;
/*!
Sets upper bound in dimension `i` to `x`.
*/
void set_upper_bound(int i, const FT& x);
/*!
Sets lower bound in dimension `i` to `x`.
*/
void set_lower_bound(int i, const FT& x);
/*!
Returns the maximal span of the rectangle.
*/
FT max_span() const;
/*!
Returns the smallest coordinate for which the rectangle has its maximal span.
*/
FT max_span_coord() const;
/*!
Returns the dimension of the rectangle.
*/
int dimension() const;
/*!
Splits rectangle in dimension `d` at coordinate-value `value`
by modifying itself to lower half and by modifying `r` to upper half.
*/
void split(Kd_tree_rectangle<FT>& r, int d, FT value);
/// @}
}; /* end Kd_tree_rectangle */
/*!
Inserts rectangle `r` in the output stream `s` and returns `s`.
\relates Kd_tree_rectangle
*/
template<class FT>
std::ostream& operator<<(std::ostream& s, Kd_tree_rectangle<FT>& r);
} /* end namespace CGAL */