17 const std::tuple<Real, Real, Real> & values)
20 mooseError(
"Invalid transformation values provided for transformation type " +
27 const std::tuple<Real, Real, Real> & values)
46 if (std::get<0>(values) == 0.0 || std::get<1>(values) == 0.0 || std::get<2>(values) == 0.0)
60 enum_copy =
static_cast<int>(type);
61 return std::string(enum_copy);
64 std::vector<std::pair<std::string, std::tuple<Real, Real, Real>>>
67 std::vector<std::pair<std::string, std::tuple<Real, Real, Real>>> result;
79 auto trans_type = it->first;
80 auto val = it->second;
84 Point offset(std::get<0>(val), std::get<1>(val), std::get<2>(val));
89 Point
scale(std::get<0>(val), std::get<1>(val), std::get<2>(val));
90 for (
int i = 0; i < 3; ++i)
96 const auto rot_matrix = RealTensorValue::intrinsic_rotation_matrix(
97 std::get<0>(val), std::get<1>(val), std::get<2>(val));
98 const auto rot_transpose = rot_matrix.transpose();
99 p = rot_transpose * p;
102 mooseError(
"Transformation type is not recognized.");
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
TransformationType
Enumeration of transformation types that can be applied to CSG objects.
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
static const MooseEnum transformation_type_enum
MooseEnum for transformation types, matching the TransformationType enum values.