[frames | no frames]

# The Matrix Object

Attention: Quaternion data can be wrapped or non-wrapped. When a object is wrapped it means that the object will give you direct access to the data inside of blender. Modification of this object will directly change the data inside of blender. To copy a wrapped object you need to use the object's constructor. If you copy and object by assignment you will not get a second copy but a second reference to the same data. Only certain functions will return wrapped data. This will be indicated in the method description. Example:

```   wrappedObject = Object.getAttribute() #this is wrapped data
print wrappedObject.wrapped #prints 'True'
copyOfObject = Object(wrappedObject) #creates a copy of the object
secondPointer = wrappedObject #creates a second pointer to the same data
print wrappedObject.attribute #prints '5'
secondPointer.attribute = 10
print wrappedObject.attribute #prints '10'
print copyOfObject.attribute #prints '5'
```

Notes:

• Math can be performed on Matrix classes
• mat + mat
• mat - mat
• mat * float/int
• mat * vec
• mat * mat
• Comparison operators can be done:
• ==, != test numeric values within epsilon
• You can access a quaternion object like a 2d sequence
• x = matrix[0][1]
• vector = matrix[2]

Method Summary
New matrix object. ```__init__(list1, list2, list3, list4)```
Create a new matrix object from initialized values.
`copy()`
Returns a copy of this matrix
float `determinant()`
Return the determinant of a matrix.
`identity()`
Set the matrix to the identity matrix.
`invert()`
Set the matrix to its inverse.
`resize4x4()`
Resize the matrix to by 4x4
Matrix object. `rotationPart()`
Return the 3d submatrix corresponding to the linear term of the embedded affine transformation in 3d.
Vector object. `scalePart()`
Return a the scale part of a 3x3 or 4x4 matrix.
Euler object `toEuler()`
Return an Euler representation of the rotation matrix (3x3 or 4x4 matrix only).
Quaternion object `toQuat()`
Return a quaternion representation of the rotation matrix
Vector object. `translationPart()`
Return a the translation part of a 4 row matrix.
`transpose()`
Set the matrix to its transpose.
`zero()`
Set all matrix values to 0.

Instance Variable Summary
`colSize`: The column size of the matrix.
`rowSize`: The row size of the matrix.
`wrapped`: Whether or not this object wrapps internal data

Method Details

### __init__(list1=None, list2=None, list3=None, list4=None)(Constructor)

Create a new matrix object from initialized values.

Example:
``` matrix = Matrix([1,1,1],[0,1,0],[1,0,0])
matrix = Matrix(mat)
matrix = Matrix(seq1, seq2, vector)
```
Parameters:
`list1` - A 2d,3d or 4d list.
(type=PyList of int/float)
`list2` - A 2d,3d or 4d list.
(type=PyList of int/float)
`list3` - A 2d,3d or 4d list.
(type=PyList of int/float)
`list4` - A 2d,3d or 4d list.
(type=PyList of int/float)
Returns:
It depends wheter a parameter was passed:
• (list1, etc.): Matrix object initialized with the given values;
• (): An empty 3 dimensional matrix.

(type=New matrix object.)

### copy()

Returns a copy of this matrix
Returns:
a copy of itself

### determinant()

Return the determinant of a matrix.

See http://en.wikipedia.org/wiki/Determinant
Returns:
Return a the determinant of a matrix.
(type=float)

### identity()

Set the matrix to the identity matrix. An object with zero location and rotation, a scale of 1, will have an identity matrix.

See http://en.wikipedia.org/wiki/Identity_matrix
Returns:
an instance of itself

### invert()

Set the matrix to its inverse.

See http://en.wikipedia.org/wiki/Inverse_matrix
Returns:
an instance of itself.
Raises:
`ValueError` - When matrix is singular.

### resize4x4()

Resize the matrix to by 4x4
Returns:
an instance of itself.

### rotationPart()

Return the 3d submatrix corresponding to the linear term of the embedded affine transformation in 3d. This matrix represents rotation and scale. Note that the (4,4) element of a matrix can be used for uniform scaling, too.
Returns:
Return the 3d matrix for rotation and scale.
(type=Matrix object.)

### scalePart()

Return a the scale part of a 3x3 or 4x4 matrix.
Returns:
Return a the scale of a matrix.
(type=Vector object.)

Note: This method does not return negative a scale on any axis because it is not possible to obtain this data from the matrix alone.

### toEuler()

Return an Euler representation of the rotation matrix (3x3 or 4x4 matrix only).
Returns:
Euler representation of the rotation matrix.
(type=Euler object)

### toQuat()

Return a quaternion representation of the rotation matrix
Returns:
Quaternion representation of the rotation matrix
(type=Quaternion object)

### translationPart()

Return a the translation part of a 4 row matrix.
Returns:
Return a the translation of a matrix.
(type=Vector object.)

### transpose()

Set the matrix to its transpose.

See http://en.wikipedia.org/wiki/Transpose
Returns:
None

### zero()

Set all matrix values to 0.
Returns:
an instance of itself

Instance Variable Details

### colSize

The column size of the matrix.

### rowSize

The row size of the matrix.

### wrapped

Whether or not this object wrapps internal data

 Generated by Epydoc 2.1 on Sun Feb 11 13:30:19 2007 http://epydoc.sf.net