コード例 #1
0
void	Loader3ds::FacesDescription(int fd, double* len, Object* o)
{

	std::vector<Vertex*>*	cpy;
	std::vector<Texture*>*	cpy2;
	int			i;
	unsigned short		l_qty;
	unsigned short		index;
	unsigned short		l_flag;
	Face*			F;
	int			nread;

	cpy = o->Get_List_Vertex();
	cpy2 = o->Get_List_Texture();
	i = 0;
	nread = read (fd, &l_qty, sizeof(l_qty));
	len = len +  sizeof(l_qty);
	while (i < l_qty)
	{
		F = new Face();
		nread = read(fd, &index , sizeof(index));
		F->Add_Index((*cpy)[index]);
		if (cpy2->size())
			F->Add_Texture((*cpy2)[index]);
		nread = read(fd, &index , sizeof(index));
		F->Add_Index((*cpy)[index]);
		if (cpy2->size())
			F->Add_Texture((*cpy2)[index]);
		nread = read(fd, &index , sizeof(index));
		F->Add_Index((*cpy)[index]);
		if (cpy2->size())
			F->Add_Texture((*cpy2)[index]);
		o->Add_Face(F);
		nread = read(fd, &l_flag , sizeof(l_flag));
		len = len + (4 * sizeof(index));
		i++;
	}
}