⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mgcfrustum.cpp

📁 3D Game Engine Design Source Code非常棒
💻 CPP
字号:
// Magic Software, Inc.
// http://www.magic-software.com
// Copyright (c) 2000, All Rights Reserved
//
// Source code from Magic Software is supplied under the terms of a license
// agreement and may not be copied or disclosed except in accordance with the
// terms of that agreement.  The various license agreements may be found at
// the Magic Software web site.  This file is subject to the license
//
// FREE SOURCE CODE
// http://www.magic-software.com/License/free.pdf

#include "MgcFrustum.h"

//----------------------------------------------------------------------------
MgcFrustum::MgcFrustum ()
    :
    m_kOrigin(MgcVector3::ZERO),
    m_kLVector(MgcVector3::UNIT_X),
    m_kUVector(MgcVector3::UNIT_Y),
    m_kDVector(MgcVector3::UNIT_Z)
{
    m_fLBound = 1.0;
    m_fUBound = 1.0;
    m_fDMin = 1.0;
    m_fDMax = 2.0;

    Update();
}
//----------------------------------------------------------------------------
void MgcFrustum::ComputeVertices (MgcVector3 akVertex[8]) const
{
    MgcVector3 kDScaled = m_fDMin*m_kDVector;
    MgcVector3 kLScaled = m_fLBound*m_kLVector;
    MgcVector3 kUScaled = m_fUBound*m_kUVector;

    akVertex[0] = kDScaled - kLScaled - kUScaled;
    akVertex[1] = kDScaled - kLScaled + kUScaled;
    akVertex[2] = kDScaled + kLScaled + kUScaled;
    akVertex[3] = kDScaled + kLScaled - kUScaled;

    for (int i = 0, ip = 4; i < 4; i++, ip++)
    {
        akVertex[ip] = m_kOrigin + m_fDRatio*akVertex[i];
        akVertex[i] += m_kOrigin;
    }
}
//----------------------------------------------------------------------------
void MgcFrustum::Update ()
{
    m_fDRatio = m_fDMax/m_fDMin;
    m_fMTwoLF = -2.0*m_fLBound*m_fDMax;
    m_fMTwoUF = -2.0*m_fUBound*m_fDMax;
}
//----------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -