本文整理汇总了C++中btMatrix3x3::setValue方法的典型用法代码示例。如果您正苦于以下问题:C++ btMatrix3x3::setValue方法的具体用法?C++ btMatrix3x3::setValue怎么用?C++ btMatrix3x3::setValue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类btMatrix3x3
的用法示例。
在下文中一共展示了btMatrix3x3::setValue方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getRowMajorRotationMatrix
/** Get the rotation matrix into a 3x3 matrix
* @param matrix out parameter to place matrix data into
* @note this method is provided to ease performance interactions with
* the physics library
*/
void Position::getRowMajorRotationMatrix(btMatrix3x3& matrix)
{
// get local x axis
Vector3f xAxis;
xAxis.crossProduct(up, forward);
matrix.setValue (
// fill in x axis, first column
xAxis.getX(),
xAxis.getY(),
xAxis.getZ(),
// fill in y axis, second column
up.getX(),
up.getY(),
up.getZ(),
// fill in z axis, thrid column
forward.getX(),
forward.getY(),
forward.getZ()
);
}
示例2: btSetCrossMatrixMinus
void btSetCrossMatrixMinus(btMatrix3x3& res, const btVector3& a)
{
const btScalar a_0 = a[0], a_1 = a[1], a_2 = a[2];
res.setValue(0, +a_2, -a_1,
-a_2, 0, +a_0,
+a_1, -a_0, 0);
}
示例3: convertToBtTransform
void convertToBtTransform(const Vector3d& start_pos, const Vector3d& end_pos, btVector3& origin, btMatrix3x3& basis)
{
Matrix3d rotation;
rotation_from_tangent((start_pos - end_pos).normalized(), rotation);
basis.setValue(rotation(0,0), rotation(0,1), rotation(0,2),
rotation(1,0), rotation(1,1), rotation(1,2),
rotation(2,0), rotation(2,1), rotation(2,2));
Vector3d mid_point = (start_pos + end_pos)/2.0;
origin.setValue(mid_point(0), mid_point(1), mid_point(2));
}
示例4: Matrix3_to_btMatrix3
void Matrix3_to_btMatrix3(JNIEnv * const &jenv, btMatrix3x3 &target, jobject &source)
{
matrix3_ensurefields(jenv, source);
jfloatArray valArray = (jfloatArray) jenv->GetObjectField(source, matrix3_val);
jfloat * elements = jenv->GetFloatArrayElements(valArray, NULL);
// Convert to column-major
target.setValue(
elements[0], elements[3], elements[6],
elements[1], elements[4], elements[7],
elements[2], elements[5], elements[8]);
jenv->ReleaseFloatArrayElements(valArray, elements, JNI_ABORT);
jenv->DeleteLocalRef(valArray);
}
示例5: btScalar
static btMatrix3x3 M3x3setRot_ref( btMatrix3x3 &m, const btQuaternion &q )
{
btScalar d = q.length2();
btScalar s = btScalar(2.0) / d;
btScalar xs = q.x() * s, ys = q.y() * s, zs = q.z() * s;
btScalar wx = q.w() * xs, wy = q.w() * ys, wz = q.w() * zs;
btScalar xx = q.x() * xs, xy = q.x() * ys, xz = q.x() * zs;
btScalar yy = q.y() * ys, yz = q.y() * zs, zz = q.z() * zs;
m.setValue(
btScalar(1.0) - (yy + zz), xy - wz, xz + wy,
xy + wz, btScalar(1.0) - (xx + zz), yz - wx,
xz - wy, yz + wx, btScalar(1.0) - (xx + yy));
return m;
}