void CinematicGrid::AddQuadUVs(Vec2i depc, Vec2i tc, Vec2i bitmappos, Vec2i bitmapw, Texture2D * tex) {
	size_t matIdx = AddMaterial(tex);
	m_mats[matIdx].bitmapdep = bitmappos;
	m_mats[matIdx].bitmap = bitmapw;
	m_mats[matIdx].nbvertexs = (tc.x + 1) * (tc.y + 1);
	
	float v = 0.f;
	float du = 0.999999f / (float)tc.x;
	float dv = 0.999999f / (float)tc.y;
	tc.y++;
	tc.x++;
	int tcyy = tc.y;
	int depcyy = depc.y;

	while(tcyy--) {
		float u = 0.f;
		int depcxx = depc.x;
		int tcxx = tc.x;

		while(tcxx--) {
			int i0, i1, i2, i3;
			GetIndNumCube(depcxx, depcyy, &i0, &i1, &i2, &i3);

			//uvs
			C_UV cuv;
			cuv.indvertex = i0;
			cuv.uv.x = u;
			cuv.uv.y = v;
			m_uvs.push_back(cuv);
			depcxx++;
			u += du;
		}

		depcyy++;
		v += dv;
	}

	tc.x--;
	tc.y--;

	while(tc.y--) {
		int depcxx = depc.x;
		int tcxx = tc.x;

		while(tcxx--) {
			int i0, i1, i2, i3;
			GetIndNumCube(depcxx, depc.y, &i0, &i1, &i2, &i3);

			AddPoly(matIdx, i0, i1, i2);
			AddPoly(matIdx, i1, i2, i3);
			depcxx++;
		}

		depc.y++;
	}
}
int main()
{
	Term t1[] = {6,-3,-1,0,4.4,2,-1.2,9};
	Term t2[] = {6,-3,-5.4,2,1,2,-7.8,15};
	Polynomial p1,p2;
	CreatePoly(p1, t1, 4);
	Traverse(p1,print);
	CreatePoly(p2, t2, 4);
	Traverse(p2,print);
	AddPoly(p1,p2);
	Traverse(p1,print);
	return 0;
}
예제 #3
0
    bool Mutate() {
        bool dirty = false;

        if (DoMutate(AddPolyMutation))
            dirty |= AddPoly(); 
        if (DoMutate(DelPolyMutation))
            dirty |= DelPoly();
        if (DoMutate(MovePolyMutation))
            dirty |= MovePoly();

        for (PolyIt it = poly_.begin(); it != poly_.end(); ++it)
            dirty |= it->Mutate();

        return dirty;
    }
