26 template <
int spacedim>
48 inline unsigned int dim()
const;
49 inline unsigned int index()
const;
69 inline const SideIter side(
const unsigned int loc_index)
const;
74 unsigned int id()
const;
115 arma::mat A(3,
dim()+1);
117 for(
unsigned int i=0; i <
dim(); i++ ) {
118 A.col(i) = node[i+1]->
point() - v0;
149 default:
ASSERT(
false).error(
"Clipping supported only for dim=1,2,3.");
159 for(
unsigned int i=0; i<
n_nodes(); i++) vertices[i]=node[i]->
point();
179 template<
int spacedim,
class Value>
187 #define FOR_ELEMENT_NODES(i,j) for((j)=0;(j)<(i)->n_nodes();(j)++) 188 #define FOR_ELEMENT_SIDES(i,j) for(unsigned int j=0; j < (i)->n_sides(); j++) 189 #define FOR_ELM_NEIGHS_VB(i,j) for((j)=0;(j)<(i)->n_neighs_vb;(j)++)
arma::vec project_point(const arma::vec3 &point)
arma::vec project_point(const arma::vec3 &point, const arma::mat &map) const
Bounding box in 3d ambient space.
unsigned int n_nodes() const
unsigned int * boundary_idx_
unsigned int * permutation_idx_
arma::mat element_map() const
RegionIdx region_idx() const
Class template representing a field with values dependent on: point, element, and region...
unsigned int index() const
#define ASSERT(expr)
Allow use shorter versions of macro names if these names is not used with external library...
arma::vec clip_to_element(arma::vec &barycentric)
unsigned int n_sides() const
vector< arma::vec3 > vertex_list()
void get_bounding_box(BoundingBox &bounding_box) const
SideIter side(const unsigned int loc_index)
void init(unsigned int dim, Mesh *mesh_in, RegionIdx reg)
arma::vec3 centre() const
double quality_measure_smooth()
Class RefElement defines numbering of vertices, sides, calculation of normal vectors etc...
ElementAccessor< 3 > element_accessor() const
Gets ElementAccessor of this element.
unsigned int n_sides_by_dim(unsigned int side_dim)
static BaryPoint clip(const BaryPoint &barycentric)
BoundingBox bounding_box()