本文整理汇总了C++中btMatrix3x3::getRow方法的典型用法代码示例。如果您正苦于以下问题:C++ btMatrix3x3::getRow方法的具体用法?C++ btMatrix3x3::getRow怎么用?C++ btMatrix3x3::getRow使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类btMatrix3x3
的用法示例。
在下文中一共展示了btMatrix3x3::getRow方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Transpose
static btMatrix3x3 Transpose(btMatrix3x3 &in)
{
btVector3 row0 = in.getRow(0);
btVector3 row1 = in.getRow(1);
btVector3 row2 = in.getRow(2);
btVector3 col0 = btAssign128(row0.x(), row1.x(), row2.x(), 0);
btVector3 col1 = btAssign128(row0.y(), row1.y(), row2.y(), 0);
btVector3 col2 = btAssign128(row0.z(), row1.z(), row2.z(), 0);
return btMatrix3x3(col0, col1, col2);
}
示例2:
void virtuose::Matrix3ToArray(btMatrix3x3 m, float *to) {
to[0] = m.getRow(0).getX();
to[1] = m.getRow(0).getZ();
to[2] = m.getRow(0).getY();
to[3] = m.getRow(2).getX();
to[4] = m.getRow(2).getZ();
to[5] = m.getRow(2).getY();
to[6] = m.getRow(1).getZ();
to[7] = m.getRow(1).getX();
to[8] = m.getRow(1).getY();
}
示例3: setRowMajorRotationMatrix
/** Set the orientation (forward and up vectors) to the
* provided rotation matrix
* @param matrix matrix to use to set new orientation
* @note this method is provided to ease performance interactions with
* the physics library
*/
void Position::setRowMajorRotationMatrix(const btMatrix3x3& matrix)
{
btVector3 upV = matrix.getRow(1);
btVector3 forwardV = matrix.getRow(2);
// fill in y axis, second row
up.set(upV.getX(), upV.getY(), upV.getZ());
// fill in z axis, thrid row
forward.set(forwardV.getX(), forwardV.getY(), forwardV.getZ());
}
示例4: basisToNode
QDomElement SimDomElement::basisToNode(QDomDocument &doc, const btMatrix3x3 mx)
{
QDomElement matrix = doc.createElement( "matrix" );
for(int i=0;i<3;i++)
matrix.appendChild(vectorToNode(doc, mx.getRow(i)));
return matrix;
}
示例5: fabs
static int operator!= ( const btMatrix3x3 &a, const btMatrix3x3 &b )
{
int i;
btVector3 av3, bv3;
for(i=0; i<3; i++)
{
av3 = a.getRow(i);
bv3 = b.getRow(i);
if( fabs(av3.m_floats[0] - bv3.m_floats[0]) +
fabs(av3.m_floats[1] - bv3.m_floats[1]) +
fabs(av3.m_floats[2] - bv3.m_floats[2]) > FLT_EPSILON * 4)
return 1;
}
return 0;
}
示例6:
static int operator!= ( const btMatrix3x3 &a, const btMatrix3x3 &b )
{
if( a.getRow(0) != b.getRow(0) )
return 1;
if( a.getRow(1) != b.getRow(1) )
return 1;
if( a.getRow(2) != b.getRow(2) )
return 1;
return 0;
}
示例7:
static int operator!= ( const btMatrix3x3 &a, const btMatrix3x3 &b )
{
if( a.getRow(0) != b.getRow(0) )
{
if (!fuzzyEqualSlow(a.getRow(0),b.getRow(0)))
{
return 1;
}
}
if( a.getRow(1) != b.getRow(1) )
{
if( !fuzzyEqualSlow(a.getRow(1),b.getRow(1)) )
return 1;
}
if( a.getRow(2) != b.getRow(2) )
{
if( !fuzzyEqualSlow(a.getRow(2),b.getRow(2)) )
{
return 1;
}
}
return 0;
}
示例8:
Geometry::Matrix3x3 toMatrix3x3(const btMatrix3x3& btm){
Geometry::Matrix3x3 tmp;
for(int i = 0; i<3; ++i)
tmp.setRow(i,toVec3(btm.getRow(i)));
return tmp;
}