本文整理汇总了C++中Matrix3::getIs2D方法的典型用法代码示例。如果您正苦于以下问题:C++ Matrix3::getIs2D方法的具体用法?C++ Matrix3::getIs2D怎么用?C++ Matrix3::getIs2D使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Matrix3
的用法示例。
在下文中一共展示了Matrix3::getIs2D方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: mT
// Form the triple product R.M.R^T in one step (R need not be a rotation matrix)
Matrix3 Matrix3::RTMR(Matrix3 &R) const
{ if(is2D && R.getIs2D())
{ Matrix3 mT(R(0,0)*R(0,0)*m[0][0] + R(1,0)*R(0,0)*m[1][0] + R(0,0)*R(1,0)*m[0][1] + R(1,0)*R(1,0)*m[1][1],
R(0,0)*R(0,1)*m[0][0] + R(1,0)*R(0,1)*m[1][0] + R(0,0)*R(1,1)*m[0][1] + R(1,0)*R(1,1)*m[1][1],
R(0,1)*R(0,0)*m[0][0] + R(1,1)*R(0,0)*m[1][0] + R(0,1)*R(1,0)*m[0][1] + R(1,1)*R(1,0)*m[1][1],
R(0,1)*R(0,1)*m[0][0] + R(1,1)*R(0,1)*m[1][0] + R(0,1)*R(1,1)*m[0][1] + R(1,1)*R(1,1)*m[1][1],
R(2,2)*R(2,2)*m[2][2]);
return mT;
}
else
{ Matrix3 mT;
int i,j;
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
{ double mij = m[i][j];
mT(0,0) += R(i,0)*R(j,0)*mij;
mT(0,1) += R(i,0)*R(j,1)*mij;
mT(0,2) += R(i,0)*R(j,2)*mij;
mT(1,0) += R(i,1)*R(j,0)*mij;
mT(1,1) += R(i,1)*R(j,1)*mij;
mT(1,2) += R(i,1)*R(j,2)*mij;
mT(2,0) += R(i,2)*R(j,0)*mij;
mT(2,1) += R(i,2)*R(j,1)*mij;
mT(2,2) += R(i,2)*R(j,2)*mij;
}
}
mT.setIs2D(false);
return mT;
}
}
示例2: mat
// set to other matrix
void Matrix3::set(Matrix3 mat)
{
m[0][0] = mat(0,0);
m[0][1] = mat(0,1);
m[1][0] = mat(1,0);
m[1][1] = mat(1,1);
m[2][2] = mat(2,2);
if(mat.getIs2D())
{ if(!is2D)
{ is2D = true;
m[0][2] = 0.;
m[1][2] = 0.;
m[2][0] = 0.;
m[2][1] = 0.;
}
}
else
{ is2D = false;
m[0][2] = mat(0,2);
m[1][2] = mat(1,2);
m[2][0] = mat(2,0);
m[2][1] = mat(2,1);
}
}