feat(cpp-object-oriented-modular-refactoring): step 13 - element-definition-domain

This commit is contained in:
KOKO\Mimi
2026-08-16 09:10:38 +09:00
parent cf6fc6e1d9
commit 19ba02a6a4
26 changed files with 740 additions and 242 deletions
+43
View File
@@ -10,8 +10,51 @@
#include <vector>
#include "fesa/math/vector3.h"
#include "fesa/model/model_types.h"
namespace fesa {
EulerBeam3DDefinition::EulerBeam3DDefinition(
SourceEntityId source_id_value,
std::array<EntityIndex, 2> node_indices_value,
const EntityIndex material_index_value,
const EntityIndex section_index_value, SourceLocation location_value)
: source_id{std::move(source_id_value)},
node_indices{std::move(node_indices_value)},
material_index{material_index_value},
section_index{section_index_value},
location{std::move(location_value)},
node_indices_view_{node_indices.begin(), node_indices.end()} {}
ElementDefinitionKind EulerBeam3DDefinition::Kind() const noexcept {
return ElementDefinitionKind::kEulerBeam3D;
}
const SourceEntityId& EulerBeam3DDefinition::SourceId() const noexcept {
return source_id;
}
std::string_view EulerBeam3DDefinition::SourceElementType() const noexcept {
return "B33";
}
const std::vector<EntityIndex>& EulerBeam3DDefinition::NodeIndices()
const noexcept {
return node_indices_view_;
}
EntityIndex EulerBeam3DDefinition::MaterialIndex() const noexcept {
return material_index;
}
EntityIndex EulerBeam3DDefinition::PropertyIndex() const noexcept {
return section_index;
}
void EulerBeam3DDefinition::SynchronizeNodeIndices() {
node_indices_view_.assign(node_indices.begin(), node_indices.end());
}
namespace {
constexpr std::size_t kElementDofCount = 12U;