Files
Leviathan/Client/Game/engine/Renderer/KSeqSpeedGrass.cpp
T
2026-06-01 12:46:52 +02:00

95 lines
1.9 KiB
C++

#include "stdafx.h"
#include "KSeqSpeedGrass.h"
#include "KViewport.h"
#include "GrassColonyInfo.h"
#include "TerrainSpeedGrass.h"
//이게 무슨 일일까?
K3DRenderDevice* KSeqSpeedGrass::m_pDev = NULL;
float KSeqSpeedGrass::m_fAccumTime = 0.0f;
float KSeqSpeedGrass::m_fFadeDist = 100.0f;
float KSeqSpeedGrass::m_fFadeLength = 37.5f;
KSeqSpeedGrass::KSeqSpeedGrass()
{
m_vtPos = K3DVector( 0.0f, 0.0f, 0.0f );
K3DMatrixIdentity( m_matWorld );
}
KSeqSpeedGrass::~KSeqSpeedGrass()
{
Clear();
}
void KSeqSpeedGrass::Clear()
{
SAFE_DELETE_VECTOR( m_vPrimitive );
}
int KSeqSpeedGrass::Process( DWORD dwTime )
{
int process_state = (m_bIsPlaying) ? (SEQINFO_PLAYING) : (SEQINFO_STOPPED);
return process_state;
}
void KSeqSpeedGrass::Render( KViewportObject *viewport, DWORD flag, const K3DMatrix * pAttachMat )
{
size_t unPrCount = m_vPrimitive.size();
for( size_t i = 0; i < unPrCount; i++ )
{
viewport->Register( m_vPrimitive.at( i ), KRenderObject::RENDEREFX_SPEEDGRASS );
}
}
bool KSeqSpeedGrass::Load( CTerrainSpeedGrass* pSpeedGrass, GrassColonyInfo* pGrassColonyInfo )
{
bool bSuccess = true;
SAFE_DELETE_VECTOR( m_vPrimitive );
// size_t unColonyCount = pGrassContainer->GetInfoCount();
// for( size_t i = 0; i < unColonyCount; i++ )
{
KPrimitiveSpeedGrass* pPr = new KPrimitiveSpeedGrass;
bSuccess = pPr->Load( m_pDev, pSpeedGrass, pGrassColonyInfo );
if( !bSuccess )
{
SAFE_DELETE( pPr );
return bSuccess;
}
m_vPrimitive.push_back( pPr );
}
return bSuccess;
}
void KSeqSpeedGrass::SetFadeDist( float fDist )
{
m_fFadeDist = fDist;
CSpeedGrassRT::SetLodParams( m_fFadeDist, m_fFadeLength );
}
void KSeqSpeedGrass::SetFadeLength( float fLength )
{
m_fFadeLength = fLength;
CSpeedGrassRT::SetLodParams( m_fFadeDist, m_fFadeLength );
}
float KSeqSpeedGrass::GetFadeDist()
{
return m_fFadeDist;
}
float KSeqSpeedGrass::GetFadeLength()
{
return m_fFadeLength;
}