Describes a three column, three row matrix. This sort of object is used in various vectorial or matrix computations.
More...
|
| gp_Mat () |
| creates a matrix with null coefficients.
|
|
| gp_Mat (const Standard_Real theA11, const Standard_Real theA12, const Standard_Real theA13, const Standard_Real theA21, const Standard_Real theA22, const Standard_Real theA23, const Standard_Real theA31, const Standard_Real theA32, const Standard_Real theA33) |
|
| gp_Mat (const gp_XYZ &theCol1, const gp_XYZ &theCol2, const gp_XYZ &theCol3) |
| Creates a matrix. theCol1, theCol2, theCol3 are the 3 columns of the matrix.
|
|
void | SetCol (const Standard_Integer theCol, const gp_XYZ &theValue) |
| Assigns the three coordinates of theValue to the column of index theCol of this matrix. Raises OutOfRange if theCol < 1 or theCol > 3.
|
|
void | SetCols (const gp_XYZ &theCol1, const gp_XYZ &theCol2, const gp_XYZ &theCol3) |
| Assigns the number triples theCol1, theCol2, theCol3 to the three columns of this matrix.
|
|
void | SetCross (const gp_XYZ &theRef) |
| Modifies the matrix M so that applying it to any number triple (X, Y, Z) produces the same result as the cross product of theRef and the number triple (X, Y, Z): i.e.: M * {X,Y,Z}t = theRef.Cross({X, Y ,Z}) this matrix is anti symmetric. To apply this matrix to the triplet {XYZ} is the same as to do the cross product between the triplet theRef and the triplet {XYZ}. Note: this matrix is anti-symmetric.
|
|
void | SetDiagonal (const Standard_Real theX1, const Standard_Real theX2, const Standard_Real theX3) |
| Modifies the main diagonal of the matrix.
|
|
void | SetDot (const gp_XYZ &theRef) |
| Modifies this matrix so that applying it to any number triple (X, Y, Z) produces the same result as the scalar product of theRef and the number triple (X, Y, Z): this * (X,Y,Z) = theRef.(X,Y,Z) Note: this matrix is symmetric.
|
|
void | SetIdentity () |
| Modifies this matrix so that it represents the Identity matrix.
|
|
void | SetRotation (const gp_XYZ &theAxis, const Standard_Real theAng) |
| Modifies this matrix so that it represents a rotation. theAng is the angular value in radians and the XYZ axis gives the direction of the rotation. Raises ConstructionError if XYZ.Modulus() <= Resolution()
|
|
void | SetRow (const Standard_Integer theRow, const gp_XYZ &theValue) |
| Assigns the three coordinates of Value to the row of index theRow of this matrix. Raises OutOfRange if theRow < 1 or theRow > 3.
|
|
void | SetRows (const gp_XYZ &theRow1, const gp_XYZ &theRow2, const gp_XYZ &theRow3) |
| Assigns the number triples theRow1, theRow2, theRow3 to the three rows of this matrix.
|
|
void | SetScale (const Standard_Real theS) |
| Modifies the matrix so that it represents a scaling transformation, where theS is the scale factor. :
|
|
void | SetValue (const Standard_Integer theRow, const Standard_Integer theCol, const Standard_Real theValue) |
| Assigns <theValue> to the coefficient of row theRow, column theCol of this matrix. Raises OutOfRange if theRow < 1 or theRow > 3 or theCol < 1 or theCol > 3.
|
|
gp_XYZ | Column (const Standard_Integer theCol) const |
| Returns the column of theCol index. Raises OutOfRange if theCol < 1 or theCol > 3.
|
|
Standard_Real | Determinant () const |
| Computes the determinant of the matrix.
|
|
gp_XYZ | Diagonal () const |
| Returns the main diagonal of the matrix.
|
|
gp_XYZ | Row (const Standard_Integer theRow) const |
| returns the row of theRow index. Raises OutOfRange if theRow < 1 or theRow > 3
|
|
const Standard_Real & | Value (const Standard_Integer theRow, const Standard_Integer theCol) const |
| Returns the coefficient of range (theRow, theCol) Raises OutOfRange if theRow < 1 or theRow > 3 or theCol < 1 or theCol > 3.
|
|
const Standard_Real & | operator() (const Standard_Integer theRow, const Standard_Integer theCol) const |
|
Standard_Real & | ChangeValue (const Standard_Integer theRow, const Standard_Integer theCol) |
| Returns the coefficient of range (theRow, theCol) Raises OutOfRange if theRow < 1 or theRow > 3 or theCol < 1 or theCol > 3.
|
|
Standard_Real & | operator() (const Standard_Integer theRow, const Standard_Integer theCol) |
|
Standard_Boolean | IsSingular () const |
| The Gauss LU decomposition is used to invert the matrix (see Math package) so the matrix is considered as singular if the largest pivot found is lower or equal to Resolution from gp.
|
|
void | Add (const gp_Mat &theOther) |
|
void | operator+= (const gp_Mat &theOther) |
|
gp_Mat | Added (const gp_Mat &theOther) const |
| Computes the sum of this matrix and the matrix theOther for each coefficient of the matrix : <me>.Coef(i,j) + <theOther>.Coef(i,j)
|
|
gp_Mat | operator+ (const gp_Mat &theOther) const |
|
void | Divide (const Standard_Real theScalar) |
|
void | operator/= (const Standard_Real theScalar) |
|
gp_Mat | Divided (const Standard_Real theScalar) const |
| Divides all the coefficients of the matrix by Scalar.
|
|
gp_Mat | operator/ (const Standard_Real theScalar) const |
|
void | Invert () |
|
gp_Mat | Inverted () const |
| Inverses the matrix and raises if the matrix is singular.
|
|
gp_Mat | Multiplied (const gp_Mat &theOther) const |
| Computes the product of two matrices <me> * <Other>
|
|
gp_Mat | operator* (const gp_Mat &theOther) const |
|
void | Multiply (const gp_Mat &theOther) |
| Computes the product of two matrices <me> = <Other> * <me>.
|
|
void | operator*= (const gp_Mat &theOther) |
|
void | PreMultiply (const gp_Mat &theOther) |
|
gp_Mat | Multiplied (const Standard_Real theScalar) const |
|
gp_Mat | operator* (const Standard_Real theScalar) const |
|
void | Multiply (const Standard_Real theScalar) |
| Multiplies all the coefficients of the matrix by Scalar.
|
|
void | operator*= (const Standard_Real theScalar) |
|
void | Power (const Standard_Integer N) |
|
gp_Mat | Powered (const Standard_Integer theN) const |
| Computes <me> = <me> * <me> * .......* <me>, theN time. if theN = 0 <me> = Identity if theN < 0 <me> = <me>.Invert() *...........* <me>.Invert(). If theN < 0 an exception will be raised if the matrix is not inversible.
|
|
void | Subtract (const gp_Mat &theOther) |
|
void | operator-= (const gp_Mat &theOther) |
|
gp_Mat | Subtracted (const gp_Mat &theOther) const |
| cOmputes for each coefficient of the matrix : <me>.Coef(i,j) - <theOther>.Coef(i,j)
|
|
gp_Mat | operator- (const gp_Mat &theOther) const |
|
void | Transpose () |
|
gp_Mat | Transposed () const |
| Transposes the matrix. A(j, i) -> A (i, j)
|
|
void | DumpJson (Standard_OStream &theOStream, Standard_Integer theDepth=-1) const |
| Dumps the content of me into the stream.
|
|
Describes a three column, three row matrix. This sort of object is used in various vectorial or matrix computations.