|
Celeritas 0.7.0-dev.162+develop.12e60fa0f
|
#include <variant>#include "corecel/cont/VariantUtils.hh"#include "NoTransformation.hh"#include "SignedPermutation.hh"#include "TransformTypeTraits.hh"#include "Transformation.hh"#include "Translation.hh"
Typedefs | |
| using | celeritas::VariantTransform = EnumVariant< TransformType, TransformTypeTraits > |
| std::variant for all transforms. | |
Functions | |
| VariantTransform | celeritas::apply_transform (VariantTransform const &left, VariantTransform const &right) |
| Apply the left "daughter-to-parent" transform to the right. | |
| VariantTransform | celeritas::calc_inverse (VariantTransform const &transform) |
| Calculate the inverse of a transform. | |
| BoundingBox< real_type > | celeritas::apply_transform (VariantTransform const &transform, BoundingBox< real_type > const &bbox) |
| VariantTransform celeritas::apply_transform | ( | VariantTransform const & | left, |
| VariantTransform const & | right | ||
| ) |
Apply the left "daughter-to-parent" transform to the right.
The resulting variant may be a monostate (identity), translation (no rotation), or full transformation.
The resulting transform has rotation
\[ \mathbf{R}' = \mathbf{R}_2 \]
and translation
\[ \mathbf{t}' = \mathbf{R}_1\mathbf{t}_2 + \mathbf{t}_1 \]