1 #ifndef __TRIANGLESHELLFE_H 2 #define __TRIANGELSHELLFE_H 9 template<
typename DataTypeContainer>
13 typedef typename DataTypeContainer::DomVecType
DomVecType;
33 _globNodeIdx ( globalNodeIndex )
36 for (
int i = 0; i < 3; ++i ) _nodes[i] = nodes[ _globNodeIdx[i] ];
37 for (
int i = 0; i < 3; ++i ) _edges[i] =
getNode((i+2)%3) -
getNode((i+1)%3);
44 for (
int i = 0; i < 3; ++i ) _nodes[i] = nodes[ _globNodeIdx[i] ];
45 for (
int i = 0; i < 3; ++i ) _edges[i] =
getNode((i+2)%3) -
getNode((i+1)%3);
48 void printNodes()
const { cout <<
"node0 = " <<
getNode(0).transpose() << endl <<
"node1 = " <<
getNode(1).transpose() << endl <<
"node2 = " <<
getNode(2).transpose() << endl;}
51 cout << endl <<
"Element " << _globIdx << endl;
77 void setGlobalNodeIdx(
int localIndex,
int globalIndex) { _globNodeIdx[localIndex] = globalIndex;}
80 const Point3DType&
getNode (
int i )
const {
return _nodes[i];}
81 Point3DType&
getNode (
int i ) {
return _nodes[i];}
82 void setNode (
int i,
const Point3DType& node ) {_nodes[i] = node;}
85 const TangentVecType&
getEdge(
int i)
const {
return _edges[i]; }
const TangentVecType & operator[](int i) const
Indices3DType _globNodeIdx
int getGlobalElementIdx() const
void updateNodesAndEdges(const VertexIterator &nodes)
Point3DType & getNode(int i)
ShellElementWithTangentSpaceAtVertex()
const Indices3DType & getGlobalNodeIdx() const
DataTypeContainer::RealType RealType
DataTypeContainer::DomVecType DomVecType
int getGlobalNodeIdx(int localIndex) const
ShellElementWithTangentSpaceAtVertex(const int globalIdx, const Indices3DType globalNodeIndex, const VertexIterator &nodes)
void setGlobalNodeIdx(int localIndex, int globalIndex)
std::vector< Point3DType > VertexIterator
const Point3DType & getNode(int i) const
Access node i.
void setNode(int i, const Point3DType &node)
DataTypeContainer::Point3DType Point3DType
std::vector< TangentVecType > TangentVecIterator
DataTypeContainer::TangentVecType TangentVecType
void getNormalizedNormalForFlattenedTriangle(TangentVecType &normal) const
void getWeightedNormalForFlattenedTriangle(TangentVecType &normal) const
RealType getAreaOfFlattenedTriangle() const
Triangle which has a tangent space at each node.
const TangentVecType & getEdge(int i) const
Access edge i.
~ShellElementWithTangentSpaceAtVertex()
DataTypeContainer::Indices3DType Indices3DType