Ejemplo n.º 1
0
TiXmlElement* xmlFrondsSave::GetXmlData()
{
	//получить xml тег с сформированными данными

	//получить ссылку на данные веток
	dataFronds &_data = xmlRoot::Instance().GetDataFronds();

	//формируем корневой узел данных
	TiXmlElement *pFronds = NULL;
	pFronds = new TiXmlElement( m_FrondsNames.m_sFronds.c_str() );

	//заполнить данными о текстурах
	FillTextures( _data  , pFronds );

	//формирование записей LOD'ов
	FillLODs( _data , pFronds );

	/*
	//заполнить данными о координатах
	FillVertex( _data  ,  pFronds );

	//заполнить индексами
	FillIndexes( _data  ,  pFronds );
	*/

	return pFronds;
}
Ejemplo n.º 2
0
TiXmlElement* xmlFrondsSave::GetXmlData()
{
	//получить xml тег с сформированными данными

	//получить ссылку на данные веток
	dataFronds &_data = xmlRoot::Instance().GetDataFronds();

	//формируем корневой узел данных
	TiXmlElement *pFronds = NULL;
	pFronds = new TiXmlElement( m_FrondsNames.m_sFronds.c_str() );

	//значение альфа теста
	pFronds->SetDoubleAttribute( m_FrondsNames.m_sAlfaTest.c_str() , _data.m_fAlphaTestValue );

	//заполнить данными о текстурах
	FillTextures( _data  , pFronds );

	//заполнить данными о координатах
	FillVertex( _data  ,  pFronds );

	//заполнить индексами
	FillIndexes( _data  ,  pFronds );

	return pFronds;
}
Ejemplo n.º 3
0
LRESULT CMainDlg::OnRemove(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
	vector<string> tmp;
	vector<int> tmp1;
	tmp = textures;
	dword tc = (dword)m_Textures.GetCount();
	int sel = m_Textures.GetCaretIndex();
	if(sel!=-1)
	{
		for(dword i = 0, c = 0; i < tc; i++, c++)
		{
			if(i == sel)
				c++;
			if(c < tc)
			{
				textures[i] = textures[c];
				texdata[i] = texdata[c];
			}
			else
			{
				textures[i] = "";
				texdata[i] = -1;
			}
		}
		FillTextures();
		m_p3d.TextureChange(sc, texdata);
	}
	return 0;
}
Ejemplo n.º 4
0
LRESULT CMainDlg::OnScaleTrack(UINT uMsg, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/)
{
	if(((HWND)lParam) == ((HWND)m_Scale))
	{
		CString str;
		str.Format("%1.2f", (float)((m_Scale.GetPos()/20.0) + 0.05));
		m_eScale.SetWindowText(str);
	}
	if(((HWND)lParam) == ((HWND)m_Light))
	{
		m_p3d.alight = m_Light.GetPos()/(180/D3DX_PI);
	}
	if(((HWND)lParam) == ((HWND)m_UpDown))
	{
		int sel = m_Textures.GetCaretIndex();
		if(sel!=-1)
		{
			switch(m_UpDown.GetPos())
			{
				case 0:
					if(sel)
					{
						swap(textures[sel], textures[sel-1]);
						swap(texdata[sel], texdata[sel-1]);
						FillTextures();
						m_p3d.SwapTexture(sel, sel-1);
						m_Textures.SetCaretIndex(sel-1);
					}
					break;
				case 2:
					if(sel+1< m_Textures.GetCount())
					{
						swap(textures[sel], textures[sel+1]);
						swap(texdata[sel], texdata[sel+1]);
						FillTextures();
						m_p3d.SwapTexture(sel, sel+1);
						m_Textures.SetCaretIndex(sel+1);
					}
					break;
			}
		}
		m_UpDown.SetPos(1);
	}
	return TRUE;
}
Ejemplo n.º 5
0
void CMainDlg::Add(const CString &texture,int data)
{
	dword tc = (dword)m_Textures.GetCount();
	if(tc < file->header.numSurfaces)
	{
		textures[tc] = (LPCSTR)texture;
		texdata[tc] = data;
		FillTextures();
	}
	else
	{
		MessageBox("You have to remove one of textures to add another", "Error", MB_ICONERROR | MB_OK);
	}
}