4#include <Eigen/Geometry>
20enum class TransformOrder : uint8_t
34TransformOrder getTransformOrder(std::string_view name);
52 using Affine = Eigen::Transform<floatT, 3, Eigen::Affine>;
58 explicit Transform(
const Matrix4& matrix) : xform_(matrix) {}
79 static Transform lookAt(
const Vector3& translation,
const Vector3& forward,
const Vector3& up);
88 const Vector3& translation,
89 const Vector3& rotationDegrees,
91 TransformOrder order = TransformOrder::SRT
100 xform_.translate(offset);
107 const Vector3 radians = degrees * (std::numbers::pi / 180.0);
109 Eigen::AngleAxis<floatT>(radians.z(), Vector3::UnitZ()) *
110 Eigen::AngleAxis<floatT>(radians.y(), Vector3::UnitY()) *
111 Eigen::AngleAxis<floatT>(radians.x(), Vector3::UnitX())
119 xform_.scale(factors);
126 xform_.scale(uniform);
133 xform_ = xform_ * other.xform_;
141 Vector3
operator*(
const Vector3& point)
const {
return xform_ * point; }
143 const Matrix4& getMatrix()
const {
return xform_.matrix(); }
Basic attribute, parameter, and node types for Enzo.
size_t Offset
enzo::Offset is the internal discontinuous index of an element in a given AttributeOwner.
Definition Types.h:181
Containers for geometry data.