/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation. All rights reserved. */
/* time: March 19, 1993 5:48:05 pm PST */
/* C2C version: February 24, 1993 (sun4) */
/* ref-counting: off */
/* file: BiScrollersTransformsImpl, module: BiScrollersTransformsImpl */
/* switches: bcfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [2180410997,1075106069] BiScrollersTransformsImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1, f2;} W3;
typedef struct {word f0, f1;} W2;
typedef word (*fPt)();
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef W2 *W2Pt;
typedef struct {word f0, f1, f2, f3;} W4;
typedef W4 *W4Pt;
typedef W3 *W3Pt;
#define SOURCE(p, l) /* source p, l */
#define FABS(f, t) ( ((t=(f)) >= (float) 0.0) ? (t) : (- (t)) )
static float fc58 = 0.0;
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
static float fc67 = 1.0;
static float fc102 = 2.0;
#define FMIN(x, y, tx, ty) ( (tx=((float) x)) <= (ty=((float) y)) ? tx : ty )
static void NoName←Q1836();
static void BiScrollersTransformsImpl←P0();
static word Scale←P60();
static void ConstantVector←P120();
static word SGN←P180();
static word ZeroProtect←P240();
static word Rotate←P300();
static word Shift←P360();
static word Align←P420();
static word Blend←P1236();
static void ViewLimitsOfImage←P480();
static void ViewLimitsOfImage2←P540();
static word Round←P600();
static word BoxScale←P660();
static word Fit←P720();
static void Norm←P780();
static void BeVec←P840();
static word BeReal←P900();
static void BeRect←P960();
static word BeBool←P1020();
static word DoBSUserAction←P1080();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\247\031\224\326\300\123\162\224\023\100\164\000\000"};
static struct {unsigned f; char r[4];} string2 = {65540, "\256\000\000"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\000\172\225\152\300\104\041\252\375\100\200\000\000"};
static struct {unsigned f; char r[4];} string4 = {131076, "\216\251\000"};
static struct {unsigned f; char r[4];} string5 = {65537, "\001\000\000"};
static struct {unsigned f; char r[8];} string6 = {262152, "TRUE\000\000\000"};
static struct {unsigned f; char r[8];} string7 = {327688, "First\000\000"};
static struct {unsigned f; char r[8];} string8 = {262152, "Last\000\000\000"};
static struct {unsigned f; char r[4];} string9 = {196612, "Mid"};
static struct {unsigned f; char r[8];} string10 = {327688, "Shift\000\000"};
static struct {unsigned f; char r[8];} string11 = {327688, "Scale\000\000"};
static struct {unsigned f; char r[12];} string12 = {655372, "ScaleReset\000"};
static struct {unsigned f; char r[8];} string13 = {393224, "Rotate\000"};
static struct {unsigned f; char r[12];} string14 = {720908, "RotateReset"};
static struct {unsigned f; char r[8];} string15 = {327688, "FitXY\000\000"};
static struct {unsigned f; char r[16];} string16 = {786448, "FitUniformly\000\000\000"};
static struct {unsigned f; char r[8];} string17 = {458760, "Vanilla"};
static struct {unsigned f; char r[12];} string18 = {655372, "AlignFracs\000"};
static struct {unsigned f; char r[12];} string19 = {524300, "BoxScale\000\000\000"};
static struct {unsigned f; char r[8];} string20 = {262152, "Prev\000\000\000"};
static struct {unsigned f; char r[8];} string21 = {327688, "FALSE\000\000"};
static struct {unsigned f; char r[16];} string22 = {851984, "\257\300\201\366\156\165\300\100\024\321\025\100\164\000\000"};
static struct {unsigned f; char r[8];} string23 = {458759, "\006\001(\004\200\377\377"};
static struct {unsigned f; char r[16];} string24 = {851984, "\257\300\133\220\237\206\300\254\332\015\112\100\164\000\000"};
static struct {unsigned f; char r[16];} string25 = {851984, "\257\300\000\172\225\152\300\104\041\252\375\100\150\000\000"};
static struct {unsigned f; char r[16];} string26 = {851984, "\257\300\121\117\377\026\300\315\013\026\004\100\150\000\000"};
static struct {unsigned f; char r[16];} string27 = {851984, "\257\300\246\205\220\035\300\344\000\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string28 = {851984, "\257\300\245\247\302\156\300\052\156\325\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string29 = {851984, "\257\300\247\031\224\326\300\123\162\224\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string30 = {851984, "\257\300\252\311\132\134\300\226\023\126\352\100\150\000\000"};
static W2 dummy140;
static struct {
word f0[26]; word f26; word f27; word f28;
word f29; word f30; word f31; word f32;
word f33; word f34; word f35; word f36;
word f37; word f38; word f39; word f40;
word f41; word f42; word f43; word f44;
word f45; word f46; word f47; word f48;
word f49; word f50; word f51; word f52;
word f53; word f54; word f55; word f56;
word f57; word f58; word f59; word f60;
word f61; word f62; word f63[8];
} globalframe = {
{0}, (word) DoBSUserAction←P1080, 0, (word) BeBool←P1020,
0, (word) BeRect←P960, 0, (word) BeReal←P900,
0, (word) BeVec←P840, 0, (word) Norm←P780,
0, (word) Fit←P720, 0, (word) BoxScale←P660,
0, (word) Round←P600, 0, (word) ViewLimitsOfImage2←P540,
0, (word) ViewLimitsOfImage←P480, 0, (word) Align←P420,
0, (word) Shift←P360, 0, (word) Rotate←P300,
0, (word) ZeroProtect←P240, 0, (word) SGN←P180,
0, (word) ConstantVector←P120, 0, (word) Scale←P60,
0, (word) BiScrollersTransformsImpl←P0, {0}
};
static void NoName←Q1836()
{
register ptr gf←c0248 = (ptr) &globalframe;
word var←c16664;
(* (( (ptr) gf←c0248)+4) ) = (word) XR←GetTypeIndexS((word) (&string1));
(* (( (ptr) gf←c0248)+5) ) = (word) XR←GetTypeIndexS((word) (&string2));
(* (( (ptr) gf←c0248)+6) ) = (word) XR←GetTypeIndexS((word) (&string3));
(* (( (ptr) gf←c0248)+7) ) = (word) XR←GetTypeIndex((word) &string4, 0, (word) &string5);
(* (ptr) (( (bPt) gf←c0248)+40) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0248)+7) ), (word) &string6);
(* (ptr) (( (bPt) gf←c0248)+44) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0248)+7) ), (word) &string7);
(* (ptr) (( (bPt) gf←c0248)+48) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0248)+7) ), (word) &string8);
(* (ptr) (( (bPt) gf←c0248)+52) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0248)+7) ), (word) &string9);
(* (ptr) (( (bPt) gf←c0248)+56) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0248)+7) ), (word) &string10);
(* (ptr) (( (bPt) gf←c0248)+60) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0248)+7) ), (word) &string11);
(* (ptr) (( (bPt) gf←c0248)+64) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0248)+7) ), (word) &string12);
(* (ptr) (( (bPt) gf←c0248)+68) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0248)+7) ), (word) &string13);
(* (ptr) (( (bPt) gf←c0248)+72) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0248)+7) ), (word) &string14);
(* (ptr) (( (bPt) gf←c0248)+76) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0248)+7) ), (word) &string15);
(* (ptr) (( (bPt) gf←c0248)+80) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0248)+7) ), (word) &string16);
(* (ptr) (( (bPt) gf←c0248)+84) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0248)+7) ), (word) &string17);
(* (ptr) (( (bPt) gf←c0248)+88) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0248)+7) ), (word) &string18);
(* (ptr) (( (bPt) gf←c0248)+92) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0248)+7) ), (word) &string19);
(* (ptr) (( (bPt) gf←c0248)+96) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0248)+7) ), (word) &string20);
(* (ptr) (( (bPt) gf←c0248)+100) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0248)+7) ), (word) &string21);
(void) XR←DeclareGlobalFrame((word) "BiScrollersTransformsImpl", &globalframe, (word) XR←GetTypeIndex((word) &string22, 0, (word) &string23)
, (word) (( (bPt) gf←c0248)+248)/* var←c14712 */ );
var←c16664 = (word) XR←ImportInterface((word) "Geom2D", (word) XR←GetTypeIndexS((word) (&string24)), 23);
(* (( (ptr) gf←c0248)+66)/* var←c14840 */ ) = var←c16664;
var←c16664 = (word) XR←ImportInterface((word) "ImagerBox", (word) XR←GetTypeIndexS((word) (&string25)), 7);
(* (( (ptr) gf←c0248)+69)/* var←c15992 */ ) = var←c16664;
(void) XR←ImportProcS(var←c16664, 269484289);
var←c16664 = (word) XR←ImportInterface((word) "ImagerTransformation", (word) XR←GetTypeIndexS((word) (&string26)), 55);
(* (( (ptr) gf←c0248)+65)/* var←c14808 */ ) = var←c16664;
(void) XR←ImportProcS(var←c16664, 135013122);
(void) XR←ImportProcS(var←c16664, 67637506);
(void) XR←ImportProcS(var←c16664, 67899394);
(void) XR←ImportProcS(var←c16664, 67636994);
(void) XR←ImportProcS(var←c16664, 67899906);
var←c16664 = (word) XR←ImportInterface((word) "Real", (word) XR←GetTypeIndexS((word) (&string27)), 11);
(* (( (ptr) gf←c0248)+68)/* var←c15704 */ ) = var←c16664;
(void) XR←ImportProcS(var←c16664, 67371521);
var←c16664 = (word) XR←ImportInterface((word) "RealFns", (word) XR←GetTypeIndexS((word) (&string28)), 36);
(* (( (ptr) gf←c0248)+67)/* var←c15000 */ ) = var←c16664;
(void) XR←ImportProcS(var←c16664, 67636482);
(void) XR←ImportProcS(var←c16664, 67372289);
var←c16664 = (word) XR←ImportInterface((word) "Vector2", (word) XR←GetTypeIndexS((word) (&string29)), 22);
(* (( (ptr) gf←c0248)+64)/* var←c14776 */ ) = var←c16664;
(void) XR←ImportProcS(var←c16664, 134743041);
var←c16664 = (word) XR←ExportInterface((word) "BiScrollersTransforms", (word) XR←GetTypeIndexS((word) (&string30)), 7);
(* (( (ptr) gf←c0248)+70)/* var←c16696 */ ) = var←c16664;
(void) XR←ExportProcS(var←c16664, (word) (( (bPt) gf←c0248)+240)/* var←c14680 */ , 69730311);
(void) XR←ExportProcS(var←c16664, (word) (( (bPt) gf←c0248)+208)/* var←c14552 */ , 69206278);
(void) XR←ExportProcS(var←c16664, (word) (( (bPt) gf←c0248)+200)/* var←c14520 */ , 67895811);
(void) XR←ExportProcS(var←c16664, (word) (( (bPt) gf←c0248)+192)/* var←c14488 */ , 70779658);
(void) XR←ExportProcS(var←c16664, (word) (( (bPt) gf←c0248)+160)/* var←c14360 */ , 70255622);
(void) XR←ExportProcS(var←c16664, (word) (( (bPt) gf←c0248)+152)/* var←c14328 */ , 69207304);
(void) XR←ExportProcS(var←c16664, (word) (( (bPt) gf←c0248)+104)/* var←c14136 */ , 70256139);
}
static void BiScrollersTransformsImpl←P0(formal←c031, formal←c030)
word formal←c031;
word formal←c030;
{
/* BiScrollersTransformsImpl: */
}
static word Scale←P60(old←v3612, op←v3640, cw←v3668, ch←v3696, pp←v3724, vanilla←v3752, mayStretch←v3780)
word old←v3612;
W3 op←v3640;
word cw←v3668;
word ch←v3696;
W2 pp←v3724;
word vanilla←v3752;
word mayStretch←v3780;
{
register ptr gf←c16728 = (ptr) &globalframe;
word new←v3824;
W2 cv←v7208;
/* Scale: */
SOURCE(690, 682)
SOURCE(690, 682)
new←v3824 = 0;
SOURCE(856, 36)
(void) ConstantVector←P120((word) &cv←v7208, cw←v3668, ch←v3696, pp←v3724);
SOURCE(894, 33)
{
W2 var←c14744;
{
word pd31;
pd31 = (* (( (ptr) (* (( (ptr) gf←c16728)+64)/* var←c14776 */ ))+8) );
(void) ( *( (fPt) ((* (ptr) pd31 ))))((word) &var←c14744, cv←v7208, pd31);
};
{
word pd32;
pd32 = (* (( (ptr) (* (( (ptr) gf←c16728)+65)/* var←c14808 */ ))+22) );
new←v3824 = (word) ( *( (fPt) ((* (ptr) pd32 ))))(old←v3612, var←c14744, pd32);
};
};
SOURCE(929, 41)
if ((vanilla←v3752 == 0)) {
SOURCE(951, 19)
vanilla←v3752 = (* (ptr) (* (( (ptr) (* (( (ptr) gf←c16728)+66)/* var←c14840 */ ))+5) ) );
};
SOURCE(972, 353)
{
word var←c14872;
var←c14872 = op←v3640.f0;
switch (var←c14872) {
case 0:
SOURCE(1001, 203)
{
W6 v←v7252;
word vd←v7280;
word od←v7308;
SOURCE(1003, 41)
{
W6 tn←v14088;
tn←v14088.f0 = (* (ptr) vanilla←v3752 );
tn←v14088.f1 = (* (( (ptr) vanilla←v3752)+3) );
tn←v14088.f2 = (* (( (ptr) vanilla←v3752)+1) );
tn←v14088.f3 = (* (( (ptr) vanilla←v3752)+4) );
tn←v14088.f4 = (* (( (ptr) vanilla←v3752)+2) );
tn←v14088.f5 = (* (( (ptr) vanilla←v3752)+5) );
v←v7252 = tn←v14088;
};
SOURCE(1046, 40)
{
word x33;
word x34;
word x35;
word x36;
*(float*)&vd←v7280 = ((
x33 = v←v7252.f0, *(float*)&x33
) * (
x34 = v←v7252.f3, *(float*)&x34
)) - ((
x35 = v←v7252.f1, *(float*)&x35
) * (
x36 = v←v7252.f2, *(float*)&x36
));
};
SOURCE(1088, 36)
{
word x37;
word x38;
word x39;
word x40;
*(float*)&od←v7308 = ((
x37 = (* (ptr) old←v3612 ), *(float*)&x37
) * (
x38 = (* (( (ptr) old←v3612)+4) ), *(float*)&x38
)) - ((
x39 = (* (( (ptr) old←v3612)+3) ), *(float*)&x39
) * (
x40 = (* (( (ptr) old←v3612)+1) ), *(float*)&x40
));
};
SOURCE(1126, 76)
{
word var←c14936;
{
word var←c14968;
word var←c0264;
word var←c0265;
{
float tf41;
word x42;
word x43;
float tf44;
var←c14968 = (
tf44 = FABS(((
/*1*/ x42 = vd←v7280, *(float*)&x42
/*1*/ ) / (
/*1*/ x43 = (word) ZeroProtect←P240(od←v7308), *(float*)&x43
/*1*/ )), tf41), *(word*)&tf44
);
};
{
word pd45;
pd45 = (* (( (ptr) (* (( (ptr) gf←c16728)+67)/* var←c15000 */ ))+9) );
var←c0264 = (word) ( *( (fPt) ((* (ptr) pd45 ))))(var←c14968, pd45);
};
{
word x46;
*(float*)&var←c0265 = (
x46 = var←c0264, *(float*)&x46
) * (float)(int)((word) SGN←P180(vd←v7280) - 1);
};
{
word x47;
*(float*)&var←c14936 = (
x47 = var←c0265, *(float*)&x47
) * (float)(int)((word) SGN←P180(od←v7308) - 1);
};
};
{
word pd48;
pd48 = (* (( (ptr) (* (( (ptr) gf←c16728)+65)/* var←c14808 */ ))+19) );
new←v3824 = (word) ( *( (fPt) ((* (ptr) pd48 ))))(new←v3824, var←c14936, pd48);
};
};
};
break;
case 1:
SOURCE(1216, 24)
{
word pd49;
pd49 = (* (( (ptr) (* (( (ptr) gf←c16728)+65)/* var←c14808 */ ))+19) );
new←v3824 = (word) ( *( (fPt) ((* (ptr) pd49 ))))(new←v3824, op←v3640.f1, pd49);
};
break;
case 2:
SOURCE(1250, 75)
if ((0 != mayStretch←v3780)) {
SOURCE(1269, 34)
{
W2 var←c15032;
var←c15032.f0 = op←v3640.f1;
var←c15032.f1 = op←v3640.f2;
{
word pd50;
pd50 = (* (( (ptr) (* (( (ptr) gf←c16728)+65)/* var←c14808 */ ))+20) );
new←v3824 = (word) ( *( (fPt) ((* (ptr) pd50 ))))(new←v3824, var←c15032, pd50);
};
};
}
else {
SOURCE(1303, 22)
{
word pd51;
pd51 = (* (( (ptr) (* (( (ptr) gf←c16728)+65)/* var←c14808 */ ))+19) );
new←v3824 = (word) ( *( (fPt) ((* (ptr) pd51 ))))(new←v3824, op←v3640.f1, pd51);
};
};
break;
default:
SOURCE(1338, 5)
(void) XR←RaiseUnnamedError();
break;
};
};
SOURCE(1345, 27)
{
word pd52;
pd52 = (* (( (ptr) (* (( (ptr) gf←c16728)+65)/* var←c14808 */ ))+22) );
new←v3824 = (word) ( *( (fPt) ((* (ptr) pd52 ))))(new←v3824, cv←v7208, pd52);
};
SOURCE(690, 682)
return(new←v3824);
}
static void ConstantVector←P120(formal←c056, cw←v3884, ch←v3912, pp←v3940)
word formal←c056;
word cw←v3884;
word ch←v3912;
W2 pp←v3940;
{
W2 cv←v3984;
/* ConstantVector: */
SOURCE(1378, 105)
SOURCE(1458, 25)
{
word x53;
word x54;
*(float*)&cv←v3984.f0 = (
x53 = cw←v3884, *(float*)&x53
) * (
x54 = pp←v3940.f0, *(float*)&x54
);
};
{
word x55;
word x56;
*(float*)&cv←v3984.f1 = (
x55 = ch←v3912, *(float*)&x55
) * (
x56 = pp←v3940.f1, *(float*)&x56
);
};
/* removed tail goto */
(* (W2Pt) formal←c056 ) = cv←v3984;
return;
}
static word SGN←P180(r←v4044)
word r←v4044;
{
word sgn←v4088;
/* SGN: */
SOURCE(1489, 113)
SOURCE(1538, 64)
{
word var←c15064;
var←c15064 = r←v4044;
{
word x57;
word x59;
word x60;
word x61;
word x62;
word x63;
word idx64;
sgn←v4088 = (
idx64 = (word) ( ( ((
x57 = var←c15064, *(float*)&x57
) < (
x59 = (* (ptr) &fc58 ), *(float*)&x59
)) ? (word) -1 : ( ((
x60 = var←c15064, *(float*)&x60
) == (
x61 = (* (ptr) &fc58 ), *(float*)&x61
)) ? 0 : ( ((
x62 = var←c15064, *(float*)&x62
) > (
x63 = (* (ptr) &fc58 ), *(float*)&x63
)) ? 1 : (
XR←RaiseUnnamedError(), 0
) ) ) ) + 1),
BCK(idx64, 3)
);
};
};
SOURCE(1489, 113)
return(sgn←v4088);
}
static word ZeroProtect←P240(r←v4168)
word r←v4168;
{
word r0←v4212;
/* ZeroProtect: */
SOURCE(1606, 81)
SOURCE(1656, 31)
{
word x65;
word x66;
if (((
x65 = r←v4168, *(float*)&x65
) == (
x66 = (* (ptr) &fc58 ), *(float*)&x66
))) {
r0←v4212 = (* (ptr) &fc67 );
}
else {
r0←v4212 = r←v4168;
};
};
SOURCE(1606, 81)
return(r0←v4212);
}
static word Rotate←P300(old←v4272, op←v4300, cw←v4328, ch←v4356, pp←v4384, vanilla←v4412)
word old←v4272;
W2 op←v4300;
word cw←v4328;
word ch←v4356;
W2 pp←v4384;
word vanilla←v4412;
{
register ptr gf←c16760 = (ptr) &globalframe;
word new←v4456;
W2 cv←v7352;
/* Rotate: */
SOURCE(1691, 478)
SOURCE(1691, 478)
new←v4456 = 0;
SOURCE(1833, 36)
(void) ConstantVector←P120((word) &cv←v7352, cw←v4328, ch←v4356, pp←v4384);
SOURCE(1871, 33)
{
W2 var←c15096;
{
word pd68;
pd68 = (* (( (ptr) (* (( (ptr) gf←c16760)+64)/* var←c14776 */ ))+8) );
(void) ( *( (fPt) ((* (ptr) pd68 ))))((word) &var←c15096, cv←v7352, pd68);
};
{
word pd69;
pd69 = (* (( (ptr) (* (( (ptr) gf←c16760)+65)/* var←c14808 */ ))+22) );
new←v4456 = (word) ( *( (fPt) ((* (ptr) pd69 ))))(old←v4272, var←c15096, pd69);
};
};
SOURCE(1906, 216)
{
word var←c15128;
var←c15128 = op←v4300.f0;
if ((var←c15128 == 0)) {
SOURCE(1935, 150)
{
W6 v←v7396;
SOURCE(1937, 41)
{
W6 tn←v14040;
tn←v14040.f0 = (* (ptr) vanilla←v4412 );
tn←v14040.f1 = (* (( (ptr) vanilla←v4412)+3) );
tn←v14040.f2 = (* (( (ptr) vanilla←v4412)+1) );
tn←v14040.f3 = (* (( (ptr) vanilla←v4412)+4) );
tn←v14040.f4 = (* (( (ptr) vanilla←v4412)+2) );
tn←v14040.f5 = (* (( (ptr) vanilla←v4412)+5) );
v←v7396 = tn←v14040;
};
SOURCE(1980, 103)
{
word var←c15192;
{
word pd70;
word x71;
word pd72;
word x73;
pd70 = (* (( (ptr) (* (( (ptr) gf←c16760)+67)/* var←c15000 */ ))+17) );
pd72 = (* (( (ptr) (* (( (ptr) gf←c16760)+67)/* var←c15000 */ ))+17) );
*(float*)&var←c15192 = (
x71 = (word) ( *( (fPt) ((* (ptr) pd70 ))))(v←v7396.f1, v←v7396.f0, pd70), *(float*)&x71
) - (
x73 = (word) ( *( (fPt) ((* (ptr) pd72 ))))((* (( (ptr) old←v4272)+3) ), (* (ptr) old←v4272 ), pd72), *(float*)&x73
);
};
{
word pd74;
pd74 = (* (( (ptr) (* (( (ptr) gf←c16760)+65)/* var←c14808 */ ))+21) );
new←v4456 = (word) ( *( (fPt) ((* (ptr) pd74 ))))(new←v4456, var←c15192, pd74);
};
};
};
}
else {
if ((var←c15128 == 1)) {
SOURCE(2097, 25)
{
word pd75;
pd75 = (* (( (ptr) (* (( (ptr) gf←c16760)+65)/* var←c14808 */ ))+21) );
new←v4456 = (word) ( *( (fPt) ((* (ptr) pd75 ))))(new←v4456, op←v4300.f1, pd75);
};
}
else {
SOURCE(2135, 5)
(void) XR←RaiseUnnamedError();
};
};
};
SOURCE(2142, 27)
{
word pd76;
pd76 = (* (( (ptr) (* (( (ptr) gf←c16760)+65)/* var←c14808 */ ))+22) );
new←v4456 = (word) ( *( (fPt) ((* (ptr) pd76 ))))(new←v4456, cv←v7352, pd76);
};
SOURCE(1691, 478)
return(new←v4456);
}
static word Shift←P360(old←v4516, dx←v4544, dy←v4572)
word old←v4516;
word dx←v4544;
word dy←v4572;
{
register ptr gf←c16792 = (ptr) &globalframe;
word new←v4616;
/* Shift: */
SOURCE(2175, 112)
SOURCE(2175, 112)
new←v4616 = 0;
SOURCE(2254, 33)
{
W2 var←c15224;
var←c15224.f0 = dx←v4544;
var←c15224.f1 = dy←v4572;
{
word pd77;
pd77 = (* (( (ptr) (* (( (ptr) gf←c16792)+65)/* var←c14808 */ ))+22) );
new←v4616 = (word) ( *( (fPt) ((* (ptr) pd77 ))))(old←v4516, var←c15224, pd77);
};
};
SOURCE(2175, 112)
return(new←v4616);
}
static word Align←P420(old←v4676, client←v4704, viewer←v4732, doX←v4760, doY←v4788, cw←v4816, ch←v4844, extremaProc←v4872, clientData←v4900, ageOp←v4928)
word old←v4676;
W3 client←v4704;
W3 viewer←v4732;
word doX←v4760;
word doY←v4788;
word cw←v4816;
word ch←v4844;
word extremaProc←v4872;
word clientData←v4900;
word ageOp←v4928;
{
W6 var←c16824;
register ptr gf←c16856 = (ptr) &globalframe;
word new←v4988;
/* declaration of var←c15256 skipped */
W2 from←v7440;
W2 to←v7468;
/* Align: */
SOURCE(2293, 870)
{
word tmpAddr78;
tmpAddr78 = (word) (( (ptr) &var←c16824)+4)/* var←c15256 */ ;
(* (ptr) tmpAddr78 ) = ( ((word) (fPt) Blend←P1236) );
(* (( (ptr) tmpAddr78) + 1) ) = 1;
};
SOURCE(2293, 870)
new←v4988 = 0;
SOURCE(2489, 26)
from←v7440.f0 = (* (ptr) &fc58 );
from←v7440.f1 = (* (ptr) &fc58 );
to←v7468 = from←v7440;
SOURCE(2596, 324)
{
word var←c15320;
var←c15320 = client←v4704.f0;
if ((var←c15320 == 0)) {
SOURCE(2629, 28)
{
W2 var←c098;
{
W2 var←c15352;
var←c15352.f0 = client←v4704.f1;
var←c15352.f1 = client←v4704.f2;
{
word pd79;
pd79 = (* (( (ptr) (* (( (ptr) gf←c16856)+65)/* var←c14808 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd79 ))))((word) &var←c098, old←v4676, var←c15352, pd79);
};
};
from←v7440 = var←c098;
};
}
else {
if ((var←c15320 == 1)) {
SOURCE(2671, 254)
{
word vmin←v7700;
word vmax←v7728;
SOURCE(2691, 112)
if ((0 != doX←v4760)) {
SOURCE(2705, 66)
{
W2 var←c15384;
(void) ViewLimitsOfImage2←P540((word) &var←c15384, old←v4676, extremaProc←v4872, clientData←v4900, 0);
vmax←v7728 = var←c15384.f1;
vmin←v7700 = var←c15384.f0;
};
SOURCE(2773, 30)
from←v7440.f0 = (word) Blend←P1236(client←v4704.f1, vmin←v7700, vmax←v7728, (word) (( (bPt) &var←c16824)+16)/* var←c15256 */ )
;
};
SOURCE(2808, 112)
if ((0 != doY←v4788)) {
SOURCE(2822, 66)
{
W2 var←c15416;
(void) ViewLimitsOfImage2←P540((word) &var←c15416, old←v4676, extremaProc←v4872, clientData←v4900, 1);
vmax←v7728 = var←c15416.f1;
vmin←v7700 = var←c15416.f0;
};
SOURCE(2890, 30)
from←v7440.f1 = (word) Blend←P1236(client←v4704.f2, vmin←v7700, vmax←v7728, (word) (( (bPt) &var←c16824)+16)/* var←c15256 */ )
;
};
};
}
else {
SOURCE(2939, 5)
(void) XR←RaiseUnnamedError();
};
};
};
SOURCE(2946, 79)
{
word var←c15448;
var←c15448 = viewer←v4732.f0;
if ((var←c15448 == 0)) {
SOURCE(2979, 11)
to←v7468.f0 = viewer←v4732.f1;
to←v7468.f1 = viewer←v4732.f2;
}
else {
if ((var←c15448 == 1)) {
SOURCE(3006, 19)
{
word x80;
word x81;
*(float*)&to←v7468.f0 = (
x80 = viewer←v4732.f1, *(float*)&x80
) * (
x81 = cw←v4816, *(float*)&x81
);
};
{
word x82;
word x83;
*(float*)&to←v7468.f1 = (
x82 = viewer←v4732.f2, *(float*)&x82
) * (
x83 = ch←v4844, *(float*)&x83
);
};
}
else {
SOURCE(3041, 5)
(void) XR←RaiseUnnamedError();
};
};
};
SOURCE(3048, 29)
if ((0 == doX←v4760)) {
SOURCE(3064, 13)
to←v7468.f0 = from←v7440.f0;
};
SOURCE(3079, 29)
if ((0 == doY←v4788)) {
SOURCE(3095, 13)
to←v7468.f1 = from←v7440.f1;
};
SOURCE(3110, 53)
{
word var←c15480;
{
W2 var←c15512;
{
word pd84;
pd84 = (* (( (ptr) (* (( (ptr) gf←c16856)+64)/* var←c14776 */ ))+8) );
(void) ( *( (fPt) ((* (ptr) pd84 ))))((word) &var←c15512, from←v7440, pd84);
};
{
word pd85;
pd85 = (* (( (ptr) (* (( (ptr) gf←c16856)+65)/* var←c14808 */ ))+22) );
var←c15480 = (word) ( *( (fPt) ((* (ptr) pd85 ))))(old←v4676, var←c15512, pd85);
};
};
{
word pd86;
pd86 = (* (( (ptr) (* (( (ptr) gf←c16856)+65)/* var←c14808 */ ))+22) );
new←v4988 = (word) ( *( (fPt) ((* (ptr) pd86 ))))(var←c15480, to←v7468, pd86);
};
};
SOURCE(2293, 870)
return(new←v4988);
}
static word Blend←P1236(a←v7572, b0←v7600, b1←v7628, formal←c16888)
word a←v7572;
word b0←v7600;
word b1←v7628;
word formal←c16888;
{
word c←v7672;
formal←c16888 = (formal←c16888 - 16);
/* Blend: */
SOURCE(2517, 76)
SOURCE(2574, 19)
{
word x87;
word x88;
word x89;
word x90;
word x91;
*(float*)&c←v7672 = (((
x87 = (* (ptr) &fc67 ), *(float*)&x87
) - (
x88 = a←v7572, *(float*)&x88
)) * (
x89 = b0←v7600, *(float*)&x89
)) + ((
x90 = a←v7572, *(float*)&x90
) * (
x91 = b1←v7628, *(float*)&x91
));
};
SOURCE(2517, 76)
return(c←v7672);
}
static void ViewLimitsOfImage←P480(formal←c0122, t←v5048, min←v5076, max←v5104, axis←v5132)
word formal←c0122;
word t←v5048;
W2 min←v5076;
W2 max←v5104;
word axis←v5132;
{
register ptr gf←c16920 = (ptr) &globalframe;
word vmin←v5176;
word vmax←v5204;
/* ViewLimitsOfImage: */
SOURCE(3169, 229)
SOURCE(3266, 22)
{
word pd92;
pd92 = (* (( (ptr) (* (( (ptr) gf←c16920)+65)/* var←c14808 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd92 ))))((word) &min←v5076, t←v5048, min←v5076, pd92);
};
SOURCE(3290, 22)
{
word pd93;
pd93 = (* (( (ptr) (* (( (ptr) gf←c16920)+65)/* var←c14808 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd93 ))))((word) &max←v5104, t←v5048, max←v5104, pd93);
};
SOURCE(3314, 84)
{
word var←c15544;
var←c15544 = axis←v5132;
if ((var←c15544 == 0)) {
SOURCE(3337, 12)
vmin←v5176 = min←v5076.f0;
SOURCE(3351, 12)
vmax←v5204 = max←v5104.f0;
}
else {
if ((var←c15544 == 1)) {
SOURCE(3372, 12)
vmin←v5176 = min←v5076.f1;
SOURCE(3386, 12)
vmax←v5204 = max←v5104.f1;
}
else {
SOURCE(3412, 5)
(void) XR←RaiseUnnamedError();
};
};
};
/* removed tail goto */
(* (ptr) formal←c0122 ) = vmin←v5176;
(* (( (ptr) formal←c0122)+1) ) = vmax←v5204;
return;
}
static void ViewLimitsOfImage2←P540(formal←c0140, t←v5264, extremaProc←v5292, clientData←v5320, axis←v5348)
word formal←c0140;
word t←v5264;
word extremaProc←v5292;
word clientData←v5320;
word axis←v5348;
{
register ptr gf←c16952 = (ptr) &globalframe;
word vmin←v5404;
word vmax←v5432;
W6 tn←v7772;
W2 norm←v7800;
W2 min←v7828;
W2 max←v7856;
/* ViewLimitsOfImage2: */
SOURCE(3423, 460)
SOURCE(3549, 36)
{
W6 tn←v13992;
tn←v13992.f0 = (* (ptr) t←v5264 );
tn←v13992.f1 = (* (( (ptr) t←v5264)+3) );
tn←v13992.f2 = (* (( (ptr) t←v5264)+1) );
tn←v13992.f3 = (* (( (ptr) t←v5264)+4) );
tn←v13992.f4 = (* (( (ptr) t←v5264)+2) );
tn←v13992.f5 = (* (( (ptr) t←v5264)+5) );
tn←v7772 = tn←v13992;
};
SOURCE(3608, 79)
{
word var←c15608;
var←c15608 = axis←v5348;
if ((var←c15608 == 0)) {
SOURCE(3630, 25)
norm←v7800.f0 = tn←v7772.f0;
norm←v7800.f1 = tn←v7772.f2;
}
else {
if ((var←c15608 == 1)) {
SOURCE(3662, 25)
norm←v7800.f0 = tn←v7772.f1;
norm←v7800.f1 = tn←v7772.f3;
}
else {
SOURCE(3700, 5)
(void) XR←RaiseUnnamedError();
};
};
};
SOURCE(3707, 42)
{
W4 var←c15640;
(void) ( *( (fPt) ((* (ptr) extremaProc←v5292 ))))((word) &var←c15640, clientData←v5320, norm←v7800, extremaProc←v5292);
max←v7856 = (* (W2Pt) (( (ptr) &var←c15640)+2) );
min←v7828 = (* (W2Pt) &var←c15640 );
};
SOURCE(3751, 22)
{
word pd94;
pd94 = (* (( (ptr) (* (( (ptr) gf←c16952)+65)/* var←c14808 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd94 ))))((word) &min←v7828, t←v5264, min←v7828, pd94);
};
SOURCE(3775, 22)
{
word pd95;
pd95 = (* (( (ptr) (* (( (ptr) gf←c16952)+65)/* var←c14808 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd95 ))))((word) &max←v7856, t←v5264, max←v7856, pd95);
};
SOURCE(3799, 84)
{
word var←c15672;
var←c15672 = axis←v5348;
if ((var←c15672 == 0)) {
SOURCE(3822, 12)
vmin←v5404 = min←v7828.f0;
SOURCE(3836, 12)
vmax←v5432 = max←v7856.f0;
}
else {
if ((var←c15672 == 1)) {
SOURCE(3857, 12)
vmin←v5404 = min←v7828.f1;
SOURCE(3871, 12)
vmax←v5432 = max←v7856.f1;
}
else {
SOURCE(3897, 5)
(void) XR←RaiseUnnamedError();
};
};
};
/* removed tail goto */
(* (ptr) formal←c0140 ) = vmin←v5404;
(* (( (ptr) formal←c0140)+1) ) = vmax←v5432;
return;
}
static word Round←P600(r←v5492)
word r←v5492;
{
register ptr gf←c16984 = (ptr) &globalframe;
word rr←v5536;
word i←v7900;
/* Round: */
SOURCE(3908, 110)
SOURCE(3953, 22)
{
word pd96;
pd96 = (* (( (ptr) (* (( (ptr) gf←c16984)+68)/* var←c15704 */ ))+6) );
i←v7900 = (word) ( *( (fPt) ((* (ptr) pd96 ))))(r←v5492, pd96);
};
SOURCE(3977, 41)
{
word x97;
word x98;
float tf99;
if (( (unsigned) ( (int)i←v7900 == (int)0) != (unsigned) ((
x97 = r←v5492, *(float*)&x97
) == (
x98 = (* (ptr) &fc58 ), *(float*)&x98
)))) {
rr←v5536 = r←v5492;
}
else {
rr←v5536 = (
tf99 = (float)(int)i←v7900, *(word*)&tf99
);
};
};
SOURCE(3908, 110)
return(rr←v5536);
}
static word BoxScale←P660(old←v5596, from←v5624, to←v5652, uniformly←v5680, mayStretch←v5708, preferIntegerCoefficients←v5736)
word old←v5596;
W4 from←v5624;
W4 to←v5652;
word uniformly←v5680;
word mayStretch←v5708;
word preferIntegerCoefficients←v5736;
{
register ptr gf←c17016 = (ptr) &globalframe;
word new←v5780;
word ndx←v7944;
word ndy←v7972;
word odx←v8000;
word ody←v8028;
word sx←v8056;
word sy←v8084;
/* BoxScale: */
SOURCE(4024, 665)
SOURCE(4024, 665)
new←v5780 = 0;
SOURCE(4258, 70)
{
W2 var←c15736;
{
word x100;
word x101;
word x103;
*(float*)&var←c15736.f0 = - ((
x100 = from←v5624.f0, *(float*)&x100
) + ((
x101 = from←v5624.f2, *(float*)&x101
) / (
x103 = (* (ptr) &fc102 ), *(float*)&x103
)));
};
{
word x104;
word x105;
word x106;
*(float*)&var←c15736.f1 = - ((
x104 = from←v5624.f1, *(float*)&x104
) + ((
x105 = from←v5624.f3, *(float*)&x105
) / (
x106 = (* (ptr) &fc102 ), *(float*)&x106
)));
};
{
word pd107;
pd107 = (* (( (ptr) (* (( (ptr) gf←c17016)+65)/* var←c14808 */ ))+22) );
new←v5780 = (word) ( *( (fPt) ((* (ptr) pd107 ))))(old←v5596, var←c15736, pd107);
};
};
SOURCE(4330, 10)
ndx←v7944 = to←v5652.f2;
SOURCE(4342, 10)
ndy←v7972 = to←v5652.f3;
SOURCE(4354, 12)
odx←v8000 = from←v5624.f2;
SOURCE(4368, 12)
ody←v8028 = from←v5624.f3;
SOURCE(4382, 42)
{
word x108;
word x109;
word x110;
word x111;
word x112;
word x113;
if (((
x108 = ndx←v7944, *(float*)&x108
) == (
x109 = (* (ptr) &fc58 ), *(float*)&x109
)) || ((
x110 = odx←v8000, *(float*)&x110
) == (
x111 = (* (ptr) &fc58 ), *(float*)&x111
))) {
sx←v8056 = (* (ptr) &fc67 );
}
else {
*(float*)&sx←v8056 = (
x112 = ndx←v7944, *(float*)&x112
) / (
x113 = odx←v8000, *(float*)&x113
);
};
};
SOURCE(4426, 42)
{
word x114;
word x115;
word x116;
word x117;
word x118;
word x119;
if (((
x114 = ndy←v7972, *(float*)&x114
) == (
x115 = (* (ptr) &fc58 ), *(float*)&x115
)) || ((
x116 = ody←v8028, *(float*)&x116
) == (
x117 = (* (ptr) &fc58 ), *(float*)&x117
))) {
sy←v8084 = (* (ptr) &fc67 );
}
else {
*(float*)&sy←v8084 = (
x118 = ndy←v7972, *(float*)&x118
) / (
x119 = ody←v8028, *(float*)&x119
);
};
};
SOURCE(4470, 57)
if ((0 != uniformly←v5680) || (0 == mayStretch←v5708)) {
SOURCE(4506, 21)
{
word var←c15768;
{
word x120;
float tf121;
float tf122;
word x123;
float tf124;
var←c15768 = (
tf124 = FMIN((
x120 = sx←v8056, *(float*)&x120
), (
x123 = sy←v8084, *(float*)&x123
), tf121, tf122), *(word*)&tf124
);
};
sy←v8084 = var←c15768;
sx←v8056 = var←c15768;
};
};
SOURCE(4529, 65)
if ((0 != preferIntegerCoefficients←v5736)) {
SOURCE(4564, 14)
sx←v8056 = (word) Round←P600(sx←v8056);
SOURCE(4580, 14)
sy←v8084 = (word) Round←P600(sy←v8084);
};
SOURCE(4597, 30)
{
W2 var←c15800;
var←c15800.f0 = sx←v8056;
var←c15800.f1 = sy←v8084;
{
word pd125;
pd125 = (* (( (ptr) (* (( (ptr) gf←c17016)+65)/* var←c14808 */ ))+20) );
new←v5780 = (word) ( *( (fPt) ((* (ptr) pd125 ))))(new←v5780, var←c15800, pd125);
};
};
SOURCE(4629, 60)
{
W2 var←c15832;
{
word x126;
word x127;
word x128;
*(float*)&var←c15832.f0 = (
x126 = to←v5652.f0, *(float*)&x126
) + ((
x127 = to←v5652.f2, *(float*)&x127
) / (
x128 = (* (ptr) &fc102 ), *(float*)&x128
));
};
{
word x129;
word x130;
word x131;
*(float*)&var←c15832.f1 = (
x129 = to←v5652.f1, *(float*)&x129
) + ((
x130 = to←v5652.f3, *(float*)&x130
) / (
x131 = (* (ptr) &fc102 ), *(float*)&x131
));
};
{
word pd132;
pd132 = (* (( (ptr) (* (( (ptr) gf←c17016)+65)/* var←c14808 */ ))+22) );
new←v5780 = (word) ( *( (fPt) ((* (ptr) pd132 ))))(new←v5780, var←c15832, pd132);
};
};
SOURCE(4024, 665)
return(new←v5780);
}
static word Fit←P720(old←v5840, uniformly←v5868, cw←v5896, ch←v5924, extremaProc←v5952, clientData←v5980, mayStretch←v6008, preferIntegerCoefficients←v6036)
word old←v5840;
word uniformly←v5868;
word cw←v5896;
word ch←v5924;
word extremaProc←v5952;
word clientData←v5980;
word mayStretch←v6008;
word preferIntegerCoefficients←v6036;
{
register ptr gf←c17048 = (ptr) &globalframe;
word new←v6092;
W2 normX←v8128;
W2 normY←v8156;
W2 minX←v8184;
W2 maxX←v8212;
W2 minY←v8240;
W2 maxY←v8268;
W4 limits←v8296;
W4 from←v8324;
W4 to←v8352;
/* Fit: */
SOURCE(4749, 706)
SOURCE(4749, 706)
new←v6092 = 0;
SOURCE(4952, 25)
(void) Norm←P780((word) &normX←v8128, old←v5840, 0);
SOURCE(4979, 25)
(void) Norm←P780((word) &normY←v8156, old←v5840, 1);
SOURCE(5082, 45)
{
W4 var←c15864;
(void) ( *( (fPt) ((* (ptr) extremaProc←v5952 ))))((word) &var←c15864, clientData←v5980, normX←v8128, extremaProc←v5952)
;
maxX←v8212 = (* (W2Pt) (( (ptr) &var←c15864)+2) );
minX←v8184 = (* (W2Pt) &var←c15864 );
};
SOURCE(5129, 45)
{
W4 var←c15896;
(void) ( *( (fPt) ((* (ptr) extremaProc←v5952 ))))((word) &var←c15896, clientData←v5980, normY←v8156, extremaProc←v5952)
;
maxY←v8268 = (* (W2Pt) (( (ptr) &var←c15896)+2) );
minY←v8240 = (* (W2Pt) &var←c15896 );
};
SOURCE(5176, 66)
{
W2 var←c15928;
(void) ViewLimitsOfImage←P480((word) &var←c15928, old←v5840, minX←v8184, maxX←v8212, 0);
limits←v8296.f2 = var←c15928.f1;
limits←v8296.f0 = var←c15928.f0;
};
SOURCE(5244, 66)
{
W2 var←c15960;
(void) ViewLimitsOfImage←P480((word) &var←c15960, old←v5840, minY←v8240, maxY←v8268, 1);
limits←v8296.f3 = var←c15960.f1;
limits←v8296.f1 = var←c15960.f0;
};
SOURCE(5312, 41)
{
word pd133;
pd133 = (* (( (ptr) (* (( (ptr) gf←c17048)+69)/* var←c15992 */ ))+5) );
(void) ( *( (fPt) ((* (ptr) pd133 ))))((word) &from←v8324, limits←v8296, pd133);
};
SOURCE(5355, 19)
to←v8352.f0 = (* (ptr) &fc58 );
to←v8352.f1 = (* (ptr) &fc58 );
to←v8352.f2 = cw←v5896;
to←v8352.f3 = ch←v5924;
SOURCE(5376, 79)
new←v6092 = (word) BoxScale←P660(old←v5840, from←v8324, to←v8352, uniformly←v5868, mayStretch←v6008, preferIntegerCoefficients←v6036)
;
SOURCE(4749, 706)
return(new←v6092);
}
static void Norm←P780(formal←c0196, t←v6152, axis←v6180)
word formal←c0196;
word t←v6152;
word axis←v6180;
{
W2 norm←v6224;
W6 tn←v8396;
/* Norm: */
SOURCE(5461, 179)
SOURCE(5523, 36)
{
W6 tn←v13944;
tn←v13944.f0 = (* (ptr) t←v6152 );
tn←v13944.f1 = (* (( (ptr) t←v6152)+3) );
tn←v13944.f2 = (* (( (ptr) t←v6152)+1) );
tn←v13944.f3 = (* (( (ptr) t←v6152)+4) );
tn←v13944.f4 = (* (( (ptr) t←v6152)+2) );
tn←v13944.f5 = (* (( (ptr) t←v6152)+5) );
tn←v8396 = tn←v13944;
};
SOURCE(5561, 79)
{
word var←c16056;
var←c16056 = axis←v6180;
if ((var←c16056 == 0)) {
SOURCE(5583, 25)
norm←v6224.f0 = tn←v8396.f0;
norm←v6224.f1 = tn←v8396.f2;
}
else {
if ((var←c16056 == 1)) {
SOURCE(5615, 25)
norm←v6224.f0 = tn←v8396.f1;
norm←v6224.f1 = tn←v8396.f3;
}
else {
SOURCE(5653, 5)
(void) XR←RaiseUnnamedError();
};
};
};
/* removed tail goto */
(* (W2Pt) formal←c0196 ) = norm←v6224;
return;
}
static void BeVec←P840(formal←c0200, ra←v6284)
word formal←c0200;
word ra←v6284;
{
register ptr gf←c17080 = (ptr) &globalframe;
W2 var←c6340;
/* BeVec: */
SOURCE(5664, 72)
SOURCE(5707, 29)
var←c6340 = (* (W2Pt) XR←Narrow(ra←v6284, (* (( (ptr) gf←c17080)+4) )) );
/* removed tail goto */
(* (W2Pt) formal←c0200 ) = var←c6340;
return;
}
static word BeReal←P900(ra←v6400)
word ra←v6400;
{
register ptr gf←c17112 = (ptr) &globalframe;
word var←c6456;
/* BeReal: */
SOURCE(5739, 75)
SOURCE(5784, 30)
return((* (ptr) XR←Narrow(ra←v6400, (* (( (ptr) gf←c17112)+5) )) ));
}
static void BeRect←P960(formal←c0206, ra←v6516)
word formal←c0206;
word ra←v6516;
{
register ptr gf←c17144 = (ptr) &globalframe;
W4 var←c6572;
/* BeRect: */
SOURCE(5817, 75)
SOURCE(5862, 30)
var←c6572 = (* (W4Pt) XR←Narrow(ra←v6516, (* (( (ptr) gf←c17144)+6) )) );
/* removed tail goto */
(* (W4Pt) formal←c0206 ) = var←c6572;
return;
}
static word BeBool←P1020(ra←v6632)
word ra←v6632;
{
register ptr gf←c17176 = (ptr) &globalframe;
word var←c6688;
/* BeBool: */
SOURCE(5895, 117)
SOURCE(5940, 72)
{
word var←c16280;
var←c16280 = ra←v6632;
if ((var←c16280 == (* (( (ptr) gf←c17176)+25) ))) {
return(0);
}
else {
if ((var←c16280 == (* (( (ptr) gf←c17176)+10) ))) {
return(1);
}
else {
return( (unsigned) (
XR←RaiseUnnamedError(), 0
));
};
};
};
}
static word DoBSUserAction←P1080(old←v6748, input←v6776, cw←v6804, ch←v6832, pp←v6860, vanilla←v6888, previous←v6916, mayStretch←v6944, preferIntegerCoefficients←v6972, extremaProc←v7000, clientData←v7028)
word old←v6748;
word input←v6776;
word cw←v6804;
word ch←v6832;
W2 pp←v6860;
word vanilla←v6888;
word previous←v6916;
word mayStretch←v6944;
word preferIntegerCoefficients←v6972;
word extremaProc←v7000;
word clientData←v7028;
{
register ptr gf←c17208 = (ptr) &globalframe;
word new←v7180;
word age←v8476 = 0;
/* DoBSUserAction: */
SOURCE(6016, 1874)
SOURCE(6016, 1874)
new←v7180 = 0;
SOURCE(6315, 9)
new←v7180 = old←v6748;
SOURCE(6326, 142)
{
word var←c16312;
var←c16312 = (* (ptr) input←v6776 );
if ((var←c16312 == (* (( (ptr) gf←c17208)+11) ))) {
SOURCE(6361, 18)
input←v6776 = (* (( (ptr) input←v6776)+1) );
goto endif0134;
};
if ((var←c16312 == (* (( (ptr) gf←c17208)+12) ))) {
SOURCE(6392, 12)
age←v8476 = 1;
SOURCE(6406, 18)
input←v6776 = (* (( (ptr) input←v6776)+1) );
goto endif0134;
};
if ((var←c16312 == (* (( (ptr) gf←c17208)+13) ))) {
SOURCE(6436, 12)
age←v8476 = 1;
SOURCE(6450, 18)
input←v6776 = (* (( (ptr) input←v6776)+1) );
goto endif0134;
};
goto endif0134;
endif0134: ;
};
SOURCE(6488, 1402)
{
word var←c16344;
var←c16344 = (* (ptr) input←v6776 );
if ((var←c16344 == (* (( (ptr) gf←c17208)+14) ))) {
SOURCE(6522, 70)
{
W2 vec←v8520;
SOURCE(6524, 34)
(void) BeVec←P840((word) &vec←v8520, (* (ptr) (* (( (ptr) input←v6776)+1) ) ));
SOURCE(6560, 30)
new←v7180 = (word) Shift←P360(new←v7180, vec←v8520.f0, vec←v8520.f1);
};
goto endif0135;
};
if ((var←c16344 == (* (( (ptr) gf←c17208)+15) ))) {
SOURCE(6605, 138)
{
W2 s←v8564;
SOURCE(6606, 32)
(void) BeVec←P840((word) &s←v8564, (* (ptr) (* (( (ptr) input←v6776)+1) ) ));
SOURCE(6640, 101)
{
W2 var←c16376;
W3 var←c16408;
W3 var←c0266;
{
word tcp136;
word x137;
word x138;
W3 temp139;
if (((
x137 = s←v8564.f0, *(float*)&x137
) == (
x138 = s←v8564.f1, *(float*)&x138
))) {
var←c16376.f0 = 1;
var←c16376.f1 = s←v8564.f0;
(* (W2Pt) &temp139 ) = var←c16376;
(* (( (ptr) &temp139) + 2) ) = 0;
tcp136 = (word) &temp139;
}
else {
var←c16408.f0 = 2;
var←c16408.f1 = s←v8564.f0;
var←c16408.f2 = s←v8564.f1;
tcp136 = (word) &var←c16408;
};
var←c0266 = (* (W3Pt) tcp136 );
};
new←v7180 = (word) Scale←P60(new←v7180, var←c0266, cw←v6804, ch←v6832, pp←v6860, vanilla←v6888
, mayStretch←v6944);
};
};
goto endif0135;
};
if ((var←c16344 == (* (( (ptr) gf←c17208)+16) ))) {
SOURCE(6761, 60)
{
W3 var←c0267;
(* (ptr) (word) &var←c0267 ) = 0;
(* (W2Pt) (( (ptr) (word) &var←c0267) + 1) ) = (* (W2Pt) &dummy140 );
new←v7180 = (word) Scale←P60(new←v7180, var←c0267, cw←v6804, ch←v6832, pp←v6860, vanilla←v6888
, mayStretch←v6944);
};
goto endif0135;
};
if ((var←c16344 == (* (( (ptr) gf←c17208)+17) ))) {
SOURCE(6834, 73)
{
word var←c16472;
var←c16472 = (word) BeReal←P900((* (ptr) ((* (( (ptr) input←v6776)+1) )) ));
{
W2 var←c16504;
var←c16504.f0 = 1;
var←c16504.f1 = var←c16472;
new←v7180 = (word) Rotate←P300(new←v7180, var←c16504, cw←v6804, ch←v6832, pp←v6860, vanilla←v6888);
};
};
goto endif0135;
};
if ((var←c16344 == (* (( (ptr) gf←c17208)+18) ))) {
SOURCE(6925, 49)
{
W2 var←c0268;
(* (ptr) (word) &var←c0268 ) = 0;
(* (( (ptr) (word) &var←c0268) + 1) ) = 0;
new←v7180 = (word) Rotate←P300(new←v7180, var←c0268, cw←v6804, ch←v6832, pp←v6860, vanilla←v6888);
};
goto endif0135;
};
if ((var←c16344 == (* (( (ptr) gf←c17208)+19) )) || (var←c16344 == (* (( (ptr) gf←c17208)+20) ))) {
SOURCE(7001, 201)
{
word uniformly←v8608;
SOURCE(7003, 98)
{
word var←c16568;
var←c16568 = (* (ptr) input←v6776 );
if ((var←c16568 == (* (( (ptr) gf←c17208)+20) ))) {
uniformly←v8608 = 1;
}
else {
if ((var←c16568 == (* (( (ptr) gf←c17208)+19) ))) {
uniformly←v8608 = 0;
}
else {
uniformly←v8608 = (unsigned) (
XR←RaiseUnnamedError(), 0
);
};
};
};
SOURCE(7103, 97)
new←v7180 = (word) Fit←P720(new←v7180, uniformly←v8608, cw←v6804, ch←v6832, extremaProc←v7000, clientData←v7028
, mayStretch←v6944, preferIntegerCoefficients←v6972);
};
goto endif0135;
};
if ((var←c16344 == (* (( (ptr) gf←c17208)+21) ))) {
SOURCE(7217, 13)
new←v7180 = vanilla←v6888;
goto endif0135;
};
if ((var←c16344 == (* (( (ptr) gf←c17208)+22) ))) {
SOURCE(7247, 385)
{
W2 client←v8652;
W2 viewer←v8680;
word doX←v8708;
word doY←v8736;
SOURCE(7249, 37)
(void) BeVec←P840((word) &client←v8652, (* (ptr) (* (( (ptr) input←v6776)+1) ) ));
SOURCE(7288, 42)
(void) BeVec←P840((word) &viewer←v8680, (* (ptr) (* (( (ptr) (* (( (ptr) input←v6776)+1) ))+1) ) ));
SOURCE(7332, 46)
doX←v8708 = (word) BeBool←P1020((* (ptr) ((* (( (ptr) (* (( (ptr) (* (( (ptr) input←v6776)+1) ))+1) ))+1) )) ));
SOURCE(7380, 51)
doY←v8736 = (word) BeBool←P1020((* (ptr) ((* (( (ptr) (* (( (ptr) (* (( (ptr) (* (( (ptr) input←v6776)+1) ))+1) ))+1) ))+1)
)) ));
SOURCE(7433, 199)
{
W3 var←c16600;
W3 var←c16632;
var←c16600.f0 = 1;
var←c16600.f1 = client←v8652.f0;
var←c16600.f2 = client←v8652.f1;
var←c16632.f0 = 1;
var←c16632.f1 = viewer←v8680.f0;
var←c16632.f2 = viewer←v8680.f1;
new←v7180 = (word) Align←P420(new←v7180, var←c16600, var←c16632, doX←v8708, doY←v8736, cw←v6804
, ch←v6832, extremaProc←v7000, clientData←v7028, age←v8476);
};
};
goto endif0135;
};
if ((var←c16344 == (* (( (ptr) gf←c17208)+23) ))) {
SOURCE(7648, 216)
{
W4 from←v8780;
W4 to←v8808;
word uniformly←v8836;
SOURCE(7650, 37)
(void) BeRect←P960((word) &from←v8780, (* (ptr) (* (( (ptr) input←v6776)+1) ) ));
SOURCE(7689, 40)
(void) BeRect←P960((word) &to←v8808, (* (ptr) (* (( (ptr) (* (( (ptr) input←v6776)+1) ))+1) ) ));
SOURCE(7731, 52)
uniformly←v8836 = (word) BeBool←P1020((* (ptr) ((* (( (ptr) (* (( (ptr) (* (( (ptr) input←v6776)+1) ))+1) ))+1) )) ));
SOURCE(7785, 79)
new←v7180 = (word) BoxScale←P660(new←v7180, from←v8780, to←v8808, uniformly←v8836, mayStretch←v6944, preferIntegerCoefficients←v6972)
;
};
goto endif0135;
};
if ((var←c16344 == (* (( (ptr) gf←c17208)+24) ))) {
SOURCE(7876, 14)
new←v7180 = previous←v6916;
goto endif0135;
};
SOURCE(7903, 5)
(void) XR←RaiseUnnamedError();
goto endif0135;
endif0135: ;
};
SOURCE(6016, 1874)
return(new←v7180);
}
/* file: BiScrollersTransformsImpl, module: BiScrollersTransformsImpl, compiled at: March 19, 1993 5:48:04 pm PST */
extern void XR←install←BiScrollersTransformsImpl() {
XR←FillWords(&dummy140, 2, 0);
NoName←Q1836();
}
extern void XR←run←BiScrollersTransformsImpl() { XR←Start(&globalframe); }