📄 mgcdlodnode.h
字号:
// 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
//
// RESTRICTED USE SOURCE CODE
// http://www.magic-software.com/License/restricted.pdf
#ifndef MGCDLODNODE_H
#define MGCDLODNODE_H
#include "MgcSwitchNode.h"
class MgcCamera;
class MgcDLodNode : public MgcSwitchNode
{
MgcDeclareRTTI;
MgcDeclareStream;
public:
// construction
MgcDLodNode (unsigned int uiQuantity = 1, unsigned int uiGrowBy = 1);
// center for level of detail
MgcVector3& ModelCenter ();
const MgcVector3& ModelCenter () const;
const MgcVector3& WorldCenter () const;
// distance intervals for children
void SetModelMinSqrDistance (unsigned int uiIndex, MgcReal fMinSqrDist);
void SetModelMaxSqrDistance (unsigned int uiIndex, MgcReal fMaxSqrDist);
void SetModelSqrDistance (unsigned int uiIndex, MgcReal fMinSqrDist,
MgcReal fMaxSqrDist);
MgcReal GetModelMinSqrDistance (unsigned int uiIndex) const;
MgcReal GetModelMaxSqrDistance (unsigned int uiIndex) const;
void GetModelSqrDistance (unsigned int uiIndex, MgcReal& rfMinSqrDist,
MgcReal& rfMaxSqrDist) const;
MgcReal GetWorldMinSqrDistance (unsigned int uiIndex) const;
MgcReal GetWorldMaxSqrDistance (unsigned int uiIndex) const;
void GetWorldSqrDistance (unsigned int uiIndex, MgcReal& rfMinSqrDist,
MgcReal& rfMaxSqrDist) const;
protected:
// geometric updates
void SelectLevelOfDetail (const MgcCamera* pkCamera);
virtual void UpdateWorldData (MgcReal fAppTime);
// drawing
virtual void Draw (MgcRenderer& rkRenderer);
// for deferred updates
MgcReal m_fLastUpdateTime;
// point whose distance to camera determines correct child
MgcVector3 m_kModelLodCenter;
MgcVector3 m_kWorldLodCenter;
// squared distances for each LOD interval
MgcTArray<MgcReal> m_afModelMinSqrDist;
MgcTArray<MgcReal> m_afModelMaxSqrDist;
MgcTArray<MgcReal> m_afWorldMinSqrDist;
MgcTArray<MgcReal> m_afWorldMaxSqrDist;
};
MgcSmartPointer(MgcDLodNode);
MgcRegisterStream(MgcDLodNode);
#include "MgcDLodNode.inl"
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -