25 std::vector<MathLib::Point3d>& points)
27 std::transform(points.begin(), points.end(), points.begin(),
28 [&matR2local](
auto const& pnt) { return matR2local * pnt; });
35 const unsigned element_dimension,
36 const unsigned global_dim,
37 const std::vector<MathLib::Point3d>& points)
42 if (element_dimension == 1)
44 Eigen::Vector3d
const xx =
45 (points[1].asEigenVector3d() - points[0].asEigenVector3d())
55 matR.transposeInPlace();
57 else if (global_dim == 3 && element_dimension == 2)
64 matR.transposeInPlace();
73 const Element& e,
const unsigned global_dim)
74 : _global_dim(global_dim), _matR2global(Eigen::Matrix3d::Identity())
86 if (element_dim != space_dim)
Definition of analytical geometry functions.
Definition of the Element class.
Definition of the Node class.
Definition of the Point3d class.
std::vector< MathLib::Point3d > _points
RotationMatrix _matR2global
const unsigned _global_dim
ElementCoordinatesMappingLocal(const Element &e, const unsigned global_dim)
virtual unsigned getNumberOfNodes() const =0
virtual const Node * getNode(unsigned idx) const =0
virtual constexpr unsigned getDimension() const =0
Get dimension of the mesh element.
unsigned space_dimension_
Dimension of the space, where the element exists.
Eigen::Matrix3d compute3DRotationMatrixToX(Eigen::Vector3d const &v)
Eigen::Matrix3d computeRotationMatrixToXY(Eigen::Vector3d const &n)
std::pair< Eigen::Vector3d, double > getNewellPlane(InputIterator pnts_begin, InputIterator pnts_end)
Eigen::Matrix3d compute2DRotationMatrixToX(Eigen::Vector3d const &v)
Eigen::Matrix< double, 3u, 3u, Eigen::RowMajor > RotationMatrix
void rotateToLocal(const MeshLib::RotationMatrix &matR2local, std::vector< MathLib::Point3d > &points)
rotate points to local coordinates
MeshLib::RotationMatrix getRotationMatrixToGlobal(const unsigned element_dimension, const unsigned global_dim, const std::vector< MathLib::Point3d > &points)