1.4 KiB
1.4 KiB
Step 1: property-base-interface
Read First
Read these files before editing:
/AGENTS.md/docs/AGENT_RULES.md/docs/implementation-plans/property-model-foundation-implementation-plan.md/include/fesa/core/ModelTypes.hpp/include/fesa/property/ShellProperty.hpp/tests/property/shell_property_test.cpp/CMakeLists.txt
Task
Add the runtime property base interface.
Required API:
- File:
/include/fesa/property/Property.hpp - Namespace:
fesa::property enum class PropertyKind { Shell };class Property- virtual destructor;
virtual PropertyId id() const noexcept = 0;virtual PropertyKind kind() const noexcept = 0;
Rules:
- Use
fesa::core::PropertyId. - Do not add section stiffness or material behavior.
- Keep this header independent from HDF5, MKL, TBB, and parser headers.
Tests To Write First
- Add
/tests/property/property_base_test.cpp. - Test that a small derived class can be used through
const Property&. - Test virtual deletion through
std::unique_ptr<Property>.
Acceptance Criteria
ctest --test-dir build/msvc-debug --output-on-failure -C Debug -R model-object
python scripts/validate_workspace.py
Verification Notes
- Run targeted CTest before implementation and confirm the expected compile failure.
- Keep all code C++17/MSVC-compatible.
- Update
phases/property-model-foundation/index.jsonfor this step result.