95 lines
1.9 KiB
C++
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;
|
|
}
|