25class ActingMeshGeometry :
public MeshGeometry<_VertexArray, _FacetArray>
28 using Parent = MeshGeometry<_VertexArray, _FacetArray>;
29 using VertexArray =
typename Parent::VertexArray;
30 using FacetArray =
typename Parent::FacetArray;
31 using VertexType =
typename Parent::VertexType;
32 using Scalar =
typename Parent::Scalar;
33 using Index =
typename Parent::Index;
36 ActingMeshGeometry() =
delete;
37 ActingMeshGeometry(
const VertexArray& vertices,
const FacetArray& facets)
38 : m_vertices(vertices)
41 virtual ~ActingMeshGeometry() =
default;
44 virtual Index get_dim()
const override {
return safe_cast<Index>(m_vertices.cols()); }
46 virtual Index get_num_vertices()
const override {
return safe_cast<Index>(m_vertices.rows()); }
48 virtual Index get_num_facets()
const override {
return safe_cast<Index>(m_facets.rows()); }
50 virtual Index get_vertex_per_facet()
const override
55 virtual const VertexArray& get_vertices()
const override {
return m_vertices; }
57 virtual const FacetArray& get_facets()
const override {
return m_facets; }
59 virtual VertexArray& get_vertices_ref()
override
63 throw std::runtime_error(
"ActingMeshGeometry does not support import/export!");
66 virtual FacetArray& get_facets_ref()
override
70 throw std::runtime_error(
"ActingMeshGeometry does not support import/export!");
74 const VertexArray& m_vertices;
75 const FacetArray& m_facets;
constexpr auto safe_cast(SourceType value) -> std::enable_if_t<!std::is_same< SourceType, TargetType >::value, TargetType >
Perform safe cast from SourceType to TargetType, where "safe" means:
Definition safe_cast.h:50