9#ifndef INCGfeff908010fa4d75a9c006c02b4fafe7
10#define INCGfeff908010fa4d75a9c006c02b4fafe7
12#include <lf/mesh/mesh.h>
57 std::unique_ptr<geometry::
Geometry>&& geometry,
58 const
Point* endpoint0, const
Point* endpoint1)
61 nodes_({endpoint0, endpoint1}),
63 LF_VERIFY_MSG((endpoint0 !=
nullptr) && (endpoint1 !=
nullptr),
64 "Invalid pointer to endnode of edge");
67 "Geometry must describe a curve");
69 "Segment geometry must fit a segment");
74 [[nodiscard]]
unsigned Codim()
const override {
return 1; }
82 [[nodiscard]] std::span<const Entity* const>
SubEntities(
83 unsigned rel_codim)
const override;
Represents a reference element with all its properties.
static constexpr RefEl kSegment()
Returns the (1-dimensional) reference segment.
Interface class for shape information on a mesh cell in the spirit of parametric finite element metho...
Interface class representing a topological entity in a cellular complex
lf::base::size_type size_type
A node object for a 2D hybrid mesh.
An edge object for a 2D hybrid mesh.
unsigned Codim() const override
an edge is an entity of co-dimension 1
std::span< const Entity *const > SubEntities(unsigned rel_codim) const override
Access to all subentities selected by relative co-dimension.
Segment(Segment &&) noexcept=default
base::RefEl RefEl() const override
Describes the reference element type of this entity.
bool operator==(const mesh::Entity &rhs) const override
Check if two entities are the same.
std::array< const Point *, 2 > nodes_
Segment(const Segment &)=delete
mesh::Mesh::size_type size_type
static constexpr std::array< lf::mesh::Orientation, 2 > endpoint_ori_
size_type index() const
access to index of an entity
std::unique_ptr< geometry::Geometry > geometry_
const geometry::Geometry * Geometry() const override
Describes the geometry of this entity.
std::span< const lf::mesh::Orientation > RelativeOrientations() const override
Access to relative orientations of endpoints.
~Segment() override=default
Segment()=default
default constructors, needed by std::vector
An alternative implementation of a hybrid2d mesh manager that uses Pointers to store sub-entity relat...