示例#1
0
文件: cube.cpp 项目: trezker/alledge
bool Init()
{
	texture = new Bitmap;
	texture->Load("data/darwinian.png");
	if(!texture)
	{
		std::cout<<"ERROR: Could not load darwinian.png"<<std::endl;
		return false;
	}
	
	camera = new Cameranode();
	camera->Set_position(Vector3(0, 0, 10));
	camera->Set_rotation(Vector3(0, 0, 0));
	root.Attach_node(camera);

	light = new Lightnode;
	light->Set_ambient(2, 2, 2, 1);
	light->Set_diffuse(1, 1, 1, 1);
	light->Set_specular(1, 1, 1, 1);
	camera->Attach_node(light);
	
	transform = new Transformnode;
	light->Attach_node(transform);

	Vector3 corners[6][4];
	corners[0][0] = Vector3(1, 1, -1);
	corners[0][1] = Vector3(-1, 1, -1);
	corners[0][2] = Vector3(-1, -1, -1);
	corners[0][3] = Vector3(1, -1, -1);
	corners[1][0] = Vector3(1, -1, 1);
	corners[1][1] = Vector3(-1, -1, 1);
	corners[1][2] = Vector3(-1, 1, 1);
	corners[1][3] = Vector3(1, 1, 1);

	corners[2][0] = Vector3(-1, 1, 1);
	corners[2][1] = Vector3(-1, -1, 1);
	corners[2][2] = Vector3(-1, -1, -1);
	corners[2][3] = Vector3(-1, 1, -1);
	corners[3][0] = Vector3(1, 1, -1);
	corners[3][1] = Vector3(1, -1, -1);
	corners[3][2] = Vector3(1, -1, 1);
	corners[3][3] = Vector3(1, 1, 1);

	corners[4][0] = Vector3(1, 1, 1);
	corners[4][1] = Vector3(-1, 1, 1);
	corners[4][2] = Vector3(-1, 1, -1);
	corners[4][3] = Vector3(1, 1, -1);
	corners[5][0] = Vector3(1, -1, -1);
	corners[5][1] = Vector3(-1, -1, -1);
	corners[5][2] = Vector3(-1, -1, 1);
	corners[5][3] = Vector3(1, -1, 1);

	for(int i = 0; i<6; ++i)
	{
		quads[i] = new Quadnode;
		quads[i]->Set_corners(corners[i]);
		quads[i]->Set_texture(texture);
		transform->Attach_node(quads[i]);
	}
	return true;
}