Exemplo n.º 1
0
void flInit(Flag* F, float cellH, float cellW, unsigned int H, unsigned int W, Texture TexFlag, Texture TexPole)
{
	F->cellH = cellH;
	F->cellW = cellW;
	F->W = W;
	F->H = H;
	F->TexFlag = TexFlag;
	F->TexPole = TexPole;

	daInit(&F->Vertices);
	daInit(&F->Rigids);
	daReserve(&F->Vertices, W*H);
	daReserve(&F->Rigids, (W*H*2 - W - H + 1));
	for(unsigned int i = 0; i < H; i++)
	{
		for(unsigned int j = 0; j < W; j++)
		{
			daAdd(&F->Vertices, newVertex());
			vxSetPosition((Vertex*) daGet(&F->Vertices, i*W + j), vec2(j*cellW, i*cellH));
			vxSetMass((Vertex*) daGet(&F->Vertices, i*W + j), 0.01f);
		}
	}
	for(unsigned int i = 0; i < H; i++)
	{
		vxSetFixed((Vertex*) daGet(&F->Vertices, i*W), 1);
	}
	for(unsigned int i = 0; i < H; i++)
	{
		for(unsigned int j = 0; j < W - 1 ; j++)
		{
			daAdd(&F->Rigids, newRigid((Vertex*) daGet(&F->Vertices, i*W + j), (Vertex*) daGet(&F->Vertices, i*W + j + 1), cellW));
		}
	}
	for(unsigned int j = 0; j < W - 1 ; j++)
	{
		for(unsigned int i = 0; i < H - 1; i++)
		{
			daAdd(&F->Rigids, newRigid((Vertex*) daGet(&F->Vertices, i*W + j), (Vertex*) daGet(&F->Vertices, (i + 1)*W + j), cellH));
		}
	}
}
Exemplo n.º 2
0
void zdrDacRoutine(void)
{
	if (s)
	{
		daInit();
		s = 0;
	}
	if (tv != vVoltage)
	{
		daSetVoltage(1, vVoltage);
		tv = vVoltage;
	}
	if (tc != vCurr)
	{
		daSetVoltage(2, vCurr);
		tc = vCurr;
	}

}
Exemplo n.º 3
0
DynArr* newDynArr()
{
	DynArr* DA = (DynArr*) malloc(sizeof(DynArr));
	daInit(DA);
	return DA;
}
Exemplo n.º 4
0
DynArr da()
{
	DynArr DA;
	daInit(&DA);
	return DA;
}