예제 #4
0
파일: test_poly.c 프로젝트: weiang/C-codes
int main(void)
{
	struct Node p1,p2,*tmp1,*tmp2;
	Poly	p_sum;
	
	p1.coefficient = p1.coefficient = 0;	/* initilize Poly header with zero */
	p2.exp = p2.exp = 0;
	tmp1 = (Poly)malloc(sizeof(struct Node));
	tmp2 = (Poly)malloc(sizeof(struct Node));
	p1.next = tmp1;
	p2.next = tmp2;
	printf("please creat Poly 1(end with 0 ):\n");
	do	{
			printf("coefficinet = :\n");
			scanf("%d",&tmp1 -> coefficient);
			printf("exp = :\n");
			scanf("%d",&tmp1 -> exp);
			tmp1 -> next = (Poly)malloc(sizeof(struct Node));
			tmp1 = tmp1 -> next;
			tmp1 -> next = NULL;
	} while (tmp1 -> exp != 0);

	printf("please creat Poly 2(end with 0):\n");
	do	{	
			printf("coefficient = :\n");
			scanf("%d",&tmp2 -> coefficient);
			printf("exp = :\n");
			scanf("%d",&tmp2 -> exp);
			tmp2 -> next = (Poly)malloc(sizeof(struct Node));
			tmp2 = tmp2 -> next;
			tmp2 -> next = NULL;
	} while (tmp2 -> exp != 0);	

	p_sum = AddPoly(&p1,&p2);
	printf("%p\n",p_sum);
	Retrive(p_sum);
	return 0;
}
예제 #5
0
파일: XMLParser.cpp 프로젝트: binhpt/vltest
void CXMLParser::TraverseGetInformation(TiXmlElement* root)
{
	TiXmlElement *childroot=root->FirstChildElement();
	while(childroot!=NULL)
	{
		if(strcmp(childroot->Value(),"VertexBuffer")==0)
		{
			char *pointStr=(char *)childroot->FirstChildElement()->GetText();
			AddPoint(pointStr);
			char *normalStr=(char *)childroot->FirstChildElement()->NextSiblingElement()->GetText();
			AddNormals(normalStr);
		}
		else if(strcmp(childroot->Value(),"Faces")==0)
		{
			TiXmlElement *triangleElem=childroot->FirstChildElement();
			while (triangleElem!=NULL)
			{
				if(strcmp(triangleElem->Value(),"Face")==0)
				{
					TiXmlAttribute *triangleAttribute=triangleElem->FirstAttribute();
					while(triangleAttribute!=NULL)
					{
						if(strcmp(triangleAttribute->Name(),"triangles")==0)
						{
							char *triangleStr=(char *)triangleAttribute->Value();
							if(IsTriangleStrWithSplit(triangleStr)==true)
							{
								AddTriangle(triangleStr);
							}
							else
							{
								AddIdTriangle(triangleStr);
							}
						}
						if(strcmp(triangleAttribute->Name(),"strips")==0)
						{
							char *stripStr=(char *)triangleAttribute->Value();
							AddStrips(stripStr);
						}
						if(strcmp(triangleAttribute->Name(),"fans")==0)
						{
							char *fanStr=(char *)triangleAttribute->Value();
							AddFans(fanStr);
						}
						triangleAttribute=triangleAttribute->Next();
					}
				}
				triangleElem=triangleElem->NextSiblingElement();
			}
		}
		else if(strcmp(childroot->Value(),"Edges")==0)
		{
			TiXmlElement *polyElem=childroot->FirstChildElement();
			while(polyElem!=NULL)
			{
				if(strcmp(polyElem->Value(),"Polyline")==0)
				{
					char *polyStr=(char *)polyElem->FirstAttribute()->Value();
					AddPoly(polyStr);
				}
				polyElem=polyElem->NextSiblingElement();
			}
		}
		/*else if (strcmp(childroot->Value(),"PolygonalLOD")==0)
		{
			TiXmlElement *triangleElem=childroot->FirstChildElement()->FirstChildElement();
			while (triangleElem!=NULL)
			{
				if(strcmp(triangleElem->Value(),"Face")==0)
				{
					TiXmlAttribute *triangleAttribute=triangleElem->FirstAttribute();
					while(triangleAttribute!=NULL)
					{
						if(strcmp(triangleAttribute->Name(),"triangles")==0)
						{
							char *triangleStr=(char *)triangleAttribute->Value();
							if(IsTriangleStrWithSplit(triangleStr)==true)
							{
								AddTriangle(triangleStr);
							}
							else
							{
								AddIdTriangle(triangleStr);
							}
						}
						if(strcmp(triangleAttribute->Name(),"strips")==0)
						{
							char *stripStr=(char *)triangleAttribute->Value();
							AddStrips(stripStr);
						}
						if(strcmp(triangleAttribute->Name(),"fans")==0)
						{
							char *fanStr=(char *)triangleAttribute->Value();
							AddFans(fanStr);
						}
						triangleAttribute=triangleAttribute->Next();
					}
				}
				triangleElem=triangleElem->NextSiblingElement();
			}
		}*/
		childroot=childroot->NextSiblingElement();
	}
}