Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- BOOL KNX3Mesh::Load( const NX3LoadPack * pLoadPack, KTemplateDataObject * pObject, KNX3MtlChannel * pMtlChannel,int loadType )
- {
- DWORD dwTime = GetMilliSecond();
- KSimpleDataObject *pMeshName = pObject->GetSimpleDataMemberObject( "mesh_name" );
- char name[1024];
- int namelen = 1024;
- pMeshName->GetString( name, namelen );
- m_sMeshName = name;
- int nMtlID;
- KSimpleDataObject * pMtlID = pObject->GetSimpleDataMemberObject("material_id");
- pMtlID->GetDWORD(reinterpret_cast<DWORD *>(&nMtlID) );
- if(pMtlChannel)
- m_pMtl = pMtlChannel->GetMtl(nMtlID);
- else
- m_pMtl = NULL;
- DWORD dwMeshSize;
- KSimpleDataObject * pMeshBlockSize = pObject->GetSimpleDataMemberObject("mesh_block_size");
- pMeshBlockSize->GetDWORD(&dwMeshSize);
- KTemplateDataArrayObject * pMeshBlockArray = pObject->GetTemplateDataArrayMemberObject("mesh_block_array");
- // Mesh Data Load
- int i;
- for(i = 0; i < (int)dwMeshSize; ++i)
- {
- KNX3MeshElement* pElement = new KNX3MeshElement(m_pGraphics);
- pElement->Load( pLoadPack, name, pMeshBlockArray->GetData(i), m_pMtl );
- m_vtMeshElement.push_back(pElement);
- }
- if ( dwMeshSize > 0 )
- {
- m_bIsEventPoint = m_vtMeshElement[0]->IsEventPoint();
- m_bIsEventBox = m_vtMeshElement[0]->IsEventBox();
- }
- // Animation & Visi Block Load
- if(loadType == KNX3MeshChannel::LT_OLD_MESH)
- loadAniAndVisiBlockOldType(pObject);
- else
- loadAniAndVisiBlockNewType(pObject);
- // FX Load
- KTemplateDataArrayObject * pFXArray = pObject->GetTemplateDataArrayMemberObject("fx_array");
- for( i=0; i < pFXArray->GetDataCount(); ++i )
- {
- KNX3FX * pFX = new KNX3FX();
- pFX->Load(pFXArray->GetData(i));
- if ( pFX->IsFX() )
- m_bIsFX = true;
- if ( pFX->GetFXElementSize() > 0 )
- {
- if ( pFX->GetFXElement( 0 )->GetValue( "UVTRANSFORM" ) != NULL )
- {
- loadUVAni( pFX );
- }
- }
- m_vtFX.push_back(pFX);
- }
- // Children Load
- DWORD dwChildrenSize;
- KSimpleDataObject * pMeshChildrenSize = pObject->GetSimpleDataMemberObject("mesh_children_size");
- pMeshChildrenSize->GetDWORD(&dwChildrenSize);
- KTemplateDataArrayObject * pMeshChildrenArray = pObject->GetTemplateDataArrayMemberObject("mesh_children_array");
- for( i=0; i < (int)dwChildrenSize; ++i )
- {
- KNX3Mesh * pMesh = new KNX3Mesh(m_pGraphics);
- pMesh->Load( pLoadPack, pMeshChildrenArray->GetData(i), pMtlChannel, loadType );
- m_vtChildMesh.push_back(pMesh);
- }
- // _oprint( "Load Time : KNX3Mesh::Load - %d\n", GetMilliSecond()-dwTime );
- return TRUE;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement