All pastes #566425 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-06-14 13:07 UTC
rendered paste body
			
			if (vRotate < 0.0)
				xRotate += 180;
			
			vRotate = fmod(fabs(vRotate), 180.0);
			xRotate = fmod(fabs(xRotate), angle);
			xRotate2 = fmod(fabs(xRotate2), angle);
			if (vRotate >= 90.0)
				vRotate = 180.0 - vRotate;
			/*if (xRotate >= angle / 2.0)
				xRotate = angle - xRotate;
			if (xRotate2 >= angle / 2.0)
				xRotate2 = angle - xRotate2;*/		
	
matrixRotate (&pTransform, xRotate, 0.0f, 1.0f, 0.0f);
			matrixRotate (&pTransform, vRotate, cosf (xRotate * DEG2RAD),
						0.0f, sinf (xRotate * DEG2RAD));

			MULTMV(pTransform.m, point);

			pTransform = identity;
			matrixRotate (&pTransform, xRotate2, 0.0f, 1.0f, 0.0f);
			matrixRotate (&pTransform, vRotate, cosf (xRotate2 * DEG2RAD),
						0.0f, sinf (xRotate2 * DEG2RAD));
			MULTMV(pTransform.m, point2);	

/* These lines above cause the cube to be adjusted so that the edges line up with the reflection. I know this because if I comment them out, the edges are not in line with each other. My point is, that because the reflection is just another cube, but scaled on the y axis. So instead of adjusting the cube so that it is in line with the free-rotating reflection, we instead adjust the reflection so it is in line with the free rotating cube. */