18{
19 if ( !m_bIsCanceled )
20 {
21
22 TINT iNumLODs = m_pSection->GetLODCount( m_eLODType );
23
24 ATerrainLODBlock** ppLODBlocks;
26 m_pSection->GetLODBlocks( m_eLODType, ppLODBlocks, uiNumMemBlocks );
27
28
30
31 for (
TINT i = 0; i < iNumLODs; i++ )
32 {
33 auto pModelNode = m_pSection->m_ppLODModelsData[ m_eLODType ][ i ];
34 ATerrainInterface::GetSingleton()->CreateModelInstance( pModelNode,
"",
TNULL );
35
36 if ( !
ISZERO( m_pSection->m_aLODFlags[ m_eLODType ][ i ] & 1 ) )
37 {
38 pModelNode->SetUseLighting(
TTRUE );
39 pModelNode->SetGlow(
TTRUE );
40 }
41 }
42
43
44 m_pSection->SetLODLoaded( m_eLODType,
TTRUE );
45 m_pSection->SetLODLoading( m_eLODType,
TFALSE );
46 m_pSection->SetLODEmpty( m_eLODType,
TTRUE );
47
48
50
51
52 auto cbModelNodeReady = ATerrainInterface::GetSingleton()->GetOnModelNodeReadyCallback();
53
54 if (
TNULL != cbModelNodeReady )
55 {
56 for (
TINT i = 0; i < iNumLODs; i++ )
57 {
58 cbModelNodeReady( m_pSection->m_ppLODModelsData[ m_eLODType ][ i ] );
59 }
60 }
61
63 }
64 else
65 {
66
67 m_pSection->SetLODLoading( m_eLODType,
TFALSE );
68 m_pSection->SetLODQueued( m_eLODType,
TFALSE );
69 m_pSection->SetLODEmpty( m_eLODType,
TFALSE );
70 m_pSection->DestroyLOD( m_eLODType );
71
72 ATerrainInterface::GetSingleton()->QueueStreamingAssets();
74 }
75
77}
TMemory::MemBlock * SetGlobalBlock(MemBlock *a_pMemBlock)
Sets the global memory block.