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


C++ Vector4::Get方法代码示例

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


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

示例1: ScreenPointToRay

    Ray Camera::ScreenPointToRay(const Vector2 point) const {
        Matrix4x4 view = GetTransformation()->GetAccumulatedMatrix();
        Vector3 camPos = Vector3(view.Get(3,0), view.Get(3,1), view.Get(3,2));
            
        Matrix4x4 vp = GetProjectionMatrix() * view;
        if (!Invert(vp)) Debug::LogError("Failed to invert view projection matrix");

        // Convert from screen space to viewport space and to [-1;1] range.
        float viewportX = (point.Get(0) - rect.x) * 2.0f / float(rect.width) - 1.0f;
        float viewportY = (point.Get(1) - rect.y) * 2.0f / float(rect.height) - 1.0f;

        Vector4 viewportPoint = Vector4(viewportX, viewportY, 1.0f, 1.0f);
            
        Vector4 worldPos = vp * viewportPoint;

        Vector3 rayEnd = Vector3(worldPos.Get(0) / worldPos.Get(3), 
                                 worldPos.Get(1) / worldPos.Get(3), 
                                 worldPos.Get(2) / worldPos.Get(3));
            
        return Ray(camPos, Normalize(rayEnd - camPos));
    }
开发者ID:papaboo,项目名称:The-ZEUS-Project,代码行数:21,代码来源:Camera.cpp


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