Revision caec7a3da39d79a13636b27407a51594718617b8 authored by Thomas Nagel on 20 August 2021, 08:11:32 UTC, committed by Dmitri Naumov on 01 September 2021, 12:51:09 UTC
1 parent fb00536
ElementCoordinatesMappingLocal.h
/**
* \file
* \copyright
* Copyright (c) 2012-2021, OpenGeoSys Community (http://www.opengeosys.org)
* Distributed under a Modified BSD License.
* See accompanying file LICENSE.txt or
* http://www.opengeosys.org/project/license
*/
#pragma once
#include <vector>
#include <Eigen/Eigen>
#include "MathLib/Point3d.h"
namespace MeshLib
{
class Element;
}
namespace MeshLib
{
using RotationMatrix = Eigen::Matrix<double, 3u, 3u, Eigen::RowMajor>;
/**
* This class maps node coordinates on intrinsic coordinates of the given element.
*/
class ElementCoordinatesMappingLocal final
{
public:
/**
* Constructor
* \param e Mesh element whose node coordinates are mapped
* \param global_dim Global dimension
*/
ElementCoordinatesMappingLocal(const Element &e, const unsigned global_dim);
/// return the global dimension
unsigned getGlobalDimension() const { return _global_dim; }
/// return mapped coordinates of the node
MathLib::Point3d const& getMappedCoordinates(std::size_t node_id) const
{
return _points[node_id];
}
/// return a rotation matrix converting to global coordinates
const RotationMatrix& getRotationMatrixToGlobal() const {return _matR2global;}
private:
const unsigned _global_dim;
std::vector<MathLib::Point3d> _points;
RotationMatrix _matR2global;
};
} // namespace MeshLib
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...