CMatrix CMatrix::operator* (const CMatrix& m) const { CMatrix retM(rows,m.cols); for (int i=0;i<rows;i++) { for (int j=0;j<m.cols;j++) { retM(i,j)=0.0f; for (int k=0;k<cols;k++) retM(i,j)+=( (*this)(i,k)*m(k,j) ); } } return(retM); }
CMatrix CMatrix::operator* (const C3X3Matrix& m) const { CMatrix retM(rows,3); for (int i=0;i<rows;i++) { for (int j=0;j<3;j++) { retM(i,j)=0.0f; for (int k=0;k<3;k++) retM(i,j)+=( (*this)(i,k)*m.axis[j](k) ); } } return(retM); }
CMatrix CMatrix::operator/ (float d) const { CMatrix retM(rows,cols); for (int i=0;i<(rows*cols);i++) retM.data[i]=data[i]/d; return(retM); }
CMatrix CMatrix::operator- (const CMatrix& m) const { CMatrix retM(rows,cols); for (int i=0;i<(rows*cols);i++) retM.data[i]=data[i]-m.data[i]; return(retM); }
C4X4Matrix C4X4Matrix::operator* (const CMatrix& m) const { C4X4Matrix retM((*this)*C4X4Matrix(m)); return(retM); }
C6X6Matrix C6X6Matrix::operator- (const C6X6Matrix& m) const { C6X6Matrix retM(M[0][0]-m.M[0][0],M[0][1]-m.M[0][1],M[1][0]-m.M[1][0],M[1][1]-m.M[1][1]); return(retM); }