Beispiel #1
0
bool CXueWeiLoader::Load(CRectNode* Rects, CLineNode* Lines)
{
	xuewei = new XUEWEI[400];
	jingluo = new JINGLUO[20];

	FILE *fp;	

	MString ms;
#if 1
	fp = fopen(ms.str_join(g_Engine->MediaPath,XUEWEI_FILE_NAME),"r");

	for (int n=0;n<XUEWEI_NUM;n++)
	{	
		fscanf(fp,"%f %f %f %f %f %f %f %f %d %s %s %d %s %s %s %s"
			,&xuewei[n].world_x,&xuewei[n].world_y,&xuewei[n].world_z
			,&xuewei[n].mx,&xuewei[n].my,&xuewei[n].dx
			,&xuewei[n].jiaodu_x,&xuewei[n].jiaodu_y,&xuewei[n].xuewei_id
			,&xuewei[n].xuewei_ename,&xuewei[n].xuewei_cname,&xuewei[n].jingluo_id
			,&xuewei[n].jingluo_cname,&xuewei[n].shiyi,&xuewei[n].gongneng,&xuewei[n].weizhi);	
		
		//special process for 13 14
		if(xuewei[n].xuewei_id >= 310)
		{
			xuewei[n].world_x/=3.0;xuewei[n].world_y/=3.0;xuewei[n].world_z/=3.0;
		}

		SetJingluo(xuewei[n]);
		point4f color = GetJingluoColor(xuewei[n].jingluo_id);

		Rects->addTransformedElement(point3f(xuewei[n].world_x,xuewei[n].world_y,xuewei[n].world_z),
			point3f(xuewei[n].jiaodu_x,xuewei[n].jiaodu_y/*+180*/,0),point3f(0.02,0.02,0.02),color,xuewei[n].jingluo_id);

		if(Lines && n>0 && xuewei[n].jingluo_id == xuewei[n-1].jingluo_id)
		{
			Lines->AddElement(0,point3f(xuewei[n-1].world_x,xuewei[n-1].world_y,xuewei[n-1].world_z),point3f(xuewei[n].world_x,xuewei[n].world_y,xuewei[n].world_z),0,color);
		}

		//Rects->AddElement(0,point3f(xuewei[n].world_x,xuewei[n].world_y,xuewei[n].world_z),
		//	point3f(0,0,0),point3f(0.2,0.2,0.2),0);
	}
	fclose(fp);
#else
	fp = _wfopen(L"./xwsj.lj",L"r,ccs=UTF-8");
	for (int n=0;n<XUEWEI_NUM;n++)
	{	
		fwscanf(fp,L"%f %f %f %f %f %f %f %f %d %s %s %d %s %s %s %s"
			,&xuewei[n].world_x,&xuewei[n].world_y,&xuewei[n].world_z
			,&xuewei[n].mx,&xuewei[n].my,&xuewei[n].dx
			,&xuewei[n].jiaodu_x,&xuewei[n].jiaodu_y,&xuewei[n].xuewei_id
			,&xuewei[n].xuewei_ename,&xuewei[n].xuewei_cname,&xuewei[n].jingluo_id
			,&xuewei[n].jingluo_cname,&xuewei[n].shiyi,&xuewei[n].gongneng,&xuewei[n].weizhi);	
		//Rects->AddElement(0,point3f(xuewei[n].world_x,xuewei[n].world_y,xuewei[n].world_z),0);
		SetJingluo(xuewei[n]);
		point4f color = GetJingluoColor(xuewei[n].jingluo_id);

		Rects->addTransformedElement(point3f(xuewei[n].world_x,xuewei[n].world_y,xuewei[n].world_z),
			point3f(xuewei[n].jiaodu_x,xuewei[n].jiaodu_y/*+180*/,0),point3f(0.02,0.02,0.02),color,0);

		//Rects->AddElement(0,point3f(xuewei[n].world_x,xuewei[n].world_y,xuewei[n].world_z),
		//	point3f(0,0,0),point3f(0.2,0.2,0.2),0);
	}
	fclose(fp);

#endif
	return true;
}