Peano
Loading...
Searching...
No Matches
FaceBoundary.h
Go to the documentation of this file.
1
// This file is part of the Peano project. For conditions of distribution and
2
// use, please see the copyright notice at www.peano-framework.org
3
#pragma once
4
5
#include "
toolbox/curvi/Coordinate.h
"
6
#include "
toolbox/curvi/Index.h
"
7
#include "
toolbox/curvi/geometry/Edge.h
"
8
9
#include <algorithm>
10
#include <vector>
11
12
/* Represents the boundaries of a 2D face */
13
/* ^ */
14
/* | */
15
/* | offset(xi)+ top_edge */
16
/* | size(xi) -------------- */
17
/* | | | */
18
/* | | | */
19
/*xi | left_edge | | right_edge */
20
/* | | | */
21
/* | offset(xi) | | */
22
/* | -------------- */
23
/* | offset(eta) bottom_edge offset(eta)+ */
24
/* | size(eta) */
25
/* 0------------------- eta------------------->*/
26
27
namespace
toolbox
{
28
namespace
curvi {
29
class
Face;
30
}
// namespace curvi
31
}
// namespace toolbox
32
33
namespace
toolbox
{
34
namespace
curvi {
35
class
FaceBoundary
{
36
37
public
:
38
// enum Edge{ LEFT, RIGHT, BOTTOM, TOP };
39
40
// FaceBoundary();
41
~FaceBoundary
() {};
42
43
FaceBoundary
(
const
Face
& face);
44
45
FaceBoundary
(
const
FaceBoundary
& other);
46
FaceBoundary
&
operator=
(
FaceBoundary
other);
47
48
FaceBoundary
(
double
a_offset[3],
double
a_size[3],
int
a_range[3],
Coordinate
a_coords[2]);
49
50
FaceBoundary
(
Coordinate
a_coords[2],
double
a_position,
Edge
& a_left,
Edge
& a_right,
Edge
& a_bottom,
Edge
& a_top);
51
52
53
Coordinate
getCoord
(
int
i)
const
;
54
void
getCoord
(
Coordinate
a_coord[2])
const
;
55
56
int
getIndexSize
(
int
i)
const
;
57
void
getIndexSize
(
int
a_index_size[3])
const
;
58
59
double
getPosition
()
const
;
60
61
Edge
&
getEdge
(
Coordinate
coord,
bool
upper);
62
63
void
getIndexRange
(
Coordinate
coord, std::vector<int>& a_range)
const
;
64
65
void
setEdge
(
Coordinate
coord,
bool
upper,
const
Edge
& other);
66
67
void
split
(
Coordinate
c,
int
intersection_index,
Edge
intersection_path,
FaceBoundary
& left,
FaceBoundary
& right);
68
69
void
checkConformity
();
70
71
friend
std::ostream&
operator<<
(std::ostream& ss,
const
FaceBoundary
& f);
72
std::string
printNodes
();
73
74
75
private
:
76
Edge
left_edge
;
77
Edge
right_edge
;
78
Edge
bottom_edge
;
79
Edge
top_edge
;
80
81
Coordinate
coords
[2];
82
int
index_size
[3];
83
double
position
;
84
};
85
}
// namespace curvi
86
}
// namespace toolbox
Coordinate.h
Edge.h
Index.h
toolbox::curvi::Edge
Definition
Edge.h:10
toolbox::curvi::FaceBoundary
Definition
FaceBoundary.h:35
toolbox::curvi::FaceBoundary::coords
Coordinate coords[2]
Definition
FaceBoundary.h:81
toolbox::curvi::FaceBoundary::checkConformity
void checkConformity()
toolbox::curvi::FaceBoundary::getCoord
void getCoord(Coordinate a_coord[2]) const
toolbox::curvi::FaceBoundary::FaceBoundary
FaceBoundary(double a_offset[3], double a_size[3], int a_range[3], Coordinate a_coords[2])
toolbox::curvi::FaceBoundary::left_edge
Edge left_edge
Definition
FaceBoundary.h:76
toolbox::curvi::FaceBoundary::top_edge
Edge top_edge
Definition
FaceBoundary.h:79
toolbox::curvi::FaceBoundary::FaceBoundary
FaceBoundary(const Face &face)
toolbox::curvi::FaceBoundary::operator<<
friend std::ostream & operator<<(std::ostream &ss, const FaceBoundary &f)
toolbox::curvi::FaceBoundary::setEdge
void setEdge(Coordinate coord, bool upper, const Edge &other)
toolbox::curvi::FaceBoundary::printNodes
std::string printNodes()
toolbox::curvi::FaceBoundary::index_size
int index_size[3]
Definition
FaceBoundary.h:82
toolbox::curvi::FaceBoundary::position
double position
Definition
FaceBoundary.h:83
toolbox::curvi::FaceBoundary::getIndexRange
void getIndexRange(Coordinate coord, std::vector< int > &a_range) const
toolbox::curvi::FaceBoundary::getCoord
Coordinate getCoord(int i) const
toolbox::curvi::FaceBoundary::~FaceBoundary
~FaceBoundary()
Definition
FaceBoundary.h:41
toolbox::curvi::FaceBoundary::FaceBoundary
FaceBoundary(Coordinate a_coords[2], double a_position, Edge &a_left, Edge &a_right, Edge &a_bottom, Edge &a_top)
toolbox::curvi::FaceBoundary::getEdge
Edge & getEdge(Coordinate coord, bool upper)
toolbox::curvi::FaceBoundary::bottom_edge
Edge bottom_edge
Definition
FaceBoundary.h:78
toolbox::curvi::FaceBoundary::FaceBoundary
FaceBoundary(const FaceBoundary &other)
toolbox::curvi::FaceBoundary::right_edge
Edge right_edge
Definition
FaceBoundary.h:77
toolbox::curvi::FaceBoundary::getPosition
double getPosition() const
toolbox::curvi::FaceBoundary::getIndexSize
void getIndexSize(int a_index_size[3]) const
toolbox::curvi::FaceBoundary::split
void split(Coordinate c, int intersection_index, Edge intersection_path, FaceBoundary &left, FaceBoundary &right)
toolbox::curvi::FaceBoundary::operator=
FaceBoundary & operator=(FaceBoundary other)
toolbox::curvi::FaceBoundary::getIndexSize
int getIndexSize(int i) const
toolbox::curvi::Face
Definition
Face.h:31
toolbox::curvi::Coordinate
Coordinate
Definition
Coordinate.h:10
toolbox
Definition
InterpolationRestriction.h:10
src
toolbox
curvi
geometry
FaceBoundary.h
Generated on Wed Nov 4 2026 08:20:47 for Peano by
1.9.8