CModelMD3::~CModelMD3() { DestroyModel(&m_Head); DestroyModel(&m_Upper); DestroyModel(&m_Lower); DestroyModel(&m_Weapon); }
void CDlgDefineModel::OnBnClickedModType3d() { int old = m_nModType; UpdateData(); if(m_nModType==1) Enable2D(TRUE); if(old != m_nModType && !m_pInvFcs->IsEmpty() ) { DestroyModel(); } }
void CDlgDefineModel::OnBnClickedCreateModel() { UpdateData(); if( !m_pInvFcs->IsEmpty() ) { if( !DestroyModel() ) return; } CString strMod; // 2D model if(m_nModType==0) { strMod.Format(_T("2D Model\n number of cells: nx=%d; nz=%d\n origin: x0=%.2f; z0=%.2f\n cell sizes: csx=%.2f; csz=%.2f\n length: lx=%.2f; lz=%.2f\n\nCraete model?"), m_nX, m_nZ, m_x0, m_z0, m_xCs, m_zCs, m_x0+m_nX*m_xCs, m_z0+m_nZ*m_zCs); int ret = AfxMessageBox(strMod, MB_YESNO | MB_ICONQUESTION); if(ret != IDYES) return; m_pInvFcs->New2D(m_nX, m_nZ, m_x0, m_x0, m_xCs, m_zCs); int nx = m_nX+1; SetDlgItemInt(IDC_PTS_X, nx); } // 3D model if(m_nModType==1) { strMod.Format(_T("3D Model\n number of cells: nx=%d; ny=%d; nz=%d\n origin: x0=%.2f; y0=%.2f; z0=%.2f\n cell sizes: csx=%.2f; csy=%.2f; csz=%.2f\n length: lx=%.2f; ly=%.2f; lz=%.2f\n\nCraete model?"), m_nX, m_nY, m_nZ, m_x0, m_y0, m_z0, m_xCs, m_yCs, m_zCs, m_x0+m_nX*m_xCs, m_y0+m_nY*m_yCs, m_z0+m_nZ*m_zCs); int ret = AfxMessageBox(strMod, MB_YESNO | MB_ICONQUESTION); if(ret != IDYES) return; m_pInvFcs->New3D(m_nX, m_nY, m_nZ, m_x0, m_y0, m_z0, m_xCs, m_yCs, m_zCs); int nx = m_nY+1; int ny = m_nY+1; SetDlgItemInt(IDC_PTS_X, nx); SetDlgItemInt(IDC_PTS_Y, ny); } CWnd* pWnd = GetDlgItem(IDC_FORWARD_MODEL); pWnd->EnableWindow(TRUE); pWnd = GetDlgItem(IDC_BROWSE_MODEL_NAME); pWnd->EnableWindow(TRUE); SetDlgItemText(IDC_MEM_DATA, _T("")); SetDlgItemText(IDC_MEM_MODEL, _T("")); SetDlgItemText(IDC_MEM_MATRIX,_T("")); SetDlgItemText(IDC_MEM_TOTAL, _T("")); SetDlgItemText(IDC_MEM_OTHER, _T("")); //AfxMessageBox(_T("New model has been created."), MB_OK | MB_ICONINFORMATION); }
bool SEditModelRender::IsModelReady() { if ( !pModelInstance ) return false; bool bValid = !!pModelInstance->GetModel(); if ( bValid && Q_strlen( m_szModelPath ) ) { const model_t *pMdl = modelinfo ? modelinfo->FindOrLoadModel( m_szModelPath ) : NULL; if ( pMdl ) pModelInstance->SetModelPointer( pMdl ); bValid = !!pMdl; } if ( !bValid ) DestroyModel(); return bValid; }
bool SEditModelRender::LoadModel( const char *localPath ) { DestroyModel(); const model_t *mdl = modelinfo->FindOrLoadModel( localPath ); if ( !mdl ) return false; Q_strcpy( m_szModelPath, localPath ); C_BaseFlex *pEnt = new C_BaseFlex(); pEnt->InitializeAsClientEntity( NULL, #ifdef SWARM_DLL false #else RENDER_GROUP_OPAQUE_ENTITY #endif ); MDLCACHE_CRITICAL_SECTION(); pEnt->SetModelPointer( mdl ); pEnt->Spawn(); pEnt->SetAbsAngles( vec3_angle ); pEnt->SetAbsOrigin( vec3_origin ); pEnt->AddEffects( EF_NODRAW | EF_NOINTERP ); pEnt->m_EntClientFlags |= ENTCLIENTFLAG_DONTUSEIK; // leave it alone. pEnt->RemoveFromLeafSystem(); cl_entitylist->RemoveEntity( pEnt->GetRefEHandle() ); pEnt->CollisionProp()->DestroyPartitionHandle(); CStudioHdr *pHdr = pEnt->GetModelPtr(); m_iNumPoseParams = pHdr ? pHdr->GetNumPoseParameters() : 0; pModelInstance = pEnt; return true; }
SEditModelRender::~SEditModelRender() { DestroyModel(); }
SEditModelRender::SEditModelRender( char const *name ) : CAutoGameSystemPerFrame( name ) { pModelInstance = NULL; m_iNumPoseParams = 0; DestroyModel(); }
CModelGTF::~CModelGTF() { // Free all the model data DestroyModel(); }