Matrix44 (hwx.common.math)¶
A 4x4 orthonormal Matrix.
Properties¶
Public Methods¶
copy (self)
divide (self, other)
format (self, format=’%s’)
getAxisAndAngleOfRotation (self)
getDeterminant (self)
getEulerAngles (self, degrees=False)
getTranslation (self)
invert (self)
isIdentity (self)
multiply (self, other)
multiplyPoint (self, x, y=None, z=None)
multiplyVector (self, x, y=None, z=None)
orientFromAxes (self, axes, dir1, dir2=(1, 0, 0))
orientFromEulerAngles (self, e1, e2=None, e3=None, degrees=False)
orientFromEulerParameters (self, e0, e1=None, e2=None, e3=None)
orthogonalize (self)
pt (self, x, y=None, z=None)
pts (self, pts)
rotate (self, axis, angle, degrees=True)
rotateAroundAxis (self, axis, angle, degrees=True)
rotx (self, angle, degrees=True)
roty (self, angle, degrees=True)
rotz (self, angle, degrees=True)
scale (self, x, y=None, z=None)
setTranslation (self, x, y=None, z=None)
translate (self, x=0, y=None, z=None)
transpose (self)
update (self, other)
vec (self, x, y=None, z=None)
zeroSmallValues (self, zero=1e-10)
zp (self, pt1, pt2=None)
Property Details¶
- property angles¶
The Euler angles (Body313) in radians.
- property location¶
Returns or sets the location/origin value.
- property origin¶
Returns or sets the location/origin value.
- property x¶
The vector along the x-axis.
- property y¶
The vector along the y-axis.
- property z¶
The vector along the z-axis.
Method Details¶
- copy(self)¶
Creates a copy of self.
- returns
The newly created Matrix44.
- rtype
Matrix44
- divide(self, other)¶
Returns the result of the multiplication with the inverse of other.
- param other
The Matrix44 to inverse and multiply with.
- type other
Matrix44
- returns
The result of the multiplication with the inverse.
- rtype
Matrix44
- format(self, format='%s')¶
Formats as a string.
- param format
The format style to use.
- type format
str
- returns
A string represantation of the instance Matrix44 object on which it was called.
- rtype
str
- getAxisAndAngleOfRotation(self)¶
Returns the axis and angle from the rotation matrix
- getDeterminant(self)¶
Returns the matrix determinant.
- getEulerAngles(self, degrees=False)¶
Returns the Euler angles.
- param degrees
Determines if the angle values are in degrees or not.
- type degrees
bool
- returns
The Euler angles.
- rtype
list
- getTranslation(self)¶
Returns the position as a Point.
- invert(self)¶
Computes the inverse.
- returns
The inverse of the instance Matrix44 object on which it was called.
- rtype
Matrix44
- isIdentity(self)¶
Returns True if self is the identity matrix, False otherwise.
- multiply(self, other)¶
Multiplies with other.
- param other
The other to multiply with.
- type other
float | Point | Vector | Matrix44
- returns
The result of the multiplication.
- rtype
Matrix44 | Vector | Point
- multiplyPoint(self, x, y=None, z=None)¶
Multiplies with a Point.
Points are represented as mathematical column points and have a one in the fourth position, which includes translation operations.
- param x
An itetable of 3 or the x value of a Point.
- type x
Point | list[float] | float
- param y
The y value of a Point.
- type y
float
- param z
The z value of a Point.
- type z
float
- returns
The result of the multiplication.
- rtype
Point
- multiplyVector(self, x, y=None, z=None)¶
Multiplies with the Vector specified with x, y, z.
Vectors are represented as mathematical column vectors and have a zero in the fourth position, which does not include translation operations.
- param x
An itetable of 3 or the x value of a Vector.
- type x
Vector | list[float] | float
- param y
The y value of a Vector.
- type y
float
- param z
The z value of a Vector.
- type z
float
- returns
The result of the multiplication.
- rtype
Vector
- orientFromAxes(self, axes, dir1, dir2=(1, 0, 0))¶
Orients with the specified axes.
- param axes
The axis to orient by: Valid choices are ‘x’, ‘y’, ‘z’, ‘xy’, ‘xz’, ‘yx’, ‘yz’, ‘zx’, ‘zy’.
- type axes
str
- param dir1
The vector for the first axis.
- type dir1
Vector | list[float]
- param dir2
The vector for the second axis.
- type dir2
Vector | list[float]
- raises RuntimeError
In case of unsupported axes specification
- returns
A reference to the instance Matrix44 object on which it was called.
- rtype
Matrix44
- orientFromEulerAngles(self, e1, e2=None, e3=None, degrees=False)¶
Orients with the specified Euler angles.
- param e1
Rotation around x-axis.
- type e1
float
- param e2
Rotation around y-axis.
- type e2
float
- param e3
Rotation around z-axis.
- type e3
float
- param degrees
Determines if the angle values are in degrees or not.
- type degrees
bool
- returns
A reference to the instance Matrix44 object on which it was called.
- rtype
Matrix44
- orientFromEulerParameters(self, e0, e1=None, e2=None, e3=None)¶
Orients with the specified Euler parameters.
- param e0
Euler parameter.
- type e0
float
- param e1
Euler parameter.
- type e1
float
- param e2
Euler parameter.
- type e2
float
- param e3
Euler parameter.
- type e3
float
- returns
A reference to the instance Matrix44 object on which it was called.
- rtype
Matrix44
- orthogonalize(self)¶
Orthogonalizes the axes (x, y, z).
- raises RuntimeError
If Matrix44 can not be orthogonalized.
- returns
A Matrix44 with x, y, z being orthogonal.
- rtype
Matrix44
- pt(self, x, y=None, z=None)¶
Multiplies with a Point.
Points are represented as mathematical column points and have a one in the fourth position, which includes translation operations.
- param x
An itetable of 3 or the x value of a Point.
- type x
Point | list[float] | float
- param y
The y value of a Point.
- type y
float
- param z
The z value of a Point.
- type z
float
- returns
The result of the multiplication.
- rtype
Point
- pts(self, pts)¶
Returns the result of multiplying each Point in the specified list of Points with self.
- param pts
A Point (or list).
- type pts
Point | list[float]
- returns
The result of the pieswise multiplication.
- rtype
list[Point]
- rotate(self, axis, angle, degrees=True)¶
Rotates around the specified axis.
This is a body rotation.
- param axis
The rotation axis. Valid choices are “x”, “y”, “z” or any Vector.
- type axis
Vector | str
- param angle
The rotation angle.
- type angle
float
- param degrees
Determines if angles is in degrees or not.
- type degrees
bool
- returns
A newly created Matrix44.
- rtype
Matrix44
- rotateAroundAxis(self, axis, angle, degrees=True)¶
Rotates around the axis.
This is a body rotation.
- param axis
The rotation axis.
- type axis
Vector
- param angle
The rotation angle.
- type angle
float
- param degrees
Determines if angles is in degrees or not.
- type degrees
bool
- returns
A newly created Matrix44.
- rtype
Matrix44
- rotx(self, angle, degrees=True)¶
Rotates around the x-axis.
This is a body rotation.
- param angle
The rotation angle.
- type angle
float
- param degrees
Determines if angles is in degrees or not.
- type degrees
bool
- returns
A newly created Matrix44.
- rtype
Matrix44
- roty(self, angle, degrees=True)¶
Rotates around the y-axis.
This is a body rotation.
- param angle
The rotation angle.
- type angle
float
- param degrees
Determines if angles is in degrees or not.
- type degrees
bool
- returns
A newly created Matrix44.
- rtype
Matrix44
- rotz(self, angle, degrees=True)¶
Rotates around the z-axis.
This is a body rotation.
- param angle
The rotation angle.
- type angle
float
- param degrees
Determines if angles is in degrees or not.
- type degrees
bool
- returns
A newly created Matrix44.
- rtype
Matrix44
- scale(self, x, y=None, z=None)¶
Scales by the specified amount in x, y, z.
If y is None, x is assumed to be a list of 3 floats.
- param x
The factor to multiply the ‘x’ vector with.
- type x
float
- param y
The factor to multiply the ‘y’ vector with.
- type y
float
- param z
The factor to multiply the ‘z’ vector with.
- type z
float
- returns
A newly created Matrix44.
- rtype
Matrix44
- setTranslation(self, x, y=None, z=None)¶
Sets the position as a Point.
If y is None, x is assumed to be a list of 3 floats.
- param x
The vector to set the ‘x’ vector.
- type x
float
- param y
The vector to set the ‘y’ vector.
- type y
float
- param z
The vector to set the ‘z’ vector.
- type z
float
- returns
A reference to the instance Matrix44 object on which it was called.
- rtype
Matrix44
- translate(self, x=0, y=None, z=None)¶
Translates by the specified distance each x, y, z vector.
If y is None, x is assumed to be a list of 3 floats.
- param x
The distance to translate the ‘x’ vector.
- type x
float
- param y
The distance to translate the ‘y’ vector.
- type y
float
- param z
The distance to translate the ‘z’ vector.
- type z
float
- returns
A reference to the instance Matrix44 object on which it was called.
- rtype
Matrix44
- transpose(self)¶
Returns the transpose.
- update(self, other)¶
Copies the data from other to self.
- param other
The Matrix44 to copy values from.
- type other
Matrix44
- returns
A reference to the instance Matrix44 object on which it was called.
- rtype
Matrix44
- vec(self, x, y=None, z=None)¶
Multiplies with the Vector specified with x, y, z.
Vectors are represented as mathematical column vectors and have a zero in the fourth position, which does not include translation operations.
- param x
An itetable of 3 or the x value of a Vector.
- type x
Vector | list[float] | float
- param y
The y value of a Vector.
- type y
float
- param z
The z value of a Vector.
- type z
float
- returns
The result of the multiplication.
- rtype
Vector
- zeroSmallValues(self, zero=1e-10)¶
Sets all components that are less than the specified value to zero.
- param zero
The tolerance on what to zero.
- type zero
float
- returns
A reference to the instance Matrix44 object on which it was called.
- rtype
Matrix44
- zp(self, pt1, pt2=None)¶
Depricated