16 #ifndef dealii_base_bounding_box_h 17 #define dealii_base_bounding_box_h 27 #include <boost/geometry/algorithms/envelope.hpp> 28 #include <boost/geometry/geometries/multi_point.hpp> 127 template <
int spacedim,
typename Number =
double>
152 template <
class Container>
159 get_boundary_points();
165 get_boundary_points()
const;
201 extend(
const Number &amount);
219 side_length(
const unsigned int direction)
const;
231 upper_bound(
const unsigned int direction)
const;
237 bounds(
const unsigned int direction)
const;
244 vertex(
const unsigned int index)
const;
251 child(
const unsigned int index)
const;
261 cross_section(
const unsigned int direction)
const;
266 template <
class Archive>
268 serialize(Archive &ar,
const unsigned int version);
279 template <
typename Number>
296 template <
class Container>
306 template <
int dim,
typename Number =
double>
348 const unsigned int coordiante_in_dim)
352 return (locked_coordinate + coordiante_in_dim + 1) % (dim + 1);
362 template <
int spacedim,
typename Number>
368 for (
unsigned int i = 0; i < spacedim; ++i)
369 Assert(boundary_points.first[i] <= boundary_points.second[i],
370 ExcMessage(
"Bounding Box can't be created: the points' " 371 "order should be bottom left, top right!"));
373 this->boundary_points = boundary_points;
378 template <
int spacedim,
typename Number>
379 template <
class Container>
382 boost::geometry::envelope(
390 template <
int spacedim,
typename Number>
394 for (
unsigned int d = 0;
d < spacedim; ++
d)
396 boundary_points.first[
d] -= amount;
397 boundary_points.second[
d] += amount;
398 Assert(boundary_points.first[
d] <= boundary_points.second[
d],
399 ExcMessage(
"Bounding Box can't be shrunk this much: the points' " 400 "order should remain bottom left, top right."));
405 template <
int spacedim,
typename Number>
406 template <
class Archive>
416 template <
typename Number>
424 template <
typename Number>
433 template <
typename Number>
434 template <
class Container>
Iterator lower_bound(Iterator first, Iterator last, const T &val)
void extend(const Number &amount)
#define AssertIndexRange(index, range)
#define AssertThrow(cond, exc)
#define DEAL_II_DISABLE_EXTRA_DIAGNOSTICS
static ::ExceptionBase & ExcMessage(std::string arg1)
static ::ExceptionBase & ExcImpossibleInDim(int arg1)
#define Assert(cond, exc)
#define DEAL_II_NAMESPACE_CLOSE
std::pair< Point< spacedim, Number >, Point< spacedim, Number > > boundary_points
SymmetricTensor< 2, dim, Number > d(const Tensor< 2, dim, Number > &F, const Tensor< 2, dim, Number > &dF_dt)
BoundingBox< dim, Number > create_unit_bounding_box()
#define DEAL_II_ENABLE_EXTRA_DIAGNOSTICS
#define DEAL_II_NAMESPACE_OPEN
void serialize(Archive &ar, const unsigned int version)
unsigned int coordinate_to_one_dim_higher(const unsigned int locked_coordinate, const unsigned int coordiante_in_dim)