Ejemplo n.º 1
0
CModelMD3::~CModelMD3()
{
	DestroyModel(&m_Head);
	DestroyModel(&m_Upper);
	DestroyModel(&m_Lower);
	DestroyModel(&m_Weapon);
}	
Ejemplo n.º 2
0
void CDlgDefineModel::OnBnClickedModType3d()
{
	int old = m_nModType;
	UpdateData();
	if(m_nModType==1) 
		Enable2D(TRUE);

	if(old != m_nModType && !m_pInvFcs->IsEmpty() ) {
		DestroyModel();
	}
}
Ejemplo n.º 3
0
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);
}
Ejemplo n.º 4
0
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;
}
Ejemplo n.º 5
0
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;
}
Ejemplo n.º 6
0
SEditModelRender::~SEditModelRender()
{
	DestroyModel();
}
Ejemplo n.º 7
0
SEditModelRender::SEditModelRender( char const *name ) : CAutoGameSystemPerFrame( name )
{
	pModelInstance = NULL;
	m_iNumPoseParams = 0;
	DestroyModel();
}
Ejemplo n.º 8
0
CModelGTF::~CModelGTF()
{
	// Free all the model data
	DestroyModel();
}