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


C++ Matrix4x4::PreTranslate方法代码示例

本文整理汇总了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);
}
开发者ID:csc302-2016-spring,项目名称:gecko-dev,代码行数:26,代码来源:nsStyleTransformMatrix.cpp

示例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);
        }
    }
开发者ID:mkkellogg,项目名称:GTE,代码行数:29,代码来源:sceneobjecttransform.cpp

示例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);
        }
    }
开发者ID:mkkellogg,项目名称:GTE,代码行数:21,代码来源:sceneobjecttransform.cpp


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