void Select_FlipAxis (int axis) { int i; Select_GetMid (select_origin); for (i=0 ; i<3 ; i++) { Math_VectorCopy (vec3_origin, select_matrix[i]); select_matrix[i][i] = 1; } select_matrix[axis][axis] = -1; select_fliporder = TRUE; Select_AplyMatrix (); }
void Select_FlipAxis (int axis) { int i; Select_GetMid (select_origin); for (i=0 ; i<3 ; i++) { VectorCopy (vec3_origin, select_matrix[i]); select_matrix[i][i] = 1; } select_matrix[axis][axis] = -1; select_fliporder = true; Select_AplyMatrix (true); Sys_UpdateWindows (W_ALL); }
void Select_RotateAxis (int axis, float deg) { vec3_t temp; int i, j; vec_t c, s; if (deg == 0) return; Select_GetMid (select_origin); select_fliporder = FALSE; if (deg == 90) { for (i=0 ; i<3 ; i++) { Math_VectorCopy (vec3_origin, select_matrix[i]); select_matrix[i][i] = 1; } i = (axis+1)%3; j = (axis+2)%3; Math_VectorCopy(select_matrix[i],temp); Math_VectorCopy(select_matrix[j],select_matrix[i]); Math_VectorSubtract(vec3_origin,temp,select_matrix[j]); } else { deg = -deg; if (deg == -180) { c = -1; s = 0; } else if (deg == -270) { c = 0; s = -1; } else { c = cos(deg/180*3.14159); s = sin (deg/180*3.14159); } for (i=0 ; i<3 ; i++) { Math_VectorCopy (vec3_origin, select_matrix[i]); select_matrix[i][i] = 1; } switch (axis) { case 0: select_matrix[1][1] = c; select_matrix[1][2] = -s; select_matrix[2][1] = s; select_matrix[2][2] = c; break; case 1: select_matrix[0][0] = c; select_matrix[0][2] = s; select_matrix[2][0] = -s; select_matrix[2][2] = c; break; case 2: select_matrix[0][0] = c; select_matrix[0][1] = -s; select_matrix[1][0] = s; select_matrix[1][1] = c; break; } } Select_AplyMatrix (); }
void Select_RotateAxis (int axis, float deg, bool bPaint, bool bMouse) { vec3_t temp; int i, j; vec_t c, s; if (deg == 0) { //Sys_Printf("0 deg\n"); return; } if (bMouse) { VectorCopy(g_pParentWnd->ActiveXY()->RotateOrigin(), select_origin); } else { Select_GetMid (select_origin); } select_fliporder = false; if (deg == 90) { for (i=0 ; i<3 ; i++) { VectorCopy (vec3_origin, select_matrix[i]); select_matrix[i][i] = 1; } i = (axis+1)%3; j = (axis+2)%3; VectorCopy (select_matrix[i], temp); VectorCopy (select_matrix[j], select_matrix[i]); VectorSubtract (vec3_origin, temp, select_matrix[j]); } else { deg = -deg; if (deg == -180.0) { c = -1; s = 0; } else if (deg == -270.0) { c = 0; s = -1; } else { c = cos(deg * Q_PI / 180.0); s = sin(deg * Q_PI / 180.0); } for (i=0 ; i<3 ; i++) { VectorCopy (vec3_origin, select_matrix[i]); select_matrix[i][i] = 1; } switch (axis) { case 0: select_matrix[1][1] = c; select_matrix[1][2] = -s; select_matrix[2][1] = s; select_matrix[2][2] = c; break; case 1: select_matrix[0][0] = c; select_matrix[0][2] = s; select_matrix[2][0] = -s; select_matrix[2][2] = c; break; case 2: select_matrix[0][0] = c; select_matrix[0][1] = -s; select_matrix[1][0] = s; select_matrix[1][1] = c; break; } } if (g_PrefsDlg.m_bRotateLock) RotateTextures(axis, deg, select_origin); Select_AplyMatrix(!bMouse); if (bPaint) Sys_UpdateWindows (W_ALL); }