Reference documentation for deal.II version GIT relicensing-478-g3275795167 2024-04-24 07:10:02+00:00
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
bounding_box.h
Go to the documentation of this file.
1// ------------------------------------------------------------------------
2//
3// SPDX-License-Identifier: LGPL-2.1-or-later
4// Copyright (C) 2018 - 2023 by the deal.II authors
5//
6// This file is part of the deal.II library.
7//
8// Part of the source code is dual licensed under Apache-2.0 WITH
9// LLVM-exception OR LGPL-2.1-or-later. Detailed license information
10// governing the source code and code contributions can be found in
11// LICENSE.md and CONTRIBUTING.md at the top level directory of deal.II.
12//
13// ------------------------------------------------------------------------
14
15#ifndef dealii_boost_adaptor_bounding_box_h
16#define dealii_boost_adaptor_bounding_box_h
17
18#include <deal.II/base/config.h>
19
21
23
24
25namespace boost
26{
27 namespace geometry
28 {
29 namespace traits
30 {
34 template <int dim, class Number>
35 struct tag<::BoundingBox<dim, Number>>
36 {
37 using type = box_tag;
38 };
39
43 template <int dim, class Number>
44 struct point_type<::BoundingBox<dim, Number>>
45 {
47 };
48
53 template <int dim, class Number, std::size_t D>
54 struct indexed_access<::BoundingBox<dim, Number>, min_corner, D>
55 {
60 static inline double
61 get(const ::BoundingBox<dim, Number> &box)
62 {
63 return box.get_boundary_points().first[D];
64 }
65
70 static inline void
71 set(::BoundingBox<dim, Number> &box, Number value)
72 {
73 box.get_boundary_points().first[D] = value;
74 }
75 };
76
81 template <int dim, class Number, std::size_t D>
82 struct indexed_access<::BoundingBox<dim, Number>, max_corner, D>
83 {
88 static inline double
89 get(const ::BoundingBox<dim, Number> &box)
90 {
91 return box.get_boundary_points().second[D];
92 }
93
98 static inline void
99 set(::BoundingBox<dim, Number> &box, Number value)
100 {
101 box.get_boundary_points().second[D] = value;
102 }
103 };
104 } // namespace traits
105 } // namespace geometry
106} // namespace boost
107
108#endif
std::pair< Point< spacedim, Number >, Point< spacedim, Number > > & get_boundary_points()
static void set(::BoundingBox< dim, Number > &box, Number value)
static void set(::BoundingBox< dim, Number > &box, Number value)