Files
FESA/include/fesa/fem/beam_frame.hpp
T

33 lines
608 B
C++

#pragma once
#include <array>
#include <optional>
#include <vector>
#include <fesa/core/diagnostic.hpp>
#include <fesa/core/vec3.hpp>
namespace fesa {
using Matrix12 = std::array<std::array<double, 12>, 12>;
struct BeamFrame final {
Vec3 ex;
Vec3 ey;
Vec3 ez;
};
struct BeamFrameResult final {
std::optional<BeamFrame> frame;
std::vector<Diagnostic> diagnostics;
};
[[nodiscard]] BeamFrameResult make_beam_frame(
const Vec3& first,
const Vec3& second,
const Vec3& orientation);
[[nodiscard]] Matrix12 beam_transformation(const BeamFrame& frame);
} // namespace fesa