📄 mgcfrustum.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 + -