70 void setCol(
const int Col,
const XYZ& Value);
73 void setCols(
const XYZ& Col1,
const XYZ& Col2,
const XYZ& Col3);
83 void setCross(
const XYZ& Ref);
90 void setDiagonal(
const double X1,
const double X2,
const double X3);
97 void setDot(
const XYZ& Ref);
101 bool isIdentity()
const;
107 void setRotation(
const XYZ& Axis,
const double Ang);
110 void setRow(
const int Row,
const XYZ& Value);
113 void setRows(
const XYZ& Row1,
const XYZ& Row2,
const XYZ& Row3);
120 void setScale(
const double S);
123 void setValue(
const int Row,
const int Col,
const double Value);
126 XYZ column(
const int Col)
const;
128 double determinant()
const;
130 XYZ diagonal()
const;
133 XYZ row(
const int Row)
const;
136 const double& value(
const int Row,
const int Col)
const;
138 const double&
operator()(
const int Row,
const int Col)
const {
return value(Row, Col); }
142 double& changeValue(
const int Row,
const int Col);
144 double&
operator()(
const int Row,
const int Col) {
return changeValue(Row, Col); }
149 bool isSingular()
const;
151 void add(
const Mat& Other);
158 Mat added(
const Mat& Other)
const;
162 void divide(
const double Scalar);
167 Mat divided(
const double Scalar)
const;
183 Mat inverted()
const;
186 Mat multiplied(
const Mat& Other)
const;
191 void multiply(
const Mat& Other);
193 void operator*=(
const Mat& Other) { multiply(Other); }
195 void preMultiply(
const Mat& Other);
197 Mat multiplied(
const double Scalar)
const;
199 Mat operator*(
const double Scalar)
const {
return multiplied(Scalar); }
202 void multiply(
const double Scalar);
204 void operator*=(
const double Scalar) { multiply(Scalar); }
206 void power(
const int N);
213 Mat powered(
const int N)
const;
215 void subtract(
const Mat& Other);
221 Mat subtracted(
const Mat& Other)
const;
225 bool operator==(
const Mat& Other)
const;
232 Mat transposed()
const;
235 friend class CA_Transfrom;
236 friend class gp_GTrsf;
double & operator()(const int Row, const int Col)
Definition: Mat.h:144
const double & operator()(const int Row, const int Col) const
Definition: Mat.h:138
void operator+=(const Mat &Other)
Definition: Mat.h:153
#define GEOM_EXPORT
Definition: geom_defines.h:8
bool operator!=(const Mat &Other) const
Definition: Mat.h:227
void operator/=(const double Scalar)
Definition: Mat.h:164
void operator-=(const Mat &Other)
Definition: Mat.h:217
Geom::Vec operator *(const double Scalar, const Geom::Vec &V)
Definition: Vec.h:312
Mat operator+(const Mat &Other) const
Definition: Mat.h:160
Mat operator-(const Mat &Other) const
Definition: Mat.h:223
Mat operator/(const double Scalar) const
Definition: Mat.h:169