# Matrix44 (hwx.common.math)¶

A 4x4 orthonormal Matrix.

## Properties¶

 angles location origin x y z

## Public Methods¶

 copy (self) divide (self, other) format (self, format=’%s’) 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