8#include "../macros.hpp"
13hi_export_module(hikogui.geometry : rotate3);
15hi_export
namespace hi {
inline namespace v1 {
20 using value_type = array_type::value_type;
26 constexpr rotate3() noexcept : _v(0.0f, 0.0f, 1.0f, 0.0f) {}
30 hi_axiom(
axis.holds_invariant());
31 hi_axiom(std::abs(hypot(
axis) - 1.0f) < 0.0001f);
33 auto const half_angle = angle * 0.5f;
37 _v =
static_cast<f32x4>(
axis) * array_type::broadcast(S);
41 [[nodiscard]]
constexpr explicit operator array_type()
const noexcept
axis
An enumeration of the 3 axis for 3D geometry.
Definition axis.hpp:24
The HikoGUI namespace.
Definition array_generic.hpp:20
DOXYGEN BUG.
Definition algorithm_misc.hpp:20
Definition simd_intf.hpp:18
Definition rotate3.hpp:17
A high-level geometric vector Part of the high-level vector, point, mat and color types.
Definition vector3.hpp:26