27 lines
610 B
C++
27 lines
610 B
C++
#pragma once
|
|
|
|
#include "fesa/core/ModelTypes.hpp"
|
|
|
|
#include <array>
|
|
#include <cstddef>
|
|
|
|
namespace fesa::element {
|
|
|
|
using fesa::core::ElementId;
|
|
using fesa::core::ElementType;
|
|
using fesa::core::NodeId;
|
|
using fesa::core::PropertyId;
|
|
|
|
class Element {
|
|
public:
|
|
virtual ~Element() = default;
|
|
|
|
virtual ElementId id() const noexcept = 0;
|
|
virtual ElementType type() const noexcept = 0;
|
|
virtual std::size_t nodeCount() const noexcept = 0;
|
|
virtual const std::array<NodeId, 4>& connectivity() const noexcept = 0;
|
|
virtual PropertyId propertyId() const noexcept = 0;
|
|
};
|
|
|
|
} // namespace fesa::element
|