|
Uranium
Application Framework
|
This class is a 4x4 homogeneous matrix wrapper around numpy. More...
Public Member Functions | |
| def | __init__ |
| def | __deepcopy__ (self, memo) |
| def | copy (self) |
| def | __eq__ |
| def | at |
| def | setRow |
| def | setColumn |
| def | multiply |
| def | preMultiply |
| def | getData (self) |
| Get raw data. More... | |
| def | setToIdentity (self) |
| Create a 4x4 identity matrix. More... | |
| def | invert (self) |
| Invert the matrix. | |
| def | getInverse (self) |
| Return a inverted copy of the matrix. More... | |
| def | getTransposed (self) |
| Return the transpose of the matrix. More... | |
| def | transpose (self) |
| def | translate |
| Translate the matrix based on Vector. More... | |
| def | setByTranslation |
| Set the matrix by translation vector. More... | |
| def | setTranslation |
| def | getTranslation (self) |
| def | rotateByAxis |
| Rotate the matrix based on rotation axis. More... | |
| def | setByRotationAxis |
| Set the matrix based on rotation axis. More... | |
| def | compose |
| Return transformation matrix from sequence of transformations. More... | |
| def | getEuler |
| Return Euler angles from rotation matrix for specified axis sequence. More... | |
| def | setByEuler |
| Return homogeneous rotation matrix from Euler angles and axis sequence. More... | |
| def | scaleByFactor |
| Scale the matrix by factor wrt origin & direction. More... | |
| def | setByScaleFactor |
| Set the matrix by scale by factor wrt origin & direction. More... | |
| def | setByScaleVector |
| def | getScale (self) |
| def | setOrtho |
| Set the matrix to an orthographic projection. More... | |
| def | setPerspective |
| Set the matrix to a perspective projection. More... | |
| def | decompose (self) |
| def | __repr__ (self) |
Static Public Member Functions | |
| def | fromPositionOrientationScale |
This class is a 4x4 homogeneous matrix wrapper around numpy.
Heavily based (in most cases a straight copy with some refactoring) on the excellent 'library' Transformations.py created by Christoph Gohlke.
| def UM.Math.Matrix.Matrix.compose | ( | self, | |
| scale | |||
| ) |
Return transformation matrix from sequence of transformations.
This is the inverse of the decompose_matrix function.
| scale | : vector of 3 scaling factors |
| shear | : list of shear factors for x-y, x-z, y-z axes |
| angles | : list of Euler angles about static x, y, z axes |
| translate | : translation vector along x, y, z axes |
| perspective | : perspective partition of matrix |
| mirror | vector with mirror factors (1 if that axis is not mirrored, -1 if it is) |
| def UM.Math.Matrix.Matrix.decompose | ( | self, | |
| Tuple, | |||
| Vector, | |||
| Matrix, | |||
| Vector, | |||
| Vector | |||
| ) |
SOURCE: https://github.com/matthew-brett/transforms3d/blob/e402e56686648d9a88aa048068333b41daa69d1a/transforms3d/affines.py
Decompose 4x4 homogenous affine matrix into parts.
The parts are translations, rotations, zooms, shears.
This is the same as :func:`decompose` but specialized for 4x4 affines.
Decomposes `A44` into ``T, R, Z, S``, such that::
Smat = np.array([[1, S[0], S[1]],
[0, 1, S[2]],
[0, 0, 1]])
RZS = np.dot(R, np.dot(np.diag(Z), Smat))
A44 = np.eye(4)
A44[:3,:3] = RZS
A44[:-1,-1] = T
The order of transformations is therefore shears, followed by
zooms, followed by rotations, followed by translations.
This routine only works for shape (4,4) matrices
Parameters
----------
A44 : array shape (4,4)
Returns
-------
T : array, shape (3,)
Translation vector
R : array shape (3,3)
rotation matrix
Z : array, shape (3,)
Zoom vector. May have one negative zoom to prevent need for negative
determinant R matrix above
S : array, shape (3,)
Shear vector, such that shears fill upper triangle above
diagonal to form shear matrix (type ``striu``).
| def UM.Math.Matrix.Matrix.getData | ( | self, | |
| numpy, | |||
| ndarray | |||
| ) |
Get raw data.
| def UM.Math.Matrix.Matrix.getEuler | ( | self, | |
| axes | |||
| ) |
Return Euler angles from rotation matrix for specified axis sequence.
axes : One of 24 axis sequences as string or encoded tuple Note that many Euler angle triplets can describe one matrix.
| def UM.Math.Matrix.Matrix.getInverse | ( | self, | |
| Matrix | |||
| ) |
Return a inverted copy of the matrix.
| def UM.Math.Matrix.Matrix.getTransposed | ( | self, | |
| Matrix | |||
| ) |
Return the transpose of the matrix.
| def UM.Math.Matrix.Matrix.rotateByAxis | ( | self, | |
| angle | |||
| ) |
Rotate the matrix based on rotation axis.
| angle | The angle by which matrix needs to be rotated. |
| direction | Axis by which the matrix needs to be rotated about. |
| point | Point where from where the rotation happens. If None, origin is used. |
| def UM.Math.Matrix.Matrix.scaleByFactor | ( | self, | |
| factor | |||
| ) |
Scale the matrix by factor wrt origin & direction.
| factor | The factor by which to scale |
| origin | From where does the scaling need to be done |
| direction | In what direction is the scaling (if None, it's uniform) |
| def UM.Math.Matrix.Matrix.setByEuler | ( | self, | |
| ai | |||
| ) |
Return homogeneous rotation matrix from Euler angles and axis sequence.
| ai | Eulers roll |
| aj | Eulers pitch |
| ak | Eulers yaw |
| axes | One of 24 axis sequences as string or encoded tuple |
| def UM.Math.Matrix.Matrix.setByRotationAxis | ( | self, | |
| angle | |||
| ) |
Set the matrix based on rotation axis.
This overwrites any existing data.
| angle | The angle by which matrix needs to be rotated in radians. |
| direction | Axis by which the matrix needs to be rotated about. |
| point | Point where from where the rotation happens. If None, origin is used. |
| def UM.Math.Matrix.Matrix.setByScaleFactor | ( | self, | |
| factor | |||
| ) |
Set the matrix by scale by factor wrt origin & direction.
This overwrites any existing data
| factor | The factor by which to scale |
| origin | From where does the scaling need to be done |
| direction | In what direction is the scaling (if None, it's uniform) |
| def UM.Math.Matrix.Matrix.setByTranslation | ( | self, | |
| direction | |||
| ) |
Set the matrix by translation vector.
This overwrites any existing data.
| direction | The vector by which the (unit) matrix needs to be translated. |
| def UM.Math.Matrix.Matrix.setOrtho | ( | self, | |
| left | |||
| ) |
Set the matrix to an orthographic projection.
This overwrites any existing data.
| left | The left edge of the projection |
| right | The right edge of the projection |
| top | The top edge of the projection |
| bottom | The bottom edge of the projection |
| near | The near plane of the projection |
| far | The far plane of the projection |
| def UM.Math.Matrix.Matrix.setPerspective | ( | self, | |
| fovy | |||
| ) |
Set the matrix to a perspective projection.
This overwrites any existing data.
| fovy | Field of view in the Y direction |
| aspect | The aspect ratio |
| near | Distance to the near plane |
| far | Distance to the far plane |
| def UM.Math.Matrix.Matrix.setToIdentity | ( | self, | |
| None | |||
| ) |
Create a 4x4 identity matrix.
This overwrites any existing data.
| def UM.Math.Matrix.Matrix.translate | ( | self, | |
| direction | |||
| ) |
Translate the matrix based on Vector.
| direction | The vector by which the matrix needs to be translated. |