c4d.Matrix¶
-
class
c4d.
Matrix
¶ See also
Warning
The
Matrix
type does not support the function copy.copy().Instead use the
Matrix
constructorimport c4d def main(): if op is None: return mat = op.GetMg() print "Matrix:", id(mat), mat ref = mat print "Reference:", id(ref), ref copy = c4d.Matrix(mat) print "Copy:", id(copy), copy if __name__=='__main__': main()
Attributes
Methods Signatures
Matrix.__init__(self[, off, v1, v2, v3]) |
Initializes a new
Matrix . |
Matrix.__str__(self) |
Returns the Matrix as string. Called if str() is wrapped around an instance of Matrix . (See __str__) |
Matrix.__add__(self, other) |
Adds two matrices. |
Matrix.__sub__(self, other) |
Subtracts two matrices. |
Matrix.__mul__(self, other) |
Multiplies a matrix or vector by the matrix. Can also scale each vector of the matrix by a scalar.
|
Matrix.__div__(self, other) |
Divides each element in the matrix by a scalar. |
Matrix.__invert__(self) |
Inverts the matrix. |
Matrix.__eq__(self, other) |
Checks if two matrices are equal. |
Matrix.__ne__(self, other) |
Checks if two matrices are not equal. |
Matrix.__ge__(self, other) |
raise NotImplemented. |
Matrix.__gt__(self, other) |
raise NotImplemented. |
Matrix.__le__(self, other) |
raise NotImplemented. |
Matrix.__lt__(self, other) |
raise NotImplemented. |
Matrix.Normalize(self) |
Normalizes the matrix. |
Matrix.GetNormalized(self) |
Calculates the normalized matrix. |
Matrix.Mul(self, v) |
Multiply the vector by the matrix, this includes any translation in the matrix. |
Matrix.MulV(self, v) |
Multiply the vector by the matrix, this does not include any translation. |
Matrix.GetTensorMatrix(self) |
Returns the matrix’ tensor. |
Matrix.Scale(self, v) |
Performs uniform matrix scaling (float) or non-uniform matrix scaling (vector). |
Matrix.GetScale(self) |
Returns the scale stored by the matrix. |
Methods Documentation
-
Matrix.
__init__
(self, off=Vector(0), v1=Vector(1, 0, 0), v2=Vector(0, 1, 0), v3=Vector(0, 0, 1))¶ - Initializes a new
Matrix
.All arguments are optional so it is possible to create a new matrix without any arguments. All components are simply set to:- off = Vector(0)
- v1 = Vector(1,0,0)
- v2 = Vector(0,1,0)
- v3 = Vector(0,0,1)
mat = c4d.Matrix() # => Matrix(v1: (1, 0, 0); v2: (0, 1, 0); v3: (0, 0, 1); off: (0, 0, 0)) mat = c4d.Matrix() mat.off = c4d.Vector(100,0,0) v1 = c4d.Vector(3) v2 = c4d.Vector(12,4,9.3) v3 = c4d.Vector(9,80,3) off = c4d.Vector(v1+v2) mat = c4d.Matrix(off,v1,v2,v3)
Parameters: - off (c4d.Vector) – The translation vector.
- v1 (c4d.Vector) – The X axis of a left-handed coordinate system.
- v2 (c4d.Vector) – The Y axis of a left-handed coordinate system.
- v3 (c4d.Vector) – The Z axis of a left-handed coordinate system.
Return type: Returns: A new matrix.
-
Matrix.
__str__
(self)¶ Returns the Matrix as string. Called if str() is wrapped around an instance of
Matrix
. (See __str__)v1 = c4d.Vector(3) v2 = c4d.Vector(12,4,9.3) v3 = c4d.Vector(9,80,3) off = c4d.Vector(v1+v2) mat = c4d.Matrix(off,v1,v2,v3) print mat # => Matrix(v1: (3, 3, 3); v2: (12, 4, 9.3); v3: (12, 4, 9.3); off: (15, 7, 12.3))
Return type: str Returns: The Vector as string.
-
Matrix.
__add__
(self, other)¶ Adds two matrices.
Parameters: other (c4d.Matrix) – The other matrix. Return type: c4d.Matrix Returns: The result matrix.
-
Matrix.
__sub__
(self, other)¶ Subtracts two matrices.
Parameters: other (c4d.Matrix) – The other matrix. Return type: c4d.Matrix Returns: The result matrix.
-
Matrix.
__mul__
(self, other)¶ - Multiplies a matrix or vector by the matrix. Can also scale each vector of the matrix by a scalar.If both objects are of type
Matrix
, multiplies the left hand matrix by the right hand matrix.If the left object is of typeMatrix
and the right one of typeVector
, multiplies the vector by the matrix including any translation in the matrix.If the left object is of typeVector
and the right one of typeMatrix
, multiplies the vector by the matrix including any translation in the matrix.If the right object is a number, multiplies each vector of the matrix by it.Parameters: other (Union[c4d.Vector, int, float]) – The other argument. Return type: c4d.Vector Returns: The result matrix or vector.
-
Matrix.
__div__
(self, other)¶ Divides each element in the matrix by a scalar.
Parameters: other (float) – The scalar. Return type: c4d.Matrix Returns: The result matrix.
-
Matrix.
__invert__
(self)¶ Inverts the matrix.
Return type: c4d.Matrix Returns: The inverted matrix.
-
Matrix.
__eq__
(self, other)¶ Checks if two matrices are equal.
Parameters: other (c4d.Matrix) – The other matrix. Return type: bool Returns: True if matrices are equal.
-
Matrix.
__ne__
(self, other)¶ Checks if two matrices are not equal.
Parameters: other (c4d.Matrix) – The other matrix. Return type: bool Returns: True if matrices are not equal.
-
Matrix.
__ge__
(self, other)¶ raise NotImplemented.
-
Matrix.
__gt__
(self, other)¶ raise NotImplemented.
-
Matrix.
__le__
(self, other)¶ raise NotImplemented.
-
Matrix.
__lt__
(self, other)¶ raise NotImplemented.
-
Matrix.
Normalize
(self)¶ Normalizes the matrix.
-
Matrix.
GetNormalized
(self)¶ Calculates the normalized matrix.
Return type: c4d.Matrix Returns: The normalized matrix.
-
Matrix.
Mul
(self, v)¶ Multiply the vector by the matrix, this includes any translation in the matrix.
Parameters: v (c4d.Vector) – The vector to multiply. Return type: c4d.Vector Returns: The result vector.
-
Matrix.
MulV
(self, v)¶ Multiply the vector by the matrix, this does not include any translation.
Parameters: v (c4d.Vector) – The vector to multiply. Return type: c4d.Vector Returns: The result vector.
-
Matrix.
GetTensorMatrix
(self)¶ Returns the matrix’ tensor.
Return type: c4d.Matrix Returns: The tensor matrix.
-
Matrix.
Scale
(self, v)¶ Performs uniform matrix scaling (float) or non-uniform matrix scaling (vector).
Parameters: v (Union[c4d.Vector, float]) – The scaling scalar.
-
Matrix.
GetScale
(self)¶ Returns the scale stored by the matrix.
Returns: The scale. Return type: c4d.Vector