本文整理汇总了C++中Matrix4x4::PreTranslate方法的典型用法代码示例。如果您正苦于以下问题:C++ Matrix4x4::PreTranslate方法的具体用法?C++ Matrix4x4::PreTranslate怎么用?C++ Matrix4x4::PreTranslate使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Matrix4x4
的用法示例。
在下文中一共展示了Matrix4x4::PreTranslate方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ProcessTranslatePart
static void
ProcessTranslate3D(Matrix4x4& aMatrix,
const nsCSSValue::Array* aData,
nsStyleContext* aContext,
nsPresContext* aPresContext,
RuleNodeCacheConditions& aConditions,
TransformReferenceBox& aRefBox)
{
NS_PRECONDITION(aData->Count() == 4, "Invalid array!");
Point3D temp;
temp.x = ProcessTranslatePart(aData->Item(1),
aContext, aPresContext, aConditions,
&aRefBox, &TransformReferenceBox::Width);
temp.y = ProcessTranslatePart(aData->Item(2),
aContext, aPresContext, aConditions,
&aRefBox, &TransformReferenceBox::Height);
temp.z = ProcessTranslatePart(aData->Item(3),
aContext, aPresContext, aConditions,
nullptr);
aMatrix.PreTranslate(temp);
}
示例2: RotateAround
/*
* Rotate around a specific point and orientation vector.
*
* The point is specified by [px], [py], and [pz].
*
* The orientation vector is specified by [ax], [ay], and [az].
*
* The parameter [local] determines whether local or world space is used.
* If world space is used, it takes into account the aggregated transform
* of the scene object's ancestors.
*/
void SceneObjectTransform::RotateAround(Real px, Real py, Real pz, Real ax, Real ay, Real az, Real angle, Bool local) {
if (!local) {
Matrix4x4 worldTransMat;
worldTransMat.PreTranslate(-px, -py, -pz);
worldTransMat.PreRotate(ax, ay, az, angle);
worldTransMat.PreTranslate(px, py, pz);
Transform worldTrans;
worldTrans.SetTo(worldTransMat);
Transform localTrans;
GetLocalTransformationFromWorldTransformation(worldTrans, localTrans);
this->TransformBy(localTrans);
}
else {
Transform::RotateAround(px, py, pz, ax, ay, az, angle, true);
}
}
示例3: Translate
/*
* Apply translation transformation to this transform's matrix. The parameter [local]
* determines if the transformation is relative to world coordinates or the transform's
* local space, which includes the aggregated transform of the scene object's ancestors.
*/
void SceneObjectTransform::Translate(Real x, Real y, Real z, Bool local) {
if (!local) {
Matrix4x4 transMat;
transMat.PreTranslate(x, y, z);
Transform worldTrans;
worldTrans.SetTo(transMat);
Transform localTrans;
GetLocalTransformationFromWorldTransformation(worldTrans, localTrans);
this->TransformBy(localTrans);
}
else {
Transform::Translate(x, y, z, true);
}
}