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


C++ Matrix4::Decompose方法代码示例

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


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

示例1: ComputeObjectComponents

Undo::CommandPtr Transform::ComputeObjectComponents()
{
    Undo::CommandPtr command = ResetTransform();

    Math::Scale scale;
    Math::EulerAngles rotate;
    Math::Vector3 translate;
    if (GetInheritTransform())
    {
        // compute the new object space transform from our global transform and our parent's inverse
        Matrix4 objectTransform = (m_GlobalTransform * m_Parent->GetTransform()->GetInverseGlobalTransform());

        // decompose into the new set of components
        objectTransform.Decompose(scale, rotate, translate);
    }
    else
    {
        // we are not inheriting our parent's transform, use the global transform for our components
        m_GlobalTransform.Decompose(scale, rotate, translate);
    }

    m_Scale = scale;
    m_Rotate = rotate;
    m_Translate = translate;

    return command;
}
开发者ID:goofoo,项目名称:Helium,代码行数:27,代码来源:Transform.cpp

示例2: SetLocalTransform

 //----------------------------------------------------------------
 /// Set Local Transform
 ///
 /// This will overwrite any local previous transformations
 ///
 /// @param Objects transformation matrix
 //----------------------------------------------------------------
 void Transform::SetLocalTransform(const Matrix4& inmatTransform)
 {
     inmatTransform.Decompose(mvPosition, mvScale, mqOrientation);
     
     mmatTransform = inmatTransform;
     
     OnTransformChanged();
     
     mbIsTransformCacheValid = false;
 }
开发者ID:mclaughlinhugh4,项目名称:ChilliSource,代码行数:17,代码来源:Transform.cpp

示例3: SetWorldTransform

 //----------------------------------------------------------------
 /// Set World Transform
 ///
 /// This will overwrite any parent or previous transformations
 ///
 /// @param Objects transformation matrix
 //----------------------------------------------------------------
 void Transform::SetWorldTransform(const Matrix4& inmatTransform)
 {
     inmatTransform.Decompose(mvWorldPosition, mvWorldScale, mqWorldOrientation);
     
     mmatWorldTransform = inmatTransform;
     
     OnTransformChanged();
     
     mbIsTransformCacheValid = true;
     mbIsParentTransformCacheValid = true;
 }
开发者ID:mclaughlinhugh4,项目名称:ChilliSource,代码行数:18,代码来源:Transform.cpp

示例4: SetObjectTransform

void Transform::SetObjectTransform( const Matrix4& transform )
{
    Scale scale;
    EulerAngles rotate;
    Vector3 translate;
    transform.Decompose( scale, rotate, translate );

    m_Scale = scale;
    m_Rotate = rotate;
    m_Translate = translate;
    m_ObjectTransform = transform;
}
开发者ID:foolhuang,项目名称:Helium,代码行数:12,代码来源:Transform.cpp


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