当前位置: 首页>>代码示例>>C++>>正文


C++ btMatrix3x3::setValue方法代码示例

本文整理汇总了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()
	
	);
}
开发者ID:venev,项目名称:3DMagic,代码行数:30,代码来源:Position.cpp

示例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);
}
开发者ID:3LP,项目名称:Normalize,代码行数:7,代码来源:btRigidBody.cpp

示例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));
}
开发者ID:bo-wu,项目名称:surgical,代码行数:10,代码来源:collisionUtils.cpp

示例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);
}
开发者ID:0302zq,项目名称:libgdx,代码行数:16,代码来源:mathtypes.cpp

示例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;
}
开发者ID:Ochakko,项目名称:MameBake3D,代码行数:17,代码来源:Test_3x3setRot.cpp


注:本文中的btMatrix3x3::setValue方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。