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


C# Matrix4.ExtractScale方法代码示例

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


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

示例1: ApplyMatrixTransform

        public static void ApplyMatrixTransform(TransformMatrix transformMat, matrix m)
        {
            var transform = transformMat.transform;
            var values = m.Values;
            var mat = new Matrix4(
                (float)values[0], (float)values[1], (float)values[2], (float)values[3],
                (float)values[4], (float)values[5], (float)values[6], (float)values[7],
                (float)values[8], (float)values[9], (float)values[10], (float)values[11],
                (float)values[12], (float)values[13], (float)values[14], (float)values[15]
            );
            mat.Transpose();
            transformMat.matrix *= mat;

            var translation = mat.ExtractTranslation();
            transform.Translation += translation;

            if (translation != Vector3.Zero)
                transform.Flags |= (int)Transform.TransformFlags.HasTranslation;

            var rotation = mat.ExtractRotation();
            transform.Rotation *= rotation;

            if (rotation != Quaternion.Identity)
                transform.Flags |= (int)Transform.TransformFlags.HasRotation;

            var scale = mat.ExtractScale();
            transform.ScaleShear[0, 0] *= scale[0];
            transform.ScaleShear[1, 1] *= scale[1];
            transform.ScaleShear[2, 2] *= scale[2];

            if (transform.ScaleShear != Matrix3.Identity)
                transform.Flags |= (int)Transform.TransformFlags.HasScaleShear;
        }
开发者ID:Norbyte,项目名称:lslib,代码行数:33,代码来源:ColladaHelpers.cs

示例2: BillboardMatrix

 /// <summary>
 /// Strip away the rotation in the view matrix to make an object always face the camera
 /// http://stackoverflow.com/questions/5467007/inverting-rotation-in-3d-to-make-an-object-always-face-the-camera/5487981#5487981
 /// </summary>
 public static Matrix4 BillboardMatrix(ref Matrix4 modelViewMat)
 {
     Vector3 trans = modelViewMat.ExtractTranslation();
     Vector3 scale = modelViewMat.ExtractScale();
     return new Matrix4 (
         scale.X, 0f, 0f, 0f,
         0f, scale.Y, 0f, 0f,
         0f, 0f, scale.Z, 0f,
         trans.X, trans.Y, trans.Z, 1f);
 }
开发者ID:kniteli,项目名称:SimpleScene,代码行数:14,代码来源:OpenTKHelper.cs


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