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


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

本文整理汇总了C++中Matrix4x4::PreRotate方法的典型用法代码示例。如果您正苦于以下问题:C++ Matrix4x4::PreRotate方法的具体用法?C++ Matrix4x4::PreRotate怎么用?C++ Matrix4x4::PreRotate使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Matrix4x4的用法示例。


在下文中一共展示了Matrix4x4::PreRotate方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: Rotate

    /*
     * Rotate this transform around the vector specified by [x], [y], [z].
     * If [local] is true, perform in local space, otherwise perform in world space. If
     * world space is used, it takes into account the  aggregated transform of the scene
     * object's ancestors.
     */
    void SceneObjectTransform::Rotate(Real x, Real y, Real z, Real a, Bool local) {
        if (!local) {
            Matrix4x4 rotMat;
            rotMat.PreRotate(x, y, z, a);
            Transform worldTrans;
            worldTrans.SetTo(rotMat);

            Transform localTrans;
            GetLocalTransformationFromWorldTransformation(worldTrans, localTrans);

            this->TransformBy(localTrans);
        }
        else {
            Transform::Rotate(x, y, z, a, true);
        }
    }
开发者ID:mkkellogg,项目名称:GTE,代码行数:22,代码来源:sceneobjecttransform.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


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