Example #1
0
void Application::CreateObject(UINT id)
{
	DestroyObjects();

	if ( id == 1)
		m_ModelObjects.push_back(new Triangle());
	else if ( id == 2)
		m_ModelObjects.push_back(new Pyramid());
	else if ( id == 3)
		m_ModelObjects.push_back(new SierpinskiTriangle(2));
	else if ( id == 4)
		m_ModelObjects.push_back(new SierpinskiPyramid(1));
	else if ( id == 5)
		m_ModelObjects.push_back(new Cylinder(1, 0.5, 1, 4, 2));
	else if ( id == 6)
		m_ModelObjects.push_back(new Geosphere(1,4));
	else if ( id == 7)
		m_ModelObjects.push_back(new Grid(1,1, 50,50));
	else if ( id == 8)
		m_ModelObjects.push_back(new Wave(1,1, 50,50));
	else if ( id == 9)
		m_ModelObjects.push_back(new TestObject("Models/skull.txt"));
	else if (id == 0)
	{
		ModelObject* ground = new Grid(100, 100, 10, 10);

		ground->SetPosition(0, -1, 0);
		ground->GetMaterial()->Ambient = DirectX::XMFLOAT4(0.3f, 0.3f, 0.3f, 1.0f);
		ground->GetMaterial()->Diffuse = DirectX::XMFLOAT4(1.0f, 0.0f, 0.0f, 1.0f);
		ground->GetMaterial()->Specular = DirectX::XMFLOAT4(0.2f, 0.2f, 0.2f, 100.0f);

		m_ModelObjects.push_back(ground);

		ModelObject* skull = new TestObject("Models/skull.txt");

		skull->GetMaterial()->Ambient = DirectX::XMFLOAT4(0.f, 0.f, 0.f, 1.0f);
		skull->GetMaterial()->Diffuse = DirectX::XMFLOAT4(.3f, 0.3f, 0.3f, 1.0f);
		skull->GetMaterial()->Specular = DirectX::XMFLOAT4(0.2f, 0.2f, 0.2f, 100.0f);

		m_ModelObjects.push_back(skull);
	}


	std::shared_ptr<MeshData> data = std::make_shared<MeshData>();

	for each (auto model in m_ModelObjects)
	{
		model->Initialize(data);
	}