Subversion Repositories filter_foundry

Rev

Rev 379 | Rev 489 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 379 Rev 473
Line 1114... Line 1114...
1114
        // https://misc.daniel-marschall.de/projects/filter_factory/function_c2m.html
1114
        // https://misc.daniel-marschall.de/projects/filter_factory/function_c2m.html
1115
        int32_t eax, ebx;
1115
        int32_t eax, ebx;
1116
        ebx = y < 0 ? -y : y;
1116
        ebx = y < 0 ? -y : y;
1117
        eax = x < 0 ? -x : x;
1117
        eax = x < 0 ? -x : x;
1118
        if (eax == ebx) {
1118
        if (eax == ebx) {
1119
                eax = 27146; // 27146/65536 == sqrt(1)-1
1119
                eax = 27146; // 27146/65536 == sqrt(2)-1
1120
        }
1120
        }
1121
        else {
1121
        else {
1122
                if (eax > ebx) {
1122
                if (eax > ebx) {
1123
                        int tmp = eax;
1123
                        int tmp = eax;
1124
                        eax = ebx;
1124
                        eax = ebx;
Line 1251... Line 1251...
1251
        const int xmin = 0, ymin = 0;
1251
        const int xmin = 0, ymin = 0;
1252
 
1252
 
1253
        eax = (var['X'] - xmin) >> 1;
1253
        eax = (var['X'] - xmin) >> 1;
1254
        ebx = (var['Y'] - ymin) >> 1;
1254
        ebx = (var['Y'] - ymin) >> 1;
1255
        if (eax == ebx) {
1255
        if (eax == ebx) {
1256
                eax = 27146; // 27146/65536 == sqrt(1)-1
1256
                eax = 27146; // 27146/65536 == sqrt(2)-1
1257
        }
1257
        }
1258
        else {
1258
        else {
1259
                if (eax > ebx) {
1259
                if (eax > ebx) {
1260
                        int tmp = eax;
1260
                        int tmp = eax;
1261
                        eax = ebx;
1261
                        eax = ebx;
Line 1304... Line 1304...
1304
        ebx = ((ymin - var['Y']) >> 1) + var['y'];
1304
        ebx = ((ymin - var['Y']) >> 1) + var['y'];
1305
        eax = eax < 0 ? -eax : eax;
1305
        eax = eax < 0 ? -eax : eax;
1306
        ebx = ebx < 0 ? -ebx : ebx;
1306
        ebx = ebx < 0 ? -ebx : ebx;
1307
 
1307
 
1308
        if (eax == ebx) {
1308
        if (eax == ebx) {
1309
                eax = 27146; // 27146/65536 == sqrt(1)-1
1309
                eax = 27146; // 27146/65536 == sqrt(2)-1
1310
        }
1310
        }
1311
        else {
1311
        else {
1312
                if (eax > ebx) {
1312
                if (eax > ebx) {
1313
                        int tmp = eax;
1313
                        int tmp = eax;
1314
                        eax = ebx;
1314
                        eax = ebx;