Changes in uspace/lib/softrend/transform.c [071fefec:a35b458] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/softrend/transform.c
r071fefec ra35b458 43 43 for (unsigned int j = 0; j < TRANSFORM_MATRIX_DIM; j++) { 44 44 double comb = 0; 45 45 46 46 for (unsigned int k = 0; k < TRANSFORM_MATRIX_DIM; k++) 47 47 comb += a->matrix[i][k] * b->matrix[k][j]; 48 48 49 49 res->matrix[i][j] = comb; 50 50 } … … 72 72 double k = trans->matrix[0][0] * trans->matrix[1][1] - 73 73 trans->matrix[0][1] * trans->matrix[1][0]; 74 74 75 75 double det = 1 / (a * trans->matrix[0][0] + b * trans->matrix[0][1] + 76 76 c * trans->matrix[0][2]); 77 77 78 78 trans->matrix[0][0] = a * det; 79 79 trans->matrix[1][0] = b * det; 80 80 trans->matrix[2][0] = c * det; 81 81 82 82 trans->matrix[0][1] = d * det; 83 83 trans->matrix[1][1] = e * det; 84 84 trans->matrix[2][1] = f * det; 85 85 86 86 trans->matrix[0][2] = g * det; 87 87 trans->matrix[1][2] = h * det; … … 94 94 trans->matrix[1][0] = 0; 95 95 trans->matrix[2][0] = 0; 96 96 97 97 trans->matrix[0][1] = 0; 98 98 trans->matrix[1][1] = 1; 99 99 trans->matrix[2][1] = 0; 100 100 101 101 trans->matrix[0][2] = 0; 102 102 trans->matrix[1][2] = 0; … … 107 107 { 108 108 transform_t a; 109 109 110 110 a.matrix[0][0] = 1; 111 111 a.matrix[1][0] = 0; 112 112 a.matrix[2][0] = 0; 113 113 114 114 a.matrix[0][1] = 0; 115 115 a.matrix[1][1] = 1; 116 116 a.matrix[2][1] = 0; 117 117 118 118 a.matrix[0][2] = dx; 119 119 a.matrix[1][2] = dy; 120 120 a.matrix[2][2] = 1; 121 121 122 122 transform_t b = *trans; 123 123 124 124 transform_product(trans, &a, &b); 125 125 } … … 128 128 { 129 129 transform_t a; 130 130 131 131 a.matrix[0][0] = qx; 132 132 a.matrix[1][0] = 0; 133 133 a.matrix[2][0] = 0; 134 134 135 135 a.matrix[0][1] = 0; 136 136 a.matrix[1][1] = qy; 137 137 a.matrix[2][1] = 0; 138 138 139 139 a.matrix[0][2] = 0; 140 140 a.matrix[1][2] = 0; 141 141 a.matrix[2][2] = 1; 142 142 143 143 transform_t b = *trans; 144 144 145 145 transform_product(trans, &a, &b); 146 146 } … … 149 149 { 150 150 transform_t a; 151 151 152 152 a.matrix[0][0] = cos(angle); 153 153 a.matrix[1][0] = sin(angle); 154 154 a.matrix[2][0] = 0; 155 155 156 156 a.matrix[0][1] = -sin(angle); 157 157 a.matrix[1][1] = cos(angle); 158 158 a.matrix[2][1] = 0; 159 159 160 160 a.matrix[0][2] = 0; 161 161 a.matrix[1][2] = 0; 162 162 a.matrix[2][2] = 1; 163 163 164 164 transform_t b = *trans; 165 165 166 166 transform_product(trans, &a, &b); 167 167 } … … 179 179 double old_x = *x; 180 180 double old_y = *y; 181 181 182 182 *x = old_x * trans->matrix[0][0] + old_y * trans->matrix[0][1]; 183 183 *y = old_x * trans->matrix[1][0] + old_y * trans->matrix[1][1]; … … 188 188 double old_x = *x; 189 189 double old_y = *y; 190 190 191 191 *x = old_x * trans->matrix[0][0] + old_y * trans->matrix[0][1] + 192 192 trans->matrix[0][2];
Note:
See TracChangeset
for help on using the changeset viewer.