Exemplo n.º 1
0
void ModButterfly::rotateUntilBorder(RgbVertexC& v, Pos& pos)
{
	assert(v.vp() == pos.v);
	do 
	{
		pos.FlipE();
		pos.FlipF();
	} while (!pos.IsBorder());
	assert(v.vp() == pos.v);
}
Exemplo n.º 2
0
void ModButterfly::rotate(RgbVertexC& v, Pos& pos,int angle)
{
	//std::cerr << v.index << " requested: " << angle << " ----- ";
	assert(v.vp() == pos.v);
	while (angle > 0)
	{
		RgbTriangleC t = RgbTriangleC(v.m,v.rgbInfo,pos.F()->Index());
		int realz = -1;
		for (int i = 0; i<3; i++)
			if (t.V(i).vp() == pos.v)
					realz = i;
		assert(realz != -1);
		
		angle -= t.getAngle(realz);
		//std::cerr << "| " << t.getAngle(realz);
		pos.FlipE();
		pos.FlipF();
	}
	//std::cerr << " ----- result : " << angle << std::endl;
	//assert(angle == 0);
}