40 lines
1.3 KiB
C++
40 lines
1.3 KiB
C++
#ifndef FESA_PROPERTIES_SOLID_SECTION_H_
|
|
#define FESA_PROPERTIES_SOLID_SECTION_H_
|
|
|
|
#include <string>
|
|
#include <utility>
|
|
|
|
#include "fesa/properties/element_property.h"
|
|
|
|
namespace fesa {
|
|
/// @brief Owns a homogeneous Solid material assignment without thickness.
|
|
class SolidSection final : public ElementProperty {
|
|
public:
|
|
/// @brief Constructs a parser-validated ELSET and material assignment.
|
|
SolidSection(SourceEntityId source, std::string name,
|
|
EntityIndex material_index, SourceLocation location)
|
|
: source_id_{std::move(source)},
|
|
name_{std::move(name)},
|
|
material_index_{material_index},
|
|
location_{std::move(location)} {}
|
|
ElementPropertyKind Kind() const noexcept override {
|
|
return ElementPropertyKind::kSolidSection;
|
|
}
|
|
const SourceEntityId& SourceId() const noexcept override {
|
|
return source_id_;
|
|
}
|
|
const SourceLocation& Location() const noexcept override { return location_; }
|
|
/// @brief Returns the source ELSET spelling.
|
|
const std::string& Name() const noexcept { return name_; }
|
|
/// @brief Returns the stable Domain material index.
|
|
EntityIndex MaterialIndex() const noexcept { return material_index_; }
|
|
|
|
private:
|
|
SourceEntityId source_id_;
|
|
std::string name_;
|
|
EntityIndex material_index_;
|
|
SourceLocation location_;
|
|
};
|
|
} // namespace fesa
|
|
#endif // FESA_PROPERTIES_SOLID_SECTION_H_
|