KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
|
Class for applying parametrically defined affine transformations. More...
#include <parametric_affine_transform.h>
Public Member Functions | |
Life Cycle | |
ParametricAffineTransform (const Parameters axis, const Parameters angle, const Parameters referencePoint, const Parameters translationVector) | |
Construct via axis & angle. More... | |
ParametricAffineTransform (const Parameters eulerAngles, const Parameters referencePoint, const Parameters translationVector) | |
Construct via euler angles. More... | |
Operations | |
array_1d< double, 3 > | Apply (const array_1d< double, 3 > &rPoint, const double t, const double X=0.0, const double Y=0.0, const double Z=0.0) |
Evaluate the transformation at the given location and apply it to a position vector, returning its transformed version. More... | |
Type definitions | |
using | FunctionType = GenericFunctionUtility |
KRATOS_CLASS_POINTER_DEFINITION (ParametricAffineTransform) | |
Additional Inherited Members | |
Protected Member Functions inherited from Kratos::AffineTransform | |
KRATOS_CLASS_POINTER_DEFINITION (AffineTransform) | |
AffineTransform () | |
Default constructor sets up an identity transform. More... | |
AffineTransform (const array_1d< double, 3 > &rAxis, const double angle, const array_1d< double, 3 > &rReferencePoint, const array_1d< double, 3 > &rTranslationVector) | |
Construct from axis and angle. More... | |
AffineTransform (const array_1d< double, 3 > &rEulerAngles, const array_1d< double, 3 > &rReferencePoint, const array_1d< double, 3 > &rTranslationVector) | |
Construct from euler angles. More... | |
AffineTransform (const Quaternion< double > &rQuaternion, const array_1d< double, 3 > &rReferencePoint, const array_1d< double, 3 > &rTranslationVector) | |
Construct from a quaternion. More... | |
void | SetRotation (const array_1d< double, 3 > &rAxis, const double angle, const array_1d< double, 3 > &rReferencePoint) |
Set rotation from an axis and an angle. More... | |
void | SetRotation (const array_1d< double, 3 > &rEulerAngles, const array_1d< double, 3 > &rReferencePoint) |
Set rotation from euler angles. More... | |
void | SetRotation (const Quaternion< double > &rQuaternion, const array_1d< double, 3 > &rReferencePoint) |
Set rotation from a quaternion. More... | |
void | SetTranslation (const array_1d< double, 3 > &rTranslationVector) |
Set translation part of the transformation. More... | |
array_1d< double, 3 > | Apply (const array_1d< double, 3 > &rPoint) const |
Return the transformed version of the input vector. More... | |
Protected Attributes inherited from Kratos::AffineTransform | |
array_1d< double, 3 > | mReferencePoint |
array_1d< double, 3 > | mTranslationVector |
Matrix | mRotationMatrix |
Class for applying parametrically defined affine transformations.
see AffineTransform for transform conventions. Every transform parameter is parsed from an input Parameters to a GenericFunctionUtility that is evaluated on each application of the transform.
Kratos::ParametricAffineTransform::ParametricAffineTransform | ( | const Parameters | axis, |
const Parameters | angle, | ||
const Parameters | referencePoint, | ||
const Parameters | translationVector | ||
) |
Construct via axis & angle.
rAxis | axis of rotation (array of size 3) |
rAngle | angle of rotation (in radians, scalar) |
rReferencePoint | a point on the axis of rotation (array of size 3) |
rTranslationVector | translation vector (array of size 3) |
Kratos::ParametricAffineTransform::ParametricAffineTransform | ( | const Parameters | eulerAngles, |
const Parameters | referencePoint, | ||
const Parameters | translationVector | ||
) |
Construct via euler angles.
rEulerAngles | euler angles (radians, array of size 3) |
rReferencePoint | origin of rotation (array of size 3) |
rTranslationVector | translation vector (array of size 3) |
array_1d< double, 3 > Kratos::ParametricAffineTransform::Apply | ( | const array_1d< double, 3 > & | rPoint, |
const double | t, | ||
const double | X = 0.0 , |
||
const double | Y = 0.0 , |
||
const double | Z = 0.0 |
||
) |
Evaluate the transformation at the given location and apply it to a position vector, returning its transformed version.
rPoint | point to be transformed; it also acts as the current position input to GenericFunctionUtility. |
t | time, see GenericFunctionUtility. |
X | initial x-coordinate, see GenericFunctionUtility. |
Y | initial y-coordinate, see GenericFunctionUtility. |
Z | initial z-coordinate, see GenericFunctionUtility. |
Kratos::ParametricAffineTransform::KRATOS_CLASS_POINTER_DEFINITION | ( | ParametricAffineTransform | ) |