/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation. All rights reserved. */
/* time: July 11, 1993 8:09:48 pm PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: GGSliceImplC, module: GGSliceImplC */
/* switches: bcfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [1942348543,1462603946] GGSliceImplC";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1, f2, f3, f4;} W5;
typedef W5 *W5Pt;
typedef struct {word f0, f1;} W2;
typedef word (*fPt)();
typedef W2 *W2Pt;
typedef struct {word f0, f1, f2, f3;} W4;
typedef W4 *W4Pt;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {W8 f; W8 r;} W16;
typedef struct {W16 f; W4 r;} W20;
typedef W20 *W20Pt;
typedef W6 *W6Pt;
typedef struct {word f0, f1, f2;} W3;
typedef struct {W8 f; W3 r;} W11;
typedef struct {W8 f; W2 r;} W10;
typedef struct {W8 f; W5 r;} W13;
typedef struct {W8 f; W6 r;} W14;
typedef struct {W8 f; word r;} W9;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef W3 *W3Pt;
typedef W10 *W10Pt;
#define SOURCE(p, l) /* source p, l */
static float fc84 = 0.01;
static float fc85 = 0.0;
static float fc87 = 1.0;
static float fc88 = -1.0;
static float fc90 = 2.0;
static float fc96 = 20.0;
#define FMAX(x, y, tx, ty) ( (tx=((float) x)) >= (ty=((float) y)) ? tx : ty )
#define FABS(f, t) ( ((t=(f)) >= (float) 0.0) ? (t) : (- (t)) )
static float fc142 = 1.0E-6;
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
static float fc235 = 10000.0;
static float fc379 = 8704.03;
static float fc388 = 8706.08;
static float fc395 = 8802.04;
static float fc399 = 1E16;
#define IOP2(op, x, y) ( (word) ((x) op (y)) )
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
static float fc491 = 3.0;
static void NoName←Q9060();
static void GGSliceImplC←P0();
static word BuildCircleSliceClass←P60();
static word MakeCircleSlice←P120();
static void CircleGetParams←P180();
static void CircleGetBoundBoxAux←P240();
static void CircleFindBoundBox←P5760();
static word CircleGetBoundBox←P300();
static word CircleGetTightBox←P360();
static void CircleSetScaling←P420();
static word CircleCopy←P480();
static void CircleRestore←P540();
static void CircleBuildPath←P600();
static void CircleDrawBorder←P660();
static void DoCircleDrawBorder←P5964();
static void CircleDrawParts←P720();
static void DoCircleDrawOutline←P6072();
static void CircleDrawTransform←P780();
static void DoCircleDrawTransform←P6132();
static void CircleDrawSelectionFeedback←P840();
static void CircleDrawAttractorFeedback←P900();
static void DoDrawFeedback←P6336();
static void CircleBoxFromTransform←P960();
static word FindImagerObject←P1020();
static word EqualPattern←P6444();
static word CompareProps←P6504();
static word CreateProps←P1080();
static word IsSampled←P1140();
static void CachedCircleDraw←P1200();
static word FromFillToLocal←P1260();
static void CircleDrawObject←P1320();
static void FillItIn←P6900();
static void TransformedCirclePath←P6960();
static word PatternProc←P7068();
static void OldCircleDrawOutline←P1380();
static void TransformedCirclePath←P7128();
static void FillItIn←P7188();
static word PatternProc←P7296();
static void CirclePath←P1440();
static void CirclePathReverse←P1500();
static void DrawSelectionFeedbackAux←P1560();
static void DoDrawFeedback←P7356();
static void CircleSaveSelections←P1620();
static void SetPointField←P7464();
static void SetSegmentField←P7524();
static word CircleRemakeSelections←P1680();
static word GetPointField←P7632();
static word GetSegmentField←P7692();
static void CircleTransform←P1740();
static word CircleDescribeHit←P1800();
static word CircleDescribe←P1860();
static void CircleFileout←P1920();
static word CircleFilein←P1980();
static word CircleIsEmptyParts←P2040();
static word CircleIsCompleteParts←P2100();
static word NearestCirclePoint←P2160();
static word CircleNewParts←P2220();
static word CircleUnionParts←P2280();
static word CircleDiffParts←P2340();
static void CircleMovingParts←P2400();
static word SomeCPMoving←P8136();
static word CircleAugmentParts←P2460();
static word CircleAlterParts←P2520();
static word CirclePointsInDescriptor←P2580();
static void CircleWalkPointsInDescriptor←P2640();
static word CircleSegmentsInDescriptor←P2700();
static word CircleWalkSegments←P2760();
static void CircleNextPoint←P2820();
static void GetCirclePoint←P2880();
static void CircleNextSegment←P2940();
static void CircleClosestPoint←P3000();
static void CircleClosestJointToHitData←P3060();
static void CircleClosestSegment←P3120();
static void CircleFilledPathsUnderPoint←P3180();
static void CircleLineIntersection←P3240();
static word CircleHitDataAsSimpleCurve←P3300();
static void CirclePointsFromData←P3360();
static void CircleSetDefaults←P3420();
static word CircleSetStrokeWidth←P3480();
static void CircleGetStrokeWidth←P3540();
static void CircleSetStrokeEnd←P3600();
static void CircleGetStrokeEnd←P3660();
static void CircleSetStrokeColor←P3720();
static void CircleGetStrokeColor←P3780();
static void CircleSetFillColor←P3840();
static void CircleGetFillColor←P3900();
static void CircleSetDashed←P3960();
static void CircleGetDashed←P4020();
static word CircleSetOrientation←P4080();
static void CircleGetOrientation←P4140();
static void MakeComplete←P4200();
static word IsComplete←P4260();
static word IsEmpty←P4320();
static word NoOpBoundBox←P4380();
static word NoOpTransformedBoundBox←P4440();
static word NoOpTightBox←P4500();
static word NoOpCopy←P4560();
static void NoOpRestore←P4620();
static void NoOpBuildPath←P4680();
static void NoOpDrawBorder←P4740();
static void NoOpDrawParts←P4800();
static void NoOpDrawTransform←P4860();
static void NoOpDrawSelectionFeedback←P4920();
static void NoOpDrawAttractorFeedback←P4980();
static word NoOpAttractorFeedbackBoundBox←P5040();
static void NoOpSaveSelections←P5100();
static word NoOpRemakeSelections←P5160();
static word NoOpSetOrientation←P5220();
static void NoOpGetOrientation←P5280();
static void NoOpTransform←P5340();
static word NoOpDescribe←P5400();
static word NoOpDescribeHit←P5460();
static void NoOpFileout←P5520();
static word NoOpFilein←P5580();
static word GenericTransformedBoundBox←P5640();
static void Init←P5700();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\100\354\000\000"};
static struct {unsigned f; char r[4];} string2 = {65537, "\001\000\000"};
static struct {unsigned f; char r[4];} string3 = {131076, "\216\251\000"};
static struct {unsigned f; char r[44];} string4 = {2752556, "\260\006\005\146\151\162\163\164\257\300\247\031\224\326\300\123\162\224\023\100\164\005\004\162\145\163\164\214\257\300\247\031\224\326\300\123\162\224\023\100\164\261\000"};
static struct {unsigned f; char r[4];} string5 = {131074, "\003\002\000"};
static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\163\305\342\377\300\127\055\220\252\100\214\000\000"};
static struct {unsigned f; char r[16];} string7 = {983055, "\006\006\000\001\004\001\024\001\030\001\054\001\100\204\001"};
static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\163\305\342\377\300\127\055\220\252\100\230\000\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\100\324\000\000"};
static struct {unsigned f; char r[32];} string10 = {1966110, "\006\015\000\001\004\001\010\001\034\001\040\001\044\001\050\001\054\001\060\001\064\001\074\001\100\110\001\100\130\001\000"};
static struct {unsigned f; char r[16];} string11 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\107\144\000\000"};
static struct {unsigned f; char r[4];} string12 = {196611, "\004@\321"};
static struct {unsigned f; char r[48];} string13 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\247\365\203\234\300\047\265\225\046\100\324\005\004\162\145\163\164\214\216\257\300\247\365\203\234\300\047\265\225\046\100\324\261\000\000\000"};
static struct {unsigned f; char r[4];} string14 = {131074, "\004\003\000"};
static struct {unsigned f; char r[16];} string15 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\107\210\000\000"};
static struct {unsigned f; char r[4];} string16 = {131074, "\004\011\000"};
static struct {unsigned f; char r[16];} string17 = {851984, "\257\300\074\177\166\242\300\203\113\217\044\104\254\000\000"};
static struct {unsigned f; char r[4];} string18 = {131074, "\003\005\000"};
static struct {unsigned f; char r[16];} string19 = {851984, "\257\300\163\305\342\377\300\127\055\220\252\100\260\000\000"};
static struct {unsigned f; char r[4];} string20 = {196611, "\004E\221"};
static struct {unsigned f; char r[16];} string21 = {851984, "\257\300\163\305\342\377\300\127\055\220\252\100\244\000\000"};
static struct {unsigned f; char r[16];} string22 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[20];} string23 = {1179668, "\260\006\005\146\151\162\163\164\217\005\004\162\145\163\164\214\217\261\000"};
static struct {unsigned f; char r[20];} string24 = {1245204, "circumference point"};
static struct {unsigned f; char r[8];} string25 = {393224, "border\000"};
static struct {unsigned f; char r[20];} string26 = {1179668, " of a Circle slice\000"};
static struct {unsigned f; char r[16];} string27 = {917520, "a Circle slice\000"};
static struct {unsigned f; char r[36];} string28 = {2097188, "multiple parts of a Circle slice\000\000\000"};
static struct {unsigned f; char r[8];} string29 = {458760, "outline"};
static struct {unsigned f; char r[8];} string30 = {458760, "nowhere"};
static struct {unsigned f; char r[16];} string31 = {917520, " strokeWidth: \000"};
static struct {unsigned f; char r[4];} string32 = {131076, "%g\000"};
static struct {unsigned f; char r[16];} string33 = {917520, " strokeColor: \000"};
static struct {unsigned f; char r[16];} string34 = {786448, " fillColor: \000\000\000"};
static struct {unsigned f; char r[12];} string35 = {720908, " dashes: ( "};
static struct {unsigned f; char r[8];} string36 = {458760, " %g %g "};
static struct {unsigned f; char r[4];} string37 = {131076, ") \000"};
static struct {unsigned f; char r[12];} string38 = {655372, " props: ( \000"};
static struct {unsigned f; char r[8];} string39 = {458760, ") fwd: "};
static struct {unsigned f; char r[16];} string40 = {786448, "strokeWidth:\000\000\000"};
static struct {unsigned f; char r[16];} string41 = {786448, "strokeColor:\000\000\000"};
static struct {unsigned f; char r[12];} string42 = {655372, "fillColor:\000"};
static struct {unsigned f; char r[12];} string43 = {589836, "dashes: (\000\000"};
static struct {unsigned f; char r[12];} string44 = {589836, "props: ( \000\000"};
static struct {unsigned f; char r[8];} string45 = {393224, "origin\000"};
static struct {unsigned f; char r[8];} string46 = {262152, "fwd:\000\000\000"};
static struct {unsigned f; char r[8];} string47 = {458760, "Forward"};
static struct {unsigned f; char r[12];} string48 = {524300, "Backward\000\000\000"};
static struct {unsigned f; char r[8];} string49 = {262152, "Grow\000\000\000"};
static struct {unsigned f; char r[16];} string50 = {851984, "ShrinkForward\000\000"};
static struct {unsigned f; char r[16];} string51 = {917520, "ShrinkBackward\000"};
static struct {unsigned f; char r[16];} string52 = {917520, "GGCircleObject\000"};
static struct {unsigned f; char r[4];} string53 = {196612, "Set"};
static struct {unsigned f; char r[20];} string54 = {1048596, "Broken Invariant\000\000\000"};
static struct {unsigned f; char r[8];} string55 = {393224, "Circle\000"};
static struct {unsigned f; char r[12];} string56 = {589836, "ChangeHue\000\000"};
static struct {unsigned f; char r[40];} string57 = {2490408, "All slice classes must have this proc.\000"};
static struct {unsigned f; char r[32];} string58 = {2031648, "Failed to procure complete copy"};
static struct {unsigned f; char r[16];} string59 = {851984, "\257\300\163\305\342\377\300\127\055\220\252\100\164\000\000"};
static struct {unsigned f; char r[12];} string60 = {720907, "\006\002\030\001\100\144\010\000\004\043\001"};
static struct {unsigned f; char r[16];} string61 = {851984, "\257\300\322\334\347\304\300\124\107\000\027\100\150\000\000"};
static struct {unsigned f; char r[16];} string62 = {851984, "\257\300\161\264\233\303\300\026\075\022\161\100\150\000\000"};
static struct {unsigned f; char r[16];} string63 = {851984, "\257\300\265\217\206\011\300\172\271\371\033\100\150\000\000"};
static struct {unsigned f; char r[16];} string64 = {851984, "\257\300IKM\275\300Y\0222&@h\000\000"};
static struct {unsigned f; char r[16];} string65 = {851984, "\257\300\231\005\151\136\300\275\231\323\274\100\150\000\000"};
static struct {unsigned f; char r[16];} string66 = {851984, "\257\300\034\077\173\126\300\270\206\201\035\100\150\000\000"};
static struct {unsigned f; char r[16];} string67 = {851984, "\257\300\236\155\220\261\300\040\017\026\014\100\150\000\000"};
static struct {unsigned f; char r[16];} string68 = {851984, "\257\300\045\215\147\016\300\153\043\150\276\100\150\000\000"};
static struct {unsigned f; char r[16];} string69 = {851984, "\257\300\317\075\344\275\300\105\331\241\110\100\150\000\000"};
static struct {unsigned f; char r[16];} string70 = {851984, "\257\300\043\211\212\366\300\343\003\307\242\100\150\000\000"};
static struct {unsigned f; char r[16];} string71 = {851984, "\257\300\235\036\354\311\300\234\133\201\260\100\150\000\000"};
static struct {unsigned f; char r[4];} string72 = {1195856748, "ice"};
static struct {unsigned f; char r[16];} string73 = {851984, "\257\300U$)\337\300Xo9\243@t\000\000"};
static struct {unsigned f; char r[16];} string74 = {851984, "\257\300\336\025\013\356\300\216\115\352\271\100\150\000\000"};
static struct {unsigned f; char r[16];} string75 = {851984, "\257\300\370\132\042\205\300\045\133\011\125\100\150\000\000"};
static struct {unsigned f; char r[16];} string76 = {851984, "\257\300\074\177\166\242\300\203\113\217\044\100\150\000\000"};
static struct {unsigned f; char r[16];} string77 = {851984, "\257\300\354\147\236\353\300\316\347\225\106\100\150\000\000"};
static struct {unsigned f; char r[16];} string78 = {851984, "\257\300\121\117\377\026\300\315\013\026\004\100\150\000\000"};
static struct {unsigned f; char r[16];} string79 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\100\164\000\000"};
static struct {unsigned f; char r[16];} string80 = {851984, "\257\300\103\306\166\071\300\047\126\012\237\100\150\000\000"};
static struct {unsigned f; char r[16];} string81 = {851984, "\257\300\245\247\302\156\300\052\156\325\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string82 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string83 = {851984, "\257\300\004\142\347\110\300\363\053\254\345\100\150\000\000"};
static W2 dummy156;
static struct {
word f0[60]; word f60; word f61; word f62;
word f63; word f64; word f65; word f66;
word f67; word f68; word f69; word f70;
word f71; word f72; word f73; word f74;
word f75; word f76; word f77; word f78;
word f79; word f80; word f81; word f82;
word f83; word f84; word f85; word f86;
word f87; word f88; word f89; word f90;
word f91; word f92; word f93; word f94;
word f95; word f96; word f97; word f98;
word f99; word f100; word f101; word f102;
word f103; word f104; word f105; word f106;
word f107; word f108; word f109; word f110;
word f111; word f112; word f113; word f114;
word f115; word f116; word f117; word f118;
word f119; word f120; word f121; word f122;
word f123; word f124; word f125; word f126;
word f127; word f128; word f129; word f130;
word f131; word f132; word f133; word f134;
word f135; word f136; word f137; word f138;
word f139; word f140; word f141; word f142;
word f143; word f144; word f145; word f146;
word f147; word f148; word f149; word f150;
word f151; word f152; word f153; word f154;
word f155; word f156; word f157; word f158;
word f159; word f160; word f161; word f162;
word f163; word f164; word f165; word f166;
word f167; word f168; word f169; word f170;
word f171; word f172; word f173; word f174;
word f175; word f176; word f177; word f178;
word f179; word f180; word f181; word f182;
word f183; word f184; word f185; word f186;
word f187; word f188; word f189; word f190;
word f191; word f192; word f193; word f194;
word f195; word f196; word f197; word f198;
word f199; word f200; word f201; word f202;
word f203; word f204; word f205; word f206;
word f207; word f208; word f209; word f210;
word f211; word f212; word f213; word f214;
word f215; word f216; word f217; word f218;
word f219; word f220; word f221; word f222;
word f223; word f224; word f225; word f226;
word f227; word f228; word f229; word f230;
word f231; word f232; word f233; word f234;
word f235; word f236; word f237; word f238;
word f239; word f240; word f241; word f242;
word f243; word f244; word f245; word f246;
word f247; word f248; word f249; word f250;
word f251[38];
} globalframe = {
{0}, (word) Init←P5700, 0, (word) GenericTransformedBoundBox←P5640,
0, (word) NoOpFilein←P5580, 0, (word) NoOpFileout←P5520,
0, (word) NoOpDescribeHit←P5460, 0, (word) NoOpDescribe←P5400,
0, (word) NoOpTransform←P5340, 0, (word) NoOpGetOrientation←P5280,
0, (word) NoOpSetOrientation←P5220, 0, (word) NoOpRemakeSelections←P5160,
0, (word) NoOpSaveSelections←P5100, 0, (word) NoOpAttractorFeedbackBoundBox←P5040,
0, (word) NoOpDrawAttractorFeedback←P4980, 0, (word) NoOpDrawSelectionFeedback←P4920,
0, (word) NoOpDrawTransform←P4860, 0, (word) NoOpDrawParts←P4800,
0, (word) NoOpDrawBorder←P4740, 0, (word) NoOpBuildPath←P4680,
0, (word) NoOpRestore←P4620, 0, (word) NoOpCopy←P4560,
0, (word) NoOpTightBox←P4500, 0, (word) NoOpTransformedBoundBox←P4440,
0, (word) NoOpBoundBox←P4380, 0, (word) IsEmpty←P4320,
0, (word) IsComplete←P4260, 0, (word) MakeComplete←P4200,
0, (word) CircleGetOrientation←P4140, 0, (word) CircleSetOrientation←P4080,
0, (word) CircleGetDashed←P4020, 0, (word) CircleSetDashed←P3960,
0, (word) CircleGetFillColor←P3900, 0, (word) CircleSetFillColor←P3840,
0, (word) CircleGetStrokeColor←P3780, 0, (word) CircleSetStrokeColor←P3720,
0, (word) CircleGetStrokeEnd←P3660, 0, (word) CircleSetStrokeEnd←P3600,
0, (word) CircleGetStrokeWidth←P3540, 0, (word) CircleSetStrokeWidth←P3480,
0, (word) CircleSetDefaults←P3420, 0, (word) CirclePointsFromData←P3360,
0, (word) CircleHitDataAsSimpleCurve←P3300, 0, (word) CircleLineIntersection←P3240,
0, (word) CircleFilledPathsUnderPoint←P3180, 0, (word) CircleClosestSegment←P3120,
0, (word) CircleClosestJointToHitData←P3060, 0, (word) CircleClosestPoint←P3000,
0, (word) CircleNextSegment←P2940, 0, (word) GetCirclePoint←P2880,
0, (word) CircleNextPoint←P2820, 0, (word) CircleWalkSegments←P2760,
0, (word) CircleSegmentsInDescriptor←P2700, 0, (word) CircleWalkPointsInDescriptor←P2640,
0, (word) CirclePointsInDescriptor←P2580, 0, (word) CircleAlterParts←P2520,
0, (word) CircleAugmentParts←P2460, 0, (word) CircleMovingParts←P2400,
0, (word) CircleDiffParts←P2340, 0, (word) CircleUnionParts←P2280,
0, (word) CircleNewParts←P2220, 0, (word) NearestCirclePoint←P2160,
0, (word) CircleIsCompleteParts←P2100, 0, (word) CircleIsEmptyParts←P2040,
0, (word) CircleFilein←P1980, 0, (word) CircleFileout←P1920,
0, (word) CircleDescribe←P1860, 0, (word) CircleDescribeHit←P1800,
0, (word) CircleTransform←P1740, 0, (word) CircleRemakeSelections←P1680,
0, (word) CircleSaveSelections←P1620, 0, (word) DrawSelectionFeedbackAux←P1560,
0, (word) CirclePathReverse←P1500, 0, (word) CirclePath←P1440,
0, (word) OldCircleDrawOutline←P1380, 0, (word) CircleDrawObject←P1320,
0, (word) FromFillToLocal←P1260, 0, (word) CachedCircleDraw←P1200,
0, (word) IsSampled←P1140, 0, (word) CreateProps←P1080,
0, (word) FindImagerObject←P1020, 0, (word) CircleBoxFromTransform←P960,
0, (word) CircleDrawAttractorFeedback←P900, 0, (word) CircleDrawSelectionFeedback←P840,
0, (word) CircleDrawTransform←P780, 0, (word) CircleDrawParts←P720,
0, (word) CircleDrawBorder←P660, 0, (word) CircleBuildPath←P600,
0, (word) CircleRestore←P540, 0, (word) CircleCopy←P480,
0, (word) CircleSetScaling←P420, 0, (word) CircleGetTightBox←P360,
0, (word) CircleGetBoundBox←P300, 0, (word) CircleGetBoundBoxAux←P240,
0, (word) CircleGetParams←P180, 0, (word) MakeCircleSlice←P120,
0, (word) BuildCircleSliceClass←P60, 0, (word) GGSliceImplC←P0,
{0}
};
static void NoName←Q9060()
{
register ptr gf←c01098 = (ptr) &globalframe;
word var←c89376;
(* (( (ptr) gf←c01098)+8) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
(* (( (ptr) gf←c01098)+9) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string2);
(* (( (ptr) gf←c01098)+10) ) = (word) XR←GetTypeIndex((word) &string4, 0, (word) &string5);
(* (( (ptr) gf←c01098)+12) ) = (word) XR←GetTypeIndex((word) &string6, 0, (word) &string7);
(* (( (ptr) gf←c01098)+13) ) = (word) XR←GetTypeIndexS((word) (&string8));
(* (( (ptr) gf←c01098)+14) ) = (word) XR←GetTypeIndex((word) &string9, 0, (word) &string10);
(* (( (ptr) gf←c01098)+16) ) = (word) XR←GetTypeIndex((word) &string11, 0, (word) &string12);
(* (( (ptr) gf←c01098)+17) ) = (word) XR←GetTypeIndex((word) &string13, 0, (word) &string14);
(* (( (ptr) gf←c01098)+18) ) = (word) XR←GetTypeIndex((word) &string15, 0, (word) &string16);
(* (( (ptr) gf←c01098)+19) ) = (word) XR←GetTypeIndex((word) &string17, 0, (word) &string18);
(* (( (ptr) gf←c01098)+20) ) = (word) XR←GetTypeIndex((word) &string19, 0, (word) &string20);
(* (( (ptr) gf←c01098)+21) ) = (word) XR←GetTypeIndexS((word) (&string21));
(* (( (ptr) gf←c01098)+23) ) = (word) XR←GetTypeIndex((word) &string22, 0, (word) &string2);
(* (( (ptr) gf←c01098)+24) ) = (word) XR←GetTypeIndex((word) &string23, 0, (word) &string14);
(* (ptr) (( (bPt) gf←c01098)+100) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+23) ), (word) &string24);
(* (ptr) (( (bPt) gf←c01098)+104) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+23) ), (word) &string25);
(* (ptr) (( (bPt) gf←c01098)+108) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+23) ), (word) &string26);
(* (ptr) (( (bPt) gf←c01098)+112) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+23) ), (word) &string27);
(* (ptr) (( (bPt) gf←c01098)+116) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+23) ), (word) &string28);
(* (ptr) (( (bPt) gf←c01098)+120) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+23) ), (word) &string29);
(* (ptr) (( (bPt) gf←c01098)+124) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+23) ), (word) &string30);
(* (ptr) (( (bPt) gf←c01098)+128) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+23) ), (word) &string31);
(* (ptr) (( (bPt) gf←c01098)+132) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+23) ), (word) &string32);
(* (ptr) (( (bPt) gf←c01098)+136) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+23) ), (word) &string33);
(* (ptr) (( (bPt) gf←c01098)+140) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+23) ), (word) &string34);
(* (ptr) (( (bPt) gf←c01098)+144) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+23) ), (word) &string35);
(* (ptr) (( (bPt) gf←c01098)+148) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+23) ), (word) &string36);
(* (ptr) (( (bPt) gf←c01098)+152) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+23) ), (word) &string37);
(* (ptr) (( (bPt) gf←c01098)+156) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+23) ), (word) &string38);
(* (ptr) (( (bPt) gf←c01098)+160) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+23) ), (word) &string39);
(* (ptr) (( (bPt) gf←c01098)+164) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+23) ), (word) &string40);
(* (ptr) (( (bPt) gf←c01098)+168) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+23) ), (word) &string41);
(* (ptr) (( (bPt) gf←c01098)+172) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+23) ), (word) &string42);
(* (ptr) (( (bPt) gf←c01098)+176) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+23) ), (word) &string43);
(* (ptr) (( (bPt) gf←c01098)+180) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+23) ), (word) &string44);
(* (ptr) (( (bPt) gf←c01098)+184) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+23) ), (word) &string45);
(* (ptr) (( (bPt) gf←c01098)+188) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+23) ), (word) &string46);
(* (ptr) (( (bPt) gf←c01098)+192) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+9) ), (word) &string47);
(* (ptr) (( (bPt) gf←c01098)+196) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+9) ), (word) &string48);
(* (ptr) (( (bPt) gf←c01098)+200) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+9) ), (word) &string49);
(* (ptr) (( (bPt) gf←c01098)+204) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+9) ), (word) &string50);
(* (ptr) (( (bPt) gf←c01098)+208) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+9) ), (word) &string51);
(* (ptr) (( (bPt) gf←c01098)+212) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+9) ), (word) &string52);
(* (ptr) (( (bPt) gf←c01098)+216) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+9) ), (word) &string53);
(* (ptr) (( (bPt) gf←c01098)+220) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+23) ), (word) &string54);
(* (ptr) (( (bPt) gf←c01098)+224) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+9) ), (word) &string55);
(* (ptr) (( (bPt) gf←c01098)+228) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+9) ), (word) &string56);
(* (ptr) (( (bPt) gf←c01098)+232) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+23) ), (word) &string57);
(* (ptr) (( (bPt) gf←c01098)+236) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01098)+23) ), (word) &string58);
(void) XR←DeclareGlobalFrame((word) "GGSliceImplC", &globalframe, (word) XR←GetTypeIndex((word) &string59, 0, (word) &string60)
, (word) (( (bPt) gf←c01098)+1000)/* var←c82080 */ );
var←c89376 = (word) XR←ImportInterface((word) "Feedback", (word) XR←GetTypeIndexS((word) (&string61)), 25);
(* (( (ptr) gf←c01098)+266)/* var←c82304 */ ) = var←c89376;
var←c89376 = (word) XR←ImportInterface((word) "FunctionCache", (word) XR←GetTypeIndexS((word) (&string62)), 14);
(* (( (ptr) gf←c01098)+280)/* var←c85056 */ ) = var←c89376;
(void) XR←ImportProcS(var←c89376, 67633154);
(void) XR←ImportProcS(var←c89376, 1311237);
(void) XR←ImportProcS(var←c89376, 135005443);
var←c89376 = (word) XR←ImportInterface((word) "GGBoundBox", (word) XR←GetTypeIndexS((word) (&string63)), 24);
(* (( (ptr) gf←c01098)+271)/* var←c82752 */ ) = var←c89376;
(void) XR←ImportProcS(var←c89376, 67634434);
(void) XR←ImportProcS(var←c89376, 68162051);
(void) XR←ImportProcS(var←c89376, 268699393);
(void) XR←ImportProcS(var←c89376, 527618);
(void) XR←ImportProcS(var←c89376, 67371777);
(void) XR←ImportProcS(var←c89376, 68681990);
(void) XR←ImportProcS(var←c89376, 67109376);
var←c89376 = (word) XR←ImportInterface((word) "GGCircles", (word) XR←GetTypeIndexS((word) (&string64)), 29);
(* (( (ptr) gf←c01098)+268)/* var←c82496 */ ) = var←c89376;
(void) XR←ImportProcS(var←c89376, 403179010);
(void) XR←ImportProcS(var←c89376, 67899394);
(void) XR←ImportProcS(var←c89376, 524546);
(void) XR←ImportProcS(var←c89376, 67108864);
(void) XR←ImportProcS(var←c89376, 1049091);
(void) XR←ImportProcS(var←c89376, 67896066);
var←c89376 = (word) XR←ImportInterface((word) "GGCoreOps", (word) XR←GetTypeIndexS((word) (&string65)), 37);
(* (( (ptr) gf←c01098)+275)/* var←c83424 */ ) = var←c89376;
(void) XR←ImportProcS(var←c89376, 67641602);
(void) XR←ImportProcS(var←c89376, 794627);
(void) XR←ImportProcS(var←c89376, 67641090);
(void) XR←ImportProcS(var←c89376, 67379713);
var←c89376 = (word) XR←ImportInterface((word) "GGMUserProfile", (word) XR←GetTypeIndexS((word) (&string66)), 3);
(* (( (ptr) gf←c01098)+281)/* var←c85344 */ ) = var←c89376;
(void) XR←ImportProcS(var←c89376, 67109120);
var←c89376 = (word) XR←ImportInterface((word) "GGParseIn", (word) XR←GetTypeIndexS((word) (&string67)), 26);
(* (( (ptr) gf←c01098)+285)/* var←c87168 */ ) = var←c89376;
(void) XR←ImportProcS(var←c89376, 67373313);
(void) XR←ImportProcS(var←c89376, 525826);
(void) XR←ImportProcS(var←c89376, 67375873);
(void) XR←ImportProcS(var←c89376, 67376129);
(void) XR←ImportProcS(var←c89376, 67636226);
(void) XR←ImportProcS(var←c89376, 67376897);
(void) XR←ImportProcS(var←c89376, 525570);
(void) XR←ImportProcS(var←c89376, 67375105);
var←c89376 = (word) XR←ImportInterface((word) "GGParseOut", (word) XR←GetTypeIndexS((word) (&string68)), 15);
(* (( (ptr) gf←c01098)+283)/* var←c86976 */ ) = var←c89376;
(void) XR←ImportProcS(var←c89376, 526594);
(void) XR←ImportProcS(var←c89376, 526850);
(void) XR←ImportProcS(var←c89376, 527106);
(void) XR←ImportProcS(var←c89376, 524802);
(void) XR←ImportProcS(var←c89376, 525826);
var←c89376 = (word) XR←ImportInterface((word) "GGProps", (word) XR←GetTypeIndexS((word) (&string69)), 11);
(* (( (ptr) gf←c01098)+277)/* var←c83488 */ ) = var←c89376;
(void) XR←ImportProcS(var←c89376, 1050116);
var←c89376 = (word) XR←ImportInterface((word) "GGSegment", (word) XR←GetTypeIndexS((word) (&string70)), 47);
(* (( (ptr) gf←c01098)+269)/* var←c82624 */ ) = var←c89376;
(void) XR←ImportProcS(var←c89376, 527362);
(void) XR←ImportProcS(var←c89376, 67374337);
(void) XR←ImportProcS(var←c89376, 68944900);
var←c89376 = (word) XR←ImportInterface((word) "GGShapes", (word) XR←GetTypeIndexS((word) (&string71)), 20);
(* (( (ptr) gf←c01098)+279)/* var←c84512 */ ) = var←c89376;
(void) XR←ImportProcS(var←c89376, 1314820);
(void) XR←ImportProcS(var←c89376, 1052419);
(void) XR←ImportProcS(var←c89376, 1315076);
var←c89376 = (word) XR←ImportInterface((word) &string72, (word) XR←GetTypeIndexS((word) (&string73)), 128);
(* (( (ptr) gf←c01098)+267)/* var←c82368 */ ) = var←c89376;
(void) XR←ImportProcS(var←c89376, 278529);
(void) XR←ImportProcS(var←c89376, 67634178);
(void) XR←ImportProcS(var←c89376, 67371777);
(void) XR←ImportProcS(var←c89376, 134511105);
(void) XR←ImportProcS(var←c89376, 1341701);
(void) XR←ImportProcS(var←c89376, 134771714);
(void) XR←ImportProcS(var←c89376, 1078020);
(void) XR←ImportProcS(var←c89376, 134769666);
(void) XR←ImportProcS(var←c89376, 470837251);
(void) XR←ImportProcS(var←c89376, 336094210);
(void) XR←ImportProcS(var←c89376, 67395585);
(void) XR←ImportProcS(var←c89376, 810499);
(void) XR←ImportProcS(var←c89376, 279297);
(void) XR←ImportProcS(var←c89376, 68189956);
var←c89376 = (word) XR←ImportInterface((word) "GGSliceOps", (word) XR←GetTypeIndexS((word) (&string74)), 73);
(* (( (ptr) gf←c01098)+276)/* var←c83456 */ ) = var←c89376;
(void) XR←ImportProcS(var←c89376, 1315333);
(void) XR←ImportProcS(var←c89376, 67634690);
(void) XR←ImportProcS(var←c89376, 67377153);
(void) XR←ImportProcS(var←c89376, 201860354);
(void) XR←ImportProcS(var←c89376, 67379201);
(void) XR←ImportProcS(var←c89376, 336078338);
(void) XR←ImportProcS(var←c89376, 67379713);
(void) XR←ImportProcS(var←c89376, 67633922);
(void) XR←ImportProcS(var←c89376, 67901699);
(void) XR←ImportProcS(var←c89376, 67634434);
(void) XR←ImportProcS(var←c89376, 1325317);
var←c89376 = (word) XR←ImportInterface((word) "GGUtility", (word) XR←GetTypeIndexS((word) (&string75)), 42);
(* (( (ptr) gf←c01098)+287)/* var←c89152 */ ) = var←c89376;
(void) XR←ImportProcS(var←c89376, 67641346);
var←c89376 = (word) XR←ImportInterface((word) "Imager", (word) XR←GetTypeIndexS((word) (&string76)), 84);
(* (( (ptr) gf←c01098)+270)/* var←c82656 */ ) = var←c89376;
(void) XR←ImportProcS(var←c89376, 1328387);
(void) XR←ImportProcS(var←c89376, 801283);
(void) XR←ImportProcS(var←c89376, 803587);
(void) XR←ImportProcS(var←c89376, 1591046);
(void) XR←ImportProcS(var←c89376, 541186);
(void) XR←ImportProcS(var←c89376, 540930);
(void) XR←ImportProcS(var←c89376, 540674);
(void) XR←ImportProcS(var←c89376, 536578);
(void) XR←ImportProcS(var←c89376, 1331972);
(void) XR←ImportProcS(var←c89376, 526850);
(void) XR←ImportProcS(var←c89376, 526338);
var←c89376 = (word) XR←ImportInterface((word) "ImagerPath", (word) XR←GetTypeIndexS((word) (&string77)), 18);
(* (( (ptr) gf←c01098)+278)/* var←c83616 */ ) = var←c89376;
(void) XR←ImportProcS(var←c89376, 2097672);
var←c89376 = (word) XR←ImportInterface((word) "ImagerTransformation", (word) XR←GetTypeIndexS((word) (&string78)), 55);
(* (( (ptr) gf←c01098)+272)/* var←c82880 */ ) = var←c89376;
(void) XR←ImportProcS(var←c89376, 402927105);
(void) XR←ImportProcS(var←c89376, 135013634);
(void) XR←ImportProcS(var←c89376, 67908099);
(void) XR←ImportProcS(var←c89376, 67908355);
(void) XR←ImportProcS(var←c89376, 67635458);
(void) XR←ImportProcS(var←c89376, 67371521);
(void) XR←ImportProcS(var←c89376, 135013122);
(void) XR←ImportProcS(var←c89376, 67383041);
(void) XR←ImportProcS(var←c89376, 134493185);
(void) XR←ImportProcS(var←c89376, 67634689);
(void) XR←ImportProcS(var←c89376, 67635970);
var←c89376 = (word) XR←ImportInterface((word) "IO", (word) XR←GetTypeIndexS((word) (&string79)), 103);
(* (( (ptr) gf←c01098)+284)/* var←c87008 */ ) = var←c89376;
(void) XR←ImportProcS(var←c89376, 2111493);
(void) XR←ImportProcS(var←c89376, 528642);
(void) XR←ImportProcS(var←c89376, 1063171);
(void) XR←ImportProcS(var←c89376, 1071364);
var←c89376 = (word) XR←ImportInterface((word) "Lines2d", (word) XR←GetTypeIndexS((word) (&string80)), 50);
(* (( (ptr) gf←c01098)+286)/* var←c88576 */ ) = var←c89376;
(void) XR←ImportProcS(var←c89376, 67635970);
var←c89376 = (word) XR←ImportInterface((word) "RealFns", (word) XR←GetTypeIndexS((word) (&string81)), 36);
(* (( (ptr) gf←c01098)+274)/* var←c83168 */ ) = var←c89376;
(void) XR←ImportProcS(var←c89376, 67372289);
var←c89376 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string82)), 43);
(* (( (ptr) gf←c01098)+282)/* var←c86944 */ ) = var←c89376;
(void) XR←ImportProcS(var←c89376, 67633666);
var←c89376 = (word) XR←ImportInterface((word) "Vectors2d", (word) XR←GetTypeIndexS((word) (&string83)), 21);
(* (( (ptr) gf←c01098)+273)/* var←c82944 */ ) = var←c89376;
(void) XR←ImportProcS(var←c89376, 135006210);
(void) XR←ImportProcS(var←c89376, 135268098);
(void) XR←ImportProcS(var←c89376, 135267842);
(void) XR←ImportProcS(var←c89376, 67636737);
(void) XR←ImportProcS(var←c89376, 68161794);
(void) XR←ImportProcS(var←c89376, 68161282);
var←c89376 = (word) XR←ExportInterface((word) &string72, (word) XR←GetTypeIndexS((word) (&string73)), 128);
(* (( (ptr) gf←c01098)+288)/* var←c89408 */ ) = var←c89376;
(void) XR←ExportProcS(var←c89376, (word) (( (bPt) gf←c01098)+992)/* var←c82048 */ , 67120896, (word) "BuildCircleSliceClass")
;
(void) XR←ExportProcS(var←c89376, (word) (( (bPt) gf←c01098)+984)/* var←c82016 */ , 68169730, (word) "MakeCircleSlice");
(void) XR←ExportProcS(var←c89376, (word) (( (bPt) gf←c01098)+976)/* var←c81984 */ , 335819009, (word) "CircleGetParams");
(void) XR←ExportProcS(var←c89376, (word) (( (bPt) gf←c01098)+416)/* var←c79744 */ , 67650562, (word) "NoOpBoundBox");
(void) XR←ExportProcS(var←c89376, (word) (( (bPt) gf←c01098)+408)/* var←c79712 */ , 68175108, (word) "NoOpTransformedBoundBox")
;
(void) XR←ExportProcS(var←c89376, (word) (( (bPt) gf←c01098)+400)/* var←c79680 */ , 67651074, (word) "NoOpTightBox");
(void) XR←ExportProcS(var←c89376, (word) (( (bPt) gf←c01098)+392)/* var←c79648 */ , 67651330, (word) "NoOpCopy");
(void) XR←ExportProcS(var←c89376, (word) (( (bPt) gf←c01098)+376)/* var←c79584 */ , 2377737, (word) "NoOpBuildPath");
(void) XR←ExportProcS(var←c89376, (word) (( (bPt) gf←c01098)+368)/* var←c79552 */ , 2115848, (word) "NoOpDrawBorder");
(void) XR←ExportProcS(var←c89376, (word) (( (bPt) gf←c01098)+360)/* var←c79520 */ , 1329669, (word) "NoOpDrawParts");
(void) XR←ExportProcS(var←c89376, (word) (( (bPt) gf←c01098)+352)/* var←c79488 */ , 1592070, (word) "NoOpDrawTransform");
(void) XR←ExportProcS(var←c89376, (word) (( (bPt) gf←c01098)+344)/* var←c79456 */ , 2378761, (word) "NoOpDrawSelectionFeedback")
;
(void) XR←ExportProcS(var←c89376, (word) (( (bPt) gf←c01098)+336)/* var←c79424 */ , 1854727, (word) "NoOpDrawAttractorFeedback")
;
(void) XR←ExportProcS(var←c89376, (word) (( (bPt) gf←c01098)+328)/* var←c79392 */ , 68701702, (word) "NoOpAttractorFeedbackBoundBox")
;
(void) XR←ExportProcS(var←c89376, (word) (( (bPt) gf←c01098)+320)/* var←c79360 */ , 806659, (word) "NoOpSaveSelections");
(void) XR←ExportProcS(var←c89376, (word) (( (bPt) gf←c01098)+312)/* var←c79328 */ , 67653634, (word) "NoOpRemakeSelections")
;
(void) XR←ExportProcS(var←c89376, (word) (( (bPt) gf←c01098)+288)/* var←c79232 */ , 1331461, (word) "NoOpTransform");
(void) XR←ExportProcS(var←c89376, (word) (( (bPt) gf←c01098)+280)/* var←c79200 */ , 67392001, (word) "NoOpDescribe");
(void) XR←ExportProcS(var←c89376, (word) (( (bPt) gf←c01098)+272)/* var←c79168 */ , 67654402, (word) "NoOpDescribeHit");
(void) XR←ExportProcS(var←c89376, (word) (( (bPt) gf←c01098)+264)/* var←c79136 */ , 545794, (word) "NoOpFileout");
(void) XR←ExportProcS(var←c89376, (word) (( (bPt) gf←c01098)+256)/* var←c79104 */ , 68179204, (word) "NoOpFilein");
(void) XR←ExportProcS(var←c89376, (word) (( (bPt) gf←c01098)+304)/* var←c79296 */ , 68189444, (word) "NoOpSetOrientation")
;
(void) XR←ExportProcS(var←c89376, (word) (( (bPt) gf←c01098)+296)/* var←c79264 */ , 134774274, (word) "NoOpGetOrientation")
;
(void) XR←ExportProcS(var←c89376, (word) (( (bPt) gf←c01098)+248)/* var←c79072 */ , 68189956, (word) "GenericTransformedBoundBox")
;
}
static void GGSliceImplC←P0(formal←c0130, formal←c0129)
word formal←c0130;
word formal←c0129;
{
register ptr gf←c89440 = (ptr) &globalframe;
/* GGSliceImplC: */
SOURCE(383, 61415)
XR←FillWords(&(* (W5Pt) ((( (ptr) gf←c89440)+256)/* var←c82208 */ )), 5, 1);
SOURCE(2626, 24)
(* (( (ptr) gf←c89440)+4)/* Problem←v5072 */ ) = (* (ptr) (* (( (ptr) (* (( (ptr) gf←c89440)+266)/* var←c82304 */ ))+28)
) );
SOURCE(33154, 24)
(* (( (ptr) gf←c89440)+5)/* circleLimit←v6164 */ ) = (* (ptr) &fc84 );
SOURCE(61792, 6)
(void) Init←P5700();
}
static word BuildCircleSliceClass←P60()
{
register ptr gf←c89472 = (ptr) &globalframe;
word class←v9188;
/* BuildCircleSliceClass: */
SOURCE(4352, 2369)
SOURCE(4352, 2369)
class←v9188 = 0;
SOURCE(4436, 2285)
{
word var←c82336;
var←c82336 = XR←NewObject(252, (* (( (ptr) gf←c89472)+8) ));
(* (ptr) var←c82336 ) = (* (( (ptr) gf←c89472)+56) );
(* (( (ptr) var←c82336)+1) ) = (word) (( (bPt) gf←c89472)+960)/* var←c81920 */ ;
(* (( (ptr) var←c82336)+2) ) = (* (( (ptr) (* (( (ptr) gf←c89472)+267)/* var←c82368 */ ))+131) );
(* (( (ptr) var←c82336)+3) ) = (word) (( (bPt) gf←c89472)+952)/* var←c81888 */ ;
(* (( (ptr) var←c82336)+4) ) = (word) (( (bPt) gf←c89472)+936)/* var←c81824 */ ;
(* (( (ptr) var←c82336)+5) ) = (* (( (ptr) (* (( (ptr) gf←c89472)+267)/* var←c82368 */ ))+71) );
(* (( (ptr) var←c82336)+6) ) = (word) (( (bPt) gf←c89472)+928)/* var←c81792 */ ;
(* (( (ptr) var←c82336)+7) ) = (word) (( (bPt) gf←c89472)+920)/* var←c81760 */ ;
(* (( (ptr) var←c82336)+8) ) = (word) (( (bPt) gf←c89472)+912)/* var←c81728 */ ;
(* (( (ptr) var←c82336)+9) ) = (word) (( (bPt) gf←c89472)+904)/* var←c81696 */ ;
(* (( (ptr) var←c82336)+10) ) = (word) (( (bPt) gf←c89472)+896)/* var←c81664 */ ;
(* (( (ptr) var←c82336)+11) ) = (word) (( (bPt) gf←c89472)+888)/* var←c81632 */ ;
(* (( (ptr) var←c82336)+12) ) = (word) (( (bPt) gf←c89472)+880)/* var←c81600 */ ;
(* (( (ptr) var←c82336)+13) ) = XR←CheckProc(0);
(* (( (ptr) var←c82336)+14) ) = (word) (( (bPt) gf←c89472)+784)/* var←c81216 */ ;
(* (( (ptr) var←c82336)+15) ) = (word) (( (bPt) gf←c89472)+776)/* var←c81184 */ ;
(* (( (ptr) var←c82336)+16) ) = (word) (( (bPt) gf←c89472)+768)/* var←c81152 */ ;
(* (( (ptr) var←c82336)+17) ) = (word) (( (bPt) gf←c89472)+752)/* var←c81088 */ ;
(* (( (ptr) var←c82336)+18) ) = (word) (( (bPt) gf←c89472)+760)/* var←c81120 */ ;
(* (( (ptr) var←c82336)+19) ) = (word) (( (bPt) gf←c89472)+744)/* var←c81056 */ ;
(* (( (ptr) var←c82336)+20) ) = (word) (( (bPt) gf←c89472)+736)/* var←c81024 */ ;
(* (( (ptr) var←c82336)+21) ) = (word) (( (bPt) gf←c89472)+728)/* var←c80992 */ ;
(* (( (ptr) var←c82336)+22) ) = (word) (( (bPt) gf←c89472)+720)/* var←c80960 */ ;
(* (( (ptr) var←c82336)+23) ) = (word) (( (bPt) gf←c89472)+704)/* var←c80896 */ ;
(* (( (ptr) var←c82336)+24) ) = (word) (( (bPt) gf←c89472)+696)/* var←c80864 */ ;
(* (( (ptr) var←c82336)+25) ) = (word) (( (bPt) gf←c89472)+688)/* var←c80832 */ ;
(* (( (ptr) var←c82336)+26) ) = (word) (( (bPt) gf←c89472)+680)/* var←c80800 */ ;
(* (( (ptr) var←c82336)+27) ) = (word) (( (bPt) gf←c89472)+672)/* var←c80768 */ ;
(* (( (ptr) var←c82336)+28) ) = (word) (( (bPt) gf←c89472)+664)/* var←c80736 */ ;
(* (( (ptr) var←c82336)+29) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c89472)+267)/* var←c82368 */ ))+98) );
(* (( (ptr) var←c82336)+30) ) = (word) (( (bPt) gf←c89472)+656)/* var←c80704 */ ;
(* (( (ptr) var←c82336)+31) ) = (word) (( (bPt) gf←c89472)+648)/* var←c80672 */ ;
(* (( (ptr) var←c82336)+32) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c89472)+267)/* var←c82368 */ ))+100) );
(* (( (ptr) var←c82336)+33) ) = (word) (( (bPt) gf←c89472)+640)/* var←c80640 */ ;
(* (( (ptr) var←c82336)+34) ) = (word) (( (bPt) gf←c89472)+632)/* var←c80608 */ ;
(* (( (ptr) var←c82336)+35) ) = (word) (( (bPt) gf←c89472)+624)/* var←c80576 */ ;
(* (( (ptr) var←c82336)+36) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c89472)+267)/* var←c82368 */ ))+104) );
(* (( (ptr) var←c82336)+37) ) = (word) (( (bPt) gf←c89472)+608)/* var←c80512 */ ;
(* (( (ptr) var←c82336)+38) ) = (word) (( (bPt) gf←c89472)+600)/* var←c80480 */ ;
(* (( (ptr) var←c82336)+39) ) = (word) (( (bPt) gf←c89472)+592)/* var←c80448 */ ;
(* (( (ptr) var←c82336)+40) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c89472)+267)/* var←c82368 */ ))+108) );
(* (( (ptr) var←c82336)+41) ) = (word) (( (bPt) gf←c89472)+584)/* var←c80416 */ ;
(* (( (ptr) var←c82336)+42) ) = (word) (( (bPt) gf←c89472)+576)/* var←c80384 */ ;
(* (( (ptr) var←c82336)+43) ) = (word) (( (bPt) gf←c89472)+568)/* var←c80352 */ ;
(* (( (ptr) var←c82336)+44) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c89472)+267)/* var←c82368 */ ))+112) );
(* (( (ptr) var←c82336)+45) ) = (word) (( (bPt) gf←c89472)+560)/* var←c80320 */ ;
(* (( (ptr) var←c82336)+46) ) = (word) (( (bPt) gf←c89472)+544)/* var←c80256 */ ;
(* (( (ptr) var←c82336)+47) ) = (word) (( (bPt) gf←c89472)+536)/* var←c80224 */ ;
(* (( (ptr) var←c82336)+48) ) = (word) (( (bPt) gf←c89472)+528)/* var←c80192 */ ;
(* (( (ptr) var←c82336)+49) ) = (word) (( (bPt) gf←c89472)+520)/* var←c80160 */ ;
(* (( (ptr) var←c82336)+50) ) = (word) (( (bPt) gf←c89472)+512)/* var←c80128 */ ;
(* (( (ptr) var←c82336)+51) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c89472)+267)/* var←c82368 */ ))+119) );
(* (( (ptr) var←c82336)+52) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c89472)+267)/* var←c82368 */ ))+120) );
(* (( (ptr) var←c82336)+53) ) = (word) (( (bPt) gf←c89472)+504)/* var←c80096 */ ;
(* (( (ptr) var←c82336)+54) ) = (word) (( (bPt) gf←c89472)+496)/* var←c80064 */ ;
(* (( (ptr) var←c82336)+55) ) = (word) (( (bPt) gf←c89472)+488)/* var←c80032 */ ;
(* (( (ptr) var←c82336)+56) ) = (word) (( (bPt) gf←c89472)+480)/* var←c80000 */ ;
(* (( (ptr) var←c82336)+57) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c89472)+267)/* var←c82368 */ ))+125) );
(* (( (ptr) var←c82336)+58) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c89472)+267)/* var←c82368 */ ))+126) );
(* (( (ptr) var←c82336)+59) ) = (word) (( (bPt) gf←c89472)+472)/* var←c79968 */ ;
(* (( (ptr) var←c82336)+60) ) = (word) (( (bPt) gf←c89472)+464)/* var←c79936 */ ;
(* (( (ptr) var←c82336)+61) ) = (word) (( (bPt) gf←c89472)+456)/* var←c79904 */ ;
(* (( (ptr) var←c82336)+62) ) = (word) (( (bPt) gf←c89472)+448)/* var←c79872 */ ;
class←v9188 = var←c82336;
};
SOURCE(4352, 2369)
return(class←v9188);
}
static word MakeCircleSlice←P120(origin←v9248, outerPoint←v9276)
W2 origin←v9248;
W2 outerPoint←v9276;
{
register ptr gf←c89504 = (ptr) &globalframe;
word sliceD←v9320;
word circleData←v20536;
word circleParts←v20564;
word slice←v20592 = 0;
/* MakeCircleSlice: */
SOURCE(6727, 1538)
SOURCE(6727, 1538)
sliceD←v9320 = 0;
SOURCE(6829, 43)
circleData←v20536 = XR←NewObject(136, (* (( (ptr) gf←c89504)+12) ));
(* (( (ptr) circleData←v20536)+12) ) = 1;
SOURCE(6874, 69)
circleParts←v20564 = XR←NewObject(24, (* (( (ptr) gf←c89504)+13) ));
SOURCE(6959, 66)
{
W2 var←c82464;
var←c82464.f0 = (* (ptr) &fc85 );
var←c82464.f1 = (* (ptr) &fc85 );
{
word pd86;
pd86 = (* (( (ptr) (* (( (ptr) gf←c89504)+268)/* var←c82496 */ ))+7) );
(* (ptr) circleData←v20536 ) = (word) ( *( (fPt) ((* (ptr) pd86 ))))(var←c82464, (* (ptr) &fc87 ), pd86);
};
};
SOURCE(7027, 34)
(* (W2Pt) (( (ptr) circleData←v20536)+9) ) = outerPoint←v9276;
SOURCE(7063, 77)
{
W2 var←c82528;
W2 var←c82560;
W2 var←c82592;
var←c82528.f0 = (* (ptr) &fc88 );
var←c82528.f1 = (* (ptr) &fc85 );
var←c82560.f0 = (* (ptr) &fc87 );
var←c82560.f1 = (* (ptr) &fc87 );
var←c82592.f0 = (* (ptr) &fc88 );
var←c82592.f1 = (* (ptr) &fc85 );
{
word pd89;
pd89 = (* (( (ptr) (* (( (ptr) gf←c89504)+269)/* var←c82624 */ ))+8) );
(* (( (ptr) circleData←v20536)+33) ) = (word) ( *( (fPt) ((* (ptr) pd89 ))))(var←c82528, var←c82560, var←c82592, 0, pd89)
;
};
};
SOURCE(7142, 26)
(* (W2Pt) (( (ptr) (* (( (ptr) circleData←v20536)+33) ))+9) ) = origin←v9248;
SOURCE(7170, 30)
(* (W2Pt) (( (ptr) (* (( (ptr) circleData←v20536)+33) ))+11) ) = outerPoint←v9276;
SOURCE(7202, 32)
(* (( (ptr) (* (( (ptr) circleData←v20536)+33) ))+2) ) = (* (ptr) &fc90 );
SOURCE(7236, 35)
(* (( (ptr) (* (( (ptr) circleData←v20536)+33) ))+8) ) = (* (ptr) (* (( (ptr) (* (( (ptr) gf←c89504)+270)/* var←c82656 */ ))+54)
) );
SOURCE(7273, 228)
{
word var←c82688;
word var←c82720;
word var←c82784;
word var←c82816;
{
word pd91;
pd91 = (* (( (ptr) (* (( (ptr) gf←c89504)+267)/* var←c82368 */ ))+7) );
var←c82688 = (word) ( *( (fPt) ((* (ptr) pd91 ))))((* ((( (ptr) gf←c89504)+56)) ), pd91);
};
{
word pd92;
pd92 = (* (( (ptr) (* (( (ptr) gf←c89504)+271)/* var←c82752 */ ))+6) );
var←c82720 = (word) ( *( (fPt) ((* (ptr) pd92 ))))(pd92);
};
{
word pd93;
pd93 = (* (( (ptr) (* (( (ptr) gf←c89504)+271)/* var←c82752 */ ))+6) );
var←c82784 = (word) ( *( (fPt) ((* (ptr) pd93 ))))(pd93);
};
var←c82816 = XR←NewObject(92, (* (( (ptr) gf←c89504)+14) ));
(* (ptr) var←c82816 ) = var←c82688;
(* (( (ptr) var←c82816)+1) ) = circleData←v20536;
(* (W4Pt) (( (ptr) var←c82816)+3) ) = (* (W4Pt) (( (ptr) gf←c89504)+252)/* var←c82144 */ );
(* (( (ptr) var←c82816)+13) ) = var←c82720;
(* (( (ptr) var←c82816)+15) ) = var←c82784;
(* (( (ptr) var←c82816)+21) ) = (word) -1;
slice←v20592 = var←c82816;
};
SOURCE(7503, 62)
{
word pd94;
pd94 = (* (( (ptr) (* (( (ptr) gf←c89504)+267)/* var←c82368 */ ))+8) );
(* (( (ptr) slice←v20592)+11) ) = (word) ( *( (fPt) ((* (ptr) pd94 ))))(slice←v20592, 0, pd94);
};
SOURCE(7567, 80)
if (XR←EqualWords(&origin←v9248, &outerPoint←v9276, 2)) {
SOURCE(7593, 54)
{
word x95;
word x97;
*(float*)(( (ptr) circleData←v20536)+9) = (
x95 = origin←v9248.f0, *(float*)&x95
) + (
x97 = (* (ptr) &fc96 ), *(float*)&x97
);
};
{
word x98;
word x99;
*(float*)(( (ptr) circleData←v20536)+10) = (
x98 = origin←v9248.f1, *(float*)&x98
) + (
x99 = (* (ptr) &fc96 ), *(float*)&x99
);
};
};
SOURCE(7678, 144)
{
word var←c82848;
word var←c82912;
{
word pd100;
pd100 = (* (( (ptr) (* (( (ptr) gf←c89504)+272)/* var←c82880 */ ))+10) );
var←c82848 = (word) ( *( (fPt) ((* (ptr) pd100 ))))(origin←v9248, pd100);
};
{
word pd101;
pd101 = (* (( (ptr) (* (( (ptr) gf←c89504)+273)/* var←c82944 */ ))+19) );
var←c82912 = (word) ( *( (fPt) ((* (ptr) pd101 ))))(origin←v9248, (* (W2Pt) (( (ptr) circleData←v20536)+9) ), pd101);
};
{
word pd102;
pd102 = (* (( (ptr) (* (( (ptr) gf←c89504)+272)/* var←c82880 */ ))+15) );
(* (( (ptr) circleData←v20536)+1) ) = (word) ( *( (fPt) ((* (ptr) pd102 ))))(var←c82848, var←c82912, pd102);
};
};
SOURCE(7824, 76)
{
word pd103;
pd103 = (* (( (ptr) (* (( (ptr) gf←c89504)+272)/* var←c82880 */ ))+56) );
(void) ( *( (fPt) ((* (ptr) pd103 ))))((word) (( (bPt) circleData←v20536)+8), (* (( (ptr) circleData←v20536)+1) ), pd103)
;
};
SOURCE(7902, 70)
{
word pd104;
pd104 = (* (( (ptr) (* (( (ptr) gf←c89504)+272)/* var←c82880 */ ))+51) );
(* (( (ptr) circleData←v20536)+6) ) = (word) ( *( (fPt) ((* (ptr) pd104 ))))((* ((( (ptr) circleData←v20536)+1)) ), pd104)
;
};
SOURCE(7974, 81)
{
word pd105;
pd105 = (* (( (ptr) (* (( (ptr) gf←c89504)+272)/* var←c82880 */ ))+56) );
(void) ( *( (fPt) ((* (ptr) pd105 ))))((word) (( (bPt) circleData←v20536)+28), (* (( (ptr) circleData←v20536)+6) ), pd105)
;
};
SOURCE(8057, 29)
(* (( (ptr) circleData←v20536)+4) ) = 1;
SOURCE(8088, 119)
{
word var←c82976;
{
word pd106;
pd106 = (* (( (ptr) (* (( (ptr) gf←c89504)+273)/* var←c82944 */ ))+19) );
var←c82976 = (word) ( *( (fPt) ((* (ptr) pd106 ))))(origin←v9248, (* (W2Pt) (( (ptr) circleData←v20536)+9) ), pd106);
};
{
word pd107;
pd107 = (* (( (ptr) (* (( (ptr) gf←c89504)+268)/* var←c82496 */ ))+7) );
(* (( (ptr) circleData←v20536)+5) ) = (word) ( *( (fPt) ((* (ptr) pd107 ))))(origin←v9248, var←c82976, pd107);
};
};
SOURCE(8209, 56)
{
word pd108;
pd108 = (* (( (ptr) (* (( (ptr) gf←c89504)+267)/* var←c82368 */ ))+8) );
sliceD←v9320 = (word) ( *( (fPt) ((* (ptr) pd108 ))))(slice←v20592, circleParts←v20564, pd108);
};
SOURCE(6727, 1538)
return(sliceD←v9320);
}
static void CircleGetParams←P180(formal←c0157, slice←v9380)
word formal←c0157;
word slice←v9380;
{
register ptr gf←c89536 = (ptr) &globalframe;
W2 origin←v9424;
W2 outerPoint←v9452;
word transform←v9480;
word data←v20636;
/* CircleGetParams: */
SOURCE(8271, 231)
SOURCE(8271, 231)
transform←v9480 = 0;
SOURCE(8389, 37)
data←v20636 = XR←Narrow((* (( (ptr) slice←v9380)+1) ), (* (( (ptr) gf←c89536)+12) ));
SOURCE(8428, 20)
origin←v9424 = (* (W2Pt) (( (ptr) (* (( (ptr) data←v20636)+33) ))+9) );
SOURCE(8450, 24)
outerPoint←v9452 = (* (W2Pt) (( (ptr) (* (( (ptr) data←v20636)+33) ))+11) );
SOURCE(8476, 26)
transform←v9480 = (* (( (ptr) data←v20636)+1) );
/* removed tail goto */
(* (W2Pt) formal←c0157 ) = origin←v9424;
(* (W2Pt) (( (ptr) formal←c0157)+2) ) = outerPoint←v9452;
(* (( (ptr) formal←c0157)+4) ) = transform←v9480;
return;
}
static void CircleGetBoundBoxAux←P240(formal←c0165, slice←v9540, parts←v9568)
word formal←c0165;
word slice←v9540;
word parts←v9568;
{
W6 var←c89568;
register ptr gf←c89600 = (ptr) &globalframe;
word tightBox←v9612;
word boundBox←v9640;
/* declaration of var←c83008 skipped */
/* CircleGetBoundBoxAux: */
SOURCE(8508, 1359)
{
word tmpAddr109;
tmpAddr109 = (word) (( (ptr) &var←c89568)+4)/* var←c83008 */ ;
(* (ptr) tmpAddr109 ) = ( ((word) (fPt) CircleFindBoundBox←P5760) );
(* (( (ptr) tmpAddr109) + 1) ) = 1;
};
SOURCE(8508, 1359)
tightBox←v9612 = 0;
SOURCE(8508, 1359)
boundBox←v9640 = 0;
SOURCE(9547, 55)
{
W2 var←c83040;
(void) CircleFindBoundBox←P5760((word) &var←c83040, slice←v9540, parts←v9568, (word) (( (bPt) &var←c89568)+16)/* var←c83008 */ )
;
boundBox←v9640 = var←c83040.f1;
tightBox←v9612 = var←c83040.f0;
};
SOURCE(9631, 236)
if ((parts←v9568 == 0)) {
SOURCE(9698, 34)
{
word pd110;
pd110 = (* (( (ptr) (* (( (ptr) gf←c89600)+267)/* var←c82368 */ ))+68) );
(void) ( *( (fPt) ((* (ptr) pd110 ))))((* ((( (ptr) slice←v9540)+2)) ), pd110);
};
SOURCE(9764, 25)
(* (( (ptr) slice←v9540)+15) ) = boundBox←v9640;
SOURCE(9791, 25)
(* (( (ptr) slice←v9540)+13) ) = tightBox←v9612;
SOURCE(9818, 21)
(* (( (ptr) slice←v9540)+16) ) = 1;
SOURCE(9841, 26)
(* (( (ptr) slice←v9540)+14) ) = 1;
};
/* removed tail goto */
(* (ptr) formal←c0165 ) = tightBox←v9612;
(* (( (ptr) formal←c0165)+1) ) = boundBox←v9640;
return;
}
static void CircleFindBoundBox←P5760(formal←c0186, slice←v20756, parts←v20784, formal←c89664)
word formal←c0186;
word slice←v20756;
word parts←v20784;
word formal←c89664;
{
register ptr gf←c89632 = (ptr) &globalframe;
word tightBox←v20828;
word boundBox←v20856;
word strokeWidth←v20884;
word pad←v20912;
word circleData←v20940;
W2 origin←v20996;
W2 minor←v21024;
W2 major←v21052;
word minorDS←v21080;
word majorDS←v21108;
word tMax←v21136;
word radius←v21164;
formal←c89664 = (formal←c89664 - 16);
/* CircleFindBoundBox: */
SOURCE(8612, 929)
SOURCE(8612, 929)
tightBox←v20828 = 0;
SOURCE(8612, 929)
boundBox←v20856 = 0;
SOURCE(8714, 66)
strokeWidth←v20884 = (* (( (ptr) (* (( (ptr) XR←Narrow((* (( (ptr) slice←v20756)+1) ), (* (( (ptr) gf←c89632)+12) )))+33)
))+2) );
SOURCE(8782, 23)
pad←v20912 = strokeWidth←v20884;
SOURCE(8807, 43)
circleData←v20940 = XR←Narrow((* (( (ptr) slice←v20756)+1) ), (* (( (ptr) gf←c89632)+12) ));
SOURCE(8876, 80)
{
W2 var←c0175;
{
W2 var←c83072;
var←c83072.f0 = (* (ptr) &fc85 );
var←c83072.f1 = (* (ptr) &fc85 );
{
word pd111;
pd111 = (* (( (ptr) (* (( (ptr) gf←c89632)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd111 ))))((word) &var←c0175, (* (( (ptr) circleData←v20940)+1) ), var←c83072, pd111);
};
};
origin←v20996 = var←c0175;
};
SOURCE(8958, 79)
{
W2 var←c0178;
{
W2 var←c83104;
var←c83104.f0 = (* (ptr) &fc85 );
var←c83104.f1 = (* (ptr) &fc87 );
{
word pd112;
pd112 = (* (( (ptr) (* (( (ptr) gf←c89632)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd112 ))))((word) &var←c0178, (* (( (ptr) circleData←v20940)+1) ), var←c83104, pd112);
};
};
minor←v21024 = var←c0178;
};
SOURCE(9045, 79)
{
W2 var←c0181;
{
W2 var←c83136;
var←c83136.f0 = (* (ptr) &fc87 );
var←c83136.f1 = (* (ptr) &fc85 );
{
word pd113;
pd113 = (* (( (ptr) (* (( (ptr) gf←c89632)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd113 ))))((word) &var←c0181, (* (( (ptr) circleData←v20940)+1) ), var←c83136, pd113);
};
};
major←v21052 = var←c0181;
};
SOURCE(9136, 56)
{
word pd114;
pd114 = (* (( (ptr) (* (( (ptr) gf←c89632)+273)/* var←c82944 */ ))+21) );
minorDS←v21080 = (word) ( *( (fPt) ((* (ptr) pd114 ))))(minor←v21024, origin←v20996, pd114);
};
SOURCE(9194, 56)
{
word pd115;
pd115 = (* (( (ptr) (* (( (ptr) gf←c89632)+273)/* var←c82944 */ ))+21) );
majorDS←v21108 = (word) ( *( (fPt) ((* (ptr) pd115 ))))(major←v21052, origin←v20996, pd115);
};
SOURCE(9252, 34)
{
word x116;
float tf117;
float tf118;
word x119;
float tf120;
tMax←v21136 = (
tf120 = FMAX((
x116 = minorDS←v21080, *(float*)&x116
), (
x119 = majorDS←v21108, *(float*)&x119
), tf117, tf118), *(word*)&tf120
);
};
SOURCE(9288, 33)
{
word pd121;
pd121 = (* (( (ptr) (* (( (ptr) gf←c89632)+274)/* var←c83168 */ ))+9) );
radius←v21164 = (word) ( *( (fPt) ((* (ptr) pd121 ))))(tMax←v21136, pd121);
};
SOURCE(9323, 104)
{
word pd122;
word x123;
word x124;
float tf125;
word x126;
word x127;
float tf128;
word x129;
word x130;
float tf131;
word x132;
word x133;
float tf134;
pd122 = (* (( (ptr) (* (( (ptr) gf←c89632)+271)/* var←c82752 */ ))+5) );
tightBox←v20828 = (word) ( *( (fPt) ((* (ptr) pd122 ))))((
tf125 = (
x123 = origin←v20996.f0, *(float*)&x123
) - (
x124 = radius←v21164, *(float*)&x124
), *(word*)&tf125
), (
tf128 = (
x126 = origin←v20996.f1, *(float*)&x126
) - (
x127 = radius←v21164, *(float*)&x127
), *(word*)&tf128
), (
tf131 = (
x129 = origin←v20996.f0, *(float*)&x129
) + (
x130 = radius←v21164, *(float*)&x130
), *(word*)&tf131
), (
tf134 = (
x132 = origin←v20996.f1, *(float*)&x132
) + (
x133 = radius←v21164, *(float*)&x133
), *(word*)&tf134
), 0, 0, pd122);
};
SOURCE(9429, 44)
{
word pd135;
pd135 = (* (( (ptr) (* (( (ptr) gf←c89632)+271)/* var←c82752 */ ))+7) );
boundBox←v20856 = (word) ( *( (fPt) ((* (ptr) pd135 ))))(tightBox←v20828, pd135);
};
SOURCE(9475, 41)
{
word pd136;
pd136 = (* (( (ptr) (* (( (ptr) gf←c89632)+271)/* var←c82752 */ ))+17) );
(void) ( *( (fPt) ((* (ptr) pd136 ))))(boundBox←v20856, pad←v20912, pd136);
};
SOURCE(9518, 23)
(void) CircleSetScaling←P420(slice←v20756);
/* removed tail goto */
(* (ptr) formal←c0186 ) = tightBox←v20828;
(* (( (ptr) formal←c0186)+1) ) = boundBox←v20856;
return;
}
static word CircleGetBoundBox←P300(slice←v9700, parts←v9728)
word slice←v9700;
word parts←v9728;
{
word box←v9772;
/* CircleGetBoundBox: */
SOURCE(9876, 211)
SOURCE(9876, 211)
box←v9772 = 0;
SOURCE(9962, 59)
if ( ( (0 != (* (( (ptr) slice←v9700)+16) )) ? (parts←v9728 == 0) : 0 ) ) {
SOURCE(9999, 22)
return((* (( (ptr) slice←v9700)+15) ));
};
SOURCE(10036, 51)
{
word var←c01210;
W2 var←c0190;
(void) CircleGetBoundBoxAux←P240((word) &var←c0190, slice←v9700, parts←v9728);
var←c01210 = var←c0190.f1;
return(var←c01210);
};
}
static word CircleGetTightBox←P360(slice←v9832, parts←v9860)
word slice←v9832;
word parts←v9860;
{
word box←v9904;
/* CircleGetTightBox: */
SOURCE(10121, 211)
SOURCE(10121, 211)
box←v9904 = 0;
SOURCE(10207, 59)
if ( ( (0 != (* (( (ptr) slice←v9832)+16) )) ? (parts←v9860 == 0) : 0 ) ) {
SOURCE(10244, 22)
return((* (( (ptr) slice←v9832)+13) ));
};
SOURCE(10281, 51)
{
word var←c01211;
W2 var←c0194;
(void) CircleGetBoundBoxAux←P240((word) &var←c0194, slice←v9832, parts←v9860);
var←c01211 = var←c0194.f0;
return(var←c01211);
};
}
static void CircleSetScaling←P420(slice←v9964)
word slice←v9964;
{
register ptr gf←c89696 = (ptr) &globalframe;
word circleData←v21236;
W2 origin←v21264;
W2 major←v21292;
/* CircleSetScaling: */
SOURCE(10366, 569)
SOURCE(10432, 43)
circleData←v21236 = XR←Narrow((* (( (ptr) slice←v9964)+1) ), (* (( (ptr) gf←c89696)+12) ));
SOURCE(10477, 80)
{
W2 var←c0199;
{
W2 var←c83264;
var←c83264.f0 = (* (ptr) &fc85 );
var←c83264.f1 = (* (ptr) &fc85 );
{
word pd137;
pd137 = (* (( (ptr) (* (( (ptr) gf←c89696)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd137 ))))((word) &var←c0199, (* (( (ptr) circleData←v21236)+1) ), var←c83264, pd137);
};
};
origin←v21264 = var←c0199;
};
SOURCE(10559, 79)
{
W2 var←c0202;
{
W2 var←c83296;
var←c83296.f0 = (* (ptr) &fc87 );
var←c83296.f1 = (* (ptr) &fc85 );
{
word pd138;
pd138 = (* (( (ptr) (* (( (ptr) gf←c89696)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd138 ))))((word) &var←c0202, (* (( (ptr) circleData←v21236)+1) ), var←c83296, pd138);
};
};
major←v21292 = var←c0202;
};
SOURCE(10640, 240)
{
float tf139;
word x140;
word x141;
word x143;
if ((FABS(((
x140 = (* (( (ptr) circleData←v21236)+7) ), *(float*)&x140
) - (
x141 = (* (( (ptr) circleData←v21236)+8) ), *(float*)&x141
)), tf139) < (
x143 = (* (ptr) &fc142 ), *(float*)&x143
))) {
SOURCE(10719, 91)
{
word pd144;
pd144 = (* (( (ptr) (* (( (ptr) gf←c89696)+268)/* var←c82496 */ ))+6) );
(void) ( *( (fPt) ((* (ptr) pd144 ))))(origin←v21264, (* (( (ptr) circleData←v21236)+2) ), (* (( (ptr) circleData←v21236)+5)
), pd144);
};
SOURCE(10812, 29)
(* (( (ptr) circleData←v21236)+4) ) = 1;
}
else {
SOURCE(10850, 30)
(* (( (ptr) circleData←v21236)+4) ) = 0;
};
};
SOURCE(10882, 26)
(* (W2Pt) (( (ptr) (* (( (ptr) circleData←v21236)+33) ))+9) ) = origin←v21264;
SOURCE(10910, 25)
(* (W2Pt) (( (ptr) (* (( (ptr) circleData←v21236)+33) ))+11) ) = major←v21292;
}
static word CircleCopy←P480(slice←v10024, parts←v10052)
word slice←v10024;
word parts←v10052;
{
register ptr gf←c89728 = (ptr) &globalframe;
word copy←v10096;
word copySlice←v21336 = 0;
word circleData←v21364;
word newData←v21392 = 0;
word copyD←v21420;
/* CircleCopy: */
SOURCE(10941, 1092)
SOURCE(10941, 1092)
copy←v10096 = 0;
SOURCE(11050, 43)
circleData←v21364 = XR←Narrow((* (( (ptr) slice←v10024)+1) ), (* (( (ptr) gf←c89728)+12) ));
SOURCE(11116, 64)
{
W2 var←c83328;
W2 var←c83360;
var←c83328.f0 = (* (ptr) &fc85 );
var←c83328.f1 = (* (ptr) &fc85 );
var←c83360.f0 = (* (ptr) &fc87 );
var←c83360.f1 = (* (ptr) &fc87 );
copyD←v21420 = (word) MakeCircleSlice←P120(var←c83328, var←c83360);
};
SOURCE(11182, 23)
copySlice←v21336 = (* (ptr) copyD←v21420 );
SOURCE(11207, 32)
newData←v21392 = XR←Narrow((* (( (ptr) copySlice←v21336)+1) ), (* (( (ptr) gf←c89728)+12) ));
SOURCE(11241, 67)
{
word pd145;
pd145 = (* (( (ptr) (* (( (ptr) gf←c89728)+272)/* var←c82880 */ ))+6) );
(* (( (ptr) newData←v21392)+1) ) = (word) ( *( (fPt) ((* (ptr) pd145 ))))((* ((( (ptr) circleData←v21364)+1)) ), pd145);
};
SOURCE(11310, 32)
(* (W2Pt) (( (ptr) newData←v21392)+2) ) = (* (W2Pt) (( (ptr) circleData←v21364)+2) );
SOURCE(11344, 63)
{
word pd146;
pd146 = (* (( (ptr) (* (( (ptr) gf←c89728)+272)/* var←c82880 */ ))+6) );
(* (( (ptr) newData←v21392)+6) ) = (word) ( *( (fPt) ((* (ptr) pd146 ))))((* ((( (ptr) circleData←v21364)+6)) ), pd146);
};
SOURCE(11409, 46)
(* (W2Pt) (( (ptr) newData←v21392)+7) ) = (* (W2Pt) (( (ptr) circleData←v21364)+7) );
SOURCE(11457, 44)
(* (( (ptr) newData←v21392)+4) ) = (* (( (ptr) circleData←v21364)+4) );
SOURCE(11503, 52)
{
word pd147;
pd147 = (* (( (ptr) (* (( (ptr) gf←c89728)+268)/* var←c82496 */ ))+4) );
(* (( (ptr) newData←v21392)+5) ) = (word) ( *( (fPt) ((* (ptr) pd147 ))))(pd147);
};
SOURCE(11557, 77)
{
word pd148;
pd148 = (* (( (ptr) (* (( (ptr) gf←c89728)+268)/* var←c82496 */ ))+5) );
(void) ( *( (fPt) ((* (ptr) pd148 ))))((* (( (ptr) circleData←v21364)+5) ), (* (( (ptr) newData←v21392)+5) ), pd148);
};
SOURCE(11636, 51)
{
word pd149;
pd149 = (* (( (ptr) (* (( (ptr) gf←c89728)+269)/* var←c82624 */ ))+17) );
(* (( (ptr) newData←v21392)+33) ) = (word) ( *( (fPt) ((* (ptr) pd149 ))))((* ((( (ptr) circleData←v21364)+33)) ), pd149)
;
};
SOURCE(11689, 36)
(* (( (ptr) newData←v21392)+12) ) = (* (( (ptr) circleData←v21364)+12) );
SOURCE(11727, 122)
{
register word index←v21464 = 0;
if (( (int)index←v21464 > (int)4)) {
goto lab←L100003;
};
lab←L100006: ;
SOURCE(11773, 76)
(* (( (W4Pt) (( (ptr) newData←v21392)+13))+BCK(index←v21464, 5)) ) = (* (( (W4Pt) (( (ptr) circleData←v21364)+13))+BCK(index←v21464, 5)
) );
if (( (int)index←v21464 >= (int)4)) {
goto lab←L100003;
};
index←v21464 = (index←v21464 + 1);
goto lab←L100006;
lab←L100003: ;
};
SOURCE(11860, 93)
{
word var←c83392;
{
word pd150;
pd150 = (* (( (ptr) (* (( (ptr) gf←c89728)+275)/* var←c83424 */ ))+38) );
var←c83392 = (word) ( *( (fPt) ((* (ptr) pd150 ))))((* ((( (ptr) circleData←v21364)+11)) ), pd150);
};
{
word pd151;
pd151 = (* (( (ptr) (* (( (ptr) gf←c89728)+276)/* var←c83456 */ ))+61) );
(void) ( *( (fPt) ((* (ptr) pd151 ))))(copySlice←v21336, 0, var←c83392, (* (( (ptr) gf←c89728)+54) ), 0, pd151);
};
};
SOURCE(11955, 53)
{
word pd152;
pd152 = (* (( (ptr) (* (( (ptr) gf←c89728)+277)/* var←c83488 */ ))+10) );
(void) ( *( (fPt) ((* (ptr) pd152 ))))(slice←v10024, copySlice←v21336, 0, 0, pd152);
};
SOURCE(12010, 23)
{
word var←c83552;
word var←c83584;
var←c83552 = XR←NewObject(8, (* (( (ptr) gf←c89728)+17) ));
var←c83584 = var←c83552;
(* (ptr) var←c83584 ) = copySlice←v21336;
return(var←c83552);
};
}
static void CircleRestore←P540(from←v10240, to←v10268)
word from←v10240;
word to←v10268;
{
register ptr gf←c89760 = (ptr) &globalframe;
/* CircleRestore: */
SOURCE(12039, 1302)
SOURCE(12088, 27)
if ((to←v10268 == 0) || (from←v10240 == 0)) {
SOURCE(12115, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(12122, 28)
if (((* (ptr) to←v10268 ) != (* (ptr) from←v10240 ))) {
SOURCE(12150, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(12157, 30)
if (((* (ptr) (* (ptr) to←v10268 ) ) != (* (( (ptr) gf←c89760)+56) ))) {
SOURCE(12187, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(12194, 1149)
{
word fromData←v21508;
word toData←v21536;
SOURCE(12200, 40)
fromData←v21508 = XR←Narrow((* (( (ptr) from←v10240)+1) ), (* (( (ptr) gf←c89760)+12) ));
SOURCE(12242, 36)
toData←v21536 = XR←Narrow((* (( (ptr) to←v10268)+1) ), (* (( (ptr) gf←c89760)+12) ));
SOURCE(12281, 530)
if ((0 != (* (ptr) (* (( (ptr) (* (( (ptr) gf←c89760)+267)/* var←c82368 */ ))+67) ) ))) {
SOURCE(12311, 31)
(* (ptr) toData←v21536 ) = (* (ptr) fromData←v21508 );
SOURCE(12344, 37)
(* (( (ptr) toData←v21536)+1) ) = (* (( (ptr) fromData←v21508)+1) );
SOURCE(12383, 29)
(* (W2Pt) (( (ptr) toData←v21536)+2) ) = (* (W2Pt) (( (ptr) fromData←v21508)+2) );
SOURCE(12414, 41)
(* (( (ptr) toData←v21536)+4) ) = (* (( (ptr) fromData←v21508)+4) );
SOURCE(12457, 43)
(* (( (ptr) toData←v21536)+5) ) = (* (( (ptr) fromData←v21508)+5) );
SOURCE(12502, 33)
(* (( (ptr) toData←v21536)+6) ) = (* (( (ptr) fromData←v21508)+6) );
SOURCE(12537, 43)
(* (W2Pt) (( (ptr) toData←v21536)+7) ) = (* (W2Pt) (( (ptr) fromData←v21508)+7) );
SOURCE(12582, 39)
(* (W2Pt) (( (ptr) toData←v21536)+9) ) = (* (W2Pt) (( (ptr) fromData←v21508)+9) );
SOURCE(12623, 37)
(* (( (ptr) toData←v21536)+11) ) = (* (( (ptr) fromData←v21508)+11) );
SOURCE(12662, 33)
(* (( (ptr) toData←v21536)+12) ) = (* (( (ptr) fromData←v21508)+12) );
SOURCE(12697, 59)
(* (W20Pt) (( (ptr) toData←v21536)+13) ) = (* (W20Pt) (( (ptr) fromData←v21508)+13) );
SOURCE(12758, 25)
(* (( (ptr) toData←v21536)+33) ) = (* (( (ptr) fromData←v21508)+33) );
}
else {
SOURCE(12792, 19)
(* (( (ptr) to←v10268)+1) ) = (* (( (ptr) from←v10240)+1) );
};
SOURCE(12814, 39)
(* (W4Pt) (( (ptr) to←v10268)+3) ) = (* (W4Pt) (( (ptr) from←v10240)+3) );
SOURCE(12873, 28)
(* (( (ptr) to←v10268)+7) ) = 0;
SOURCE(12927, 25)
(* (( (ptr) to←v10268)+8) ) = 0;
SOURCE(12978, 28)
(* (( (ptr) to←v10268)+9) ) = 0;
SOURCE(13032, 27)
(* (( (ptr) to←v10268)+10) ) = 0;
SOURCE(13085, 29)
(* (W6Pt) (* (( (ptr) to←v10268)+13) ) ) = (* (W6Pt) (* (( (ptr) from←v10240)+13) ) );
SOURCE(13116, 37)
(* (( (ptr) to←v10268)+14) ) = (* (( (ptr) from←v10240)+14) );
SOURCE(13155, 29)
(* (W6Pt) (* (( (ptr) to←v10268)+15) ) ) = (* (W6Pt) (* (( (ptr) from←v10240)+15) ) );
SOURCE(13186, 27)
(* (( (ptr) to←v10268)+16) ) = (* (( (ptr) from←v10240)+16) );
SOURCE(13215, 29)
(* (( (ptr) to←v10268)+17) ) = (* (( (ptr) from←v10240)+17) );
SOURCE(13246, 33)
(* (( (ptr) to←v10268)+18) ) = (* (( (ptr) from←v10240)+18) );
SOURCE(13281, 27)
(* (( (ptr) to←v10268)+19) ) = (* (( (ptr) from←v10240)+19) );
SOURCE(13310, 31)
(* (( (ptr) to←v10268)+20) ) = (* (( (ptr) from←v10240)+20) );
};
}
static void CircleBuildPath←P600(slice←v10328, transformParts←v10356, transform←v10384, moveTo←v10412, lineTo←v10440, curveTo←v10468, conicTo←v10496, arcTo←v10524, editConstraints←v10552)
word slice←v10328;
word transformParts←v10356;
word transform←v10384;
word moveTo←v10412;
word lineTo←v10440;
word curveTo←v10468;
word conicTo←v10496;
word arcTo←v10524;
word editConstraints←v10552;
{
register ptr gf←c89792 = (ptr) &globalframe;
word cpCount←v21580 = 0;
word cpIndex←v21608 = (word) -1;
W2 edgePoint←v21636;
W2 pointInUnitSpace←v21664;
word circleData←v21692;
word circleTransformParts←v21720;
word newTransform←v21748 = 0;
word noRubberband←v21776;
/* CircleBuildPath: */
SOURCE(13352, 1973)
SOURCE(13664, 43)
circleData←v21692 = XR←Narrow((* (( (ptr) slice←v10328)+1) ), (* (( (ptr) gf←c89792)+12) ));
SOURCE(13709, 58)
circleTransformParts←v21720 = XR←Narrow(transformParts←v10356, (* (( (ptr) gf←c89792)+13) ));
SOURCE(13799, 145)
noRubberband←v21776 = (unsigned) ( (((circleTransformParts←v21720 == 0) || (0 != (* (( (ptr) circleTransformParts←v21720)+5)
))) || (0 != (* (ptr) circleTransformParts←v21720 ))) ? 1 : (0 != (word) IsEmpty←P4320(circleTransformParts←v21720)) ) ;
SOURCE(13975, 234)
{
word pd153;
if ((transform←v10384 == 0)) {
newTransform←v21748 = (* (( (ptr) circleData←v21692)+1) );
}
else {
if ((0 != (word) IsEmpty←P4320(circleTransformParts←v21720))) {
newTransform←v21748 = (* (( (ptr) circleData←v21692)+1) );
}
else {
pd153 = (* (( (ptr) (* (( (ptr) gf←c89792)+272)/* var←c82880 */ ))+13) );
newTransform←v21748 = (word) ( *( (fPt) ((* (ptr) pd153 ))))((* (( (ptr) circleData←v21692)+1) ), transform←v10384, pd153)
;
};
};
};
SOURCE(14211, 191)
if ((0 != noRubberband←v21776)) {
SOURCE(14234, 137)
{
word pd154;
pd154 = (* (( (ptr) (* (( (ptr) gf←c89792)+278)/* var←c83616 */ ))+6) );
(void) ( *( (fPt) ((* (ptr) pd154 ))))( ( (0 != (* (( (ptr) circleData←v21692)+12) )) ? (word) (( (bPt) gf←c89792)+808)/* var←c81312 */ : (word) (
( (bPt) gf←c89792)+800)/* var←c81280 */ ) , newTransform←v21748, moveTo←v10412, lineTo←v10440, curveTo←v10468, conicTo←v10496
, arcTo←v10524, 0, pd154);
};
SOURCE(14396, 6)
return;
};
SOURCE(14407, 165)
{
register word index←v21820 = 1;
lab←L100010: ;
SOURCE(14487, 85)
if ((0 != (* (( (ptr) circleTransformParts←v21720)+index←v21820) ))) {
SOURCE(14534, 21)
cpCount←v21580 = (cpCount←v21580 + 1);
SOURCE(14557, 15)
cpIndex←v21608 = index←v21820;
};
if ((index←v21820 >= 4)) {
goto lab←L100007;
};
index←v21820 = (index←v21820 + 1);
goto lab←L100010;
lab←L100007: ;
};
SOURCE(14586, 191)
if (( (int)cpCount←v21580 > (int)1)) {
SOURCE(14609, 137)
{
word pd155;
pd155 = (* (( (ptr) (* (( (ptr) gf←c89792)+278)/* var←c83616 */ ))+6) );
(void) ( *( (fPt) ((* (ptr) pd155 ))))( ( (0 != (* (( (ptr) circleData←v21692)+12) )) ? (word) (( (bPt) gf←c89792)+808)/* var←c81312 */ : (word) (
( (bPt) gf←c89792)+800)/* var←c81280 */ ) , newTransform←v21748, moveTo←v10412, lineTo←v10440, curveTo←v10468, conicTo←v10496
, arcTo←v10524, 0, pd155);
};
SOURCE(14771, 6)
return;
};
SOURCE(14782, 164)
{
W2 var←c83648;
{
word var←c83680;
var←c83680 = cpIndex←v21608;
switch (var←c83680) {
case 1:
var←c83648.f0 = (* (ptr) &fc88 );
var←c83648.f1 = (* (ptr) &fc85 );
break;
case 2:
var←c83648.f0 = (* (ptr) &fc85 );
var←c83648.f1 = (* (ptr) &fc87 );
break;
case 3:
var←c83648.f0 = (* (ptr) &fc87 );
var←c83648.f1 = (* (ptr) &fc85 );
break;
case 4:
var←c83648.f0 = (* (ptr) &fc85 );
var←c83648.f1 = (* (ptr) &fc88 );
break;
default:
var←c83648 = (* (W2Pt) (
XR←RaiseUnnamedError(), &dummy156
) );
break;
};
};
{
W2 var←c0244;
{
word pd157;
pd157 = (* (( (ptr) (* (( (ptr) gf←c89792)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd157 ))))((word) &var←c0244, newTransform←v21748, var←c83648, pd157);
};
edgePoint←v21636 = var←c0244;
};
};
SOURCE(14948, 80)
{
word pd158;
pd158 = (* (( (ptr) (* (( (ptr) gf←c89792)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd158 ))))((word) &pointInUnitSpace←v21664, (* (( (ptr) circleData←v21692)+6) ), edgePoint←v21636, pd158)
;
};
SOURCE(15030, 124)
{
word var←c83840;
{
word pd159;
word x160;
float tf161;
float tf162;
word x163;
float tf164;
pd159 = (* (( (ptr) (* (( (ptr) gf←c89792)+273)/* var←c82944 */ ))+18) );
var←c83840 = (
tf164 = FMAX((
x160 = (word) ( *( (fPt) ((* (ptr) pd159 ))))(pointInUnitSpace←v21664, pd159), *(float*)&x160
), (
x163 = (* (( (ptr) gf←c89792)+5)/* circleLimit←v6164 */ ), *(float*)&x163
), tf161, tf162), *(word*)&tf164
);
};
{
word pd165;
pd165 = (* (( (ptr) (* (( (ptr) gf←c89792)+272)/* var←c82880 */ ))+15) );
newTransform←v21748 = (word) ( *( (fPt) ((* (ptr) pd165 ))))((* (( (ptr) circleData←v21692)+1) ), var←c83840, pd165);
};
};
SOURCE(15188, 137)
{
word pd166;
pd166 = (* (( (ptr) (* (( (ptr) gf←c89792)+278)/* var←c83616 */ ))+6) );
(void) ( *( (fPt) ((* (ptr) pd166 ))))( ( (0 != (* (( (ptr) circleData←v21692)+12) )) ? (word) (( (bPt) gf←c89792)+808)/* var←c81312 */ : (word) (
( (bPt) gf←c89792)+800)/* var←c81280 */ ) , newTransform←v21748, moveTo←v10412, lineTo←v10440, curveTo←v10468, conicTo←v10496
, arcTo←v10524, 0, pd166);
};
}
static void CircleDrawBorder←P660(formal←c01238, formal←c01239, formal←c01240, formal←c01241, formal←c01242, camera←v10752, quick←v10780, editConstraints←v10808)
word formal←c01238;
word formal←c01239;
word formal←c01240;
word formal←c01241;
word formal←c01242;
word camera←v10752;
word quick←v10780;
word editConstraints←v10808;
{
W11 var←c89824;
/* declaration of slice←v10612 skipped */
/* declaration of drawParts←v10640 skipped */
/* declaration of transformParts←v10668 skipped */
/* declaration of transform←v10696 skipped */
/* declaration of dc←v10724 skipped */
register ptr gf←c89856 = (ptr) &globalframe;
/* declaration of var←c83872 skipped */
(* (( (ptr) &var←c89824)+4)/* slice←v10612 */ ) = formal←c01238;
(* (( (ptr) &var←c89824)+5)/* drawParts←v10640 */ ) = formal←c01239;
(* (( (ptr) &var←c89824)+6)/* transformParts←v10668 */ ) = formal←c01240;
(* (( (ptr) &var←c89824)+7)/* transform←v10696 */ ) = formal←c01241;
(* (( (ptr) &var←c89824)+8)/* dc←v10724 */ ) = formal←c01242;
/* CircleDrawBorder: */
SOURCE(15331, 1896)
{
word tmpAddr167;
tmpAddr167 = (word) (( (ptr) &var←c89824)+9)/* var←c83872 */ ;
(* (ptr) tmpAddr167 ) = ( ((word) (fPt) DoCircleDrawBorder←P5964) );
(* (( (ptr) tmpAddr167) + 1) ) = 1;
};
SOURCE(17190, 37)
{
word pd168;
pd168 = (* (( (ptr) (* (( (ptr) gf←c89856)+270)/* var←c82656 */ ))+12) );
(void) ( *( (fPt) ((* (ptr) pd168 ))))((* (( (ptr) &var←c89824)+8)/* dc←v10724 */ ), (word) (( (bPt) &var←c89824)+36)/* var←c83872 */ , pd168)
;
};
}
static void DoCircleDrawBorder←P5964(formal←c89920)
word formal←c89920;
{
register ptr gf←c89888 = (ptr) &globalframe;
word cpCount←v21924 = 0;
word cpIndex←v21952 = (word) -1;
W2 edgePoint←v21980;
W2 pointInUnitSpace←v22008;
word circleData←v22036;
word circleDrawParts←v22064;
word circleTransformParts←v22092;
word newTransform←v22120 = 0;
word noRubberband←v22148;
formal←c89920 = (formal←c89920 - 36);
/* DoCircleDrawBorder: */
SOURCE(15629, 1553)
SOURCE(15731, 43)
circleData←v22036 = XR←Narrow((* (( (ptr) (* (( (ptr) formal←c89920)+4) ))+1) ), (* (( (ptr) gf←c89888)+12) ));
SOURCE(15776, 48)
circleDrawParts←v22064 = XR←Narrow((* (( (ptr) formal←c89920)+5) ), (* (( (ptr) gf←c89888)+13) ));
SOURCE(15826, 58)
circleTransformParts←v22092 = XR←Narrow((* (( (ptr) formal←c89920)+6) ), (* (( (ptr) gf←c89888)+13) ));
SOURCE(15916, 145)
noRubberband←v22148 = (unsigned) ( (((circleTransformParts←v22092 == 0) || (0 != (* (( (ptr) circleTransformParts←v22092)+5)
))) || (0 != (* (ptr) circleTransformParts←v22092 ))) ? 1 : (0 != (word) IsEmpty←P4320(circleTransformParts←v22092)) ) ;
SOURCE(16063, 213)
{
word pd169;
if (((* (( (ptr) formal←c89920)+7) ) == 0)) {
newTransform←v22120 = (* (( (ptr) circleData←v22036)+1) );
}
else {
if ((0 != (word) IsEmpty←P4320(circleTransformParts←v22092))) {
newTransform←v22120 = (* (( (ptr) circleData←v22036)+1) );
}
else {
pd169 = (* (( (ptr) (* (( (ptr) gf←c89888)+272)/* var←c82880 */ ))+13) );
newTransform←v22120 = (word) ( *( (fPt) ((* (ptr) pd169 ))))((* (( (ptr) circleData←v22036)+1) ), (* (( (ptr) formal←c89920)+7)
), pd169);
};
};
};
SOURCE(16279, 903)
SOURCE(16285, 63)
if ( ( (circleDrawParts←v22064 != 0) ? (0 != (word) IsEmpty←P4320(circleDrawParts←v22064)) : 0 ) ) {
SOURCE(16342, 6)
return;
};
SOURCE(16367, 21)
if ((0 != noRubberband←v22148)) {
SOURCE(16388, 17)
goto lab←L100011;
};
SOURCE(16407, 165)
{
register word index←v22192 = 1;
lab←L100015: ;
SOURCE(16487, 85)
if ((0 != (* (( (ptr) circleTransformParts←v22092)+index←v22192) ))) {
SOURCE(16534, 21)
cpCount←v21924 = (cpCount←v21924 + 1);
SOURCE(16557, 15)
cpIndex←v21952 = index←v22192;
};
if ((index←v22192 >= 4)) {
goto lab←L100012;
};
index←v22192 = (index←v22192 + 1);
goto lab←L100015;
lab←L100012: ;
};
SOURCE(16586, 21)
if (( (int)cpCount←v21924 > (int)1)) {
SOURCE(16607, 17)
goto lab←L100011;
};
SOURCE(16626, 143)
{
W2 var←c83904;
{
word var←c83936;
var←c83936 = cpIndex←v21952;
switch (var←c83936) {
case 1:
var←c83904.f0 = (* (ptr) &fc88 );
var←c83904.f1 = (* (ptr) &fc85 );
break;
case 2:
var←c83904.f0 = (* (ptr) &fc85 );
var←c83904.f1 = (* (ptr) &fc87 );
break;
case 3:
var←c83904.f0 = (* (ptr) &fc87 );
var←c83904.f1 = (* (ptr) &fc85 );
break;
case 4:
var←c83904.f0 = (* (ptr) &fc85 );
var←c83904.f1 = (* (ptr) &fc88 );
break;
default:
var←c83904 = (* (W2Pt) (
XR←RaiseUnnamedError(), &dummy156
) );
break;
};
};
{
W2 var←c0272;
{
word pd170;
pd170 = (* (( (ptr) (* (( (ptr) gf←c89888)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd170 ))))((word) &var←c0272, newTransform←v22120, var←c83904, pd170);
};
edgePoint←v21980 = var←c0272;
};
};
SOURCE(16771, 59)
{
word pd171;
pd171 = (* (( (ptr) (* (( (ptr) gf←c89888)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd171 ))))((word) &pointInUnitSpace←v22008, (* (( (ptr) circleData←v22036)+6) ), edgePoint←v21980, pd171)
;
};
SOURCE(16832, 102)
{
word var←c84096;
{
word pd172;
word x173;
float tf174;
float tf175;
word x176;
float tf177;
pd172 = (* (( (ptr) (* (( (ptr) gf←c89888)+273)/* var←c82944 */ ))+18) );
var←c84096 = (
tf177 = FMAX((
x173 = (word) ( *( (fPt) ((* (ptr) pd172 ))))(pointInUnitSpace←v22008, pd172), *(float*)&x173
), (
x176 = (* (( (ptr) gf←c89888)+5)/* circleLimit←v6164 */ ), *(float*)&x176
), tf174, tf175), *(word*)&tf177
);
};
{
word pd178;
pd178 = (* (( (ptr) (* (( (ptr) gf←c89888)+272)/* var←c82880 */ ))+15) );
newTransform←v22120 = (word) ( *( (fPt) ((* (ptr) pd178 ))))((* (( (ptr) circleData←v22036)+1) ), var←c84096, pd178);
};
};
SOURCE(16960, 65)
(void) CachedCircleDraw←P1200((* (( (ptr) formal←c89920)+8) ), circleData←v22036, newTransform←v22120, 0, 0, 0);
goto lab←L100016;
lab←L100011: ;
SOURCE(17051, 51)
if (((* (( (ptr) formal←c89920)+7) ) != 0)) {
SOURCE(17073, 29)
{
word pd179;
pd179 = (* (( (ptr) (* (( (ptr) gf←c89888)+270)/* var←c82656 */ ))+14) );
(void) ( *( (fPt) ((* (ptr) pd179 ))))((* (( (ptr) formal←c89920)+8) ), (* (( (ptr) formal←c89920)+7) ), pd179);
};
};
SOURCE(17104, 73)
(void) CachedCircleDraw←P1200((* (( (ptr) formal←c89920)+8) ), circleData←v22036, (* (( (ptr) circleData←v22036)+1) ), 0, 0, 0)
;
lab←L100016: ;
}
static void CircleDrawParts←P720(slice←v10868, parts←v10896, formal←c01243, camera←v10952, quick←v10980)
word slice←v10868;
word parts←v10896;
word formal←c01243;
word camera←v10952;
word quick←v10980;
{
W8 var←c89952;
/* declaration of dc←v10924 skipped */
register ptr gf←c89984 = (ptr) &globalframe;
/* declaration of var←c84128 skipped */
/* declaration of circleData←v22264 skipped */
word circleParts←v22292;
var←c89952.f4/* dc←v10924 */ = formal←c01243;
/* CircleDrawParts: */
SOURCE(17233, 390)
{
word tmpAddr180;
tmpAddr180 = (word) (( (ptr) &var←c89952)+5)/* var←c84128 */ ;
(* (ptr) tmpAddr180 ) = ( ((word) (fPt) DoCircleDrawOutline←P6072) );
(* (( (ptr) tmpAddr180) + 1) ) = 1;
};
SOURCE(17449, 43)
var←c89952.f7/* circleData←v22264 */ = XR←Narrow((* (( (ptr) slice←v10868)+1) ), (* (( (ptr) gf←c89984)+12) ));
SOURCE(17494, 40)
circleParts←v22292 = XR←Narrow(parts←v10896, (* (( (ptr) gf←c89984)+13) ));
SOURCE(17536, 87)
if ((circleParts←v22292 == 0) || (0 != (* (( (ptr) circleParts←v22292)+5) ))) {
SOURCE(17585, 38)
{
word pd181;
pd181 = (* (( (ptr) (* (( (ptr) gf←c89984)+270)/* var←c82656 */ ))+12) );
(void) ( *( (fPt) ((* (ptr) pd181 ))))(var←c89952.f4/* dc←v10924 */ , (word) (( (bPt) &var←c89952)+20)/* var←c84128 */ , pd181)
;
};
};
}
static void DoCircleDrawOutline←P6072(formal←c90016)
word formal←c90016;
{
formal←c90016 = (formal←c90016 - 20);
/* DoCircleDrawOutline: */
SOURCE(17348, 96)
SOURCE(17378, 66)
(void) CachedCircleDraw←P1200((* (( (ptr) formal←c90016)+4) ), (* (( (ptr) formal←c90016)+7) ), (* (( (ptr) (* (( (ptr) formal←c90016)+7)
))+1) ), 0, 0, 1);
}
static void CircleDrawTransform←P780(formal←c01244, formal←c01245, formal←c01246, camera←v11124, formal←c01247, editConstraints←v11180)
word formal←c01244;
word formal←c01245;
word formal←c01246;
word camera←v11124;
word formal←c01247;
word editConstraints←v11180;
{
W10 var←c90048;
/* declaration of slice←v11040 skipped */
/* declaration of parts←v11068 skipped */
/* declaration of dc←v11096 skipped */
/* declaration of transform←v11152 skipped */
register ptr gf←c90080 = (ptr) &globalframe;
/* declaration of var←c84160 skipped */
(* (( (ptr) &var←c90048)+4)/* slice←v11040 */ ) = formal←c01244;
(* (( (ptr) &var←c90048)+5)/* parts←v11068 */ ) = formal←c01245;
(* (( (ptr) &var←c90048)+6)/* dc←v11096 */ ) = formal←c01246;
(* (( (ptr) &var←c90048)+7)/* transform←v11152 */ ) = formal←c01247;
/* CircleDrawTransform: */
SOURCE(17629, 1545)
{
word tmpAddr182;
tmpAddr182 = (word) (( (ptr) &var←c90048)+8)/* var←c84160 */ ;
(* (ptr) tmpAddr182 ) = ( ((word) (fPt) DoCircleDrawTransform←P6132) );
(* (( (ptr) tmpAddr182) + 1) ) = 1;
};
SOURCE(19134, 40)
{
word pd183;
pd183 = (* (( (ptr) (* (( (ptr) gf←c90080)+270)/* var←c82656 */ ))+12) );
(void) ( *( (fPt) ((* (ptr) pd183 ))))((* (( (ptr) &var←c90048)+6)/* dc←v11096 */ ), (word) (( (bPt) &var←c90048)+32)/* var←c84160 */ , pd183)
;
};
}
static void DoCircleDrawTransform←P6132(formal←c90144)
word formal←c90144;
{
register ptr gf←c90112 = (ptr) &globalframe;
word cpCount←v22412 = 0;
word cpIndex←v22440 = (word) -1;
W2 edgePoint←v22468;
W2 pointInUnitSpace←v22496;
word newTransform←v22524 = 0;
word circleData←v22552;
word circleParts←v22580;
word wholeThing←v22608;
word transformColor←v22636 = 1;
formal←c90144 = (formal←c90144 - 32);
/* DoCircleDrawTransform: */
SOURCE(17823, 1306)
SOURCE(17958, 43)
circleData←v22552 = XR←Narrow((* (( (ptr) (* (( (ptr) formal←c90144)+4) ))+1) ), (* (( (ptr) gf←c90112)+12) ));
SOURCE(18003, 40)
circleParts←v22580 = XR←Narrow((* (( (ptr) formal←c90144)+5) ), (* (( (ptr) gf←c90112)+13) ));
SOURCE(18045, 39)
wholeThing←v22608 = (word) IsEmpty←P4320(circleParts←v22580);
SOURCE(18145, 895)
if ((0 != wholeThing←v22608) || (0 != (* (( (ptr) circleParts←v22580)+5) ))) {
SOURCE(18187, 50)
transformColor←v22636 = 1;
}
else {
SOURCE(18237, 803)
if ((0 != (* (ptr) circleParts←v22580 ))) {
SOURCE(18268, 57)
transformColor←v22636 = 0;
}
else {
SOURCE(18327, 164)
{
register word index←v22680 = 1;
lab←L100020: ;
SOURCE(18416, 75)
if ((0 != (* (( (ptr) circleParts←v22580)+index←v22680) ))) {
SOURCE(18453, 21)
cpCount←v22412 = (cpCount←v22412 + 1);
SOURCE(18476, 15)
cpIndex←v22440 = index←v22680;
};
if ((index←v22680 >= 4)) {
goto lab←L100017;
};
index←v22680 = (index←v22680 + 1);
goto lab←L100020;
lab←L100017: ;
};
SOURCE(18505, 535)
if (( (int)cpCount←v22412 > (int)1)) {
SOURCE(18525, 28)
transformColor←v22636 = 0;
}
else {
SOURCE(18555, 51)
if ( ( ( (int)cpCount←v22412 == (int)0) ? (0 == (* (ptr) circleParts←v22580 )) : 0 ) ) {
SOURCE(18606, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(18613, 170)
{
word var←c84192;
W2 var←c84224;
{
word pd184;
pd184 = (* (( (ptr) (* (( (ptr) gf←c90112)+272)/* var←c82880 */ ))+13) );
var←c84192 = (word) ( *( (fPt) ((* (ptr) pd184 ))))((* (( (ptr) circleData←v22552)+1) ), (* (( (ptr) formal←c90144)+7) ), pd184)
;
};
{
word var←c84256;
var←c84256 = cpIndex←v22440;
switch (var←c84256) {
case 1:
var←c84224.f0 = (* (ptr) &fc88 );
var←c84224.f1 = (* (ptr) &fc85 );
break;
case 2:
var←c84224.f0 = (* (ptr) &fc85 );
var←c84224.f1 = (* (ptr) &fc87 );
break;
case 3:
var←c84224.f0 = (* (ptr) &fc87 );
var←c84224.f1 = (* (ptr) &fc85 );
break;
case 4:
var←c84224.f0 = (* (ptr) &fc85 );
var←c84224.f1 = (* (ptr) &fc88 );
break;
default:
var←c84224 = (* (W2Pt) (
XR←RaiseUnnamedError(), &dummy156
) );
break;
};
};
{
W2 var←c0307;
{
word pd185;
pd185 = (* (( (ptr) (* (( (ptr) gf←c90112)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd185 ))))((word) &var←c0307, var←c84192, var←c84224, pd185);
};
edgePoint←v22468 = var←c0307;
};
};
SOURCE(18785, 59)
{
word pd186;
pd186 = (* (( (ptr) (* (( (ptr) gf←c90112)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd186 ))))((word) &pointInUnitSpace←v22496, (* (( (ptr) circleData←v22552)+6) ), edgePoint←v22468, pd186)
;
};
SOURCE(18846, 102)
{
word var←c84416;
{
word pd187;
word x188;
float tf189;
float tf190;
word x191;
float tf192;
pd187 = (* (( (ptr) (* (( (ptr) gf←c90112)+273)/* var←c82944 */ ))+18) );
var←c84416 = (
tf192 = FMAX((
x188 = (word) ( *( (fPt) ((* (ptr) pd187 ))))(pointInUnitSpace←v22496, pd187), *(float*)&x188
), (
x191 = (* (( (ptr) gf←c90112)+5)/* circleLimit←v6164 */ ), *(float*)&x191
), tf189, tf190), *(word*)&tf192
);
};
{
word pd193;
pd193 = (* (( (ptr) (* (( (ptr) gf←c90112)+272)/* var←c82880 */ ))+15) );
newTransform←v22524 = (word) ( *( (fPt) ((* (ptr) pd193 ))))((* (( (ptr) circleData←v22552)+1) ), var←c84416, pd193);
};
};
SOURCE(18974, 58)
(void) CachedCircleDraw←P1200((* (( (ptr) formal←c90144)+6) ), circleData←v22552, newTransform←v22524, 0, 0, 1);
SOURCE(19034, 6)
return;
};
};
};
SOURCE(19048, 81)
(void) CachedCircleDraw←P1200((* (( (ptr) formal←c90144)+6) ), circleData←v22552, (* (( (ptr) circleData←v22552)+1) ), (* (
( (ptr) formal←c90144)+7) ), transformColor←v22636, 1);
}
static void CircleDrawSelectionFeedback←P840(slice←v11240, selectedParts←v11268, hotParts←v11296, dc←v11324, camera←v11352, dragInProgress←v11380, caretIsMoving←v11408, hideHot←v11436, quick←v11464)
word slice←v11240;
word selectedParts←v11268;
word hotParts←v11296;
word dc←v11324;
word camera←v11352;
word dragInProgress←v11380;
word caretIsMoving←v11408;
word hideHot←v11436;
word quick←v11464;
{
register ptr gf←c90176 = (ptr) &globalframe;
word slowNormal←v22836 = 0;
word slowHot←v22864 = 0;
word completeNormal←v22892 = 0;
word completeHot←v22920 = 0;
W2 firstJoint←v22948;
word normalCircleParts←v22976 = 0;
word hotCircleParts←v23004 = 0;
word circleData←v23032;
word transform←v23060;
/* CircleDrawSelectionFeedback: */
SOURCE(19180, 2026)
SOURCE(19698, 43)
circleData←v23032 = XR←Narrow((* (( (ptr) slice←v11240)+1) ), (* (( (ptr) gf←c90176)+12) ));
SOURCE(19743, 48)
transform←v23060 = (* (( (ptr) circleData←v23032)+1) );
SOURCE(19793, 72)
if (((0 != caretIsMoving←v11408) || (0 != dragInProgress←v11380)) || ((* (ptr) camera←v11352 ) == 2)) {
SOURCE(19859, 6)
return;
};
SOURCE(19867, 49)
if ( ( (selectedParts←v11268 == 0) ? (hotParts←v11296 == 0) : 0 ) ) {
SOURCE(19910, 6)
return;
};
SOURCE(19918, 41)
normalCircleParts←v22976 = XR←Narrow(selectedParts←v11268, (* (( (ptr) gf←c90176)+13) ));
SOURCE(19961, 33)
hotCircleParts←v23004 = XR←Narrow(hotParts←v11296, (* (( (ptr) gf←c90176)+13) ));
SOURCE(19996, 72)
if ((normalCircleParts←v22976 != 0)) {
completeNormal←v22892 = (unsigned) (0 != (word) IsComplete←P4260(normalCircleParts←v22976));
}
else {
completeNormal←v22892 = (unsigned) 0;
};
SOURCE(20070, 63)
if ((hotCircleParts←v23004 != 0)) {
completeHot←v22920 = (unsigned) (0 != (word) IsComplete←P4260(hotCircleParts←v23004));
}
else {
completeHot←v22920 = (unsigned) 0;
};
SOURCE(20135, 84)
if ((normalCircleParts←v22976 != 0)) {
if ((0 == quick←v11464)) {
slowNormal←v22836 = (unsigned) 1;
}
else {
if ((0 != quick←v11464)) {
slowNormal←v22836 = (unsigned) (0 == completeNormal←v22892);
}
else {
slowNormal←v22836 = (unsigned) 0;
};
};
}
else {
slowNormal←v22836 = (unsigned) 0;
};
SOURCE(20221, 75)
if ((hotCircleParts←v23004 != 0)) {
if ((0 == quick←v11464)) {
slowHot←v22864 = (unsigned) 1;
}
else {
if ((0 != quick←v11464)) {
slowHot←v22864 = (unsigned) (0 == completeHot←v22920);
}
else {
slowHot←v22864 = (unsigned) 0;
};
};
}
else {
slowHot←v22864 = (unsigned) 0;
};
SOURCE(20298, 356)
if (((0 != slowNormal←v22836) && (0 != slowHot←v22864))) {
SOURCE(20329, 107)
(void) DrawSelectionFeedbackAux←P1560(slice←v11240, circleData←v23032, normalCircleParts←v22976, hotCircleParts←v23004, dc←v11324, transform←v23060
, camera←v11352);
}
else {
SOURCE(20436, 218)
if ((0 != slowNormal←v22836)) {
SOURCE(20455, 96)
(void) DrawSelectionFeedbackAux←P1560(slice←v11240, circleData←v23032, normalCircleParts←v22976, 0, dc←v11324, transform←v23060
, camera←v11352);
}
else {
SOURCE(20551, 103)
if ((0 != slowHot←v22864)) {
SOURCE(20567, 87)
(void) DrawSelectionFeedbackAux←P1560(slice←v11240, circleData←v23032, 0, hotCircleParts←v23004, dc←v11324, transform←v23060
, camera←v11352);
};
};
};
SOURCE(20656, 302)
if ( ( (0 == slowNormal←v22836) ? (0 != completeNormal←v22892) : 0 ) || ( (0 == slowHot←v22864) ? (0 != completeHot←v22920) : 0 ) ) {
SOURCE(20733, 251)
{
word fullParts←v23104;
SOURCE(20735, 85)
fullParts←v23104 = ( (0 != completeNormal←v22892) ? normalCircleParts←v22976 : hotCircleParts←v23004 ) ;
SOURCE(20822, 34)
{
word var←c84448;
word pd194;
pd194 = (* (( (ptr) (* (( (ptr) gf←c90176)+276)/* var←c83456 */ ))+9) );
var←c84448 = (word) ( *( (fPt) ((* (ptr) pd194 ))))(slice←v11240, 0, pd194);
};
SOURCE(20891, 67)
{
W2 var←c0331;
{
W2 var←c84480;
var←c84480.f0 = (* (ptr) &fc88 );
var←c84480.f1 = (* (ptr) &fc85 );
{
word pd195;
pd195 = (* (( (ptr) (* (( (ptr) gf←c90176)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd195 ))))((word) &var←c0331, transform←v23060, var←c84480, pd195);
};
};
firstJoint←v22948 = var←c0331;
};
};
};
SOURCE(20987, 104)
if ( ( (0 == slowHot←v22864) ? (0 != completeHot←v22920) : 0 ) ) {
SOURCE(21023, 68)
{
word pd196;
pd196 = (* (( (ptr) (* (( (ptr) gf←c90176)+279)/* var←c84512 */ ))+21) );
(void) ( *( (fPt) ((* (ptr) pd196 ))))(dc←v11324, firstJoint←v22948, 1, (* (( (ptr) camera←v11352)+4) ), pd196);
};
};
SOURCE(21093, 113)
if ( ( (0 == slowNormal←v22836) ? (0 != completeNormal←v22892) : 0 ) ) {
SOURCE(21135, 71)
{
word pd197;
pd197 = (* (( (ptr) (* (( (ptr) gf←c90176)+279)/* var←c84512 */ ))+21) );
(void) ( *( (fPt) ((* (ptr) pd197 ))))(dc←v11324, firstJoint←v22948, 0, (* (( (ptr) camera←v11352)+4) ), pd197);
};
};
}
static void CircleDrawAttractorFeedback←P900(slice←v11524, attractorParts←v11552, selectedParts←v11580, dragInProgress←v11608, formal←c01248, formal←c01249, editConstraints←v11692)
word slice←v11524;
word attractorParts←v11552;
word selectedParts←v11580;
word dragInProgress←v11608;
word formal←c01248;
word formal←c01249;
word editConstraints←v11692;
{
W10 var←c90208;
/* declaration of dc←v11636 skipped */
/* declaration of camera←v11664 skipped */
register ptr gf←c90240 = (ptr) &globalframe;
/* declaration of var←c84544 skipped */
(* (( (ptr) &var←c90208)+4)/* dc←v11636 */ ) = formal←c01248;
(* (( (ptr) &var←c90208)+5)/* camera←v11664 */ ) = formal←c01249;
/* CircleDrawAttractorFeedback: */
SOURCE(21212, 911)
{
word tmpAddr198;
tmpAddr198 = (word) (( (ptr) &var←c90208)+6)/* var←c84544 */ ;
(* (ptr) tmpAddr198 ) = ( ((word) (fPt) DoDrawFeedback←P6336) );
(* (( (ptr) tmpAddr198) + 1) ) = 1;
};
SOURCE(21440, 683)
if ((0 == dragInProgress←v11608) || (selectedParts←v11580 == 0)) {
SOURCE(21491, 634)
{
/* declaration of circleData←v23176 skipped */
/* declaration of hitParts←v23204 skipped */
SOURCE(21949, 43)
(* (( (ptr) &var←c90208)+8)/* circleData←v23176 */ ) = XR←Narrow((* (( (ptr) slice←v11524)+1) ), (* (( (ptr) gf←c90240)+12)
));
SOURCE(21994, 46)
(* (( (ptr) &var←c90208)+9)/* hitParts←v23204 */ ) = XR←Narrow(attractorParts←v11552, (* (( (ptr) gf←c90240)+13) ));
SOURCE(22042, 81)
if ( ( ((* (ptr) (* (( (ptr) &var←c90208)+5)/* camera←v11664 */ ) ) != 2) ? ((* (( (ptr) &var←c90208)+9)/* hitParts←v23204 */ ) != 0) : 0 ) ) {
SOURCE(22090, 33)
{
word pd199;
pd199 = (* (( (ptr) (* (( (ptr) gf←c90240)+270)/* var←c82656 */ ))+12) );
(void) ( *( (fPt) ((* (ptr) pd199 ))))((* (( (ptr) &var←c90208)+4)/* dc←v11636 */ ), (word) (( (bPt) &var←c90208)+24)/* var←c84544 */ , pd199)
;
};
};
};
};
}
static void DoDrawFeedback←P6336(formal←c90304)
word formal←c90304;
{
register ptr gf←c90272 = (ptr) &globalframe;
word t←v23264;
W10 pts←v23292;
formal←c90304 = (formal←c90304 - 24);
/* DoDrawFeedback: */
SOURCE(21493, 23)
SOURCE(21518, 40)
t←v23264 = (* (( (ptr) (* (( (ptr) formal←c90304)+8) ))+1) );
SOURCE(21587, 33)
{
W2 var←c84576;
{
W2 var←c0346;
{
W2 var←c84608;
var←c84608.f0 = (* (ptr) &fc85 );
var←c84608.f1 = (* (ptr) &fc85 );
{
word pd200;
pd200 = (* (( (ptr) (* (( (ptr) gf←c90272)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd200 ))))((word) &var←c0346, t←v23264, var←c84608, pd200);
};
};
var←c84576 = var←c0346;
};
(* (W2Pt) &pts←v23292 ) = var←c84576;
};
SOURCE(21622, 34)
{
W2 var←c84640;
{
W2 var←c0349;
{
W2 var←c84672;
var←c84672.f0 = (* (ptr) &fc88 );
var←c84672.f1 = (* (ptr) &fc85 );
{
word pd201;
pd201 = (* (( (ptr) (* (( (ptr) gf←c90272)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd201 ))))((word) &var←c0349, t←v23264, var←c84672, pd201);
};
};
var←c84640 = var←c0349;
};
(* (W2Pt) (( (ptr) &pts←v23292)+2) ) = var←c84640;
};
SOURCE(21658, 33)
{
W2 var←c84704;
{
W2 var←c0352;
{
W2 var←c84736;
var←c84736.f0 = (* (ptr) &fc85 );
var←c84736.f1 = (* (ptr) &fc87 );
{
word pd202;
pd202 = (* (( (ptr) (* (( (ptr) gf←c90272)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd202 ))))((word) &var←c0352, t←v23264, var←c84736, pd202);
};
};
var←c84704 = var←c0352;
};
(* (W2Pt) (( (ptr) &pts←v23292)+4) ) = var←c84704;
};
SOURCE(21693, 33)
{
W2 var←c84768;
{
W2 var←c0355;
{
W2 var←c84800;
var←c84800.f0 = (* (ptr) &fc87 );
var←c84800.f1 = (* (ptr) &fc85 );
{
word pd203;
pd203 = (* (( (ptr) (* (( (ptr) gf←c90272)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd203 ))))((word) &var←c0355, t←v23264, var←c84800, pd203);
};
};
var←c84768 = var←c0355;
};
(* (W2Pt) (( (ptr) &pts←v23292)+6) ) = var←c84768;
};
SOURCE(21728, 34)
{
W2 var←c84832;
{
W2 var←c0358;
{
W2 var←c84864;
var←c84864.f0 = (* (ptr) &fc85 );
var←c84864.f1 = (* (ptr) &fc88 );
{
word pd204;
pd204 = (* (( (ptr) (* (( (ptr) gf←c90272)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd204 ))))((word) &var←c0358, t←v23264, var←c84864, pd204);
};
};
var←c84832 = var←c0358;
};
(* (W2Pt) (( (ptr) &pts←v23292)+8) ) = var←c84832;
};
SOURCE(21764, 71)
if ((0 != (* (ptr) (* (( (ptr) formal←c90304)+9) ) ))) {
SOURCE(21792, 43)
{
word pd205;
pd205 = (* (( (ptr) (* (( (ptr) gf←c90272)+279)/* var←c84512 */ ))+19) );
(void) ( *( (fPt) ((* (ptr) pd205 ))))((* (( (ptr) formal←c90304)+4) ), (* (W2Pt) &pts←v23292 ), (* (( (ptr) (* (( (ptr) formal←c90304)+5)
))+4) ), pd205);
};
};
SOURCE(21837, 98)
{
register word index←v23372 = 1;
lab←L100024: ;
SOURCE(21888, 47)
{
word pd206;
pd206 = (* (( (ptr) (* (( (ptr) gf←c90272)+279)/* var←c84512 */ ))+19) );
(void) ( *( (fPt) ((* (ptr) pd206 ))))((* (( (ptr) formal←c90304)+4) ), (* (( (W2Pt) &pts←v23292)+index←v23372) ), (* (( (ptr) (* (
( (ptr) formal←c90304)+5) ))+4) ), pd206);
};
if ((index←v23372 >= 4)) {
goto lab←L100021;
};
index←v23372 = (index←v23372 + 1);
goto lab←L100024;
lab←L100021: ;
};
}
static void CircleBoxFromTransform←P960(formal←c0379, circleData←v11752, transform←v11780)
word formal←c0379;
word circleData←v11752;
word transform←v11780;
{
register ptr gf←c90336 = (ptr) &globalframe;
W4 r←v11824;
word pad←v23416;
W2 origin←v23444;
W2 minor←v23472;
W2 major←v23500;
word minorDS←v23528;
word majorDS←v23556;
word tMax←v23584;
word radius←v23612;
word box←v23640;
/* CircleBoxFromTransform: */
SOURCE(22132, 758)
SOURCE(22247, 38)
pad←v23416 = (* (( (ptr) (* (( (ptr) circleData←v11752)+33) ))+2) );
SOURCE(22287, 69)
{
W2 var←c0366;
{
W2 var←c84896;
var←c84896.f0 = (* (ptr) &fc85 );
var←c84896.f1 = (* (ptr) &fc85 );
{
word pd207;
pd207 = (* (( (ptr) (* (( (ptr) gf←c90336)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd207 ))))((word) &var←c0366, transform←v11780, var←c84896, pd207);
};
};
origin←v23444 = var←c0366;
};
SOURCE(22358, 68)
{
W2 var←c0369;
{
W2 var←c84928;
var←c84928.f0 = (* (ptr) &fc85 );
var←c84928.f1 = (* (ptr) &fc87 );
{
word pd208;
pd208 = (* (( (ptr) (* (( (ptr) gf←c90336)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd208 ))))((word) &var←c0369, transform←v11780, var←c84928, pd208);
};
};
minor←v23472 = var←c0369;
};
SOURCE(22434, 68)
{
W2 var←c0372;
{
W2 var←c84960;
var←c84960.f0 = (* (ptr) &fc87 );
var←c84960.f1 = (* (ptr) &fc85 );
{
word pd209;
pd209 = (* (( (ptr) (* (( (ptr) gf←c90336)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd209 ))))((word) &var←c0372, transform←v11780, var←c84960, pd209);
};
};
major←v23500 = var←c0372;
};
SOURCE(22514, 56)
{
word pd210;
pd210 = (* (( (ptr) (* (( (ptr) gf←c90336)+273)/* var←c82944 */ ))+21) );
minorDS←v23528 = (word) ( *( (fPt) ((* (ptr) pd210 ))))(minor←v23472, origin←v23444, pd210);
};
SOURCE(22572, 56)
{
word pd211;
pd211 = (* (( (ptr) (* (( (ptr) gf←c90336)+273)/* var←c82944 */ ))+21) );
majorDS←v23556 = (word) ( *( (fPt) ((* (ptr) pd211 ))))(major←v23500, origin←v23444, pd211);
};
SOURCE(22630, 34)
{
word x212;
float tf213;
float tf214;
word x215;
float tf216;
tMax←v23584 = (
tf216 = FMAX((
x212 = minorDS←v23528, *(float*)&x212
), (
x215 = majorDS←v23556, *(float*)&x215
), tf213, tf214), *(word*)&tf216
);
};
SOURCE(22666, 33)
{
word pd217;
pd217 = (* (( (ptr) (* (( (ptr) gf←c90336)+274)/* var←c83168 */ ))+9) );
radius←v23612 = (word) ( *( (fPt) ((* (ptr) pd217 ))))(tMax←v23584, pd217);
};
SOURCE(22701, 108)
{
word pd218;
word x219;
word x220;
float tf221;
word x222;
word x223;
float tf224;
word x225;
word x226;
float tf227;
word x228;
word x229;
float tf230;
pd218 = (* (( (ptr) (* (( (ptr) gf←c90336)+271)/* var←c82752 */ ))+5) );
box←v23640 = (word) ( *( (fPt) ((* (ptr) pd218 ))))((
tf221 = (
x219 = origin←v23444.f0, *(float*)&x219
) - (
x220 = radius←v23612, *(float*)&x220
), *(word*)&tf221
), (
tf224 = (
x222 = origin←v23444.f1, *(float*)&x222
) - (
x223 = radius←v23612, *(float*)&x223
), *(word*)&tf224
), (
tf227 = (
x225 = origin←v23444.f0, *(float*)&x225
) + (
x226 = radius←v23612, *(float*)&x226
), *(word*)&tf227
), (
tf230 = (
x228 = origin←v23444.f1, *(float*)&x228
) + (
x229 = radius←v23612, *(float*)&x229
), *(word*)&tf230
), 0, 0, pd218);
};
SOURCE(22811, 36)
{
word pd231;
pd231 = (* (( (ptr) (* (( (ptr) gf←c90336)+271)/* var←c82752 */ ))+17) );
(void) ( *( (fPt) ((* (ptr) pd231 ))))(box←v23640, pad←v23416, pd231);
};
SOURCE(22849, 41)
{
word pd232;
pd232 = (* (( (ptr) (* (( (ptr) gf←c90336)+271)/* var←c82752 */ ))+11) );
(void) ( *( (fPt) ((* (ptr) pd232 ))))((word) &r←v11824, box←v23640, pd232);
};
/* removed tail goto */
(* (W4Pt) formal←c0379 ) = r←v11824;
return;
}
static word FindImagerObject←P1020(formal←c01250, formal←c01251, formal←c01252, formal←c01253)
word formal←c01250;
word formal←c01251;
word formal←c01252;
word formal←c01253;
{
W13 var←c90368;
/* declaration of circleData←v11884 skipped */
/* declaration of localView←v11912 skipped */
/* declaration of fillLocal←v11940 skipped */
/* declaration of fillIt←v11968 skipped */
register ptr gf←c90400 = (ptr) &globalframe;
word object←v12012;
/* declaration of var←c84992 skipped */
/* declaration of var←c85024 skipped */
word value←v23740 = 0;
/* declaration of maxPixels←v23768 skipped */
word ok←v23796;
(* (( (ptr) &var←c90368)+4)/* circleData←v11884 */ ) = formal←c01250;
(* (( (ptr) &var←c90368)+5)/* localView←v11912 */ ) = formal←c01251;
(* (( (ptr) &var←c90368)+6)/* fillLocal←v11940 */ ) = formal←c01252;
(* (( (ptr) &var←c90368)+7)/* fillIt←v11968 */ ) = formal←c01253;
/* FindImagerObject: */
SOURCE(22896, 1356)
{
word tmpAddr233;
tmpAddr233 = (word) (( (ptr) &var←c90368)+8)/* var←c84992 */ ;
(* (ptr) tmpAddr233 ) = ( ((word) (fPt) CompareProps←P6504) );
(* (( (ptr) tmpAddr233) + 1) ) = 1;
};
{
word tmpAddr234;
tmpAddr234 = (word) (( (ptr) &var←c90368)+10)/* var←c85024 */ ;
(* (ptr) tmpAddr234 ) = ( ((word) (fPt) EqualPattern←P6444) );
(* (( (ptr) tmpAddr234) + 1) ) = 1;
};
SOURCE(22896, 1356)
object←v12012 = 0;
SOURCE(24077, 25)
(* (( (ptr) &var←c90368)+12)/* maxPixels←v23768 */ ) = (* (ptr) &fc235 );
SOURCE(24114, 94)
{
W2 var←c85088;
{
word pd236;
pd236 = (* (( (ptr) (* (( (ptr) gf←c90400)+280)/* var←c85056 */ ))+9) );
(void) ( *( (fPt) ((* (ptr) pd236 ))))((word) &var←c85088, (* (( (ptr) gf←c90400)+6)/* cache←v8068 */ ), (word) (( (bPt) &var←c90368)+32)
/* var←c84992 */ , (* (( (ptr) gf←c90400)+53) ), pd236);
};
ok←v23796 = var←c85088.f1;
value←v23740 = var←c85088.f0;
};
SOURCE(24210, 42)
if ((0 != ok←v23796)) {
return(XR←Narrow(value←v23740, (* (( (ptr) gf←c90400)+19) )));
}
else {
return(0);
};
}
static word EqualPattern←P6444(p1←v23872, p2←v23900, formal←c90432)
word p1←v23872;
word p2←v23900;
word formal←c90432;
{
word var←c23944;
formal←c90432 = (formal←c90432 - 40);
/* EqualPattern: */
SOURCE(23025, 195)
SOURCE(23025, 195)
var←c23944 = 0;
SOURCE(23096, 35)
if (((* (ptr) p1←v23872 ) != (* (ptr) p2←v23900 ))) {
SOURCE(23118, 13)
return(0);
};
SOURCE(23133, 64)
{
register word i←v23972 = 0;
register word noName←c85152;
noName←c85152 = (* (ptr) p1←v23872 );
if ((i←v23972 >= noName←c85152)) {
goto lab←L100026;
};
lab←L100029: ;
SOURCE(23163, 34)
{
word limit237;
word x238;
word limit239;
word x240;
if (((
x238 = (* ((( (ptr) p1←v23872)+1)+(
limit237 = (* (ptr) p1←v23872 ),
BCK(i←v23972, limit237)
)) ), *(float*)&x238
) != (
x240 = (* ((( (ptr) p2←v23900)+1)+(
limit239 = (* (ptr) p2←v23900 ),
BCK(i←v23972, limit239)
)) ), *(float*)&x240
))) {
SOURCE(23184, 13)
return(0);
};
};
i←v23972 = (i←v23972 + 1);
if ((i←v23972 < noName←c85152)) {
goto lab←L100029;
};
lab←L100026: ;
};
SOURCE(23208, 12)
return(1);
}
static word CompareProps←P6504(argument←v65044, formal←c90496)
word argument←v65044;
word formal←c90496;
{
register ptr gf←c90464 = (ptr) &globalframe;
word good←v65088;
word props←v24016;
word seg←v24044;
word fillIsSampled←v24072;
word thisFill←v24100;
word var←c01212;
formal←c90496 = (formal←c90496 - 32);
/* CompareProps: */
SOURCE(23225, 818)
SOURCE(23269, 31)
props←v24016 = XR←Narrow(argument←v65044, (* (( (ptr) gf←c90464)+20) ));
SOURCE(23302, 29)
seg←v24044 = (* (( (ptr) (* (( (ptr) formal←c90496)+4) ))+33) );
SOURCE(23354, 69)
thisFill←v24100 = ( (0 != (* (( (ptr) formal←c90496)+7) )) ? (* (( (ptr) (* (( (ptr) formal←c90496)+4) ))+11) ) : 0 ) ;
SOURCE(23426, 617)
{
word tc241;
word tc242;
word tc243;
word tc244;
word tc245;
word tc246;
word x247;
word x248;
word x249;
word x250;
word x251;
word x252;
word pd253;
word pd254;
word pd255;
word pd256;
if ( ( ( ( ( ((
x247 = (* (( (ptr) props←v24016)+1) ), *(float*)&x247
) == (
x248 = (* (( (ptr) seg←v24044)+2) ), *(float*)&x248
)) ? ((* (( (ptr) props←v24016)+2) ) == (* (( (ptr) seg←v24044)+3) )) : 0 ) ? ((* (( (ptr) props←v24016)+3) ) == (* (( (ptr) seg←v24044)+4)
)) : 0 ) ? ((
x249 = (* (( (ptr) props←v24016)+5) ), *(float*)&x249
) == (
x250 = (* (( (ptr) seg←v24044)+6) ), *(float*)&x250
)) : 0 ) ? ((
x251 = (* (( (ptr) props←v24016)+6) ), *(float*)&x251
) == (
x252 = (* (( (ptr) seg←v24044)+7) ), *(float*)&x252
)) : 0 ) ) {
pd253 = (* (( (ptr) (* (( (ptr) gf←c90464)+272)/* var←c82880 */ ))+55) );
tc246 = (word) (0 != (word) ( *( (fPt) ((* (ptr) pd253 ))))((* (ptr) props←v24016 ), (* (( (ptr) formal←c90496)+5) ), (* (
( (ptr) formal←c90496)+12) ), pd253));
}
else {
tc246 = (word) 0;
};
if (tc246) {
pd254 = (* (( (ptr) (* (( (ptr) gf←c90464)+275)/* var←c83424 */ ))+35) );
tc245 = (word) (0 != (word) ( *( (fPt) ((* (ptr) pd254 ))))((* (( (ptr) props←v24016)+7) ), (* (( (ptr) seg←v24044)+8) ), pd254)
);
}
else {
tc245 = (word) 0;
};
if (tc245) {
pd255 = (* (( (ptr) (* (( (ptr) gf←c90464)+275)/* var←c83424 */ ))+35) );
tc244 = (word) (0 != (word) ( *( (fPt) ((* (ptr) pd255 ))))((* (( (ptr) props←v24016)+8) ), thisFill←v24100, pd255));
}
else {
tc244 = (word) 0;
};
if (tc244) {
fillIsSampled←v24072 = (word) IsSampled←P1140(thisFill←v24100);
var←c01212 = fillIsSampled←v24072;
tc243 = (word) ((* (( (ptr) props←v24016)+9) ) == var←c01212);
}
else {
tc243 = (word) 0;
};
if (tc243) {
if ((0 == fillIsSampled←v24072)) {
tc242 = (word) 1;
}
else {
pd256 = (* (( (ptr) (* (( (ptr) gf←c90464)+272)/* var←c82880 */ ))+54) );
tc242 = (word) (0 != (word) ( *( (fPt) ((* (ptr) pd256 ))))((* (( (ptr) props←v24016)+10) ), (* (( (ptr) formal←c90496)+6)
), (* (( (ptr) formal←c90496)+12) ), pd256));
};
}
else {
tc242 = (word) 0;
};
if (tc242) {
if ((0 == (* (( (ptr) props←v24016)+3) ))) {
tc241 = (word) 1;
}
else {
tc241 = (word) (0 != (word) EqualPattern←P6444((* (( (ptr) props←v24016)+4) ), (* (( (ptr) seg←v24044)+5) ), (word) (( (bPt) formal←c90496)+40)
));
};
}
else {
tc241 = (word) 0;
};
if (tc241) {
SOURCE(24012, 18)
return(1);
}
else {
SOURCE(24030, 13)
return(0);
};
};
}
static word CreateProps←P1080(circleData←v12072, localView←v12100, fillLocal←v12128, fillIt←v12156)
word circleData←v12072;
word localView←v12100;
word fillLocal←v12128;
word fillIt←v12156;
{
register ptr gf←c90528 = (ptr) &globalframe;
word props←v12200;
word seg←v24144;
word fillIsSampled←v24172;
/* CreateProps: */
SOURCE(24258, 597)
SOURCE(24258, 597)
props←v12200 = 0;
SOURCE(24408, 29)
seg←v24144 = (* (( (ptr) circleData←v12072)+33) );
SOURCE(24439, 53)
fillIsSampled←v24172 = (word) IsSampled←P1140((* ((( (ptr) circleData←v12072)+11)) ));
SOURCE(24495, 360)
{
word var←c85184;
word var←c85216;
word var←c85248;
{
word pd257;
pd257 = (* (( (ptr) (* (( (ptr) gf←c90528)+272)/* var←c82880 */ ))+6) );
var←c85184 = (word) ( *( (fPt) ((* (ptr) pd257 ))))(localView←v12100, pd257);
};
{
word pd258;
if ((0 != fillIt←v12156)) {
pd258 = (* (( (ptr) (* (( (ptr) gf←c90528)+275)/* var←c83424 */ ))+38) );
var←c85216 = (word) ( *( (fPt) ((* (ptr) pd258 ))))((* ((( (ptr) circleData←v12072)+11)) ), pd258);
}
else {
var←c85216 = 0;
};
};
var←c85248 = XR←NewObject(44, (* (( (ptr) gf←c90528)+20) ));
(* (ptr) var←c85248 ) = var←c85184;
(* (( (ptr) var←c85248)+1) ) = (* (( (ptr) seg←v24144)+2) );
(* (( (ptr) var←c85248)+2) ) = (* (( (ptr) seg←v24144)+3) );
(* (( (ptr) var←c85248)+3) ) = (* (( (ptr) seg←v24144)+4) );
(* (( (ptr) var←c85248)+4) ) = (* (( (ptr) seg←v24144)+5) );
(* (( (ptr) var←c85248)+5) ) = (* (( (ptr) seg←v24144)+6) );
(* (( (ptr) var←c85248)+6) ) = (* (( (ptr) seg←v24144)+7) );
(* (( (ptr) var←c85248)+7) ) = (* (( (ptr) seg←v24144)+8) );
(* (( (ptr) var←c85248)+8) ) = var←c85216;
(* (( (ptr) var←c85248)+9) ) = fillIsSampled←v24172;
(* (( (ptr) var←c85248)+10) ) = fillLocal←v12128;
props←v12200 = var←c85248;
};
SOURCE(24258, 597)
return(props←v12200);
}
static word IsSampled←P1140(color←v12260)
word color←v12260;
{
word var←c12304;
/* IsSampled: */
SOURCE(24861, 252)
SOURCE(24918, 34)
if ((color←v12260 == 0)) {
SOURCE(24938, 14)
return(0);
};
SOURCE(24954, 159)
{
word var←c85280;
var←c85280 = color←v12260;
if ((var←c85280 == 0)) {
goto lab←L100030;
};
{
word var←c85312;
var←c85312 = (* (ptr) var←c85280 );
if ((var←c85312 == 2)) {
{
word sampledBlack←v24216;
sampledBlack←v24216 = var←c85280;
SOURCE(25019, 12)
return(1);
};
}
else {
if ((var←c85312 == 1)) {
{
word sampledColor←v24260;
sampledColor←v24260 = var←c85280;
SOURCE(25075, 12)
return(1);
};
}
else {
lab←L100030: ;
SOURCE(25100, 13)
return(0);
};
};
};
};
}
static void CachedCircleDraw←P1200(dc←v12364, circleData←v12392, localView←v12420, viewView←v12448, transformColor←v12476, fillIt←v12504)
word dc←v12364;
word circleData←v12392;
word localView←v12420;
word viewView←v12448;
word transformColor←v12476;
word fillIt←v12504;
{
register ptr gf←c90560 = (ptr) &globalframe;
word object←v24304 = 0;
W2 position←v24332;
word circleProps←v24360 = 0;
word sampledColorStays←v24388;
/* CachedCircleDraw: */
SOURCE(25119, 1336)
SOURCE(25401, 80)
sampledColorStays←v24388 = (unsigned) ( (0 != (word) IsSampled←P1140((* ((( (ptr) circleData←v12392)+11)) ))) ? (0 == transformColor←v12476) : 0 ) ;
SOURCE(25484, 971)
{
word tc259;
word pd260;
pd260 = (* (( (ptr) (* (( (ptr) gf←c90560)+281)/* var←c85344 */ ))+5) );
if ((0 != (word) ( *( (fPt) ((* (ptr) pd260 ))))(pd260))) {
if ((0 == sampledColorStays←v24388)) {
tc259 = (word) 1;
}
else {
tc259 = (word) (viewView←v12448 == 0);
};
}
else {
tc259 = (word) 0;
};
if (tc259) {
SOURCE(25566, 801)
{
word fillLocal←v24432 = 0;
SOURCE(25595, 60)
fillLocal←v24432 = (word) FromFillToLocal←P1260((* (( (ptr) circleData←v12392)+11) ), localView←v12420);
SOURCE(25658, 67)
object←v24304 = (word) FindImagerObject←P1020(circleData←v12392, localView←v12420, fillLocal←v24432, fillIt←v12504);
SOURCE(25727, 378)
if ((object←v24304 == 0)) {
SOURCE(25749, 358)
{
W4 clipR←v24476;
word props←v24504 = 0;
SOURCE(25774, 71)
(void) CircleBoxFromTransform←P960((word) &clipR←v24476, circleData←v12392, localView←v12420);
SOURCE(25862, 61)
props←v24504 = (word) CreateProps←P1080(circleData←v12392, localView←v12420, fillLocal←v24432, fillIt←v12504);
SOURCE(25957, 83)
{
word var←c85376;
var←c85376 = XR←NewObject(24, (* (( (ptr) gf←c90560)+19) ));
(* (ptr) var←c85376 ) = (word) (( (bPt) gf←c90560)+824)/* var←c81376 */ ;
(* (W4Pt) (( (ptr) var←c85376)+1) ) = clipR←v24476;
(* (( (ptr) var←c85376)+5) ) = props←v24504;
object←v24304 = var←c85376;
};
SOURCE(26042, 63)
{
word pd261;
pd261 = (* (( (ptr) (* (( (ptr) gf←c90560)+280)/* var←c85056 */ ))+6) );
(void) ( *( (fPt) ((* (ptr) pd261 ))))((* (( (ptr) gf←c90560)+6)/* cache←v8068 */ ), props←v24504, object←v24304, 60, (* (
( (ptr) gf←c90560)+53) ), pd261);
};
};
};
SOURCE(26110, 33)
circleProps←v24360 = XR←Narrow((* (( (ptr) object←v24304)+5) ), (* (( (ptr) gf←c90560)+20) ));
SOURCE(26145, 80)
{
W2 var←c85408;
{
W2 var←c0436;
{
W2 var←c85440;
var←c85440.f0 = (* (ptr) &fc85 );
var←c85440.f1 = (* (ptr) &fc85 );
{
word pd262;
pd262 = (* (( (ptr) (* (( (ptr) gf←c90560)+272)/* var←c82880 */ ))+41) );
(void) ( *( (fPt) ((* (ptr) pd262 ))))((word) &var←c0436, (* (ptr) circleProps←v24360 ), var←c85440, pd262);
};
};
var←c85408 = var←c0436;
};
{
W2 var←c0437;
{
word pd263;
pd263 = (* (( (ptr) (* (( (ptr) gf←c90560)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd263 ))))((word) &var←c0437, localView←v12420, var←c85408, pd263);
};
position←v24332 = var←c0437;
};
};
SOURCE(26227, 51)
if ((viewView←v12448 != 0)) {
SOURCE(26250, 28)
{
word pd264;
pd264 = (* (( (ptr) (* (( (ptr) gf←c90560)+270)/* var←c82656 */ ))+14) );
(void) ( *( (fPt) ((* (ptr) pd264 ))))(dc←v12364, viewView←v12448, pd264);
};
};
SOURCE(26280, 85)
{
word pd265;
pd265 = (* (( (ptr) (* (( (ptr) gf←c90560)+270)/* var←c82656 */ ))+87) );
(void) ( *( (fPt) ((* (ptr) pd265 ))))(dc←v12364, object←v24304, position←v24332, 1, pd265);
};
};
}
else {
SOURCE(26374, 81)
(void) OldCircleDrawOutline←P1380(dc←v12364, circleData←v12392, localView←v12420, viewView←v12448, transformColor←v12476, fillIt←v12504)
;
};
};
}
static word FromFillToLocal←P1260(color←v12564, localView←v12592)
word color←v12564;
word localView←v12592;
{
register ptr gf←c90592 = (ptr) &globalframe;
word fillLocal←v12636;
word fillView←v24548 = 0;
/* FromFillToLocal: */
SOURCE(26461, 462)
SOURCE(26461, 462)
fillLocal←v12636 = 0;
SOURCE(26625, 298)
{
word var←c85472;
var←c85472 = color←v12564;
if ((var←c85472 == 0)) {
goto lab←L100031;
};
{
word var←c85568;
var←c85568 = (* (ptr) var←c85472 );
if ((var←c85568 == 2)) {
{
word sampledBlack←v24592;
sampledBlack←v24592 = var←c85472;
SOURCE(26693, 26)
fillView←v24548 = (* (( (ptr) sampledBlack←v24592)+2) );
SOURCE(26721, 47)
{
word var←c85504;
{
word pd266;
pd266 = (* (( (ptr) (* (( (ptr) gf←c90592)+272)/* var←c82880 */ ))+51) );
var←c85504 = (word) ( *( (fPt) ((* (ptr) pd266 ))))(localView←v12592, pd266);
};
{
word pd267;
pd267 = (* (( (ptr) (* (( (ptr) gf←c90592)+272)/* var←c82880 */ ))+13) );
fillLocal←v12636 = (word) ( *( (fPt) ((* (ptr) pd267 ))))(fillView←v24548, var←c85504, pd267);
};
};
};
}
else {
if ((var←c85568 == 1)) {
{
word sampledColor←v24636;
sampledColor←v24636 = var←c85472;
SOURCE(26817, 26)
fillView←v24548 = (* (( (ptr) sampledColor←v24636)+2) );
SOURCE(26845, 47)
{
word var←c85536;
{
word pd268;
pd268 = (* (( (ptr) (* (( (ptr) gf←c90592)+272)/* var←c82880 */ ))+51) );
var←c85536 = (word) ( *( (fPt) ((* (ptr) pd268 ))))(localView←v12592, pd268);
};
{
word pd269;
pd269 = (* (( (ptr) (* (( (ptr) gf←c90592)+272)/* var←c82880 */ ))+13) );
fillLocal←v12636 = (word) ( *( (fPt) ((* (ptr) pd269 ))))(fillView←v24548, var←c85536, pd269);
};
};
};
}
else {
lab←L100031: ;
SOURCE(26908, 15)
fillLocal←v12636 = 0;
};
};
};
};
SOURCE(26461, 462)
return(fillLocal←v12636);
}
static void CircleDrawObject←P1320(self←v12696, formal←c01254)
word self←v12696;
word formal←c01254;
{
W14 var←c90624;
/* declaration of context←v12724 skipped */
register ptr gf←c90656 = (ptr) &globalframe;
/* declaration of var←c85600 skipped */
/* declaration of var←c85632 skipped */
/* declaration of var←c85664 skipped */
/* declaration of circleProps←v24736 skipped */
/* declaration of localView←v24764 skipped */
(* (( (ptr) &var←c90624)+4)/* context←v12724 */ ) = formal←c01254;
/* CircleDrawObject: */
SOURCE(26929, 1217)
{
word tmpAddr270;
tmpAddr270 = (word) (( (ptr) &var←c90624)+5)/* var←c85600 */ ;
(* (ptr) tmpAddr270 ) = ( ((word) (fPt) PatternProc←P7068) );
(* (( (ptr) tmpAddr270) + 1) ) = 1;
};
{
word tmpAddr271;
tmpAddr271 = (word) (( (ptr) &var←c90624)+7)/* var←c85632 */ ;
(* (ptr) tmpAddr271 ) = ( ((word) (fPt) TransformedCirclePath←P6960) );
(* (( (ptr) tmpAddr271) + 1) ) = 1;
};
{
word tmpAddr272;
tmpAddr272 = (word) (( (ptr) &var←c90624)+9)/* var←c85664 */ ;
(* (ptr) tmpAddr272 ) = ( ((word) (fPt) FillItIn←P6900) );
(* (( (ptr) tmpAddr272) + 1) ) = 1;
};
SOURCE(27317, 38)
(* (( (ptr) &var←c90624)+11)/* circleProps←v24736 */ ) = XR←Narrow((* (( (ptr) self←v12696)+5) ), (* (( (ptr) gf←c90656)+20)
));
SOURCE(27357, 49)
(* (( (ptr) &var←c90624)+12)/* localView←v24764 */ ) = (* (ptr) (* (( (ptr) &var←c90624)+11)/* circleProps←v24736 */ ) );
SOURCE(27409, 68)
if (((* (( (ptr) (* (( (ptr) &var←c90624)+11)/* circleProps←v24736 */ ))+8) ) != 0)) {
SOURCE(27445, 32)
{
word pd273;
pd273 = (* (( (ptr) (* (( (ptr) gf←c90656)+270)/* var←c82656 */ ))+12) );
(void) ( *( (fPt) ((* (ptr) pd273 ))))((* (( (ptr) &var←c90624)+4)/* context←v12724 */ ), (word) (( (bPt) &var←c90624)+36)
/* var←c85664 */ , pd273);
};
};
SOURCE(27480, 666)
{
word x274;
word x275;
if ( ( ((* (( (ptr) (* (( (ptr) &var←c90624)+11)/* circleProps←v24736 */ ))+7) ) != 0) ? ((
x274 = (* (( (ptr) (* (( (ptr) &var←c90624)+11)/* circleProps←v24736 */ ))+1) ), *(float*)&x274
) != (
x275 = (* (ptr) &fc85 ), *(float*)&x275
)) : 0 ) ) {
SOURCE(27546, 43)
{
word pd276;
pd276 = (* (( (ptr) (* (( (ptr) gf←c90656)+270)/* var←c82656 */ ))+52) );
(void) ( *( (fPt) ((* (ptr) pd276 ))))((* (( (ptr) &var←c90624)+4)/* context←v12724 */ ), (* (( (ptr) (* (( (ptr) &var←c90624)+11)
/* circleProps←v24736 */ ))+7) ), pd276);
};
SOURCE(27591, 55)
{
word pd277;
pd277 = (* (( (ptr) (* (( (ptr) gf←c90656)+270)/* var←c82656 */ ))+68) );
(void) ( *( (fPt) ((* (ptr) pd277 ))))((* (( (ptr) &var←c90624)+4)/* context←v12724 */ ), (* (( (ptr) (* (( (ptr) &var←c90624)+11)
/* circleProps←v24736 */ ))+1) ), pd277);
};
SOURCE(27648, 51)
{
word pd278;
pd278 = (* (( (ptr) (* (( (ptr) gf←c90656)+270)/* var←c82656 */ ))+69) );
(void) ( *( (fPt) ((* (ptr) pd278 ))))((* (( (ptr) &var←c90624)+4)/* context←v12724 */ ), (* (( (ptr) (* (( (ptr) &var←c90624)+11)
/* circleProps←v24736 */ ))+2) ), pd278);
};
SOURCE(27739, 37)
{
word pd279;
pd279 = (* (( (ptr) (* (( (ptr) gf←c90656)+270)/* var←c82656 */ ))+70) );
(void) ( *( (fPt) ((* (ptr) pd279 ))))((* (( (ptr) &var←c90624)+4)/* context←v12724 */ ), 2, pd279);
};
SOURCE(27816, 330)
if ((0 != (* (( (ptr) (* (( (ptr) &var←c90624)+11)/* circleProps←v24736 */ ))+3) ))) {
SOURCE(27843, 241)
{
/* declaration of pattern←v24852 skipped */
SOURCE(27914, 45)
(* (( (ptr) &var←c90624)+13)/* pattern←v24852 */ ) = (* (( (ptr) (* (( (ptr) &var←c90624)+11)/* circleProps←v24736 */ ))+4)
);
SOURCE(27961, 121)
{
word pd280;
pd280 = (* (( (ptr) (* (( (ptr) gf←c90656)+270)/* var←c82656 */ ))+75) );
(void) ( *( (fPt) ((* (ptr) pd280 ))))((* (( (ptr) &var←c90624)+4)/* context←v12724 */ ), (word) (( (bPt) &var←c90624)+28)
/* var←c85632 */ , (* (ptr) (* (( (ptr) &var←c90624)+13)/* pattern←v24852 */ ) ), (word) (( (bPt) &var←c90624)+20)/* var←c85600 */ , (* (
( (ptr) (* (( (ptr) &var←c90624)+11)/* circleProps←v24736 */ ))+5) ), (* (( (ptr) (* (( (ptr) &var←c90624)+11)/* circleProps←v24736 */ ))+6)
), pd280);
};
};
}
else {
SOURCE(28091, 55)
{
word pd281;
pd281 = (* (( (ptr) (* (( (ptr) gf←c90656)+270)/* var←c82656 */ ))+71) );
(void) ( *( (fPt) ((* (ptr) pd281 ))))((* (( (ptr) &var←c90624)+4)/* context←v12724 */ ), (word) (( (bPt) &var←c90624)+28)
/* var←c85632 */ , 1, pd281);
};
};
};
};
}
static void FillItIn←P6900(formal←c90720)
word formal←c90720;
{
register ptr gf←c90688 = (ptr) &globalframe;
formal←c90720 = (formal←c90720 - 36);
/* FillItIn: */
SOURCE(27031, 149)
SOURCE(27050, 50)
{
word pd282;
pd282 = (* (( (ptr) (* (( (ptr) gf←c90688)+275)/* var←c83424 */ ))+36) );
(void) ( *( (fPt) ((* (ptr) pd282 ))))((* (( (ptr) formal←c90720)+4) ), (* (( (ptr) (* (( (ptr) formal←c90720)+11) ))+8)
), 0, pd282);
};
SOURCE(27102, 34)
{
word pd283;
pd283 = (* (( (ptr) (* (( (ptr) gf←c90688)+270)/* var←c82656 */ ))+14) );
(void) ( *( (fPt) ((* (ptr) pd283 ))))((* (( (ptr) formal←c90720)+4) ), (* (( (ptr) formal←c90720)+12) ), pd283);
};
SOURCE(27138, 42)
{
word pd284;
pd284 = (* (( (ptr) (* (( (ptr) gf←c90688)+270)/* var←c82656 */ ))+62) );
(void) ( *( (fPt) ((* (ptr) pd284 ))))((* (( (ptr) formal←c90720)+4) ), (word) (( (bPt) gf←c90688)+808)/* var←c81312 */ , 1, pd284)
;
};
}
static void TransformedCirclePath←P6960(moveTo←v67588, lineTo←v67616, curveTo←v67644, conicTo←v67672, arcTo←v67700, formal←c90784)
word moveTo←v67588;
word lineTo←v67616;
word curveTo←v67644;
word conicTo←v67672;
word arcTo←v67700;
word formal←c90784;
{
register ptr gf←c90752 = (ptr) &globalframe;
formal←c90784 = (formal←c90784 - 28);
/* TransformedCirclePath: */
SOURCE(27185, 127)
SOURCE(27228, 84)
{
word pd285;
pd285 = (* (( (ptr) (* (( (ptr) gf←c90752)+278)/* var←c83616 */ ))+6) );
(void) ( *( (fPt) ((* (ptr) pd285 ))))((word) (( (bPt) gf←c90752)+808)/* var←c81312 */ , (* (( (ptr) formal←c90784)+12) ), moveTo←v67588, lineTo←v67616, curveTo←v67644, conicTo←v67672
, arcTo←v67700, 0, pd285);
};
}
static word PatternProc←P7068(i←v24928, formal←c90816)
word i←v24928;
word formal←c90816;
{
word var←c24972;
formal←c90816 = (formal←c90816 - 20);
/* PatternProc: */
SOURCE(27845, 19)
SOURCE(27891, 18)
{
word limit286;
return((* ((( (ptr) (* (( (ptr) formal←c90816)+13) ))+1)+(
limit286 = (* (ptr) (* (( (ptr) formal←c90816)+13) ) ),
BCK(i←v24928, limit286)
)) ));
};
}
static void OldCircleDrawOutline←P1380(formal←c01255, formal←c01256, formal←c01257, formal←c01258, formal←c01259, fillIt←v12924)
word formal←c01255;
word formal←c01256;
word formal←c01257;
word formal←c01258;
word formal←c01259;
word fillIt←v12924;
{
W16 var←c90848;
/* declaration of dc←v12784 skipped */
/* declaration of circleData←v12812 skipped */
/* declaration of localView←v12840 skipped */
/* declaration of viewView←v12868 skipped */
/* declaration of transformColor←v12896 skipped */
register ptr gf←c90880 = (ptr) &globalframe;
/* declaration of var←c85696 skipped */
/* declaration of var←c85728 skipped */
/* declaration of var←c85760 skipped */
word seg←v25056;
(* (( (ptr) &var←c90848)+4)/* dc←v12784 */ ) = formal←c01255;
(* (( (ptr) &var←c90848)+5)/* circleData←v12812 */ ) = formal←c01256;
(* (( (ptr) &var←c90848)+6)/* localView←v12840 */ ) = formal←c01257;
(* (( (ptr) &var←c90848)+7)/* viewView←v12868 */ ) = formal←c01258;
(* (( (ptr) &var←c90848)+8)/* transformColor←v12896 */ ) = formal←c01259;
/* OldCircleDrawOutline: */
SOURCE(28155, 1276)
{
word tmpAddr287;
tmpAddr287 = (word) (( (ptr) &var←c90848)+9)/* var←c85696 */ ;
(* (ptr) tmpAddr287 ) = ( ((word) (fPt) PatternProc←P7296) );
(* (( (ptr) tmpAddr287) + 1) ) = 1;
};
{
word tmpAddr288;
tmpAddr288 = (word) (( (ptr) &var←c90848)+11)/* var←c85728 */ ;
(* (ptr) tmpAddr288 ) = ( ((word) (fPt) FillItIn←P7188) );
(* (( (ptr) tmpAddr288) + 1) ) = 1;
};
{
word tmpAddr289;
tmpAddr289 = (word) (( (ptr) &var←c90848)+13)/* var←c85760 */ ;
(* (ptr) tmpAddr289 ) = ( ((word) (fPt) TransformedCirclePath←P7128) );
(* (( (ptr) tmpAddr289) + 1) ) = 1;
};
SOURCE(28788, 29)
seg←v25056 = (* (( (ptr) (* (( (ptr) &var←c90848)+5)/* circleData←v12812 */ ))+33) );
SOURCE(28819, 71)
if ( ( (0 != fillIt←v12924) ? ((* (( (ptr) (* (( (ptr) &var←c90848)+5)/* circleData←v12812 */ ))+11) ) != 0) : 0 ) ) {
SOURCE(28863, 27)
{
word pd290;
pd290 = (* (( (ptr) (* (( (ptr) gf←c90880)+270)/* var←c82656 */ ))+12) );
(void) ( *( (fPt) ((* (ptr) pd290 ))))((* (( (ptr) &var←c90848)+4)/* dc←v12784 */ ), (word) (( (bPt) &var←c90848)+44)/* var←c85728 */ , pd290)
;
};
};
SOURCE(28892, 539)
{
word x291;
word x292;
if ( ( ((* (( (ptr) seg←v25056)+8) ) != 0) ? ((
x291 = (* (( (ptr) seg←v25056)+2) ), *(float*)&x291
) != (
x292 = (* (ptr) &fc85 ), *(float*)&x292
)) : 0 ) ) {
SOURCE(28940, 51)
if (((* (( (ptr) &var←c90848)+7)/* viewView←v12868 */ ) != 0)) {
SOURCE(28963, 28)
{
word pd293;
pd293 = (* (( (ptr) (* (( (ptr) gf←c90880)+270)/* var←c82656 */ ))+14) );
(void) ( *( (fPt) ((* (ptr) pd293 ))))((* (( (ptr) &var←c90848)+4)/* dc←v12784 */ ), (* (( (ptr) &var←c90848)+7)/* viewView←v12868 */ ), pd293)
;
};
};
SOURCE(28993, 30)
{
word pd294;
pd294 = (* (( (ptr) (* (( (ptr) gf←c90880)+270)/* var←c82656 */ ))+52) );
(void) ( *( (fPt) ((* (ptr) pd294 ))))((* (( (ptr) &var←c90848)+4)/* dc←v12784 */ ), (* (( (ptr) seg←v25056)+8) ), pd294)
;
};
SOURCE(29025, 42)
{
word pd295;
pd295 = (* (( (ptr) (* (( (ptr) gf←c90880)+270)/* var←c82656 */ ))+68) );
(void) ( *( (fPt) ((* (ptr) pd295 ))))((* (( (ptr) &var←c90848)+4)/* dc←v12784 */ ), (* (( (ptr) seg←v25056)+2) ), pd295)
;
};
SOURCE(29069, 38)
{
word pd296;
pd296 = (* (( (ptr) (* (( (ptr) gf←c90880)+270)/* var←c82656 */ ))+69) );
(void) ( *( (fPt) ((* (ptr) pd296 ))))((* (( (ptr) &var←c90848)+4)/* dc←v12784 */ ), (* (( (ptr) seg←v25056)+3) ), pd296)
;
};
SOURCE(29109, 32)
{
word pd297;
pd297 = (* (( (ptr) (* (( (ptr) gf←c90880)+270)/* var←c82656 */ ))+70) );
(void) ( *( (fPt) ((* (ptr) pd297 ))))((* (( (ptr) &var←c90848)+4)/* dc←v12784 */ ), 2, pd297);
};
SOURCE(29143, 288)
if ((0 != (* (( (ptr) seg←v25056)+4) ))) {
SOURCE(29162, 212)
{
/* declaration of pattern←v25144 skipped */
SOURCE(29233, 37)
(* (( (ptr) &var←c90848)+15)/* pattern←v25144 */ ) = (* (( (ptr) seg←v25056)+5) );
SOURCE(29272, 100)
{
word pd298;
pd298 = (* (( (ptr) (* (( (ptr) gf←c90880)+270)/* var←c82656 */ ))+75) );
(void) ( *( (fPt) ((* (ptr) pd298 ))))((* (( (ptr) &var←c90848)+4)/* dc←v12784 */ ), (word) (( (bPt) &var←c90848)+52)/* var←c85760 */ , (* (ptr) (* (
( (ptr) &var←c90848)+15)/* pattern←v25144 */ ) ), (word) (( (bPt) &var←c90848)+36)/* var←c85696 */ , (* (( (ptr) seg←v25056)+6)
), (* (( (ptr) seg←v25056)+7) ), pd298);
};
};
}
else {
SOURCE(29381, 50)
{
word pd299;
pd299 = (* (( (ptr) (* (( (ptr) gf←c90880)+270)/* var←c82656 */ ))+71) );
(void) ( *( (fPt) ((* (ptr) pd299 ))))((* (( (ptr) &var←c90848)+4)/* dc←v12784 */ ), (word) (( (bPt) &var←c90848)+52)/* var←c85760 */ , 1, pd299)
;
};
};
};
};
}
static void TransformedCirclePath←P7128(moveTo←v69020, lineTo←v69048, curveTo←v69076, conicTo←v69104, arcTo←v69132, formal←c90944)
word moveTo←v69020;
word lineTo←v69048;
word curveTo←v69076;
word conicTo←v69104;
word arcTo←v69132;
word formal←c90944;
{
register ptr gf←c90912 = (ptr) &globalframe;
formal←c90944 = (formal←c90944 - 52);
/* TransformedCirclePath: */
SOURCE(28333, 127)
SOURCE(28376, 84)
{
word pd300;
pd300 = (* (( (ptr) (* (( (ptr) gf←c90912)+278)/* var←c83616 */ ))+6) );
(void) ( *( (fPt) ((* (ptr) pd300 ))))((word) (( (bPt) gf←c90912)+808)/* var←c81312 */ , (* (( (ptr) formal←c90944)+6) ), moveTo←v69020, lineTo←v69048, curveTo←v69076, conicTo←v69104
, arcTo←v69132, 0, pd300);
};
}
static void FillItIn←P7188(formal←c91008)
word formal←c91008;
{
register ptr gf←c90976 = (ptr) &globalframe;
formal←c91008 = (formal←c91008 - 44);
/* FillItIn: */
SOURCE(28465, 320)
SOURCE(28484, 127)
if ((0 != (* (( (ptr) formal←c91008)+8) ))) {
SOURCE(28507, 60)
{
word pd301;
pd301 = (* (( (ptr) (* (( (ptr) gf←c90976)+275)/* var←c83424 */ ))+36) );
(void) ( *( (fPt) ((* (ptr) pd301 ))))((* (( (ptr) formal←c91008)+4) ), (* (( (ptr) (* (( (ptr) formal←c91008)+5) ))+11)
), (* (( (ptr) formal←c91008)+7) ), pd301);
};
}
else {
SOURCE(28567, 44)
{
word pd302;
pd302 = (* (( (ptr) (* (( (ptr) gf←c90976)+275)/* var←c83424 */ ))+36) );
(void) ( *( (fPt) ((* (ptr) pd302 ))))((* (( (ptr) formal←c91008)+4) ), (* (( (ptr) (* (( (ptr) formal←c91008)+5) ))+11)
), 0, pd302);
};
};
SOURCE(28613, 51)
if (((* (( (ptr) formal←c91008)+7) ) != 0)) {
SOURCE(28636, 28)
{
word pd303;
pd303 = (* (( (ptr) (* (( (ptr) gf←c90976)+270)/* var←c82656 */ ))+14) );
(void) ( *( (fPt) ((* (ptr) pd303 ))))((* (( (ptr) formal←c91008)+4) ), (* (( (ptr) formal←c91008)+7) ), pd303);
};
};
SOURCE(28666, 29)
{
word pd304;
pd304 = (* (( (ptr) (* (( (ptr) gf←c90976)+270)/* var←c82656 */ ))+14) );
(void) ( *( (fPt) ((* (ptr) pd304 ))))((* (( (ptr) formal←c91008)+4) ), (* (( (ptr) formal←c91008)+6) ), pd304);
};
SOURCE(28697, 88)
{
word pd305;
pd305 = (* (( (ptr) (* (( (ptr) gf←c90976)+270)/* var←c82656 */ ))+62) );
(void) ( *( (fPt) ((* (ptr) pd305 ))))((* (( (ptr) formal←c91008)+4) ), ( (0 != (* (( (ptr) (* (( (ptr) formal←c91008)+5)
))+12) )) ? (word) (( (bPt) gf←c90976)+808)/* var←c81312 */ : (word) (( (bPt) gf←c90976)+800)/* var←c81280 */ ) , 1, pd305)
;
};
}
static word PatternProc←P7296(i←v25220, formal←c91040)
word i←v25220;
word formal←c91040;
{
word var←c25264;
formal←c91040 = (formal←c91040 - 36);
/* PatternProc: */
SOURCE(29164, 19)
SOURCE(29210, 18)
{
word limit306;
return((* ((( (ptr) (* (( (ptr) formal←c91040)+15) ))+1)+(
limit306 = (* (ptr) (* (( (ptr) formal←c91040)+15) ) ),
BCK(i←v25220, limit306)
)) ));
};
}
static void CirclePath←P1440(moveTo←v41624, lineTo←v41652, curveTo←v41680, conicTo←v41708, arcTo←v41736)
word moveTo←v41624;
word lineTo←v41652;
word curveTo←v41680;
word conicTo←v41708;
word arcTo←v41736;
{
W2 left←v25292;
W2 top←v25320;
W2 right←v25348;
W2 bottom←v25376;
/* CirclePath: */
SOURCE(29440, 219)
SOURCE(29499, 25)
left←v25292.f0 = (* (ptr) &fc88 );
left←v25292.f1 = (* (ptr) &fc85 );
SOURCE(29526, 23)
top←v25320.f0 = (* (ptr) &fc85 );
top←v25320.f1 = (* (ptr) &fc87 );
SOURCE(29551, 25)
right←v25348.f0 = (* (ptr) &fc87 );
right←v25348.f1 = (* (ptr) &fc85 );
SOURCE(29578, 27)
bottom←v25376.f0 = (* (ptr) &fc85 );
bottom←v25376.f1 = (* (ptr) &fc88 );
SOURCE(29607, 12)
(void) ( *( (fPt) ((* (ptr) moveTo←v41624 ))))(left←v25292, moveTo←v41624);
SOURCE(29621, 17)
(void) ( *( (fPt) ((* (ptr) arcTo←v41736 ))))(top←v25320, right←v25348, arcTo←v41736);
SOURCE(29640, 19)
(void) ( *( (fPt) ((* (ptr) arcTo←v41736 ))))(bottom←v25376, left←v25292, arcTo←v41736);
}
static void CirclePathReverse←P1500(moveTo←v41796, lineTo←v41824, curveTo←v41852, conicTo←v41880, arcTo←v41908)
word moveTo←v41796;
word lineTo←v41824;
word curveTo←v41852;
word conicTo←v41880;
word arcTo←v41908;
{
W2 leftSide←v25420;
W2 rightSide←v25448;
/* CirclePathReverse: */
SOURCE(29665, 190)
SOURCE(29749, 29)
leftSide←v25420.f0 = (* (ptr) &fc88 );
leftSide←v25420.f1 = (* (ptr) &fc85 );
SOURCE(29780, 29)
rightSide←v25448.f0 = (* (ptr) &fc87 );
rightSide←v25448.f1 = (* (ptr) &fc85 );
SOURCE(29811, 16)
(void) ( *( (fPt) ((* (ptr) moveTo←v41796 ))))(leftSide←v25420, moveTo←v41796);
SOURCE(29829, 26)
(void) ( *( (fPt) ((* (ptr) arcTo←v41908 ))))(rightSide←v25448, leftSide←v25420, arcTo←v41908);
}
static void DrawSelectionFeedbackAux←P1560(slice←v12984, circleData←v13012, formal←c01260, formal←c01261, formal←c01262, formal←c01263, formal←c01264)
word slice←v12984;
word circleData←v13012;
word formal←c01260;
word formal←c01261;
word formal←c01262;
word formal←c01263;
word formal←c01264;
{
W11 var←c91072;
/* declaration of normalCircleParts←v13040 skipped */
/* declaration of hotCircleParts←v13068 skipped */
/* declaration of dc←v13096 skipped */
/* declaration of t←v13124 skipped */
/* declaration of camera←v13152 skipped */
register ptr gf←c91104 = (ptr) &globalframe;
/* declaration of var←c85984 skipped */
(* (( (ptr) &var←c91072)+4)/* normalCircleParts←v13040 */ ) = formal←c01260;
(* (( (ptr) &var←c91072)+5)/* hotCircleParts←v13068 */ ) = formal←c01261;
(* (( (ptr) &var←c91072)+6)/* dc←v13096 */ ) = formal←c01262;
(* (( (ptr) &var←c91072)+7)/* t←v13124 */ ) = formal←c01263;
(* (( (ptr) &var←c91072)+8)/* camera←v13152 */ ) = formal←c01264;
/* DrawSelectionFeedbackAux: */
SOURCE(29861, 1010)
{
word tmpAddr307;
tmpAddr307 = (word) (( (ptr) &var←c91072)+9)/* var←c85984 */ ;
(* (ptr) tmpAddr307 ) = ( ((word) (fPt) DoDrawFeedback←P7356) );
(* (( (ptr) tmpAddr307) + 1) ) = 1;
};
SOURCE(30838, 33)
{
word pd308;
pd308 = (* (( (ptr) (* (( (ptr) gf←c91104)+270)/* var←c82656 */ ))+12) );
(void) ( *( (fPt) ((* (ptr) pd308 ))))((* (( (ptr) &var←c91072)+6)/* dc←v13096 */ ), (word) (( (bPt) &var←c91072)+36)/* var←c85984 */ , pd308)
;
};
}
static void DoDrawFeedback←P7356(formal←c91168)
word formal←c91168;
{
register ptr gf←c91136 = (ptr) &globalframe;
word thisCPisHot←v25552 = 0;
word thisCPisSelected←v25580 = 0;
W10 pts←v25608;
formal←c91168 = (formal←c91168 - 36);
/* DoDrawFeedback: */
SOURCE(30078, 746)
SOURCE(30175, 33)
{
W2 var←c86016;
{
W2 var←c0510;
{
W2 var←c86048;
var←c86048.f0 = (* (ptr) &fc85 );
var←c86048.f1 = (* (ptr) &fc85 );
{
word pd309;
pd309 = (* (( (ptr) (* (( (ptr) gf←c91136)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd309 ))))((word) &var←c0510, (* (( (ptr) formal←c91168)+7) ), var←c86048, pd309);
};
};
var←c86016 = var←c0510;
};
(* (W2Pt) &pts←v25608 ) = var←c86016;
};
SOURCE(30210, 34)
{
W2 var←c86080;
{
W2 var←c0513;
{
W2 var←c86112;
var←c86112.f0 = (* (ptr) &fc88 );
var←c86112.f1 = (* (ptr) &fc85 );
{
word pd310;
pd310 = (* (( (ptr) (* (( (ptr) gf←c91136)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd310 ))))((word) &var←c0513, (* (( (ptr) formal←c91168)+7) ), var←c86112, pd310);
};
};
var←c86080 = var←c0513;
};
(* (W2Pt) (( (ptr) &pts←v25608)+2) ) = var←c86080;
};
SOURCE(30246, 33)
{
W2 var←c86144;
{
W2 var←c0516;
{
W2 var←c86176;
var←c86176.f0 = (* (ptr) &fc85 );
var←c86176.f1 = (* (ptr) &fc87 );
{
word pd311;
pd311 = (* (( (ptr) (* (( (ptr) gf←c91136)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd311 ))))((word) &var←c0516, (* (( (ptr) formal←c91168)+7) ), var←c86176, pd311);
};
};
var←c86144 = var←c0516;
};
(* (W2Pt) (( (ptr) &pts←v25608)+4) ) = var←c86144;
};
SOURCE(30281, 33)
{
W2 var←c86208;
{
W2 var←c0519;
{
W2 var←c86240;
var←c86240.f0 = (* (ptr) &fc87 );
var←c86240.f1 = (* (ptr) &fc85 );
{
word pd312;
pd312 = (* (( (ptr) (* (( (ptr) gf←c91136)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd312 ))))((word) &var←c0519, (* (( (ptr) formal←c91168)+7) ), var←c86240, pd312);
};
};
var←c86208 = var←c0519;
};
(* (W2Pt) (( (ptr) &pts←v25608)+6) ) = var←c86208;
};
SOURCE(30316, 34)
{
W2 var←c86272;
{
W2 var←c0522;
{
W2 var←c86304;
var←c86304.f0 = (* (ptr) &fc85 );
var←c86304.f1 = (* (ptr) &fc88 );
{
word pd313;
pd313 = (* (( (ptr) (* (( (ptr) gf←c91136)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd313 ))))((word) &var←c0522, (* (( (ptr) formal←c91168)+7) ), var←c86304, pd313);
};
};
var←c86272 = var←c0522;
};
(* (W2Pt) (( (ptr) &pts←v25608)+8) ) = var←c86272;
};
SOURCE(30352, 472)
{
register word index←v25688 = 0;
lab←L100035: ;
SOURCE(30403, 66)
if (((* (( (ptr) formal←c91168)+5) ) != 0)) {
thisCPisHot←v25552 = (unsigned) (0 != (* (( (ptr) (* (( (ptr) formal←c91168)+5) ))+index←v25688) ));
}
else {
thisCPisHot←v25552 = (unsigned) 0;
};
SOURCE(30471, 77)
if (((* (( (ptr) formal←c91168)+4) ) != 0)) {
thisCPisSelected←v25580 = (unsigned) (0 != (* (( (ptr) (* (( (ptr) formal←c91168)+4) ))+index←v25688) ));
}
else {
thisCPisSelected←v25580 = (unsigned) 0;
};
SOURCE(30550, 83)
if ((0 != thisCPisHot←v25552)) {
SOURCE(30570, 63)
{
word pd314;
pd314 = (* (( (ptr) (* (( (ptr) gf←c91136)+279)/* var←c84512 */ ))+20) );
(void) ( *( (fPt) ((* (ptr) pd314 ))))((* (( (ptr) formal←c91168)+6) ), (* (( (W2Pt) &pts←v25608)+index←v25688) ), 1, (* (
( (ptr) (* (( (ptr) formal←c91168)+8) ))+4) ), pd314);
};
};
SOURCE(30635, 91)
if ((0 != thisCPisSelected←v25580)) {
SOURCE(30660, 66)
{
word pd315;
pd315 = (* (( (ptr) (* (( (ptr) gf←c91136)+279)/* var←c84512 */ ))+20) );
(void) ( *( (fPt) ((* (ptr) pd315 ))))((* (( (ptr) formal←c91168)+6) ), (* (( (W2Pt) &pts←v25608)+index←v25688) ), 0, (* (
( (ptr) (* (( (ptr) formal←c91168)+8) ))+4) ), pd315);
};
};
SOURCE(30728, 96)
if ( ( (0 == thisCPisHot←v25552) ? (0 == thisCPisSelected←v25580) : 0 ) ) {
SOURCE(30777, 47)
{
word pd316;
pd316 = (* (( (ptr) (* (( (ptr) gf←c91136)+279)/* var←c84512 */ ))+19) );
(void) ( *( (fPt) ((* (ptr) pd316 ))))((* (( (ptr) formal←c91168)+6) ), (* (( (W2Pt) &pts←v25608)+index←v25688) ), (* (( (ptr) (* (
( (ptr) formal←c91168)+8) ))+4) ), pd316);
};
};
if ((index←v25688 >= 4)) {
goto lab←L100032;
};
index←v25688 = (index←v25688 + 1);
goto lab←L100035;
lab←L100032: ;
};
}
static void CircleSaveSelections←P1620(slice←v13212, parts←v13240, selectClass←v13268)
word slice←v13212;
word parts←v13240;
word selectClass←v13268;
{
W9 var←c91200;
register ptr gf←c91232 = (ptr) &globalframe;
/* declaration of var←c86336 skipped */
/* declaration of var←c86368 skipped */
word dontClear←v25788 = 1;
word circleParts←v25816;
/* declaration of circleData←v25844 skipped */
/* CircleSaveSelections: */
SOURCE(30877, 1157)
{
word tmpAddr317;
tmpAddr317 = (word) (( (ptr) &var←c91200)+4)/* var←c86336 */ ;
(* (ptr) tmpAddr317 ) = ( ((word) (fPt) SetSegmentField←P7524) );
(* (( (ptr) tmpAddr317) + 1) ) = 1;
};
{
word tmpAddr318;
tmpAddr318 = (word) (( (ptr) &var←c91200)+6)/* var←c86368 */ ;
(* (ptr) tmpAddr318 ) = ( ((word) (fPt) SetPointField←P7464) );
(* (( (ptr) tmpAddr318) + 1) ) = 1;
};
SOURCE(31693, 40)
circleParts←v25816 = XR←Narrow(parts←v13240, (* (( (ptr) gf←c91232)+13) ));
SOURCE(31735, 43)
(* (( (ptr) &var←c91200)+8)/* circleData←v25844 */ ) = XR←Narrow((* (( (ptr) slice←v13212)+1) ), (* (( (ptr) gf←c91232)+12)
));
SOURCE(31780, 41)
if ((circleParts←v25816 == 0)) {
SOURCE(31804, 17)
dontClear←v25788 = 0;
};
SOURCE(31823, 121)
{
register word count←v26120 = 0;
if (( (int)count←v26120 > (int)4)) {
goto lab←L100036;
};
lab←L100039: ;
SOURCE(31869, 75)
{
word tc319;
if ((0 != dontClear←v25788)) {
tc319 = (word) (0 != (* (( (ptr) circleParts←v25816)+BCK(count←v26120, 5)) ));
}
else {
tc319 = (word) 0;
};
(void) SetPointField←P7464(count←v26120, (unsigned) tc319, selectClass←v13268, (word) (( (bPt) &var←c91200)+24)/* var←c86368 */ )
;
};
if (( (int)count←v26120 >= (int)4)) {
goto lab←L100036;
};
count←v26120 = (count←v26120 + 1);
goto lab←L100039;
lab←L100036: ;
};
SOURCE(31955, 79)
(void) SetSegmentField←P7524((* (( (ptr) (* (( (ptr) &var←c91200)+8)/* circleData←v25844 */ ))+33) ), (unsigned) ( (0 != dontClear←v25788) ? (0 != (* (
( (ptr) circleParts←v25816)+5) )) : 0 ) , selectClass←v13268, (word) (( (bPt) &var←c91200)+16)/* var←c86336 */ );
}
static void SetPointField←P7464(point←v25920, selected←v25948, selectClass←v25976, formal←c91264)
word point←v25920;
word selected←v25948;
word selectClass←v25976;
word formal←c91264;
{
formal←c91264 = (formal←c91264 - 24);
/* SetPointField: */
SOURCE(30971, 373)
SOURCE(31058, 286)
{
word var←c86400;
var←c86400 = selectClass←v25976;
switch (var←c86400) {
case 0:
SOURCE(31092, 56)
(* (( (W4Pt) (( (ptr) (* (( (ptr) formal←c91264)+8) ))+13))+BCK(point←v25920, 5)) ).f0 = selected←v25948;
break;
case 1:
SOURCE(31157, 53)
(* (( (W4Pt) (( (ptr) (* (( (ptr) formal←c91264)+8) ))+13))+BCK(point←v25920, 5)) ).f1 = selected←v25948;
break;
case 2:
SOURCE(31222, 56)
(* (( (W4Pt) (( (ptr) (* (( (ptr) formal←c91264)+8) ))+13))+BCK(point←v25920, 5)) ).f2 = selected←v25948;
break;
case 3:
SOURCE(31289, 55)
(* (( (W4Pt) (( (ptr) (* (( (ptr) formal←c91264)+8) ))+13))+BCK(point←v25920, 5)) ).f3 = selected←v25948;
break;
};
};
}
static void SetSegmentField←P7524(seg←v26036, selected←v26064, selectClass←v26092, formal←c91296)
word seg←v26036;
word selected←v26064;
word selectClass←v26092;
word formal←c91296;
{
formal←c91296 = (formal←c91296 - 16);
/* SetSegmentField: */
SOURCE(31358, 297)
SOURCE(31445, 210)
{
word var←c86432;
var←c86432 = selectClass←v26092;
switch (var←c86432) {
case 0:
SOURCE(31479, 37)
(* (( (ptr) seg←v26036)+17) ) = selected←v26064;
break;
case 1:
SOURCE(31525, 34)
(* (( (ptr) seg←v26036)+18) ) = selected←v26064;
break;
case 2:
SOURCE(31571, 37)
(* (( (ptr) seg←v26036)+19) ) = selected←v26064;
break;
case 3:
SOURCE(31619, 36)
(* (( (ptr) seg←v26036)+20) ) = selected←v26064;
break;
};
};
}
static word CircleRemakeSelections←P1680(slice←v13328, selectClass←v13356)
word slice←v13328;
word selectClass←v13356;
{
W9 var←c91328;
register ptr gf←c91360 = (ptr) &globalframe;
word parts←v13400;
/* declaration of var←c86464 skipped */
/* declaration of var←c86496 skipped */
/* declaration of circleData←v26220 skipped */
word circleParts←v26248;
/* CircleRemakeSelections: */
SOURCE(32040, 1083)
{
word tmpAddr320;
tmpAddr320 = (word) (( (ptr) &var←c91328)+4)/* var←c86464 */ ;
(* (ptr) tmpAddr320 ) = ( ((word) (fPt) GetSegmentField←P7692) );
(* (( (ptr) tmpAddr320) + 1) ) = 1;
};
{
word tmpAddr321;
tmpAddr321 = (word) (( (ptr) &var←c91328)+6)/* var←c86496 */ ;
(* (ptr) tmpAddr321 ) = ( ((word) (fPt) GetPointField←P7632) );
(* (( (ptr) tmpAddr321) + 1) ) = 1;
};
SOURCE(32040, 1083)
parts←v13400 = 0;
SOURCE(32786, 43)
(* (( (ptr) &var←c91328)+8)/* circleData←v26220 */ ) = XR←Narrow((* (( (ptr) slice←v13328)+1) ), (* (( (ptr) gf←c91360)+12)
));
SOURCE(32831, 46)
circleParts←v26248 = XR←NewObject(24, (* (( (ptr) gf←c91360)+13) ));
SOURCE(32879, 108)
{
register word count←v26556 = 0;
if (( (int)count←v26556 > (int)4)) {
goto lab←L100040;
};
lab←L100043: ;
SOURCE(32925, 62)
{
word var←c86528;
var←c86528 = (word) GetPointField←P7632(count←v26556, selectClass←v13356, (word) (( (bPt) &var←c91328)+24)/* var←c86496 */ )
;
(* (( (ptr) circleParts←v26248)+BCK(count←v26556, 5)) ) = var←c86528;
};
if (( (int)count←v26556 >= (int)4)) {
goto lab←L100040;
};
count←v26556 = (count←v26556 + 1);
goto lab←L100043;
lab←L100040: ;
};
SOURCE(32998, 66)
(* (( (ptr) circleParts←v26248)+5) ) = (word) GetSegmentField←P7692((* (( (ptr) (* (( (ptr) &var←c91328)+8)/* circleData←v26220 */ ))+33)
), selectClass←v13356, (word) (( (bPt) &var←c91328)+16)/* var←c86464 */ );
SOURCE(33066, 57)
if ((0 != (word) IsEmpty←P4320(circleParts←v26248))) {
parts←v13400 = 0;
}
else {
parts←v13400 = circleParts←v26248;
};
SOURCE(32040, 1083)
return(parts←v13400);
}
static word GetPointField←P7632(point←v26324, selectClass←v26352, formal←c91392)
word point←v26324;
word selectClass←v26352;
word formal←c91392;
{
word var←c26396;
formal←c91392 = (formal←c91392 - 24);
/* GetPointField: */
SOURCE(32145, 353)
SOURCE(32230, 268)
{
word var←c86560;
var←c86560 = selectClass←v26352;
switch (var←c86560) {
case 0:
return((* (( (W4Pt) (( (ptr) (* (( (ptr) formal←c91392)+8) ))+13))+BCK(point←v26324, 5)) ).f0);
case 1:
return((* (( (W4Pt) (( (ptr) (* (( (ptr) formal←c91392)+8) ))+13))+BCK(point←v26324, 5)) ).f1);
case 2:
return((* (( (W4Pt) (( (ptr) (* (( (ptr) formal←c91392)+8) ))+13))+BCK(point←v26324, 5)) ).f2);
case 3:
return((* (( (W4Pt) (( (ptr) (* (( (ptr) formal←c91392)+8) ))+13))+BCK(point←v26324, 5)) ).f3);
default:
return(0);
};
};
}
static word GetSegmentField←P7692(seg←v26456, selectClass←v26484, formal←c91424)
word seg←v26456;
word selectClass←v26484;
word formal←c91424;
{
word var←c26528;
formal←c91424 = (formal←c91424 - 16);
/* GetSegmentField: */
SOURCE(32503, 278)
SOURCE(32589, 192)
{
word var←c86592;
var←c86592 = selectClass←v26484;
switch (var←c86592) {
case 0:
return((* (( (ptr) seg←v26456)+17) ));
case 1:
return((* (( (ptr) seg←v26456)+18) ));
case 2:
return((* (( (ptr) seg←v26456)+19) ));
case 3:
return((* (( (ptr) seg←v26456)+20) ));
default:
return(0);
};
};
}
static void CircleTransform←P1740(slice←v13460, parts←v13488, transform←v13516, editConstraints←v13544, history←v13572)
word slice←v13460;
word parts←v13488;
word transform←v13516;
word editConstraints←v13544;
word history←v13572;
{
register ptr gf←c91456 = (ptr) &globalframe;
word isOrigin←v26600 = 0;
word cpCount←v26628 = 0;
word cpIndex←v26656 = (word) -1;
W2 originPoint←v26684;
W2 edgePoint←v26712;
W2 pointInUnitSpace←v26740;
word circleData←v26768;
word circleParts←v26796;
/* CircleTransform: */
SOURCE(33230, 2354)
SOURCE(33490, 43)
circleData←v26768 = XR←Narrow((* (( (ptr) slice←v13460)+1) ), (* (( (ptr) gf←c91456)+12) ));
SOURCE(33535, 40)
circleParts←v26796 = XR←Narrow(parts←v13488, (* (( (ptr) gf←c91456)+13) ));
SOURCE(33577, 2007)
SOURCE(33583, 65)
if ((circleParts←v26796 == 0) || (0 != (* (ptr) circleParts←v26796 ))) {
SOURCE(33633, 15)
isOrigin←v26600 = 1;
};
SOURCE(33650, 145)
{
register word index←v26840 = 1;
lab←L100048: ;
SOURCE(33701, 94)
if ((circleParts←v26796 == 0)) { goto then0322;};
if ((0 != (* (( (ptr) circleParts←v26796)+index←v26840) ))) {
then0322: ;
SOURCE(33757, 21)
cpCount←v26628 = (cpCount←v26628 + 1);
SOURCE(33780, 15)
cpIndex←v26656 = index←v26840;
};
if ((index←v26840 >= 4)) {
goto lab←L100045;
};
index←v26840 = (index←v26840 + 1);
goto lab←L100048;
lab←L100045: ;
};
SOURCE(33809, 262)
if ((circleParts←v26796 == 0) || (0 != (* (( (ptr) circleParts←v26796)+5) ))) {
SOURCE(33906, 83)
{
word pd323;
pd323 = (* (( (ptr) (* (( (ptr) gf←c91456)+272)/* var←c82880 */ ))+13) );
(* (( (ptr) circleData←v26768)+1) ) = (word) ( *( (fPt) ((* (ptr) pd323 ))))((* (( (ptr) circleData←v26768)+1) ), transform←v13516, pd323)
;
};
SOURCE(33991, 80)
{
word pd324;
pd324 = (* (( (ptr) (* (( (ptr) gf←c91456)+275)/* var←c83424 */ ))+37) );
(* (( (ptr) circleData←v26768)+11) ) = (word) ( *( (fPt) ((* (ptr) pd324 ))))((* (( (ptr) circleData←v26768)+11) ), transform←v13516, pd324)
;
};
SOURCE(34073, 20)
goto lab←L100044;
};
SOURCE(34098, 175)
if ((0 != isOrigin←v26600) || ( (int)cpCount←v26628 > (int)1)) {
SOURCE(34190, 83)
{
word pd325;
pd325 = (* (( (ptr) (* (( (ptr) gf←c91456)+272)/* var←c82880 */ ))+13) );
(* (( (ptr) circleData←v26768)+1) ) = (word) ( *( (fPt) ((* (ptr) pd325 ))))((* (( (ptr) circleData←v26768)+1) ), transform←v13516, pd325)
;
};
SOURCE(34275, 20)
goto lab←L100044;
};
SOURCE(34301, 78)
{
W2 var←c0573;
{
W2 var←c86624;
var←c86624.f0 = (* (ptr) &fc85 );
var←c86624.f1 = (* (ptr) &fc85 );
{
word pd326;
pd326 = (* (( (ptr) (* (( (ptr) gf←c91456)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd326 ))))((word) &var←c0573, (* (( (ptr) circleData←v26768)+1) ), var←c86624, pd326);
};
};
originPoint←v26684 = var←c0573;
};
SOURCE(34381, 589)
if ( ( ( (int)cpCount←v26628 == (int)0) ? (0 == isOrigin←v26600) : 0 ) ) {
SOURCE(34420, 134)
{
W2 var←c86656;
W2 var←c86688;
W6 var←c0577;
{
word pd327;
pd327 = (* (( (ptr) (* (( (ptr) gf←c91456)+273)/* var←c82944 */ ))+11) );
(void) ( *( (fPt) ((* (ptr) pd327 ))))((word) &var←c86656, (* (W2Pt) (( (ptr) circleData←v26768)+9) ), originPoint←v26684, pd327)
;
};
{
word pd328;
pd328 = (* (( (ptr) (* (( (ptr) gf←c91456)+272)/* var←c82880 */ ))+50) );
(void) ( *( (fPt) ((* (ptr) pd328 ))))((word) &var←c0577, transform←v13516, pd328);
};
var←c86688 = (* (W2Pt) (( (ptr) &var←c0577)+4) );
{
W2 var←c0578;
{
word pd329;
pd329 = (* (( (ptr) (* (( (ptr) gf←c91456)+273)/* var←c82944 */ ))+10) );
(void) ( *( (fPt) ((* (ptr) pd329 ))))((word) &var←c0578, var←c86656, var←c86688, pd329);
};
edgePoint←v26712 = var←c0578;
};
};
SOURCE(34588, 49)
{
word pd330;
pd330 = (* (( (ptr) (* (( (ptr) gf←c91456)+273)/* var←c82944 */ ))+10) );
(void) ( *( (fPt) ((* (ptr) pd330 ))))((word) &edgePoint←v26712, originPoint←v26684, edgePoint←v26712, pd330);
};
}
else {
SOURCE(34732, 172)
{
W2 var←c86720;
{
word var←c86752;
var←c86752 = cpIndex←v26656;
switch (var←c86752) {
case 1:
var←c86720.f0 = (* (ptr) &fc88 );
var←c86720.f1 = (* (ptr) &fc85 );
break;
case 2:
var←c86720.f0 = (* (ptr) &fc85 );
var←c86720.f1 = (* (ptr) &fc87 );
break;
case 3:
var←c86720.f0 = (* (ptr) &fc87 );
var←c86720.f1 = (* (ptr) &fc85 );
break;
case 4:
var←c86720.f0 = (* (ptr) &fc85 );
var←c86720.f1 = (* (ptr) &fc88 );
break;
default:
var←c86720 = (* (W2Pt) (
XR←RaiseUnnamedError(), &dummy156
) );
break;
};
};
{
W2 var←c0586;
{
word pd331;
pd331 = (* (( (ptr) (* (( (ptr) gf←c91456)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd331 ))))((word) &var←c0586, (* (( (ptr) circleData←v26768)+1) ), var←c86720, pd331);
};
edgePoint←v26712 = var←c0586;
};
};
SOURCE(34906, 64)
{
word pd332;
pd332 = (* (( (ptr) (* (( (ptr) gf←c91456)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd332 ))))((word) &edgePoint←v26712, transform←v13516, edgePoint←v26712, pd332);
};
};
SOURCE(34997, 80)
{
word pd333;
pd333 = (* (( (ptr) (* (( (ptr) gf←c91456)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd333 ))))((word) &pointInUnitSpace←v26740, (* (( (ptr) circleData←v26768)+6) ), edgePoint←v26712, pd333)
;
};
SOURCE(35079, 132)
{
word var←c86912;
{
word pd334;
word x335;
float tf336;
float tf337;
word x338;
float tf339;
pd334 = (* (( (ptr) (* (( (ptr) gf←c91456)+273)/* var←c82944 */ ))+18) );
var←c86912 = (
tf339 = FMAX((
x335 = (word) ( *( (fPt) ((* (ptr) pd334 ))))(pointInUnitSpace←v26740, pd334), *(float*)&x335
), (
x338 = (* (( (ptr) gf←c91456)+5)/* circleLimit←v6164 */ ), *(float*)&x338
), tf336, tf337), *(word*)&tf339
);
};
{
word pd340;
pd340 = (* (( (ptr) (* (( (ptr) gf←c91456)+272)/* var←c82880 */ ))+15) );
(* (( (ptr) circleData←v26768)+1) ) = (word) ( *( (fPt) ((* (ptr) pd340 ))))((* (( (ptr) circleData←v26768)+1) ), var←c86912, pd340)
;
};
};
SOURCE(35245, 20)
goto lab←L100044;
/* c2c skipped dead code */
lab←L100044: ;
SOURCE(35294, 76)
{
word pd341;
pd341 = (* (( (ptr) (* (( (ptr) gf←c91456)+272)/* var←c82880 */ ))+56) );
(void) ( *( (fPt) ((* (ptr) pd341 ))))((word) (( (bPt) circleData←v26768)+8), (* (( (ptr) circleData←v26768)+1) ), pd341)
;
};
SOURCE(35372, 70)
{
word pd342;
pd342 = (* (( (ptr) (* (( (ptr) gf←c91456)+272)/* var←c82880 */ ))+51) );
(* (( (ptr) circleData←v26768)+6) ) = (word) ( *( (fPt) ((* (ptr) pd342 ))))((* ((( (ptr) circleData←v26768)+1)) ), pd342)
;
};
SOURCE(35444, 81)
{
word pd343;
pd343 = (* (( (ptr) (* (( (ptr) gf←c91456)+272)/* var←c82880 */ ))+56) );
(void) ( *( (fPt) ((* (ptr) pd343 ))))((word) (( (bPt) circleData←v26768)+28), (* (( (ptr) circleData←v26768)+6) ), pd343)
;
};
SOURCE(35527, 23)
(void) CircleSetScaling←P420(slice←v13460);
SOURCE(35552, 27)
{
word pd344;
pd344 = (* (( (ptr) (* (( (ptr) gf←c91456)+267)/* var←c82368 */ ))+68) );
(void) ( *( (fPt) ((* (ptr) pd344 ))))(slice←v13460, pd344);
};
}
static word CircleDescribeHit←P1800(slice←v13632, hitData←v13660)
word slice←v13632;
word hitData←v13660;
{
register ptr gf←c91488 = (ptr) &globalframe;
word rope←v13720;
word circleHitData←v26884;
word prefix←v26912 = 0;
/* CircleDescribeHit: */
SOURCE(35592, 377)
SOURCE(35592, 377)
rope←v13720 = 0;
SOURCE(35679, 46)
circleHitData←v26884 = XR←Narrow(hitData←v13660, (* (( (ptr) gf←c91488)+21) ));
SOURCE(35746, 168)
if (( (int)((* (ptr) circleHitData←v26884 ) - 1) != (int) (word) -1)) {
SOURCE(35778, 76)
if (( (int)((* (ptr) circleHitData←v26884 ) - 1) == (int)0)) {
prefix←v26912 = (* (( (ptr) gf←c91488)+46) );
}
else {
prefix←v26912 = (* (( (ptr) gf←c91488)+25) );
};
}
else {
SOURCE(35861, 53)
if ((0 != (* (( (ptr) circleHitData←v26884)+3) ))) {
SOURCE(35891, 23)
prefix←v26912 = (* (( (ptr) gf←c91488)+26) );
}
else {
SOURCE(35914, 5)
(void) XR←RaiseUnnamedError();
};
};
SOURCE(35921, 48)
{
word pd345;
pd345 = (* (( (ptr) (* (( (ptr) gf←c91488)+282)/* var←c86944 */ ))+6) );
rope←v13720 = (word) ( *( (fPt) ((* (ptr) pd345 ))))(prefix←v26912, (* (( (ptr) gf←c91488)+27) ), pd345);
};
SOURCE(35592, 377)
return(rope←v13720);
}
static word CircleDescribe←P1860(sliceD←v13780)
word sliceD←v13780;
{
register ptr gf←c91520 = (ptr) &globalframe;
word rope←v13824;
word prefix←v26956 = 0;
word cpCount←v26984 = 0;
word circleParts←v27012 = 0;
/* CircleDescribe: */
SOURCE(35975, 622)
SOURCE(35975, 622)
rope←v13824 = 0;
SOURCE(36115, 51)
if (((* (( (ptr) sliceD←v13780)+1) ) == 0)) {
SOURCE(36142, 24)
return((* (( (ptr) gf←c91520)+28) ));
};
SOURCE(36168, 34)
circleParts←v27012 = XR←Narrow((* (( (ptr) sliceD←v13780)+1) ), (* (( (ptr) gf←c91520)+13) ));
SOURCE(36204, 107)
{
register word index←v27056 = 0;
lab←L100053: ;
SOURCE(36255, 56)
if ((0 != (* (( (ptr) circleParts←v27012)+index←v27056) ))) {
SOURCE(36290, 21)
cpCount←v26984 = (cpCount←v26984 + 1);
};
if ((index←v27056 >= 4)) {
goto lab←L100050;
};
index←v27056 = (index←v27056 + 1);
goto lab←L100053;
lab←L100050: ;
};
SOURCE(36322, 63)
if (( (int)cpCount←v26984 > (int)1)) {
SOURCE(36342, 43)
return((* (( (ptr) gf←c91520)+29) ));
};
SOURCE(36387, 160)
if (( (int)cpCount←v26984 == (int)0)) {
SOURCE(36405, 67)
if ((0 != (* (( (ptr) circleParts←v27012)+5) ))) {
prefix←v26956 = (* (( (ptr) gf←c91520)+30) );
}
else {
prefix←v26956 = (* (( (ptr) gf←c91520)+31) );
};
}
else {
SOURCE(36472, 75)
if ((0 != (* (ptr) circleParts←v27012 ))) {
prefix←v26956 = (* (( (ptr) gf←c91520)+46) );
}
else {
prefix←v26956 = (* (( (ptr) gf←c91520)+25) );
};
};
SOURCE(36549, 48)
{
word pd346;
pd346 = (* (( (ptr) (* (( (ptr) gf←c91520)+282)/* var←c86944 */ ))+6) );
rope←v13824 = (word) ( *( (fPt) ((* (ptr) pd346 ))))(prefix←v26956, (* (( (ptr) gf←c91520)+27) ), pd346);
};
SOURCE(35975, 622)
return(rope←v13824);
}
static void CircleFileout←P1920(slice←v13884, f←v13912)
word slice←v13884;
word f←v13912;
{
register ptr gf←c91552 = (ptr) &globalframe;
word circleData←v27100;
/* CircleFileout: */
SOURCE(36603, 929)
SOURCE(36656, 43)
circleData←v27100 = XR←Narrow((* (( (ptr) slice←v13884)+1) ), (* (( (ptr) gf←c91552)+12) ));
SOURCE(36701, 55)
{
word pd347;
pd347 = (* (( (ptr) (* (( (ptr) gf←c91552)+283)/* var←c86976 */ ))+10) );
(void) ( *( (fPt) ((* (ptr) pd347 ))))(f←v13912, (* (( (ptr) circleData←v27100)+1) ), pd347);
};
SOURCE(36758, 27)
{
word pd348;
pd348 = (* (( (ptr) (* (( (ptr) gf←c91552)+284)/* var←c87008 */ ))+93) );
(void) ( *( (fPt) ((* (ptr) pd348 ))))(f←v13912, (* (( (ptr) gf←c91552)+32) ), 0, 2147483647, pd348);
};
SOURCE(36787, 50)
{
W2 var←c87040;
var←c87040.f0 = 8;
var←c87040.f1 = (* (( (ptr) (* (( (ptr) circleData←v27100)+33) ))+2) );
{
word pd349;
pd349 = (* (( (ptr) (* (( (ptr) gf←c91552)+284)/* var←c87008 */ ))+61) );
(void) ( *( (fPt) ((* (ptr) pd349 ))))(f←v13912, (* (( (ptr) gf←c91552)+33) ), var←c87040, pd349);
};
};
SOURCE(36839, 27)
{
word pd350;
pd350 = (* (( (ptr) (* (( (ptr) gf←c91552)+284)/* var←c87008 */ ))+93) );
(void) ( *( (fPt) ((* (ptr) pd350 ))))(f←v13912, (* (( (ptr) gf←c91552)+34) ), 0, 2147483647, pd350);
};
SOURCE(36868, 46)
{
word pd351;
pd351 = (* (( (ptr) (* (( (ptr) gf←c91552)+283)/* var←c86976 */ ))+6) );
(void) ( *( (fPt) ((* (ptr) pd351 ))))(f←v13912, (* (( (ptr) (* (( (ptr) circleData←v27100)+33) ))+8) ), pd351);
};
SOURCE(36916, 25)
{
word pd352;
pd352 = (* (( (ptr) (* (( (ptr) gf←c91552)+284)/* var←c87008 */ ))+93) );
(void) ( *( (fPt) ((* (ptr) pd352 ))))(f←v13912, (* (( (ptr) gf←c91552)+35) ), 0, 2147483647, pd352);
};
SOURCE(36943, 46)
{
word pd353;
pd353 = (* (( (ptr) (* (( (ptr) gf←c91552)+283)/* var←c86976 */ ))+6) );
(void) ( *( (fPt) ((* (ptr) pd353 ))))(f←v13912, (* (( (ptr) circleData←v27100)+11) ), pd353);
};
SOURCE(36991, 24)
{
word pd354;
pd354 = (* (( (ptr) (* (( (ptr) gf←c91552)+284)/* var←c87008 */ ))+93) );
(void) ( *( (fPt) ((* (ptr) pd354 ))))(f←v13912, (* (( (ptr) gf←c91552)+36) ), 0, 2147483647, pd354);
};
SOURCE(37017, 46)
{
word pd355;
pd355 = (* (( (ptr) (* (( (ptr) gf←c91552)+283)/* var←c86976 */ ))+15) );
(void) ( *( (fPt) ((* (ptr) pd355 ))))(f←v13912, (* (( (ptr) (* (( (ptr) circleData←v27100)+33) ))+4) ), pd355);
};
SOURCE(37065, 16)
{
word pd356;
pd356 = (* (( (ptr) (* (( (ptr) gf←c91552)+284)/* var←c87008 */ ))+21) );
(void) ( *( (fPt) ((* (ptr) pd356 ))))(f←v13912, 32, pd356);
};
SOURCE(37083, 167)
if ((0 != (* (( (ptr) (* (( (ptr) circleData←v27100)+33) ))+4) ))) {
SOURCE(37115, 54)
{
word pd357;
pd357 = (* (( (ptr) (* (( (ptr) gf←c91552)+283)/* var←c86976 */ ))+14) );
(void) ( *( (fPt) ((* (ptr) pd357 ))))(f←v13912, (* (( (ptr) (* (( (ptr) circleData←v27100)+33) ))+5) ), pd357);
};
SOURCE(37171, 79)
{
W2 var←c87072;
W2 var←c87104;
W2 var←c01213;
var←c87072.f0 = 8;
var←c87072.f1 = (* (( (ptr) (* (( (ptr) circleData←v27100)+33) ))+6) );
var←c87104.f0 = 8;
var←c87104.f1 = (* (( (ptr) (* (( (ptr) circleData←v27100)+33) ))+7) );
(* (ptr) (word) &var←c01213 ) = 0;
(* (( (ptr) (word) &var←c01213) + 1) ) = 0;
{
word pd358;
pd358 = (* (( (ptr) (* (( (ptr) gf←c91552)+284)/* var←c87008 */ ))+60) );
(void) ( *( (fPt) ((* (ptr) pd358 ))))(f←v13912, (* (( (ptr) gf←c91552)+37) ), var←c87072, var←c87104, var←c01213, pd358)
;
};
};
};
SOURCE(37255, 15)
{
word pd359;
pd359 = (* (( (ptr) (* (( (ptr) gf←c91552)+284)/* var←c87008 */ ))+93) );
(void) ( *( (fPt) ((* (ptr) pd359 ))))(f←v13912, (* (( (ptr) gf←c91552)+38) ), 0, 2147483647, pd359);
};
SOURCE(37272, 23)
{
word pd360;
pd360 = (* (( (ptr) (* (( (ptr) gf←c91552)+284)/* var←c87008 */ ))+93) );
(void) ( *( (fPt) ((* (ptr) pd360 ))))(f←v13912, (* (( (ptr) gf←c91552)+39) ), 0, 2147483647, pd360);
};
SOURCE(37297, 49)
{
word pd361;
pd361 = (* (( (ptr) (* (( (ptr) gf←c91552)+283)/* var←c86976 */ ))+15) );
(void) ( *( (fPt) ((* (ptr) pd361 ))))(f←v13912, (unsigned) ((* (( (ptr) (* (( (ptr) circleData←v27100)+33) ))+25) ) != 0), pd361)
;
};
SOURCE(37348, 101)
if (((* (( (ptr) (* (( (ptr) circleData←v27100)+33) ))+25) ) != 0)) {
SOURCE(37381, 52)
{
word pd362;
pd362 = (* (( (ptr) (* (( (ptr) gf←c91552)+283)/* var←c86976 */ ))+13) );
(void) ( *( (fPt) ((* (ptr) pd362 ))))(f←v13912, (* (( (ptr) (* (( (ptr) circleData←v27100)+33) ))+25) ), pd362);
};
}
else {
SOURCE(37433, 16)
{
word pd363;
pd363 = (* (( (ptr) (* (( (ptr) gf←c91552)+284)/* var←c87008 */ ))+21) );
(void) ( *( (fPt) ((* (ptr) pd363 ))))(f←v13912, 32, pd363);
};
};
SOURCE(37467, 20)
{
word pd364;
pd364 = (* (( (ptr) (* (( (ptr) gf←c91552)+284)/* var←c87008 */ ))+93) );
(void) ( *( (fPt) ((* (ptr) pd364 ))))(f←v13912, (* (( (ptr) gf←c91552)+40) ), 0, 2147483647, pd364);
};
SOURCE(37489, 43)
{
word pd365;
pd365 = (* (( (ptr) (* (( (ptr) gf←c91552)+283)/* var←c86976 */ ))+15) );
(void) ( *( (fPt) ((* (ptr) pd365 ))))(f←v13912, (* (( (ptr) circleData←v27100)+12) ), pd365);
};
}
static word CircleFilein←P1980(f←v13972, version←v14000, router←v14028, camera←v14056)
word f←v13972;
word version←v14000;
word router←v14028;
word camera←v14056;
{
register ptr gf←c91584 = (ptr) &globalframe;
word slice←v14100;
word fwd←v27144 = 1;
word circleData←v27172 = 0;
W2 origin←v27200;
W2 outerPoint←v27228;
word transform←v27256 = 0;
word strokeWidth←v27284;
word strokeColor←v27312 = 0;
word fillColor←v27340 = 0;
/* CircleFilein: */
SOURCE(37537, 2097)
SOURCE(37537, 2097)
slice←v14100 = 0;
SOURCE(37794, 43)
{
word pd366;
pd366 = (* (( (ptr) (* (( (ptr) gf←c91584)+285)/* var←c87168 */ ))+20) );
transform←v27256 = (word) ( *( (fPt) ((* (ptr) pd366 ))))(f←v13972, pd366);
};
SOURCE(37839, 69)
{
W2 var←c0623;
{
W2 var←c87200;
var←c87200.f0 = (* (ptr) &fc85 );
var←c87200.f1 = (* (ptr) &fc85 );
{
word pd367;
pd367 = (* (( (ptr) (* (( (ptr) gf←c91584)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd367 ))))((word) &var←c0623, transform←v27256, var←c87200, pd367);
};
};
origin←v27200 = var←c0623;
};
SOURCE(37910, 73)
{
W2 var←c0625;
{
W2 var←c87232;
var←c87232.f0 = (* (ptr) &fc85 );
var←c87232.f1 = (* (ptr) &fc87 );
{
word pd368;
pd368 = (* (( (ptr) (* (( (ptr) gf←c91584)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd368 ))))((word) &var←c0625, transform←v27256, var←c87232, pd368);
};
};
outerPoint←v27228 = var←c0625;
};
SOURCE(37985, 37)
{
word pd369;
pd369 = (* (( (ptr) (* (( (ptr) gf←c91584)+285)/* var←c87168 */ ))+9) );
(void) ( *( (fPt) ((* (ptr) pd369 ))))(f←v13972, (* (( (ptr) gf←c91584)+41) ), pd369);
};
SOURCE(38024, 35)
{
word pd370;
pd370 = (* (( (ptr) (* (( (ptr) gf←c91584)+285)/* var←c87168 */ ))+27) );
strokeWidth←v27284 = (word) ( *( (fPt) ((* (ptr) pd370 ))))(f←v13972, pd370);
};
SOURCE(38061, 37)
{
word pd371;
pd371 = (* (( (ptr) (* (( (ptr) gf←c91584)+285)/* var←c87168 */ ))+9) );
(void) ( *( (fPt) ((* (ptr) pd371 ))))(f←v13972, (* (( (ptr) gf←c91584)+42) ), pd371);
};
SOURCE(38100, 45)
{
word pd372;
pd372 = (* (( (ptr) (* (( (ptr) gf←c91584)+285)/* var←c87168 */ ))+16) );
strokeColor←v27312 = (word) ( *( (fPt) ((* (ptr) pd372 ))))(f←v13972, version←v14000, pd372);
};
SOURCE(38147, 35)
{
word pd373;
pd373 = (* (( (ptr) (* (( (ptr) gf←c91584)+285)/* var←c87168 */ ))+9) );
(void) ( *( (fPt) ((* (ptr) pd373 ))))(f←v13972, (* (( (ptr) gf←c91584)+43) ), pd373);
};
SOURCE(38184, 43)
{
word pd374;
pd374 = (* (( (ptr) (* (( (ptr) gf←c91584)+285)/* var←c87168 */ ))+16) );
fillColor←v27340 = (word) ( *( (fPt) ((* (ptr) pd374 ))))(f←v13972, version←v14000, pd374);
};
SOURCE(38229, 49)
slice←v14100 = (* (ptr) MakeCircleSlice←P120(origin←v27200, outerPoint←v27228) );
SOURCE(38280, 31)
circleData←v27172 = XR←Narrow((* (( (ptr) slice←v14100)+1) ), (* (( (ptr) gf←c91584)+12) ));
SOURCE(38313, 32)
(* (( (ptr) circleData←v27172)+1) ) = transform←v27256;
SOURCE(38347, 76)
{
word pd375;
pd375 = (* (( (ptr) (* (( (ptr) gf←c91584)+272)/* var←c82880 */ ))+56) );
(void) ( *( (fPt) ((* (ptr) pd375 ))))((word) (( (bPt) circleData←v27172)+8), (* (( (ptr) circleData←v27172)+1) ), pd375)
;
};
SOURCE(38425, 70)
{
word pd376;
pd376 = (* (( (ptr) (* (( (ptr) gf←c91584)+272)/* var←c82880 */ ))+51) );
(* (( (ptr) circleData←v27172)+6) ) = (word) ( *( (fPt) ((* (ptr) pd376 ))))((* ((( (ptr) circleData←v27172)+1)) ), pd376)
;
};
SOURCE(38497, 81)
{
word pd377;
pd377 = (* (( (ptr) (* (( (ptr) gf←c91584)+272)/* var←c82880 */ ))+56) );
(void) ( *( (fPt) ((* (ptr) pd377 ))))((word) (( (bPt) circleData←v27172)+28), (* (( (ptr) circleData←v27172)+6) ), pd377)
;
};
SOURCE(38580, 40)
(* (( (ptr) (* (( (ptr) circleData←v27172)+33) ))+2) ) = strokeWidth←v27284;
SOURCE(38622, 34)
(* (( (ptr) (* (( (ptr) circleData←v27172)+33) ))+8) ) = strokeColor←v27312;
SOURCE(38658, 32)
(* (( (ptr) circleData←v27172)+11) ) = fillColor←v27340;
SOURCE(38692, 344)
{
word x378;
word x380;
if (((
x378 = version←v14000, *(float*)&x378
) >= (
x380 = (* (ptr) &fc379 ), *(float*)&x380
))) {
SOURCE(38744, 34)
{
word pd381;
pd381 = (* (( (ptr) (* (( (ptr) gf←c91584)+285)/* var←c87168 */ ))+9) );
(void) ( *( (fPt) ((* (ptr) pd381 ))))(f←v13972, (* (( (ptr) gf←c91584)+44) ), pd381);
};
SOURCE(38780, 45)
{
word pd382;
pd382 = (* (( (ptr) (* (( (ptr) gf←c91584)+285)/* var←c87168 */ ))+24) );
(* (( (ptr) (* (( (ptr) circleData←v27172)+33) ))+4) ) = (word) ( *( (fPt) ((* (ptr) pd382 ))))(f←v13972, pd382);
};
SOURCE(38827, 179)
if ((0 != (* (( (ptr) (* (( (ptr) circleData←v27172)+33) ))+4) ))) {
SOURCE(38859, 53)
{
word pd383;
pd383 = (* (( (ptr) (* (( (ptr) gf←c91584)+285)/* var←c87168 */ ))+23) );
(* (( (ptr) (* (( (ptr) circleData←v27172)+33) ))+5) ) = (word) ( *( (fPt) ((* (ptr) pd383 ))))(f←v13972, pd383);
};
SOURCE(38914, 45)
{
word pd384;
pd384 = (* (( (ptr) (* (( (ptr) gf←c91584)+285)/* var←c87168 */ ))+27) );
(* (( (ptr) (* (( (ptr) circleData←v27172)+33) ))+6) ) = (word) ( *( (fPt) ((* (ptr) pd384 ))))(f←v13972, pd384);
};
SOURCE(38961, 45)
{
word pd385;
pd385 = (* (( (ptr) (* (( (ptr) gf←c91584)+285)/* var←c87168 */ ))+27) );
(* (( (ptr) (* (( (ptr) circleData←v27172)+33) ))+7) ) = (word) ( *( (fPt) ((* (ptr) pd385 ))))(f←v13972, pd385);
};
};
SOURCE(39011, 25)
{
word pd386;
pd386 = (* (( (ptr) (* (( (ptr) gf←c91584)+285)/* var←c87168 */ ))+10) );
(void) ( *( (fPt) ((* (ptr) pd386 ))))(f←v13972, 41, pd386);
};
};
};
SOURCE(39041, 536)
{
word x387;
word x389;
if (((
x387 = version←v14000, *(float*)&x387
) >= (
x389 = (* (ptr) &fc388 ), *(float*)&x389
))) {
SOURCE(39066, 516)
{
word hasProps←v27384 = 0;
word props←v27412 = 0;
SOURCE(39149, 34)
{
word pd390;
pd390 = (* (( (ptr) (* (( (ptr) gf←c91584)+285)/* var←c87168 */ ))+9) );
(void) ( *( (fPt) ((* (ptr) pd390 ))))(f←v13972, (* (( (ptr) gf←c91584)+45) ), pd390);
};
SOURCE(39185, 32)
{
word pd391;
pd391 = (* (( (ptr) (* (( (ptr) gf←c91584)+285)/* var←c87168 */ ))+24) );
hasProps←v27384 = (word) ( *( (fPt) ((* (ptr) pd391 ))))(f←v13972, pd391);
};
SOURCE(39219, 61)
{
word pd392;
if ((0 != hasProps←v27384)) {
pd392 = (* (( (ptr) (* (( (ptr) gf←c91584)+285)/* var←c87168 */ ))+13) );
props←v27412 = (word) ( *( (fPt) ((* (ptr) pd392 ))))(f←v13972, pd392);
}
else {
props←v27412 = 0;
};
};
SOURCE(39282, 25)
{
word pd393;
pd393 = (* (( (ptr) (* (( (ptr) gf←c91584)+285)/* var←c87168 */ ))+10) );
(void) ( *( (fPt) ((* (ptr) pd393 ))))(f←v13972, 41, pd393);
};
SOURCE(39309, 146)
if ((props←v27412 != 0)) {
SOURCE(39329, 126)
{
register word next←v27540;
next←v27540 = props←v27412;
lab←L100057: ;
if ((next←v27540 != 0)) {
}
else {
goto lab←L100054;
};
SOURCE(39394, 61)
{
word var←c87264;
var←c87264 = XR←NewObject(8, (* (( (ptr) gf←c91584)+24) ));
(* (ptr) var←c87264 ) = (* (ptr) next←v27540 );
(* (( (ptr) var←c87264)+1) ) = (* (( (ptr) (* (( (ptr) circleData←v27172)+33) ))+25) );
(* (( (ptr) (* (( (ptr) circleData←v27172)+33) ))+25) ) = var←c87264;
};
next←v27540 = (* (( (ptr) next←v27540)+1) );
goto lab←L100057;
lab←L100054: ;
};
};
SOURCE(39469, 108)
{
word x394;
word x396;
if (((
x394 = version←v14000, *(float*)&x394
) >= (
x396 = (* (ptr) &fc395 ), *(float*)&x396
))) {
SOURCE(39519, 29)
{
word pd397;
pd397 = (* (( (ptr) (* (( (ptr) gf←c91584)+285)/* var←c87168 */ ))+9) );
(void) ( *( (fPt) ((* (ptr) pd397 ))))(f←v13972, (* (( (ptr) gf←c91584)+47) ), pd397);
};
SOURCE(39550, 27)
{
word pd398;
pd398 = (* (( (ptr) (* (( (ptr) gf←c91584)+285)/* var←c87168 */ ))+24) );
fwd←v27144 = (word) ( *( (fPt) ((* (ptr) pd398 ))))(f←v13972, pd398);
};
};
};
};
};
};
SOURCE(39585, 23)
(void) CircleSetScaling←P420(slice←v14100);
SOURCE(39610, 24)
(* (( (ptr) circleData←v27172)+12) ) = fwd←v27144;
SOURCE(37537, 2097)
return(slice←v14100);
}
static word CircleIsEmptyParts←P2040(sliceD←v14160)
word sliceD←v14160;
{
register ptr gf←c91616 = (ptr) &globalframe;
word var←c14204;
word circleParts←v27668;
/* CircleIsEmptyParts: */
SOURCE(39639, 156)
SOURCE(39639, 156)
var←c14204 = 0;
SOURCE(39717, 47)
circleParts←v27668 = XR←Narrow((* (( (ptr) sliceD←v14160)+1) ), (* (( (ptr) gf←c91616)+13) ));
SOURCE(39766, 29)
return((word) IsEmpty←P4320(circleParts←v27668));
}
static word CircleIsCompleteParts←P2100(sliceD←v14264)
word sliceD←v14264;
{
register ptr gf←c91648 = (ptr) &globalframe;
word var←c14308;
word circleParts←v27712;
/* CircleIsCompleteParts: */
SOURCE(39802, 162)
SOURCE(39802, 162)
var←c14308 = 0;
SOURCE(39883, 47)
circleParts←v27712 = XR←Narrow((* (( (ptr) sliceD←v14264)+1) ), (* (( (ptr) gf←c91648)+13) ));
SOURCE(39932, 32)
return((word) IsComplete←P4260(circleParts←v27712));
}
static word NearestCirclePoint←P2160(slice←v14368, point←v14396)
word slice←v14368;
W2 point←v14396;
{
register ptr gf←c91680 = (ptr) &globalframe;
word index←v14440;
word circleHitData←v27756 = 0;
word success←v27784;
word hitData←v27812 = 0;
word sliceD←v27840;
/* NearestCirclePoint: */
SOURCE(39971, 443)
SOURCE(40117, 59)
sliceD←v27840 = (word) CircleNewParts←P2220(slice←v14368, 0, 6);
SOURCE(40178, 126)
{
W7 var←c87360;
(void) CircleClosestPoint←P3000((word) &var←c87360, sliceD←v27840, point←v14396, (* (ptr) &fc399 ));
success←v27784 = var←c87360.f6;
hitData←v27812 = var←c87360.f5;
};
SOURCE(40306, 20)
if ((0 == success←v27784)) {
SOURCE(40326, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(40333, 31)
circleHitData←v27756 = XR←Narrow(hitData←v27812, (* (( (ptr) gf←c91680)+21) ));
SOURCE(40366, 27)
{
word idx400;
index←v14440 = (
idx400 = (word) ((* (ptr) circleHitData←v27756 ) - 1),
BCK(idx400, 5)
);
};
SOURCE(39971, 443)
return(index←v14440);
}
static word CircleNewParts←P2220(slice←v14520, hitData←v14548, mode←v14576)
word slice←v14520;
word hitData←v14548;
word mode←v14576;
{
register ptr gf←c91712 = (ptr) &globalframe;
word sliceD←v14632;
word circleHitData←v27896;
word circleParts←v27924;
/* CircleNewParts: */
SOURCE(40425, 864)
SOURCE(40425, 864)
sliceD←v14632 = 0;
SOURCE(40535, 46)
circleHitData←v27896 = XR←Narrow(hitData←v14548, (* (( (ptr) gf←c91712)+21) ));
SOURCE(40583, 69)
circleParts←v27924 = XR←NewObject(24, (* (( (ptr) gf←c91712)+13) ));
SOURCE(40654, 519)
{
word var←c87424;
var←c87424 = mode←v14576;
switch (var←c87424) {
case 0:
SOURCE(40684, 140)
if (( (int)((* (ptr) circleHitData←v27896 ) - 1) != (int) (word) -1)) {
SOURCE(40715, 53)
{
word idx401;
(* (( (ptr) circleParts←v27924)+(
idx401 = (word) ((* (ptr) circleHitData←v27896 ) - 1),
BCK(idx401, 5)
)) ) = 1;
};
}
else {
SOURCE(40768, 56)
if ((0 != (* (( (ptr) circleHitData←v27896)+3) ))) {
SOURCE(40798, 26)
(* (( (ptr) circleParts←v27924)+5) ) = 1;
};
};
break;
case 1:
SOURCE(40840, 217)
if (( (int)((* (ptr) circleHitData←v27896 ) - 1) != (int) (word) -1)) {
SOURCE(40871, 53)
{
word idx402;
(* (( (ptr) circleParts←v27924)+(
idx402 = (word) ((* (ptr) circleHitData←v27896 ) - 1),
BCK(idx402, 5)
)) ) = 1;
};
}
else {
SOURCE(40924, 133)
if ((0 != (* (( (ptr) circleHitData←v27896)+3) ))) {
SOURCE(40954, 105)
{
word index←v27968;
SOURCE(40956, 66)
index←v27968 = ((word) NearestCirclePoint←P2160(slice←v14520, (* (W2Pt) (( (ptr) circleHitData←v27896)+1) )) + 1);
SOURCE(41024, 33)
(* (( (ptr) circleParts←v27924)+BCK((index←v27968 - 1), 5)) ) = 1;
};
};
};
break;
case 2:
SOURCE(41081, 31)
XR←FillWords(&(* (W5Pt) (circleParts←v27924)), 5, 1);
break;
case 3: case 5: case 7: case 6:
SOURCE(41148, 25)
(void) MakeComplete←P4200(circleParts←v27924);
break;
case 8:
break;
default:
SOURCE(41226, 5)
(void) XR←RaiseUnnamedError();
break;
};
};
SOURCE(41233, 56)
{
word pd403;
pd403 = (* (( (ptr) (* (( (ptr) gf←c91712)+267)/* var←c82368 */ ))+8) );
sliceD←v14632 = (word) ( *( (fPt) ((* (ptr) pd403 ))))(slice←v14520, circleParts←v27924, pd403);
};
SOURCE(40425, 864)
return(sliceD←v14632);
}
static word CircleUnionParts←P2280(partsA←v14692, partsB←v14720)
word partsA←v14692;
word partsB←v14720;
{
register ptr gf←c91744 = (ptr) &globalframe;
word aPlusB←v14764;
word circlePartsA←v28032;
word circlePartsB←v28060;
word newParts←v28088 = 0;
/* CircleUnionParts: */
SOURCE(41295, 815)
SOURCE(41295, 815)
aPlusB←v14764 = 0;
SOURCE(41407, 48)
circlePartsA←v28032 = XR←Narrow((* (( (ptr) partsA←v14692)+1) ), (* (( (ptr) gf←c91744)+13) ));
SOURCE(41457, 48)
circlePartsB←v28060 = XR←Narrow((* (( (ptr) partsB←v14720)+1) ), (* (( (ptr) gf←c91744)+13) ));
SOURCE(41530, 41)
if (((* (( (ptr) partsA←v14692)+1) ) == 0)) {
SOURCE(41557, 14)
return(partsB←v14720);
};
SOURCE(41573, 41)
if (((* (( (ptr) partsB←v14720)+1) ) == 0)) {
SOURCE(41600, 14)
return(partsA←v14692);
};
SOURCE(41616, 44)
if ((0 != (word) IsEmpty←P4320(circlePartsA←v28032))) {
SOURCE(41646, 14)
return(partsB←v14720);
};
SOURCE(41662, 44)
if ((0 != (word) IsEmpty←P4320(circlePartsB←v28060))) {
SOURCE(41692, 14)
return(partsA←v14692);
};
SOURCE(41708, 47)
if ((0 != (word) IsComplete←P4260(circlePartsA←v28032))) {
SOURCE(41741, 14)
return(partsA←v14692);
};
SOURCE(41757, 47)
if ((0 != (word) IsComplete←P4260(circlePartsB←v28060))) {
SOURCE(41790, 14)
return(partsB←v14720);
};
SOURCE(41807, 54)
newParts←v28088 = XR←NewObject(24, (* (( (ptr) gf←c91744)+13) ));
SOURCE(41863, 111)
{
register word i←v28132 = 0;
lab←L100061: ;
SOURCE(41902, 72)
if ((0 != (* (( (ptr) circlePartsA←v28032)+i←v28132) ))) {
(* (( (ptr) newParts←v28088)+i←v28132) ) = (unsigned) 1;
}
else {
(* (( (ptr) newParts←v28088)+i←v28132) ) = (unsigned) (0 != (* (( (ptr) circlePartsB←v28060)+i←v28132) ));
};
if ((i←v28132 >= 4)) {
goto lab←L100058;
};
i←v28132 = (i←v28132 + 1);
goto lab←L100061;
lab←L100058: ;
};
SOURCE(41985, 63)
if ((0 != (* (( (ptr) circlePartsA←v28032)+5) ))) {
(* (( (ptr) newParts←v28088)+5) ) = (unsigned) 1;
}
else {
(* (( (ptr) newParts←v28088)+5) ) = (unsigned) (0 != (* (( (ptr) circlePartsB←v28060)+5) ));
};
SOURCE(42050, 60)
{
word pd404;
pd404 = (* (( (ptr) (* (( (ptr) gf←c91744)+267)/* var←c82368 */ ))+8) );
aPlusB←v14764 = (word) ( *( (fPt) ((* (ptr) pd404 ))))((* (ptr) partsA←v14692 ), newParts←v28088, pd404);
};
SOURCE(41295, 815)
return(aPlusB←v14764);
}
static word CircleDiffParts←P2340(partsA←v14824, partsB←v14852)
word partsA←v14824;
word partsB←v14852;
{
register ptr gf←c91776 = (ptr) &globalframe;
word aMinusB←v14896;
word circlePartsA←v28176;
word circlePartsB←v28204;
word newParts←v28232 = 0;
/* CircleDiffParts: */
SOURCE(42116, 680)
SOURCE(42116, 680)
aMinusB←v14896 = 0;
SOURCE(42228, 48)
circlePartsA←v28176 = XR←Narrow((* (( (ptr) partsA←v14824)+1) ), (* (( (ptr) gf←c91776)+13) ));
SOURCE(42278, 48)
circlePartsB←v28204 = XR←Narrow((* (( (ptr) partsB←v14852)+1) ), (* (( (ptr) gf←c91776)+13) ));
SOURCE(42351, 37)
if ((partsA←v14824 == 0) || (partsB←v14852 == 0)) {
SOURCE(42388, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(42395, 63)
if (((* (( (ptr) partsA←v14824)+1) ) == 0) || ((* (( (ptr) partsB←v14852)+1) ) == 0)) {
SOURCE(42444, 14)
return(partsA←v14824);
};
SOURCE(42460, 54)
newParts←v28232 = XR←NewObject(24, (* (( (ptr) gf←c91776)+13) ));
SOURCE(42516, 127)
{
register word i←v28276 = 0;
lab←L100065: ;
SOURCE(42555, 88)
if ((0 != (* (( (ptr) circlePartsB←v28204)+i←v28276) ))) {
(* (( (ptr) newParts←v28232)+i←v28276) ) = 0;
}
else {
(* (( (ptr) newParts←v28232)+i←v28276) ) = (* (( (ptr) circlePartsA←v28176)+i←v28276) );
};
if ((i←v28276 >= 4)) {
goto lab←L100062;
};
i←v28276 = (i←v28276 + 1);
goto lab←L100065;
lab←L100062: ;
};
SOURCE(42654, 79)
if ((0 != (* (( (ptr) circlePartsB←v28204)+5) ))) {
(* (( (ptr) newParts←v28232)+5) ) = 0;
}
else {
(* (( (ptr) newParts←v28232)+5) ) = (* (( (ptr) circlePartsA←v28176)+5) );
};
SOURCE(42735, 61)
{
word pd405;
pd405 = (* (( (ptr) (* (( (ptr) gf←c91776)+267)/* var←c82368 */ ))+8) );
aMinusB←v14896 = (word) ( *( (fPt) ((* (ptr) pd405 ))))((* (ptr) partsA←v14824 ), newParts←v28232, pd405);
};
SOURCE(42116, 680)
return(aMinusB←v14896);
}
static void CircleMovingParts←P2400(formal←c0687, slice←v14956, selectedParts←v14984, editConstraints←v15012, bezierDrag←v15040)
word formal←c0687;
word slice←v14956;
word selectedParts←v14984;
word editConstraints←v15012;
W5 bezierDrag←v15040;
{
W6 var←c91808;
register ptr gf←c91840 = (ptr) &globalframe;
word background←v15084;
word overlay←v15112;
word rubber←v15140;
word drag←v15168;
/* declaration of var←c87520 skipped */
word circleParts←v28348;
word nullD←v28376;
word newParts←v28404 = 0;
word backgroundParts←v28432 = 0;
/* CircleMovingParts: */
SOURCE(42802, 1549)
{
word tmpAddr406;
tmpAddr406 = (word) (( (ptr) &var←c91808)+4)/* var←c87520 */ ;
(* (ptr) tmpAddr406 ) = ( ((word) (fPt) SomeCPMoving←P8136) );
(* (( (ptr) tmpAddr406) + 1) ) = 1;
};
SOURCE(42802, 1549)
background←v15084 = 0;
SOURCE(42802, 1549)
overlay←v15112 = 0;
SOURCE(42802, 1549)
rubber←v15140 = 0;
SOURCE(42802, 1549)
drag←v15168 = 0;
SOURCE(43192, 48)
circleParts←v28348 = XR←Narrow(selectedParts←v14984, (* (( (ptr) gf←c91840)+13) ));
SOURCE(43242, 45)
nullD←v28376 = (* (( (ptr) slice←v14956)+11) );
SOURCE(43343, 83)
if ((0 != (word) IsEmpty←P4320(circleParts←v28348))) {
SOURCE(43374, 44)
{
word var←c87552;
var←c87552 = nullD←v28376;
drag←v15168 = nullD←v28376;
rubber←v15140 = var←c87552;
overlay←v15112 = var←c87552;
background←v15084 = var←c87552;
};
SOURCE(43420, 6)
goto lab←L100066;
};
SOURCE(43431, 135)
if ((0 != (word) IsComplete←P4260(circleParts←v28348))) {
SOURCE(43465, 37)
{
word var←c87584;
var←c87584 = nullD←v28376;
rubber←v15140 = nullD←v28376;
overlay←v15112 = var←c87584;
background←v15084 = var←c87584;
};
SOURCE(43504, 54)
{
word pd407;
pd407 = (* (( (ptr) (* (( (ptr) gf←c91840)+267)/* var←c82368 */ ))+8) );
drag←v15168 = (word) ( *( (fPt) ((* (ptr) pd407 ))))(slice←v14956, circleParts←v28348, pd407);
};
SOURCE(43560, 6)
goto lab←L100066;
};
SOURCE(43572, 53)
newParts←v28404 = XR←NewObject(24, (* (( (ptr) gf←c91840)+13) ));
SOURCE(43627, 724)
if ((0 != (* (ptr) circleParts←v28348 ))) {
SOURCE(43660, 28)
XR←FillWords(&(* (W5Pt) (newParts←v28404)), 5, 1);
SOURCE(43690, 23)
(* (( (ptr) newParts←v28404)+5) ) = 1;
SOURCE(43715, 37)
{
word var←c87648;
var←c87648 = nullD←v28376;
rubber←v15140 = nullD←v28376;
overlay←v15112 = var←c87648;
background←v15084 = var←c87648;
};
SOURCE(43754, 51)
{
word pd408;
pd408 = (* (( (ptr) (* (( (ptr) gf←c91840)+267)/* var←c82368 */ ))+8) );
drag←v15168 = (word) ( *( (fPt) ((* (ptr) pd408 ))))(slice←v14956, newParts←v28404, pd408);
};
}
else {
SOURCE(43814, 537)
if ((0 != (word) SomeCPMoving←P8136(circleParts←v28348, (word) (( (bPt) &var←c91808)+16)/* var←c87520 */ ))) {
SOURCE(43850, 22)
overlay←v15112 = nullD←v28376;
drag←v15168 = nullD←v28376;
SOURCE(43874, 28)
XR←FillWords(&(* (W5Pt) (newParts←v28404)), 5, 1);
SOURCE(43904, 27)
(* (ptr) newParts←v28404 ) = 0;
SOURCE(43933, 23)
(* (( (ptr) newParts←v28404)+5) ) = 1;
SOURCE(43958, 53)
{
word pd409;
pd409 = (* (( (ptr) (* (( (ptr) gf←c91840)+267)/* var←c82368 */ ))+8) );
rubber←v15140 = (word) ( *( (fPt) ((* (ptr) pd409 ))))(slice←v14956, newParts←v28404, pd409);
};
SOURCE(44013, 60)
backgroundParts←v28432 = XR←NewObject(24, (* (( (ptr) gf←c91840)+13) ));
SOURCE(44075, 33)
(* (ptr) backgroundParts←v28432 ) = 1;
SOURCE(44110, 64)
{
word pd410;
pd410 = (* (( (ptr) (* (( (ptr) gf←c91840)+267)/* var←c82368 */ ))+8) );
background←v15084 = (word) ( *( (fPt) ((* (ptr) pd410 ))))(slice←v14956, backgroundParts←v28432, pd410);
};
}
else {
SOURCE(44206, 28)
XR←FillWords(&(* (W5Pt) (newParts←v28404)), 5, 1);
SOURCE(44236, 23)
(* (( (ptr) newParts←v28404)+5) ) = 1;
SOURCE(44261, 57)
{
word pd411;
pd411 = (* (( (ptr) (* (( (ptr) gf←c91840)+267)/* var←c82368 */ ))+8) );
background←v15084 = (word) ( *( (fPt) ((* (ptr) pd411 ))))(slice←v14956, newParts←v28404, pd411);
};
SOURCE(44320, 31)
{
word var←c87744;
var←c87744 = nullD←v28376;
drag←v15168 = nullD←v28376;
rubber←v15140 = var←c87744;
overlay←v15112 = var←c87744;
};
};
};
/* removed tail goto */
lab←L100066: ;
(* (ptr) formal←c0687 ) = background←v15084;
(* (( (ptr) formal←c0687)+1) ) = overlay←v15112;
(* (( (ptr) formal←c0687)+2) ) = rubber←v15140;
(* (( (ptr) formal←c0687)+3) ) = drag←v15168;
return;
}
static word SomeCPMoving←P8136(circleParts←v28508, formal←c91872)
word circleParts←v28508;
word formal←c91872;
{
word var←c28552;
formal←c91872 = (formal←c91872 - 16);
/* SomeCPMoving: */
SOURCE(43014, 173)
SOURCE(43014, 173)
var←c28552 = 0;
SOURCE(43087, 73)
{
register word i←v28580 = 1;
if (( (int)i←v28580 > (int)4)) {
goto lab←L100067;
};
lab←L100070: ;
SOURCE(43115, 45)
if ((0 != (* (( (ptr) circleParts←v28508)+BCK(i←v28580, 5)) ))) {
SOURCE(43148, 12)
return(1);
};
if (( (int)i←v28580 >= (int)4)) {
goto lab←L100067;
};
i←v28580 = (i←v28580 + 1);
goto lab←L100070;
lab←L100067: ;
};
SOURCE(43174, 13)
return(0);
}
static word CircleAugmentParts←P2460(sliceD←v15228, selectClass←v15256)
word sliceD←v15228;
word selectClass←v15256;
{
word more←v15300;
/* CircleAugmentParts: */
SOURCE(44360, 129)
SOURCE(44360, 129)
more←v15300 = 0;
SOURCE(44476, 13)
more←v15300 = sliceD←v15228;
SOURCE(44360, 129)
return(more←v15300);
}
static word CircleAlterParts←P2520(sliceD←v15360, action←v15388)
word sliceD←v15360;
word action←v15388;
{
register ptr gf←c91904 = (ptr) &globalframe;
word newD←v15432;
word circleParts←v28624;
word newParts←v28652 = 0;
word selectedCorner←v28680 = (word) -1;
/* CircleAlterParts: */
SOURCE(44495, 952)
SOURCE(44495, 952)
newD←v15432 = 0;
SOURCE(44594, 47)
circleParts←v28624 = XR←Narrow((* (( (ptr) sliceD←v15360)+1) ), (* (( (ptr) gf←c91904)+13) ));
SOURCE(44692, 70)
newParts←v28652 = XR←NewObject(24, (* (( (ptr) gf←c91904)+13) ));
SOURCE(44764, 93)
{
register word i←v28724 = 0;
if (( (int)i←v28724 > (int)4)) {
goto lab←L100071;
};
lab←L100074: ;
SOURCE(44806, 51)
if ((0 != (* (( (ptr) circleParts←v28624)+BCK(i←v28724, 5)) ))) {
SOURCE(44839, 18)
selectedCorner←v28680 = i←v28724;
SOURCE(44859, 4)
goto lab←L100072;
};
if (( (int)i←v28724 >= (int)4)) {
goto lab←L100071;
};
i←v28724 = (i←v28724 + 1);
goto lab←L100074;
lab←L100071: ;
lab←L100072: ;
};
SOURCE(44877, 464)
{
word var←c87808;
var←c87808 = action←v15388;
if ((var←c87808 == (* (( (ptr) gf←c91904)+48) ))) {
SOURCE(44910, 126)
if (( (int)selectedCorner←v28680 > (int) (word) -1)) {
SOURCE(44940, 55)
selectedCorner←v28680 = IOP2( % , (int)(selectedCorner←v28680 + 1), (int)5);
SOURCE(44997, 39)
(* (( (ptr) newParts←v28652)+BCK(selectedCorner←v28680, 5)) ) = 1;
}
else {
SOURCE(45045, 5)
(void) XR←RaiseUnnamedError();
};
goto endif0412;
};
if ((var←c87808 == (* (( (ptr) gf←c91904)+49) ))) {
SOURCE(45070, 142)
if (( (int)selectedCorner←v28680 > (int) (word) -1)) {
SOURCE(45100, 71)
selectedCorner←v28680 = IOP2( % , (int)(selectedCorner←v28680 + 4), (int)5);
SOURCE(45173, 39)
(* (( (ptr) newParts←v28652)+BCK(selectedCorner←v28680, 5)) ) = 1;
}
else {
SOURCE(45221, 5)
(void) XR←RaiseUnnamedError();
};
goto endif0412;
};
if ((var←c87808 == (* (( (ptr) gf←c91904)+50) ))) {
SOURCE(45240, 53)
{
word pd413;
pd413 = (* (( (ptr) (* (( (ptr) gf←c91904)+276)/* var←c83456 */ ))+29) );
return((word) ( *( (fPt) ((* (ptr) pd413 ))))((* (ptr) sliceD←v15360 ), 0, 6, pd413));
};
};
if ((var←c87808 == (* (( (ptr) gf←c91904)+51) )) || (var←c87808 == (* (( (ptr) gf←c91904)+52) ))) {
SOURCE(45330, 11)
return(0);
};
SOURCE(45382, 5)
(void) XR←RaiseUnnamedError();
goto endif0412;
endif0412: ;
};
SOURCE(45389, 58)
{
word pd414;
pd414 = (* (( (ptr) (* (( (ptr) gf←c91904)+267)/* var←c82368 */ ))+8) );
newD←v15432 = (word) ( *( (fPt) ((* (ptr) pd414 ))))((* (ptr) sliceD←v15360 ), newParts←v28652, pd414);
};
SOURCE(44495, 952)
return(newD←v15432);
}
static word CirclePointsInDescriptor←P2580(sliceD←v15492)
word sliceD←v15492;
{
register ptr gf←c91936 = (ptr) &globalframe;
word pointGen←v15536;
word parts←v28768;
/* CirclePointsInDescriptor: */
SOURCE(45454, 302)
SOURCE(45454, 302)
pointGen←v15536 = 0;
SOURCE(45550, 41)
parts←v28768 = XR←Narrow((* (( (ptr) sliceD←v15492)+1) ), (* (( (ptr) gf←c91936)+13) ));
SOURCE(45593, 56)
{
word var←c87872;
var←c87872 = XR←NewObject(16, (* (( (ptr) gf←c91936)+18) ));
(* (ptr) var←c87872 ) = sliceD←v15492;
pointGen←v15536 = var←c87872;
};
SOURCE(45651, 105)
{
register word index←v28812 = 0;
lab←L100078: ;
SOURCE(45694, 62)
if ((0 != (* (( (ptr) parts←v28768)+index←v28812) ))) {
SOURCE(45723, 33)
(* (( (ptr) pointGen←v15536)+1) ) = ((* (( (ptr) pointGen←v15536)+1) ) + 1);
};
if ((index←v28812 >= 4)) {
goto lab←L100075;
};
index←v28812 = (index←v28812 + 1);
goto lab←L100078;
lab←L100075: ;
};
SOURCE(45454, 302)
return(pointGen←v15536);
}
static void CircleWalkPointsInDescriptor←P2640(sliceD←v15596, walkProc←v15624)
word sliceD←v15596;
word walkProc←v15624;
{
register ptr gf←c91968 = (ptr) &globalframe;
word parts←v28856;
word circleData←v28884;
word done←v28912 = 0;
/* CircleWalkPointsInDescriptor: */
SOURCE(45771, 348)
SOURCE(45861, 41)
parts←v28856 = XR←Narrow((* (( (ptr) sliceD←v15596)+1) ), (* (( (ptr) gf←c91968)+13) ));
SOURCE(45904, 50)
circleData←v28884 = XR←Narrow((* (( (ptr) (* (ptr) sliceD←v15596 ))+1) ), (* (( (ptr) gf←c91968)+12) ));
SOURCE(45976, 143)
{
register word index←v28956 = 0;
lab←L100082: ;
SOURCE(46019, 79)
if ((0 != (* (( (ptr) parts←v28856)+index←v28956) ))) {
SOURCE(46048, 50)
{
W2 var←c87904;
(void) GetCirclePoint←P2880((word) &var←c87904, circleData←v28884, index←v28956);
done←v28912 = (word) ( *( (fPt) ((* (ptr) walkProc←v15624 ))))(var←c87904, walkProc←v15624);
};
};
SOURCE(46100, 19)
if ((0 != done←v28912)) {
SOURCE(46113, 6)
return;
};
if ((index←v28956 >= 4)) {
goto lab←L100079;
};
index←v28956 = (index←v28956 + 1);
goto lab←L100082;
lab←L100079: ;
};
}
static word CircleSegmentsInDescriptor←P2700(sliceD←v15684)
word sliceD←v15684;
{
register ptr gf←c92000 = (ptr) &globalframe;
word segGen←v15728;
word parts←v29000;
/* CircleSegmentsInDescriptor: */
SOURCE(46134, 312)
SOURCE(46134, 312)
segGen←v15728 = 0;
SOURCE(46232, 41)
parts←v29000 = XR←Narrow((* (( (ptr) sliceD←v15684)+1) ), (* (( (ptr) gf←c92000)+13) ));
SOURCE(46275, 125)
{
word var←c87936;
var←c87936 = XR←NewObject(32, (* (( (ptr) gf←c92000)+16) ));
(* (( (ptr) var←c87936)+6) ) = sliceD←v15684;
segGen←v15728 = var←c87936;
};
SOURCE(46402, 44)
if ((0 != (* (( (ptr) parts←v29000)+5) ))) {
(* (( (ptr) segGen←v15728)+1) ) = 1;
}
else {
(* (( (ptr) segGen←v15728)+1) ) = 0;
};
SOURCE(46134, 312)
return(segGen←v15728);
}
static word CircleWalkSegments←P2760(slice←v15788, walkProc←v15816)
word slice←v15788;
word walkProc←v15816;
{
register ptr gf←c92032 = (ptr) &globalframe;
word sliceD←v15860;
word circleData←v29044;
word circleParts←v29072;
/* CircleWalkSegments: */
SOURCE(46452, 444)
SOURCE(46452, 444)
sliceD←v15860 = 0;
SOURCE(46550, 43)
circleData←v29044 = XR←Narrow((* (( (ptr) slice←v15788)+1) ), (* (( (ptr) gf←c92032)+12) ));
SOURCE(46595, 86)
circleParts←v29072 = XR←NewObject(24, (* (( (ptr) gf←c92032)+13) ));
SOURCE(46683, 68)
(* (( (ptr) circleParts←v29072)+5) ) = (word) ( *( (fPt) ((* (ptr) walkProc←v15816 ))))((* (( (ptr) circleData←v29044)+33)
), (* (( (ptr) circleData←v29044)+1) ), walkProc←v15816);
SOURCE(46753, 59)
if ((0 != (* (( (ptr) circleParts←v29072)+5) ))) {
SOURCE(46781, 31)
XR←FillWords(&(* (W5Pt) (circleParts←v29072)), 5, 1);
};
SOURCE(46840, 56)
{
word pd415;
pd415 = (* (( (ptr) (* (( (ptr) gf←c92032)+267)/* var←c82368 */ ))+8) );
sliceD←v15860 = (word) ( *( (fPt) ((* (ptr) pd415 ))))(slice←v15788, circleParts←v29072, pd415);
};
SOURCE(46452, 444)
return(sliceD←v15860);
}
static void CircleNextPoint←P2820(formal←c0732, slice←v15920, pointGen←v15948)
word formal←c0732;
word slice←v15920;
word pointGen←v15948;
{
register ptr gf←c92064 = (ptr) &globalframe;
W3 pointAndDone←v15992;
word sliceD←v29116;
word circleData←v29144;
/* CircleNextPoint: */
SOURCE(46902, 630)
SOURCE(47006, 41)
sliceD←v29116 = (* (ptr) pointGen←v15948 );
SOURCE(47049, 50)
circleData←v29144 = XR←Narrow((* (( (ptr) (* (ptr) sliceD←v29116 ))+1) ), (* (( (ptr) gf←c92064)+12) ));
SOURCE(47101, 431)
if ((pointGen←v15948 == 0) || ((* (( (ptr) pointGen←v15948)+1) ) == 0)) {
SOURCE(47145, 24)
pointAndDone←v15992.f2 = 1;
SOURCE(47171, 6)
goto lab←L100083;
}
else {
SOURCE(47186, 348)
{
word parts←v29188;
register word index←v29216;
SOURCE(47188, 41)
parts←v29188 = XR←Narrow((* (( (ptr) sliceD←v29116)+1) ), (* (( (ptr) gf←c92064)+13) ));
SOURCE(47243, 25)
pointAndDone←v15992.f2 = 0;
SOURCE(47270, 100)
index←v29216 = (* (( (ptr) pointGen←v15948)+2) );
lab←L100087: ;
if ((index←v29216 < 4)) {
}
else {
goto lab←L100084;
};
SOURCE(47341, 29)
if ((0 != (* (( (ptr) parts←v29188)+BCK(index←v29216, 5)) ))) {
SOURCE(47370, 4)
goto lab←L100085;
};
index←v29216 = (index←v29216 + 1);
goto lab←L100087;
lab←L100084: ;
lab←L100085: ;
SOURCE(47417, 54)
(void) GetCirclePoint←P2880((word) &pointAndDone←v15992, circleData←v29144, index←v29216);
SOURCE(47473, 24)
(* (( (ptr) pointGen←v15948)+2) ) = (index←v29216 + 1);
SOURCE(47499, 33)
{
word idx416;
(* (( (ptr) pointGen←v15948)+1) ) = (
idx416 = (word) ((* (( (ptr) pointGen←v15948)+1) ) - 1),
SGNCK(idx416)
);
};
};
};
/* removed tail goto */
lab←L100083: ;
(* (W3Pt) formal←c0732 ) = pointAndDone←v15992;
return;
}
static void GetCirclePoint←P2880(formal←c0749, circleData←v16052, index←v16080)
word formal←c0749;
word circleData←v16052;
word index←v16080;
{
register ptr gf←c92096 = (ptr) &globalframe;
W2 point←v16124;
word t←v29260;
/* GetCirclePoint: */
SOURCE(47541, 463)
SOURCE(47653, 40)
t←v29260 = (* (( (ptr) circleData←v16052)+1) );
SOURCE(47695, 309)
{
word var←c88000;
var←c88000 = index←v16080;
switch (var←c88000) {
case 0:
SOURCE(47718, 32)
{
W2 var←c0739;
{
W2 var←c88032;
var←c88032.f0 = (* (ptr) &fc85 );
var←c88032.f1 = (* (ptr) &fc85 );
{
word pd417;
pd417 = (* (( (ptr) (* (( (ptr) gf←c92096)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd417 ))))((word) &var←c0739, t←v29260, var←c88032, pd417);
};
};
point←v16124 = var←c0739;
};
break;
case 1:
SOURCE(47767, 33)
{
W2 var←c0741;
{
W2 var←c88064;
var←c88064.f0 = (* (ptr) &fc88 );
var←c88064.f1 = (* (ptr) &fc85 );
{
word pd418;
pd418 = (* (( (ptr) (* (( (ptr) gf←c92096)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd418 ))))((word) &var←c0741, t←v29260, var←c88064, pd418);
};
};
point←v16124 = var←c0741;
};
break;
case 2:
SOURCE(47815, 32)
{
W2 var←c0743;
{
W2 var←c88096;
var←c88096.f0 = (* (ptr) &fc85 );
var←c88096.f1 = (* (ptr) &fc87 );
{
word pd419;
pd419 = (* (( (ptr) (* (( (ptr) gf←c92096)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd419 ))))((word) &var←c0743, t←v29260, var←c88096, pd419);
};
};
point←v16124 = var←c0743;
};
break;
case 3:
SOURCE(47861, 32)
{
W2 var←c0745;
{
W2 var←c88128;
var←c88128.f0 = (* (ptr) &fc87 );
var←c88128.f1 = (* (ptr) &fc85 );
{
word pd420;
pd420 = (* (( (ptr) (* (( (ptr) gf←c92096)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd420 ))))((word) &var←c0745, t←v29260, var←c88128, pd420);
};
};
point←v16124 = var←c0745;
};
break;
case 4:
SOURCE(47909, 33)
{
W2 var←c0747;
{
W2 var←c88160;
var←c88160.f0 = (* (ptr) &fc85 );
var←c88160.f1 = (* (ptr) &fc88 );
{
word pd421;
pd421 = (* (( (ptr) (* (( (ptr) gf←c92096)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd421 ))))((word) &var←c0747, t←v29260, var←c88160, pd421);
};
};
point←v16124 = var←c0747;
};
break;
default:
SOURCE(47965, 39)
{
word var←c0748;
var←c0748 = (* (( (ptr) gf←c92096)+55) );
(void) (XR←RaiseSignal((* (( (ptr) gf←c92096)+4)/* Problem←v5072 */ ), 0, (word) &var←c0748));
};
break;
};
};
/* removed tail goto */
(* (W2Pt) formal←c0749 ) = point←v16124;
return;
}
static void CircleNextSegment←P2940(formal←c0756, slice←v16184, segGen←v16212)
word formal←c0756;
word slice←v16184;
word segGen←v16212;
{
register ptr gf←c92128 = (ptr) &globalframe;
word seg←v16256;
word transform←v16284;
/* CircleNextSegment: */
SOURCE(48010, 386)
SOURCE(48010, 386)
seg←v16256 = 0;
SOURCE(48010, 386)
transform←v16284 = 0;
SOURCE(48129, 267)
if ((segGen←v16212 == 0) || ((* (( (ptr) segGen←v16212)+1) ) == 0)) {
SOURCE(48167, 22)
seg←v16256 = 0;
transform←v16284 = 0;
goto lab←L100089;
}
else {
SOURCE(48189, 209)
{
word circleData←v29304;
SOURCE(48191, 57)
circleData←v29304 = XR←Narrow((* (( (ptr) (* (ptr) (* (( (ptr) segGen←v16212)+6) ) ))+1) ), (* (( (ptr) gf←c92128)+12) ))
;
SOURCE(48250, 61)
if (((* (( (ptr) segGen←v16212)+1) ) != 1)) {
SOURCE(48272, 39)
{
word var←c0755;
var←c0755 = (* (( (ptr) gf←c92128)+55) );
(void) (XR←RaiseSignal((* (( (ptr) gf←c92128)+4)/* Problem←v5072 */ ), 0, (word) &var←c0755));
};
};
SOURCE(48313, 20)
seg←v16256 = (* (( (ptr) circleData←v29304)+33) );
SOURCE(48335, 32)
transform←v16284 = (* (( (ptr) circleData←v29304)+1) );
SOURCE(48369, 27)
{
word idx422;
(* (( (ptr) segGen←v16212)+1) ) = (
idx422 = (word) ((* (( (ptr) segGen←v16212)+1) ) - 1),
SGNCK(idx422)
);
};
};
};
/* removed tail goto */
lab←L100089: ;
(* (ptr) formal←c0756 ) = seg←v16256;
(* (( (ptr) formal←c0756)+1) ) = transform←v16284;
return;
}
static void CircleClosestPoint←P3000(formal←c0781, sliceD←v16344, testPoint←v16372, tolerance←v16400)
word formal←c0781;
word sliceD←v16344;
W2 testPoint←v16372;
word tolerance←v16400;
{
register ptr gf←c92160 = (ptr) &globalframe;
W2 bestPoint←v16444;
word bestDist←v16472;
W2 bestNormal←v16500;
word hitData←v16528;
word success←v16556;
/* CircleClosestPoint: */
SOURCE(48405, 1433)
SOURCE(48405, 1433)
bestPoint←v16444.f0 = (* (ptr) &fc85 );
bestPoint←v16444.f1 = (* (ptr) &fc85 );
SOURCE(48405, 1433)
bestDist←v16472 = (* (ptr) &fc85 );
SOURCE(48405, 1433)
bestNormal←v16500.f0 = (* (ptr) &fc85 );
bestNormal←v16500.f1 = (* (ptr) &fc88 );
SOURCE(48405, 1433)
hitData←v16528 = 0;
SOURCE(48405, 1433)
success←v16556 = 0;
{
word var←c88192;
SOURCE(48628, 107)
{
word pd424;
{
word pd423;
pd423 = (* (( (ptr) (* (( (ptr) gf←c92160)+276)/* var←c83456 */ ))+9) );
var←c88192 = (word) ( *( (fPt) ((* (ptr) pd423 ))))((* (ptr) sliceD←v16344 ), 0, pd423);
};
pd424 = (* (( (ptr) (* (( (ptr) gf←c92160)+271)/* var←c82752 */ ))+22) );
if ((0 == (word) ( *( (fPt) ((* (ptr) pd424 ))))(testPoint←v16372, var←c88192, tolerance←v16400, pd424))) {
SOURCE(48729, 6)
goto lab←L100090;
};
};
SOURCE(48738, 1109)
{
W10 points←v29348;
word nextDist2←v29376;
word bestDist2←v29404;
word tolerance2←v29432;
word foundIndex←v29460 = 0;
word circleData←v29488;
word circleHitData←v29516 = 0;
word circleParts←v29544;
W2 nextPoint←v29572;
SOURCE(48808, 51)
nextDist2←v29376 = (* (ptr) &fc399 );
bestDist2←v29404 = (* (ptr) &fc399 );
SOURCE(48861, 38)
{
word x425;
word x426;
*(float*)&tolerance2←v29432 = (
x425 = tolerance←v16400, *(float*)&x425
) * (
x426 = tolerance←v16400, *(float*)&x426
);
};
SOURCE(48926, 50)
circleData←v29488 = XR←Narrow((* (( (ptr) (* (ptr) sliceD←v16344 ))+1) ), (* (( (ptr) gf←c92160)+12) ));
SOURCE(49008, 47)
circleParts←v29544 = XR←Narrow((* (( (ptr) sliceD←v16344)+1) ), (* (( (ptr) gf←c92160)+13) ));
SOURCE(49076, 41)
(void) CirclePointsFromData←P3360((word) &points←v29348, circleData←v29488);
SOURCE(49119, 322)
{
register word index←v29652 = 0;
if (( (int)index←v29652 > (int)4)) {
goto lab←L100091;
};
lab←L100094: ;
SOURCE(49165, 39)
if ((0 == (* (( (ptr) circleParts←v29544)+BCK(index←v29652, 5)) ))) {
SOURCE(49204, 4)
goto lab←L100093;
};
SOURCE(49210, 25)
nextPoint←v29572 = (* (( (W2Pt) &points←v29348)+BCK(index←v29652, 5)) );
SOURCE(49237, 59)
{
word pd427;
pd427 = (* (( (ptr) (* (( (ptr) gf←c92160)+273)/* var←c82944 */ ))+21) );
nextDist2←v29376 = (word) ( *( (fPt) ((* (ptr) pd427 ))))(testPoint←v16372, nextPoint←v29572, pd427);
};
SOURCE(49298, 143)
{
word x428;
word x429;
if (((
x428 = nextDist2←v29376, *(float*)&x428
) < (
x429 = bestDist2←v29404, *(float*)&x429
))) {
SOURCE(49330, 21)
bestDist2←v29404 = nextDist2←v29376;
SOURCE(49353, 18)
foundIndex←v29460 = index←v29652;
SOURCE(49373, 21)
bestPoint←v16444 = nextPoint←v29572;
SOURCE(49396, 45)
{
word x430;
word x431;
if (((
x430 = bestDist2←v29404, *(float*)&x430
) < (
x431 = tolerance2←v29432, *(float*)&x431
))) {
SOURCE(49427, 14)
success←v16556 = 1;
};
};
};
};
lab←L100093: ;
if (( (int)index←v29652 >= (int)4)) {
goto lab←L100091;
};
index←v29652 = (index←v29652 + 1);
goto lab←L100094;
lab←L100091: ;
};
SOURCE(49455, 383)
if ((0 != success←v16556)) {
SOURCE(49473, 106)
{
word var←c88224;
{
word var←c88256;
var←c88256 = XR←NewObject(16, (* (( (ptr) gf←c92160)+21) ));
(* (ptr) var←c88256 ) = BCK((foundIndex←v29460 + 1), 6);
(* (W2Pt) (( (ptr) var←c88256)+1) ) = bestPoint←v16444;
var←c88224 = var←c88256;
};
circleHitData←v29516 = var←c88224;
hitData←v16528 = var←c88224;
};
SOURCE(49581, 34)
{
word pd432;
pd432 = (* (( (ptr) (* (( (ptr) gf←c92160)+274)/* var←c83168 */ ))+9) );
bestDist←v16472 = (word) ( *( (fPt) ((* (ptr) pd432 ))))(bestDist2←v29404, pd432);
};
SOURCE(49617, 221)
if (( (int)foundIndex←v29460 > (int)0)) {
SOURCE(49642, 196)
{
word pd433;
word x434;
word x435;
pd433 = (* (( (ptr) (* (( (ptr) gf←c92160)+273)/* var←c82944 */ ))+19) );
if (((
x434 = (word) ( *( (fPt) ((* (ptr) pd433 ))))((* (W2Pt) &points←v29348 ), testPoint←v16372, pd433), *(float*)&x434
) > (
x435 = (* (( (ptr) circleData←v29488)+2) ), *(float*)&x435
))) {
SOURCE(49715, 58)
{
word pd436;
pd436 = (* (( (ptr) (* (( (ptr) gf←c92160)+273)/* var←c82944 */ ))+11) );
(void) ( *( (fPt) ((* (ptr) pd436 ))))((word) &bestNormal←v16500, (* (( (W2Pt) &points←v29348)+BCK(foundIndex←v29460, 5)
/*1*/ ) ), (* (W2Pt) &points←v29348 ), pd436);
};
}
else {
SOURCE(49781, 57)
{
word pd437;
pd437 = (* (( (ptr) (* (( (ptr) gf←c92160)+273)/* var←c82944 */ ))+11) );
(void) ( *( (fPt) ((* (ptr) pd437 ))))((word) &bestNormal←v16500, (* (W2Pt) &points←v29348 ), (* (( (W2Pt) &points←v29348)+BCK(
/*1*/ foundIndex←v29460, 5)) ), pd437);
};
};
};
};
};
};
};
/* removed tail goto */
lab←L100090: ;
(* (W2Pt) formal←c0781 ) = bestPoint←v16444;
(* (( (ptr) formal←c0781)+2) ) = bestDist←v16472;
(* (W2Pt) (( (ptr) formal←c0781)+3) ) = bestNormal←v16500;
(* (( (ptr) formal←c0781)+5) ) = hitData←v16528;
(* (( (ptr) formal←c0781)+6) ) = success←v16556;
return;
}
static void CircleClosestJointToHitData←P3060(formal←c0795, sliceD←v16628, mapPoint←v16656, testPoint←v16684, hitData←v16712)
word formal←c0795;
word sliceD←v16628;
W2 mapPoint←v16656;
W2 testPoint←v16684;
word hitData←v16712;
{
register ptr gf←c92192 = (ptr) &globalframe;
word jointD←v16768;
W2 point←v16796;
W2 normal←v16824;
word success←v29696 = 0;
word newHitData←v29724 = 0;
word circleHitData←v29752 = 0;
word circleParts←v29780;
/* CircleClosestJointToHitData: */
SOURCE(49856, 660)
SOURCE(49856, 660)
jointD←v16768 = 0;
SOURCE(49856, 660)
normal←v16824.f0 = (* (ptr) &fc85 );
normal←v16824.f1 = (* (ptr) &fc88 );
SOURCE(50113, 86)
circleParts←v29780 = XR←NewObject(24, (* (( (ptr) gf←c92192)+13) ));
SOURCE(50201, 106)
{
W7 var←c88320;
(void) CircleClosestPoint←P3000((word) &var←c88320, sliceD←v16628, testPoint←v16684, (* (ptr) &fc399 ));
success←v29696 = var←c88320.f6;
newHitData←v29724 = var←c88320.f5;
normal←v16824 = (* (W2Pt) (( (ptr) &var←c88320)+3) );
point←v16796 = (* (W2Pt) &var←c88320 );
};
SOURCE(50309, 34)
circleHitData←v29752 = XR←Narrow(newHitData←v29724, (* (( (ptr) gf←c92192)+21) ));
SOURCE(50345, 47)
{
word idx438;
(* (( (ptr) circleParts←v29780)+(
idx438 = (word) ((* (ptr) circleHitData←v29752 ) - 1),
BCK(idx438, 5)
)) ) = 1;
};
SOURCE(50394, 43)
(* (( (ptr) circleParts←v29780)+5) ) = (* (( (ptr) circleHitData←v29752)+3) );
SOURCE(50439, 77)
{
word pd439;
pd439 = (* (( (ptr) (* (( (ptr) gf←c92192)+267)/* var←c82368 */ ))+8) );
jointD←v16768 = (word) ( *( (fPt) ((* (ptr) pd439 ))))((* (ptr) sliceD←v16628 ), circleParts←v29780, pd439);
};
/* removed tail goto */
(* (ptr) formal←c0795 ) = jointD←v16768;
(* (W2Pt) (( (ptr) formal←c0795)+1) ) = point←v16796;
(* (W2Pt) (( (ptr) formal←c0795)+3) ) = normal←v16824;
return;
}
static void CircleClosestSegment←P3120(formal←c0817, sliceD←v16884, testPoint←v16912, tolerance←v16940)
word formal←c0817;
word sliceD←v16884;
W2 testPoint←v16912;
word tolerance←v16940;
{
register ptr gf←c92224 = (ptr) &globalframe;
W2 bestPoint←v16984;
word bestDist←v17012;
W2 bestNormal←v17040;
word hitData←v17068;
word success←v17096;
/* CircleClosestSegment: */
SOURCE(50522, 1143)
SOURCE(50522, 1143)
bestPoint←v16984.f0 = (* (ptr) &fc85 );
bestPoint←v16984.f1 = (* (ptr) &fc85 );
SOURCE(50522, 1143)
bestDist←v17012 = (* (ptr) &fc85 );
SOURCE(50522, 1143)
bestNormal←v17040.f0 = (* (ptr) &fc85 );
bestNormal←v17040.f1 = (* (ptr) &fc88 );
SOURCE(50522, 1143)
hitData←v17068 = 0;
SOURCE(50522, 1143)
success←v17096 = 0;
{
word var←c88352;
SOURCE(50746, 107)
{
word pd441;
{
word pd440;
pd440 = (* (( (ptr) (* (( (ptr) gf←c92224)+276)/* var←c83456 */ ))+9) );
var←c88352 = (word) ( *( (fPt) ((* (ptr) pd440 ))))((* (ptr) sliceD←v16884 ), 0, pd440);
};
pd441 = (* (( (ptr) (* (( (ptr) gf←c92224)+271)/* var←c82752 */ ))+22) );
if ((0 == (word) ( *( (fPt) ((* (ptr) pd441 ))))(testPoint←v16912, var←c88352, tolerance←v16940, pd441))) {
SOURCE(50847, 6)
goto lab←L100096;
};
};
SOURCE(50856, 814)
{
word circleHitData←v29836 = 0;
word circleParts←v29864;
word circleData←v29892;
W2 pointOnCircle←v29920;
W2 localTestpoint←v29948;
word dist←v29976;
SOURCE(50892, 47)
circleParts←v29864 = XR←Narrow((* (( (ptr) sliceD←v16884)+1) ), (* (( (ptr) gf←c92224)+13) ));
SOURCE(50941, 50)
circleData←v29892 = XR←Narrow((* (( (ptr) (* (ptr) sliceD←v16884 ))+1) ), (* (( (ptr) gf←c92224)+12) ));
SOURCE(50993, 33)
pointOnCircle←v29920.f0 = (* (ptr) &fc85 );
pointOnCircle←v29920.f1 = (* (ptr) &fc85 );
SOURCE(51064, 70)
if ((0 == (* (( (ptr) circleParts←v29864)+5) ))) {
SOURCE(51096, 38)
bestPoint←v16984.f0 = (* (ptr) &fc85 );
bestPoint←v16984.f1 = (* (ptr) &fc85 );
bestDist←v17012 = (* (ptr) &fc85 );
bestNormal←v17040.f0 = (* (ptr) &fc85 );
bestNormal←v17040.f1 = (* (ptr) &fc88 );
hitData←v17068 = 0;
success←v17096 = 0;
goto lab←L100096;
};
SOURCE(51136, 78)
{
word pd442;
pd442 = (* (( (ptr) (* (( (ptr) gf←c92224)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd442 ))))((word) &localTestpoint←v29948, (* (( (ptr) circleData←v29892)+6) ), testPoint←v16912, pd442)
;
};
SOURCE(51216, 42)
{
word pd443;
pd443 = (* (( (ptr) (* (( (ptr) gf←c92224)+273)/* var←c82944 */ ))+18) );
dist←v29976 = (word) ( *( (fPt) ((* (ptr) pd443 ))))(localTestpoint←v29948, pd443);
};
SOURCE(51260, 76)
{
word x444;
word x445;
if (((
x444 = dist←v29976, *(float*)&x444
) > (
x445 = (* (ptr) &fc85 ), *(float*)&x445
))) {
SOURCE(51279, 57)
{
word pd446;
word x447;
word x448;
float tf449;
pd446 = (* (( (ptr) (* (( (ptr) gf←c92224)+273)/* var←c82944 */ ))+12) );
(void) ( *( (fPt) ((* (ptr) pd446 ))))((word) &pointOnCircle←v29920, localTestpoint←v29948, (
tf449 = (
x447 = (* (ptr) &fc87 ), *(float*)&x447
) / (
x448 = dist←v29976, *(float*)&x448
), *(word*)&tf449
), pd446);
};
};
};
SOURCE(51338, 79)
{
word pd450;
pd450 = (* (( (ptr) (* (( (ptr) gf←c92224)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd450 ))))((word) &bestPoint←v16984, (* (( (ptr) circleData←v29892)+1) ), pointOnCircle←v29920, pd450)
;
};
SOURCE(51419, 51)
{
word pd451;
pd451 = (* (( (ptr) (* (( (ptr) gf←c92224)+273)/* var←c82944 */ ))+19) );
bestDist←v17012 = (word) ( *( (fPt) ((* (ptr) pd451 ))))(testPoint←v16912, bestPoint←v16984, pd451);
};
SOURCE(51472, 193)
{
word x452;
word x453;
if (((
x452 = bestDist←v17012, *(float*)&x452
) < (
x453 = tolerance←v16940, *(float*)&x453
))) {
SOURCE(51501, 98)
{
word var←c88480;
{
word var←c88512;
var←c88512 = XR←NewObject(16, (* (( (ptr) gf←c92224)+21) ));
(* (W2Pt) (( (ptr) var←c88512)+1) ) = bestPoint←v16984;
(* (( (ptr) var←c88512)+3) ) = 1;
var←c88480 = var←c88512;
};
circleHitData←v29836 = var←c88480;
hitData←v17068 = var←c88480;
};
SOURCE(51601, 14)
success←v17096 = 1;
SOURCE(51617, 48)
{
word pd454;
pd454 = (* (( (ptr) (* (( (ptr) gf←c92224)+273)/* var←c82944 */ ))+11) );
(void) ( *( (fPt) ((* (ptr) pd454 ))))((word) &bestNormal←v17040, testPoint←v16912, bestPoint←v16984, pd454);
};
};
};
};
};
/* removed tail goto */
lab←L100096: ;
(* (W2Pt) formal←c0817 ) = bestPoint←v16984;
(* (( (ptr) formal←c0817)+2) ) = bestDist←v17012;
(* (W2Pt) (( (ptr) formal←c0817)+3) ) = bestNormal←v17040;
(* (( (ptr) formal←c0817)+5) ) = hitData←v17068;
(* (( (ptr) formal←c0817)+6) ) = success←v17096;
return;
}
static void CircleFilledPathsUnderPoint←P3180(formal←c0828, slice←v17168, point←v17196, tolerance←v17224)
word formal←c0828;
word slice←v17168;
W2 point←v17196;
word tolerance←v17224;
{
register ptr gf←c92256 = (ptr) &globalframe;
word hitData←v17268;
word moreHitDatas←v17296;
word circleData←v30020;
W2 pointCircle←v30048;
word success←v30076 = 0;
/* CircleFilledPathsUnderPoint: */
SOURCE(51679, 505)
SOURCE(51679, 505)
hitData←v17268 = 0;
SOURCE(51679, 505)
moreHitDatas←v17296 = 0;
SOURCE(51840, 43)
circleData←v30020 = XR←Narrow((* (( (ptr) slice←v17168)+1) ), (* (( (ptr) gf←c92256)+12) ));
SOURCE(51885, 78)
{
word pd455;
pd455 = (* (( (ptr) (* (( (ptr) gf←c92256)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd455 ))))((word) &pointCircle←v30048, (* (( (ptr) circleData←v30020)+6) ), point←v17196, pd455)
;
};
SOURCE(51989, 98)
{
word pd456;
if (((* (( (ptr) circleData←v30020)+11) ) != 0)) {
pd456 = (* (( (ptr) (* (( (ptr) gf←c92256)+268)/* var←c82496 */ ))+20) );
success←v30076 = (unsigned) (0 != (word) ( *( (fPt) ((* (ptr) pd456 ))))(pointCircle←v30048, (* (ptr) circleData←v30020 ), pd456)
);
}
else {
success←v30076 = (unsigned) 0;
};
};
SOURCE(52089, 95)
if ((0 != success←v30076)) {
SOURCE(52107, 77)
{
word var←c88544;
var←c88544 = XR←NewObject(16, (* (( (ptr) gf←c92256)+21) ));
(* (ptr) var←c88544 ) = 1;
(* (W2Pt) (( (ptr) var←c88544)+1) ) = point←v17196;
hitData←v17268 = var←c88544;
};
};
/* removed tail goto */
(* (ptr) formal←c0828 ) = hitData←v17268;
(* (( (ptr) formal←c0828)+1) ) = moreHitDatas←v17296;
return;
}
static void CircleLineIntersection←P3240(formal←c0844, sliceD←v17464, line←v17492)
word formal←c0844;
word sliceD←v17464;
word line←v17492;
{
register ptr gf←c92288 = (ptr) &globalframe;
word points←v17536;
word pointCount←v17564;
word circleData←v30120;
word circleParts←v30148;
word localLine←v30204;
W4 localPoints←v30232;
/* CircleLineIntersection: */
SOURCE(52193, 566)
SOURCE(52193, 566)
points←v17536 = 0;
SOURCE(52193, 566)
pointCount←v17564 = 0;
SOURCE(52317, 50)
circleData←v30120 = XR←Narrow((* (( (ptr) (* (ptr) sliceD←v17464 ))+1) ), (* (( (ptr) gf←c92288)+12) ));
SOURCE(52369, 47)
circleParts←v30148 = XR←Narrow((* (( (ptr) sliceD←v17464)+1) ), (* (( (ptr) gf←c92288)+13) ));
SOURCE(52441, 65)
{
word pd457;
pd457 = (* (( (ptr) (* (( (ptr) gf←c92288)+286)/* var←c88576 */ ))+15) );
localLine←v30204 = (word) ( *( (fPt) ((* (ptr) pd457 ))))(line←v17492, (* (( (ptr) circleData←v30120)+6) ), pd457);
};
SOURCE(52544, 83)
{
W6 var←c88608;
{
word pd458;
pd458 = (* (( (ptr) (* (( (ptr) gf←c92288)+268)/* var←c82496 */ ))+10) );
(void) ( *( (fPt) ((* (ptr) pd458 ))))((word) &var←c88608, (* (ptr) circleData←v30120 ), localLine←v30204, pd458);
};
pointCount←v17564 = var←c88608.f4;
localPoints←v30232 = (* (W4Pt) &var←c88608 );
};
SOURCE(52629, 130)
{
register word i←v30312 = 1;
register word noName←c88640;
noName←c88640 = pointCount←v17564;
if ((i←v30312 > noName←c88640)) {
goto lab←L100099;
};
lab←L100102: ;
SOURCE(52662, 97)
{
W2 var←c88672;
word var←c88704;
{
word pd459;
pd459 = (* (( (ptr) (* (( (ptr) gf←c92288)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd459 ))))((word) &var←c88672, (* (( (ptr) circleData←v30120)+1) ), (* (( (W2Pt) &localPoints←v30232)+BCK(
(i←v30312 - 1), 2)) ), pd459);
};
var←c88704 = XR←NewObject(12, (* (( (ptr) gf←c92288)+10) ));
(* (W2Pt) var←c88704 ) = var←c88672;
(* (( (ptr) var←c88704)+2) ) = points←v17536;
points←v17536 = var←c88704;
};
if ((i←v30312 >= noName←c88640)) {
goto lab←L100099;
};
i←v30312 = (i←v30312 + 1);
goto lab←L100102;
lab←L100099: ;
};
/* removed tail goto */
(* (ptr) formal←c0844 ) = points←v17536;
(* (( (ptr) formal←c0844)+1) ) = pointCount←v17564;
return;
}
static word CircleHitDataAsSimpleCurve←P3300(slice←v17708, hitData←v17736)
word slice←v17708;
word hitData←v17736;
{
register ptr gf←c92320 = (ptr) &globalframe;
word simpleCurve←v17792;
word circleHitData←v30356;
word circleData←v30384;
/* CircleHitDataAsSimpleCurve: */
SOURCE(52774, 326)
SOURCE(52774, 326)
simpleCurve←v17792 = 0;
SOURCE(52875, 46)
circleHitData←v30356 = XR←Narrow(hitData←v17736, (* (( (ptr) gf←c92320)+21) ));
SOURCE(52923, 43)
circleData←v30384 = XR←Narrow((* (( (ptr) slice←v17708)+1) ), (* (( (ptr) gf←c92320)+12) ));
SOURCE(52968, 45)
if ((0 == (* (( (ptr) circleHitData←v30356)+3) ))) {
SOURCE(53002, 11)
return(0);
};
SOURCE(53015, 46)
if ((0 == (* (( (ptr) circleData←v30384)+4) ))) {
SOURCE(53050, 11)
return(0);
};
SOURCE(53063, 37)
simpleCurve←v17792 = (* (( (ptr) circleData←v30384)+5) );
SOURCE(52774, 326)
return(simpleCurve←v17792);
}
static void CirclePointsFromData←P3360(formal←c0868, circleData←v17864)
word formal←c0868;
word circleData←v17864;
{
register ptr gf←c92352 = (ptr) &globalframe;
W10 points←v17908;
word t←v30428;
/* CirclePointsFromData: */
SOURCE(53106, 438)
SOURCE(53202, 40)
t←v30428 = (* (( (ptr) circleData←v17864)+1) );
SOURCE(53244, 58)
{
W2 var←c88736;
{
W2 var←c0855;
{
W2 var←c88768;
var←c88768.f0 = (* (ptr) &fc85 );
var←c88768.f1 = (* (ptr) &fc85 );
{
word pd460;
pd460 = (* (( (ptr) (* (( (ptr) gf←c92352)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd460 ))))((word) &var←c0855, t←v30428, var←c88768, pd460);
};
};
var←c88736 = var←c0855;
};
(* (W2Pt) &points←v17908 ) = var←c88736;
};
SOURCE(53304, 59)
{
W2 var←c88800;
{
W2 var←c0858;
{
W2 var←c88832;
var←c88832.f0 = (* (ptr) &fc88 );
var←c88832.f1 = (* (ptr) &fc85 );
{
word pd461;
pd461 = (* (( (ptr) (* (( (ptr) gf←c92352)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd461 ))))((word) &var←c0858, t←v30428, var←c88832, pd461);
};
};
var←c88800 = var←c0858;
};
(* (W2Pt) (( (ptr) &points←v17908)+2) ) = var←c88800;
};
SOURCE(53365, 58)
{
W2 var←c88864;
{
W2 var←c0861;
{
W2 var←c88896;
var←c88896.f0 = (* (ptr) &fc85 );
var←c88896.f1 = (* (ptr) &fc87 );
{
word pd462;
pd462 = (* (( (ptr) (* (( (ptr) gf←c92352)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd462 ))))((word) &var←c0861, t←v30428, var←c88896, pd462);
};
};
var←c88864 = var←c0861;
};
(* (W2Pt) (( (ptr) &points←v17908)+4) ) = var←c88864;
};
SOURCE(53425, 58)
{
W2 var←c88928;
{
W2 var←c0864;
{
W2 var←c88960;
var←c88960.f0 = (* (ptr) &fc87 );
var←c88960.f1 = (* (ptr) &fc85 );
{
word pd463;
pd463 = (* (( (ptr) (* (( (ptr) gf←c92352)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd463 ))))((word) &var←c0864, t←v30428, var←c88960, pd463);
};
};
var←c88928 = var←c0864;
};
(* (W2Pt) (( (ptr) &points←v17908)+6) ) = var←c88928;
};
SOURCE(53485, 59)
{
W2 var←c88992;
{
W2 var←c0867;
{
W2 var←c89024;
var←c89024.f0 = (* (ptr) &fc85 );
var←c89024.f1 = (* (ptr) &fc88 );
{
word pd464;
pd464 = (* (( (ptr) (* (( (ptr) gf←c92352)+272)/* var←c82880 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd464 ))))((word) &var←c0867, t←v30428, var←c89024, pd464);
};
};
var←c88992 = var←c0867;
};
(* (W2Pt) (( (ptr) &points←v17908)+8) ) = var←c88992;
};
/* removed tail goto */
(* (W10Pt) formal←c0868 ) = points←v17908;
return;
}
static void CircleSetDefaults←P3420(slice←v18004, parts←v18032, defaults←v18060, history←v18088)
word slice←v18004;
word parts←v18032;
word defaults←v18060;
word history←v18088;
{
register ptr gf←c92384 = (ptr) &globalframe;
word circleData←v30472;
/* CircleSetDefaults: */
SOURCE(53550, 272)
SOURCE(53658, 43)
circleData←v30472 = XR←Narrow((* (( (ptr) slice←v18004)+1) ), (* (( (ptr) gf←c92384)+12) ));
SOURCE(53703, 47)
{
word pd465;
pd465 = (* (( (ptr) (* (( (ptr) gf←c92384)+269)/* var←c82624 */ ))+16) );
(void) ( *( (fPt) ((* (ptr) pd465 ))))((* (( (ptr) circleData←v30472)+33) ), defaults←v18060, pd465);
};
SOURCE(53752, 41)
(* (( (ptr) circleData←v30472)+11) ) = (* (( (ptr) defaults←v18060)+8) );
SOURCE(53795, 27)
{
word pd466;
pd466 = (* (( (ptr) (* (( (ptr) gf←c92384)+267)/* var←c82368 */ ))+68) );
(void) ( *( (fPt) ((* (ptr) pd466 ))))(slice←v18004, pd466);
};
}
static word CircleSetStrokeWidth←P3480(slice←v18148, parts←v18176, strokeWidth←v18204, history←v18232)
word slice←v18148;
word parts←v18176;
word strokeWidth←v18204;
word history←v18232;
{
register ptr gf←c92416 = (ptr) &globalframe;
word box←v18276;
word circleData←v30516;
/* CircleSetStrokeWidth: */
SOURCE(53828, 366)
SOURCE(53828, 366)
box←v18276 = 0;
SOURCE(53959, 43)
circleData←v30516 = XR←Narrow((* (( (ptr) slice←v18148)+1) ), (* (( (ptr) gf←c92416)+12) ));
SOURCE(54004, 118)
{
word x467;
word x468;
if (((
x467 = (* (( (ptr) (* (( (ptr) circleData←v30516)+33) ))+2) ), *(float*)&x467
) != (
x468 = strokeWidth←v18204, *(float*)&x468
))) {
SOURCE(54053, 40)
(* (( (ptr) (* (( (ptr) circleData←v30516)+33) ))+2) ) = strokeWidth←v18204;
SOURCE(54095, 27)
{
word pd469;
pd469 = (* (( (ptr) (* (( (ptr) gf←c92416)+267)/* var←c82368 */ ))+68) );
(void) ( *( (fPt) ((* (ptr) pd469 ))))(slice←v18148, pd469);
};
};
};
SOURCE(54127, 67)
{
word var←c89056;
{
word pd470;
pd470 = (* (( (ptr) (* (( (ptr) gf←c92416)+276)/* var←c83456 */ ))+7) );
var←c89056 = (word) ( *( (fPt) ((* (ptr) pd470 ))))(slice←v18148, parts←v18176, pd470);
};
{
word pd471;
pd471 = (* (( (ptr) (* (( (ptr) gf←c92416)+271)/* var←c82752 */ ))+7) );
box←v18276 = (word) ( *( (fPt) ((* (ptr) pd471 ))))(var←c89056, pd471);
};
};
SOURCE(53828, 366)
return(box←v18276);
}
static void CircleGetStrokeWidth←P3540(formal←c0886, slice←v18336, parts←v18364)
word formal←c0886;
word slice←v18336;
word parts←v18364;
{
register ptr gf←c92448 = (ptr) &globalframe;
word strokeWidth←v18408;
word isUnique←v18436;
word circleData←v30560;
/* CircleGetStrokeWidth: */
SOURCE(54274, 201)
SOURCE(54274, 201)
isUnique←v18436 = 1;
SOURCE(54390, 43)
circleData←v30560 = XR←Narrow((* (( (ptr) slice←v18336)+1) ), (* (( (ptr) gf←c92448)+12) ));
SOURCE(54435, 40)
strokeWidth←v18408 = (* (( (ptr) (* (( (ptr) circleData←v30560)+33) ))+2) );
/* removed tail goto */
(* (ptr) formal←c0886 ) = strokeWidth←v18408;
(* (( (ptr) formal←c0886)+1) ) = isUnique←v18436;
return;
}
static void CircleSetStrokeEnd←P3600(slice←v18496, parts←v18524, strokeEnd←v18552, history←v18580)
word slice←v18496;
word parts←v18524;
word strokeEnd←v18552;
word history←v18580;
{
register ptr gf←c92480 = (ptr) &globalframe;
word circleData←v30604;
/* CircleSetStrokeEnd: */
SOURCE(54481, 189)
SOURCE(54589, 43)
circleData←v30604 = XR←Narrow((* (( (ptr) slice←v18496)+1) ), (* (( (ptr) gf←c92480)+12) ));
SOURCE(54634, 36)
(* (( (ptr) (* (( (ptr) circleData←v30604)+33) ))+3) ) = strokeEnd←v18552;
}
static void CircleGetStrokeEnd←P3660(formal←c0898, slice←v18640, parts←v18668)
word formal←c0898;
word slice←v18640;
word parts←v18668;
{
register ptr gf←c92512 = (ptr) &globalframe;
word strokeEnd←v18712;
word isUnique←v18740;
word circleData←v30648;
/* CircleGetStrokeEnd: */
SOURCE(54676, 200)
SOURCE(54676, 200)
isUnique←v18740 = 1;
SOURCE(54793, 43)
circleData←v30648 = XR←Narrow((* (( (ptr) slice←v18640)+1) ), (* (( (ptr) gf←c92512)+12) ));
SOURCE(54838, 38)
strokeEnd←v18712 = (* (( (ptr) (* (( (ptr) circleData←v30648)+33) ))+3) );
isUnique←v18740 = 1;
/* removed tail goto */
(* (ptr) formal←c0898 ) = strokeEnd←v18712;
(* (( (ptr) formal←c0898)+1) ) = isUnique←v18740;
return;
}
static void CircleSetStrokeColor←P3720(slice←v18800, parts←v18828, color←v18856, setHow←v18884, history←v18912)
word slice←v18800;
word parts←v18828;
word color←v18856;
word setHow←v18884;
word history←v18912;
{
register ptr gf←c92544 = (ptr) &globalframe;
word circleData←v30692;
/* CircleSetStrokeColor: */
SOURCE(54882, 333)
SOURCE(54998, 43)
circleData←v30692 = XR←Narrow((* (( (ptr) slice←v18800)+1) ), (* (( (ptr) gf←c92544)+12) ));
SOURCE(55043, 172)
{
word var←c89120;
var←c89120 = setHow←v18884;
if ((var←c89120 == (* (( (ptr) gf←c92544)+54) ))) {
SOURCE(55070, 28)
(* (( (ptr) (* (( (ptr) circleData←v30692)+33) ))+8) ) = color←v18856;
}
else {
if ((var←c89120 == (* (( (ptr) gf←c92544)+57) ))) {
SOURCE(55114, 103)
{
word newColor←v30736;
SOURCE(55116, 66)
{
word pd472;
pd472 = (* (( (ptr) (* (( (ptr) gf←c92544)+287)/* var←c89152 */ ))+36) );
newColor←v30736 = (word) ( *( (fPt) ((* (ptr) pd472 ))))((* (( (ptr) (* (( (ptr) circleData←v30692)+33) ))+8) ), color←v18856, pd472)
;
};
SOURCE(55184, 31)
(* (( (ptr) (* (( (ptr) circleData←v30692)+33) ))+8) ) = newColor←v30736;
};
}
else {
SOURCE(55231, 5)
(void) XR←RaiseUnnamedError();
};
};
};
}
static void CircleGetStrokeColor←P3780(formal←c0912, slice←v18972, parts←v19000)
word formal←c0912;
word slice←v18972;
word parts←v19000;
{
register ptr gf←c92576 = (ptr) &globalframe;
word color←v19044;
word isUnique←v19072;
word circleData←v30780;
/* CircleGetStrokeColor: */
SOURCE(55242, 184)
SOURCE(55242, 184)
color←v19044 = 0;
SOURCE(55242, 184)
isUnique←v19072 = 1;
SOURCE(55353, 43)
circleData←v30780 = XR←Narrow((* (( (ptr) slice←v18972)+1) ), (* (( (ptr) gf←c92576)+12) ));
SOURCE(55398, 28)
color←v19044 = (* (( (ptr) (* (( (ptr) circleData←v30780)+33) ))+8) );
/* removed tail goto */
(* (ptr) formal←c0912 ) = color←v19044;
(* (( (ptr) formal←c0912)+1) ) = isUnique←v19072;
return;
}
static void CircleSetFillColor←P3840(slice←v19132, parts←v19160, color←v19188, setHow←v19216, history←v19244)
word slice←v19132;
word parts←v19160;
word color←v19188;
word setHow←v19216;
word history←v19244;
{
register ptr gf←c92608 = (ptr) &globalframe;
word circleData←v30824;
/* CircleSetFillColor: */
SOURCE(55432, 331)
SOURCE(55546, 43)
circleData←v30824 = XR←Narrow((* (( (ptr) slice←v19132)+1) ), (* (( (ptr) gf←c92608)+12) ));
SOURCE(55591, 172)
{
word var←c89184;
var←c89184 = setHow←v19216;
if ((var←c89184 == (* (( (ptr) gf←c92608)+54) ))) {
SOURCE(55618, 28)
(* (( (ptr) circleData←v30824)+11) ) = color←v19188;
}
else {
if ((var←c89184 == (* (( (ptr) gf←c92608)+57) ))) {
SOURCE(55662, 103)
{
word newColor←v30868;
SOURCE(55664, 66)
{
word pd473;
pd473 = (* (( (ptr) (* (( (ptr) gf←c92608)+287)/* var←c89152 */ ))+36) );
newColor←v30868 = (word) ( *( (fPt) ((* (ptr) pd473 ))))((* (( (ptr) circleData←v30824)+11) ), color←v19188, pd473);
};
SOURCE(55732, 31)
(* (( (ptr) circleData←v30824)+11) ) = newColor←v30868;
};
}
else {
SOURCE(55779, 5)
(void) XR←RaiseUnnamedError();
};
};
};
}
static void CircleGetFillColor←P3900(formal←c0926, slice←v19304, parts←v19332)
word formal←c0926;
word slice←v19304;
word parts←v19332;
{
register ptr gf←c92640 = (ptr) &globalframe;
word color←v19376;
word isUnique←v19404;
word circleData←v30912;
/* CircleGetFillColor: */
SOURCE(55790, 182)
SOURCE(55790, 182)
color←v19376 = 0;
SOURCE(55790, 182)
isUnique←v19404 = 1;
SOURCE(55899, 43)
circleData←v30912 = XR←Narrow((* (( (ptr) slice←v19304)+1) ), (* (( (ptr) gf←c92640)+12) ));
SOURCE(55944, 28)
color←v19376 = (* (( (ptr) circleData←v30912)+11) );
/* removed tail goto */
(* (ptr) formal←c0926 ) = color←v19376;
(* (( (ptr) formal←c0926)+1) ) = isUnique←v19404;
return;
}
static void CircleSetDashed←P3960(slice←v19464, parts←v19492, dashed←v19520, pattern←v19548, offset←v19576, length←v19604, history←v19632)
word slice←v19464;
word parts←v19492;
word dashed←v19520;
word pattern←v19548;
word offset←v19576;
word length←v19604;
word history←v19632;
{
register ptr gf←c92672 = (ptr) &globalframe;
word circleParts←v30956;
word circleData←v30984;
/* CircleSetDashed: */
SOURCE(55978, 428)
SOURCE(56155, 40)
circleParts←v30956 = XR←Narrow(parts←v19492, (* (( (ptr) gf←c92672)+13) ));
SOURCE(56197, 43)
circleData←v30984 = XR←Narrow((* (( (ptr) slice←v19464)+1) ), (* (( (ptr) gf←c92672)+12) ));
SOURCE(56242, 164)
if ((circleParts←v30956 == 0) || (0 != (* (( (ptr) circleParts←v30956)+5) ))) {
SOURCE(56289, 119)
{
word seg←v31028;
SOURCE(56291, 29)
seg←v31028 = (* (( (ptr) circleData←v30984)+33) );
SOURCE(56322, 19)
(* (( (ptr) seg←v31028)+4) ) = dashed←v19520;
SOURCE(56343, 21)
(* (( (ptr) seg←v31028)+5) ) = pattern←v19548;
SOURCE(56366, 19)
(* (( (ptr) seg←v31028)+6) ) = offset←v19576;
SOURCE(56387, 19)
(* (( (ptr) seg←v31028)+7) ) = length←v19604;
};
};
}
static void CircleGetDashed←P4020(formal←c0947, slice←v19692, parts←v19720)
word formal←c0947;
word slice←v19692;
word parts←v19720;
{
register ptr gf←c92704 = (ptr) &globalframe;
word dashed←v19764;
word pattern←v19792;
word offset←v19820;
word length←v19848;
word isUnique←v19876;
word circleParts←v31072;
word circleData←v31100;
/* CircleGetDashed: */
SOURCE(56415, 412)
SOURCE(56415, 412)
dashed←v19764 = 0;
SOURCE(56415, 412)
pattern←v19792 = 0;
SOURCE(56415, 412)
isUnique←v19876 = 1;
SOURCE(56576, 40)
circleParts←v31072 = XR←Narrow(parts←v19720, (* (( (ptr) gf←c92704)+13) ));
SOURCE(56618, 43)
circleData←v31100 = XR←Narrow((* (( (ptr) slice←v19692)+1) ), (* (( (ptr) gf←c92704)+12) ));
SOURCE(56663, 164)
if ((circleParts←v31072 == 0) || (0 != (* (( (ptr) circleParts←v31072)+5) ))) {
SOURCE(56710, 119)
{
word seg←v31144;
SOURCE(56712, 29)
seg←v31144 = (* (( (ptr) circleData←v31100)+33) );
SOURCE(56743, 19)
dashed←v19764 = (* (( (ptr) seg←v31144)+4) );
SOURCE(56764, 21)
pattern←v19792 = (* (( (ptr) seg←v31144)+5) );
SOURCE(56787, 19)
offset←v19820 = (* (( (ptr) seg←v31144)+6) );
SOURCE(56808, 19)
length←v19848 = (* (( (ptr) seg←v31144)+7) );
};
};
/* removed tail goto */
(* (ptr) formal←c0947 ) = dashed←v19764;
(* (( (ptr) formal←c0947)+1) ) = pattern←v19792;
(* (( (ptr) formal←c0947)+2) ) = offset←v19820;
(* (( (ptr) formal←c0947)+3) ) = length←v19848;
(* (( (ptr) formal←c0947)+4) ) = isUnique←v19876;
return;
}
static word CircleSetOrientation←P4080(slice←v19936, parts←v19964, orientation←v19992, history←v20020)
word slice←v19936;
word parts←v19964;
word orientation←v19992;
word history←v20020;
{
register ptr gf←c92736 = (ptr) &globalframe;
word success←v20064;
word circleData←v31188;
/* CircleSetOrientation: */
SOURCE(56836, 353)
SOURCE(56836, 353)
success←v20064 = 1;
SOURCE(56981, 43)
circleData←v31188 = XR←Narrow((* (( (ptr) slice←v19936)+1) ), (* (( (ptr) gf←c92736)+12) ));
SOURCE(57026, 163)
{
word var←c89216;
var←c89216 = orientation←v19992;
switch (var←c89216) {
case 0:
SOURCE(57056, 25)
(* (( (ptr) circleData←v31188)+12) ) = 1;
break;
case 1:
SOURCE(57107, 26)
(* (( (ptr) circleData←v31188)+12) ) = 0;
break;
case 2:
SOURCE(57146, 43)
(* (( (ptr) circleData←v31188)+12) ) = (unsigned) (0 == (* (( (ptr) circleData←v31188)+12) ));
break;
default:
SOURCE(57202, 5)
(void) XR←RaiseUnnamedError();
break;
};
};
SOURCE(56836, 353)
return(success←v20064);
}
static void CircleGetOrientation←P4140(formal←c0961, slice←v20124, parts←v20152)
word formal←c0961;
word slice←v20124;
word parts←v20152;
{
register ptr gf←c92768 = (ptr) &globalframe;
word orientation←v20196;
word isUnique←v20224;
word circleData←v31232;
/* CircleGetOrientation: */
SOURCE(57213, 214)
SOURCE(57213, 214)
isUnique←v20224 = 1;
SOURCE(57336, 43)
circleData←v31232 = XR←Narrow((* (( (ptr) slice←v20124)+1) ), (* (( (ptr) gf←c92768)+12) ));
SOURCE(57381, 46)
if ((0 != (* (( (ptr) circleData←v31232)+12) ))) {
orientation←v20196 = 0;
}
else {
orientation←v20196 = 1;
};
isUnique←v20224 = 1;
/* removed tail goto */
(* (ptr) formal←c0961 ) = orientation←v20196;
(* (( (ptr) formal←c0961)+1) ) = isUnique←v20224;
return;
}
static void MakeComplete←P4200(circleParts←v20284)
word circleParts←v20284;
{
/* MakeComplete: */
SOURCE(57433, 110)
SOURCE(57484, 31)
XR←FillWords(&(* (W5Pt) (circleParts←v20284)), 5, 1);
SOURCE(57517, 26)
(* (( (ptr) circleParts←v20284)+5) ) = 1;
}
static word IsComplete←P4260(circleParts←v20344)
word circleParts←v20344;
{
register ptr gf←c92800 = (ptr) &globalframe;
word var←c20388;
/* IsComplete: */
SOURCE(57549, 153)
SOURCE(57549, 153)
var←c20388 = 0;
SOURCE(57620, 82)
{
word tc474;
if ( ( (circleParts←v20344 != 0) ? XR←EqualWords(circleParts←v20344, (( (ptr) gf←c92800)+256)/* var←c82208 */ , 5) : 0 ) ) {
tc474 = (word) (unsigned) (0 != (* (( (ptr) circleParts←v20344)+5) ));
}
else {
tc474 = (word) (unsigned) 0;
};
return(tc474);
};
}
static word IsEmpty←P4320(circleParts←v20448)
word circleParts←v20448;
{
register ptr gf←c92832 = (ptr) &globalframe;
word var←c20492;
/* IsEmpty: */
SOURCE(57708, 159)
SOURCE(57708, 159)
var←c20492 = 0;
SOURCE(57776, 91)
{
word tc475;
if ((circleParts←v20448 == 0)) {
tc475 = (word) (unsigned) 1;
}
else {
if (XR←EqualWords(circleParts←v20448, (( (ptr) gf←c92832)+261)/* var←c82272 */ , 5)) {
tc475 = (word) (unsigned) ((* (( (ptr) circleParts←v20448)+5) ) == 0);
}
else {
tc475 = (word) (unsigned) 0;
};
};
return(tc475);
};
}
static word NoOpBoundBox←P4380(slice←v42032, parts←v42060)
word slice←v42032;
word parts←v42060;
{
register ptr gf←c92864 = (ptr) &globalframe;
word box←v42104;
/* NoOpBoundBox: */
SOURCE(57873, 117)
SOURCE(57873, 117)
box←v42104 = 0;
SOURCE(57929, 61)
{
word var←c0970;
var←c0970 = (* (( (ptr) gf←c92864)+58) );
(void) (XR←RaiseSignal((* (( (ptr) gf←c92864)+4)/* Problem←v5072 */ ), 0, (word) &var←c0970));
};
SOURCE(57873, 117)
return(box←v42104);
}
static word NoOpTransformedBoundBox←P4440(slice←v42164, selectedParts←v42192, movingParts←v42220, transform←v42248)
word slice←v42164;
word selectedParts←v42192;
word movingParts←v42220;
word transform←v42248;
{
register ptr gf←c92896 = (ptr) &globalframe;
word box←v42292;
/* NoOpTransformedBoundBox: */
SOURCE(57995, 139)
SOURCE(57995, 139)
box←v42292 = 0;
SOURCE(58073, 61)
{
word var←c0976;
var←c0976 = (* (( (ptr) gf←c92896)+58) );
(void) (XR←RaiseSignal((* (( (ptr) gf←c92896)+4)/* Problem←v5072 */ ), 0, (word) &var←c0976));
};
SOURCE(57995, 139)
return(box←v42292);
}
static word NoOpTightBox←P4500(slice←v42352, parts←v42380)
word slice←v42352;
word parts←v42380;
{
word box←v42424;
/* NoOpTightBox: */
SOURCE(58139, 65)
SOURCE(58139, 65)
box←v42424 = 0;
SOURCE(58195, 9)
box←v42424 = 0;
SOURCE(58139, 65)
return(box←v42424);
}
static word NoOpCopy←P4560(slice←v42484, parts←v42512)
word slice←v42484;
word parts←v42512;
{
register ptr gf←c92928 = (ptr) &globalframe;
word copy←v42556;
/* NoOpCopy: */
SOURCE(58209, 109)
SOURCE(58209, 109)
copy←v42556 = 0;
SOURCE(58257, 61)
{
word var←c0983;
var←c0983 = (* (( (ptr) gf←c92928)+58) );
(void) (XR←RaiseSignal((* (( (ptr) gf←c92928)+4)/* Problem←v5072 */ ), 0, (word) &var←c0983));
};
SOURCE(58209, 109)
return(copy←v42556);
}
static void NoOpRestore←P4620(from←v42616, to←v42644)
word from←v42616;
word to←v42644;
{
register ptr gf←c92960 = (ptr) &globalframe;
/* NoOpRestore: */
SOURCE(58323, 115)
SOURCE(58377, 61)
{
word var←c0986;
var←c0986 = (* (( (ptr) gf←c92960)+58) );
(void) (XR←RaiseSignal((* (( (ptr) gf←c92960)+4)/* Problem←v5072 */ ), 0, (word) &var←c0986));
};
}
static void NoOpBuildPath←P4680(slice←v42704, transformParts←v42732, transform←v42760, moveTo←v42788, lineTo←v42816, curveTo←v42844, conicTo←v42872, arcTo←v42900, editConstraints←v42928)
word slice←v42704;
word transformParts←v42732;
word transform←v42760;
word moveTo←v42788;
word lineTo←v42816;
word curveTo←v42844;
word conicTo←v42872;
word arcTo←v42900;
word editConstraints←v42928;
{
/* NoOpBuildPath: */
}
static void NoOpDrawBorder←P4740(slice←v42988, drawParts←v43016, transformParts←v43044, transform←v43072, dc←v43100, camera←v43128, quick←v43156, editConstraints←v43184)
word slice←v42988;
word drawParts←v43016;
word transformParts←v43044;
word transform←v43072;
word dc←v43100;
word camera←v43128;
word quick←v43156;
word editConstraints←v43184;
{
/* NoOpDrawBorder: */
}
static void NoOpDrawParts←P4800(slice←v43244, parts←v43272, dc←v43300, camera←v43328, quick←v43356)
word slice←v43244;
word parts←v43272;
word dc←v43300;
word camera←v43328;
word quick←v43356;
{
register ptr gf←c92992 = (ptr) &globalframe;
/* NoOpDrawParts: */
SOURCE(58568, 119)
SOURCE(58626, 61)
{
word var←c01009;
var←c01009 = (* (( (ptr) gf←c92992)+58) );
(void) (XR←RaiseSignal((* (( (ptr) gf←c92992)+4)/* Problem←v5072 */ ), 0, (word) &var←c01009));
};
}
static void NoOpDrawTransform←P4860(slice←v43416, parts←v43444, dc←v43472, camera←v43500, transform←v43528, editConstraints←v43556)
word slice←v43416;
word parts←v43444;
word dc←v43472;
word camera←v43500;
word transform←v43528;
word editConstraints←v43556;
{
register ptr gf←c93024 = (ptr) &globalframe;
/* NoOpDrawTransform: */
SOURCE(58692, 127)
SOURCE(58758, 61)
{
word var←c01016;
var←c01016 = (* (( (ptr) gf←c93024)+58) );
(void) (XR←RaiseSignal((* (( (ptr) gf←c93024)+4)/* Problem←v5072 */ ), 0, (word) &var←c01016));
};
}
static void NoOpDrawSelectionFeedback←P4920(slice←v43616, selectedParts←v43644, hotParts←v43672, dc←v43700, camera←v43728, dragInProgress←v43756, caretIsMoving←v43784, hideHot←v43812, quick←v43840)
word slice←v43616;
word selectedParts←v43644;
word hotParts←v43672;
word dc←v43700;
word camera←v43728;
word dragInProgress←v43756;
word caretIsMoving←v43784;
word hideHot←v43812;
word quick←v43840;
{
register ptr gf←c93056 = (ptr) &globalframe;
/* NoOpDrawSelectionFeedback: */
SOURCE(58824, 143)
SOURCE(58906, 61)
{
word var←c01026;
var←c01026 = (* (( (ptr) gf←c93056)+58) );
(void) (XR←RaiseSignal((* (( (ptr) gf←c93056)+4)/* Problem←v5072 */ ), 0, (word) &var←c01026));
};
}
static void NoOpDrawAttractorFeedback←P4980(slice←v43900, attractorParts←v43928, selectedParts←v43956, dragInProgress←v43984, dc←v44012, camera←v44040, editConstraints←v44068)
word slice←v43900;
word attractorParts←v43928;
word selectedParts←v43956;
word dragInProgress←v43984;
word dc←v44012;
word camera←v44040;
word editConstraints←v44068;
{
register ptr gf←c93088 = (ptr) &globalframe;
/* NoOpDrawAttractorFeedback: */
SOURCE(58973, 917)
SOURCE(59055, 835)
if ((0 == dragInProgress←v43984) || (selectedParts←v43956 == 0)) {
SOURCE(59106, 795)
{
word pointGen←v31276 = 0;
word pointPairGen←v31304 = 0;
word wholeSliceD←v31332;
SOURCE(59168, 72)
{
word pd476;
pd476 = (* (( (ptr) (* (( (ptr) gf←c93088)+276)/* var←c83456 */ ))+29) );
wholeSliceD←v31332 = (word) ( *( (fPt) ((* (ptr) pd476 ))))(slice←v43900, 0, 7, pd476);
};
SOURCE(59242, 30)
{
word pd477;
pd477 = (* (( (ptr) (* (( (ptr) gf←c93088)+270)/* var←c82656 */ ))+69) );
(void) ( *( (fPt) ((* (ptr) pd477 ))))(dc←v44012, 2, pd477);
};
SOURCE(59274, 30)
{
word pd478;
pd478 = (* (( (ptr) (* (( (ptr) gf←c93088)+270)/* var←c82656 */ ))+68) );
(void) ( *( (fPt) ((* (ptr) pd478 ))))(dc←v44012, (* (ptr) &fc87 ), pd478);
};
SOURCE(59306, 33)
{
word pd479;
pd479 = (* (( (ptr) (* (( (ptr) gf←c93088)+270)/* var←c82656 */ ))+52) );
(void) ( *( (fPt) ((* (ptr) pd479 ))))(dc←v44012, (* (ptr) (* (( (ptr) (* (( (ptr) gf←c93088)+270)/* var←c82656 */ ))+54)
) ), pd479);
};
SOURCE(59341, 61)
{
word pd480;
pd480 = (* (( (ptr) (* (( (ptr) gf←c93088)+276)/* var←c83456 */ ))+38) );
pointPairGen←v31304 = (word) ( *( (fPt) ((* (ptr) pd480 ))))(wholeSliceD←v31332, pd480);
};
SOURCE(59404, 228)
{
W5 pointPairAndDone←v31376;
{
word pd481;
pd481 = (* (( (ptr) (* (( (ptr) gf←c93088)+276)/* var←c83456 */ ))+42) );
(void) ( *( (fPt) ((* (ptr) pd481 ))))((word) &pointPairAndDone←v31376, slice←v43900, pointPairGen←v31304, pd481);
};
lab←L100113: ;
if ((0 == pointPairAndDone←v31376.f4)) {
}
else {
goto lab←L100110;
};
SOURCE(59569, 63)
{
word pd482;
pd482 = (* (( (ptr) (* (( (ptr) gf←c93088)+270)/* var←c82656 */ ))+73) );
(void) ( *( (fPt) ((* (ptr) pd482 ))))(dc←v44012, (* (W2Pt) &pointPairAndDone←v31376 ), (* (W2Pt) (( (ptr) &pointPairAndDone←v31376)+2)
), pd482);
};
{
word pd483;
pd483 = (* (( (ptr) (* (( (ptr) gf←c93088)+276)/* var←c83456 */ ))+42) );
(void) ( *( (fPt) ((* (ptr) pd483 ))))((word) &pointPairAndDone←v31376, slice←v43900, pointPairGen←v31304, pd483);
};
goto lab←L100113;
lab←L100110: ;
};
SOURCE(59643, 53)
{
word pd484;
pd484 = (* (( (ptr) (* (( (ptr) gf←c93088)+276)/* var←c83456 */ ))+36) );
pointGen←v31276 = (word) ( *( (fPt) ((* (ptr) pd484 ))))(wholeSliceD←v31332, pd484);
};
SOURCE(59698, 192)
{
W3 pointAndDone←v31420;
{
word pd485;
pd485 = (* (( (ptr) (* (( (ptr) gf←c93088)+276)/* var←c83456 */ ))+41) );
(void) ( *( (fPt) ((* (ptr) pd485 ))))((word) &pointAndDone←v31420, slice←v43900, pointGen←v31276, pd485);
};
lab←L100117: ;
if ((0 == pointAndDone←v31420.f2)) {
}
else {
goto lab←L100114;
};
SOURCE(59835, 55)
{
word pd486;
pd486 = (* (( (ptr) (* (( (ptr) gf←c93088)+279)/* var←c84512 */ ))+19) );
(void) ( *( (fPt) ((* (ptr) pd486 ))))(dc←v44012, (* (W2Pt) &pointAndDone←v31420 ), (* (( (ptr) camera←v44040)+4) ), pd486)
;
};
{
word pd487;
pd487 = (* (( (ptr) (* (( (ptr) gf←c93088)+276)/* var←c83456 */ ))+41) );
(void) ( *( (fPt) ((* (ptr) pd487 ))))((word) &pointAndDone←v31420, slice←v43900, pointGen←v31276, pd487);
};
goto lab←L100117;
lab←L100114: ;
};
};
};
}
static word NoOpAttractorFeedbackBoundBox←P5040(slice←v44128, attractorParts←v44156, selectedParts←v44184, dragInProgress←v44212, camera←v44240, editConstraints←v44268)
word slice←v44128;
word attractorParts←v44156;
word selectedParts←v44184;
word dragInProgress←v44212;
word camera←v44240;
word editConstraints←v44268;
{
register ptr gf←c93120 = (ptr) &globalframe;
word box←v44312;
/* NoOpAttractorFeedbackBoundBox: */
SOURCE(59908, 237)
SOURCE(59908, 237)
box←v44312 = 0;
SOURCE(59998, 65)
{
word var←c89280;
{
word pd488;
pd488 = (* (( (ptr) (* (( (ptr) gf←c93120)+276)/* var←c83456 */ ))+9) );
var←c89280 = (word) ( *( (fPt) ((* (ptr) pd488 ))))(slice←v44128, 0, pd488);
};
{
word pd489;
pd489 = (* (( (ptr) (* (( (ptr) gf←c93120)+271)/* var←c82752 */ ))+7) );
box←v44312 = (word) ( *( (fPt) ((* (ptr) pd489 ))))(var←c89280, pd489);
};
};
SOURCE(60065, 80)
{
word pd490;
word x492;
word x493;
word x494;
float tf495;
pd490 = (* (( (ptr) (* (( (ptr) gf←c93120)+271)/* var←c82752 */ ))+17) );
(void) ( *( (fPt) ((* (ptr) pd490 ))))(box←v44312, (
tf495 = ((
x492 = (* (ptr) &fc491 ), *(float*)&x492
) * (
x493 = (* (( (ptr) camera←v44240)+4) ), *(float*)&x493
)) + (
x494 = (* (ptr) &fc87 ), *(float*)&x494
), *(word*)&tf495
), pd490);
};
SOURCE(59908, 237)
return(box←v44312);
}
static void NoOpSaveSelections←P5100(slice←v44372, parts←v44400, selectClass←v44428)
word slice←v44372;
word parts←v44400;
word selectClass←v44428;
{
/* NoOpSaveSelections: */
}
static word NoOpRemakeSelections←P5160(slice←v44488, selectClass←v44516)
word slice←v44488;
word selectClass←v44516;
{
word parts←v44560;
/* NoOpRemakeSelections: */
SOURCE(60223, 70)
SOURCE(60223, 70)
parts←v44560 = 0;
SOURCE(60223, 70)
return(parts←v44560);
}
static word NoOpSetOrientation←P5220(slice←v44620, parts←v44648, orientation←v44676, history←v44704)
word slice←v44620;
word parts←v44648;
word orientation←v44676;
word history←v44704;
{
word success←v44748;
/* NoOpSetOrientation: */
SOURCE(60299, 81)
SOURCE(60367, 13)
return(0);
}
static void NoOpGetOrientation←P5280(formal←c01066, slice←v44808, parts←v44836)
word formal←c01066;
word slice←v44808;
word parts←v44836;
{
word orientation←v44880;
word isUnique←v44908;
/* NoOpGetOrientation: */
SOURCE(60386, 79)
SOURCE(60386, 79)
isUnique←v44908 = 1;
SOURCE(60454, 11)
orientation←v44880 = 1;
isUnique←v44908 = 1;
/* removed tail goto */
(* (ptr) formal←c01066 ) = orientation←v44880;
(* (( (ptr) formal←c01066)+1) ) = isUnique←v44908;
return;
}
static void NoOpTransform←P5340(slice←v44968, parts←v44996, transform←v45024, editConstraints←v45052, history←v45080)
word slice←v44968;
word parts←v44996;
word transform←v45024;
word editConstraints←v45052;
word history←v45080;
{
register ptr gf←c93152 = (ptr) &globalframe;
/* NoOpTransform: */
SOURCE(60470, 119)
SOURCE(60528, 61)
{
word var←c01072;
var←c01072 = (* (( (ptr) gf←c93152)+58) );
(void) (XR←RaiseSignal((* (( (ptr) gf←c93152)+4)/* Problem←v5072 */ ), 0, (word) &var←c01072));
};
}
static word NoOpDescribe←P5400(sliceD←v45140)
word sliceD←v45140;
{
register ptr gf←c93184 = (ptr) &globalframe;
word rope←v45184;
/* NoOpDescribe: */
SOURCE(60594, 118)
SOURCE(60594, 118)
rope←v45184 = 0;
SOURCE(60650, 62)
{
word var←c01075;
var←c01075 = (* (( (ptr) gf←c93184)+58) );
(void) (XR←RaiseSignal((* (( (ptr) gf←c93184)+4)/* Problem←v5072 */ ), 0, (word) &var←c01075));
};
SOURCE(60594, 118)
return(rope←v45184);
}
static word NoOpDescribeHit←P5460(slice←v45244, hitData←v45272)
word slice←v45244;
word hitData←v45272;
{
register ptr gf←c93216 = (ptr) &globalframe;
word rope←v45316;
/* NoOpDescribeHit: */
SOURCE(60717, 124)
SOURCE(60717, 124)
rope←v45316 = 0;
SOURCE(60779, 62)
{
word var←c01079;
var←c01079 = (* (( (ptr) gf←c93216)+58) );
(void) (XR←RaiseSignal((* (( (ptr) gf←c93216)+4)/* Problem←v5072 */ ), 0, (word) &var←c01079));
};
SOURCE(60717, 124)
return(rope←v45316);
}
static void NoOpFileout←P5520(slice←v45376, f←v45404)
word slice←v45376;
word f←v45404;
{
register ptr gf←c93248 = (ptr) &globalframe;
/* NoOpFileout: */
SOURCE(60846, 116)
SOURCE(60900, 62)
{
word var←c01082;
var←c01082 = (* (( (ptr) gf←c93248)+58) );
(void) (XR←RaiseSignal((* (( (ptr) gf←c93248)+4)/* Problem←v5072 */ ), 0, (word) &var←c01082));
};
}
static word NoOpFilein←P5580(f←v45464, version←v45492, router←v45520, camera←v45548)
word f←v45464;
word version←v45492;
word router←v45520;
word camera←v45548;
{
register ptr gf←c93280 = (ptr) &globalframe;
word slice←v45592;
/* NoOpFilein: */
SOURCE(60967, 114)
SOURCE(60967, 114)
slice←v45592 = 0;
SOURCE(61019, 62)
{
word var←c01088;
var←c01088 = (* (( (ptr) gf←c93280)+58) );
(void) (XR←RaiseSignal((* (( (ptr) gf←c93280)+4)/* Problem←v5072 */ ), 0, (word) &var←c01088));
};
SOURCE(60967, 114)
return(slice←v45592);
}
static word GenericTransformedBoundBox←P5640(slice←v45652, selectedParts←v45680, movingParts←v45708, transform←v45736)
word slice←v45652;
word selectedParts←v45680;
word movingParts←v45708;
word transform←v45736;
{
register ptr gf←c93312 = (ptr) &globalframe;
word box←v45780;
word var←c89312;
/* GenericTransformedBoundBox: */
SOURCE(61086, 600)
SOURCE(61086, 600)
box←v45780 = 0;
SOURCE(61167, 519)
{
word pd497;
{
word pd496;
pd496 = (* (( (ptr) (* (( (ptr) gf←c93312)+267)/* var←c82368 */ ))+8) );
var←c89312 = (word) ( *( (fPt) ((* (ptr) pd496 ))))(slice←v45652, selectedParts←v45680, pd496);
};
pd497 = (* (( (ptr) (* (( (ptr) gf←c93312)+276)/* var←c83456 */ ))+28) );
if ((0 != (word) ( *( (fPt) ((* (ptr) pd497 ))))(var←c89312, pd497))) {
SOURCE(61255, 40)
{
word pd498;
pd498 = (* (( (ptr) (* (( (ptr) gf←c93312)+276)/* var←c83456 */ ))+7) );
box←v45780 = (word) ( *( (fPt) ((* (ptr) pd498 ))))(slice←v45652, 0, pd498);
};
SOURCE(61297, 51)
{
word pd499;
pd499 = (* (( (ptr) (* (( (ptr) gf←c93312)+271)/* var←c82752 */ ))+9) );
box←v45780 = (word) ( *( (fPt) ((* (ptr) pd499 ))))(box←v45780, transform←v45736, pd499);
};
}
else {
SOURCE(61381, 307)
{
word copies←v31464;
SOURCE(61383, 8)
{
word pd500;
pd500 = (* (( (ptr) (* (( (ptr) gf←c93312)+276)/* var←c83456 */ ))+10) );
copies←v31464 = (word) ( *( (fPt) ((* (ptr) pd500 ))))(slice←v45652, 0, pd500);
};
SOURCE(61436, 79)
if (((* (( (ptr) copies←v31464)+1) ) != 0)) {
SOURCE(61460, 55)
{
word var←c01096;
var←c01096 = (* (( (ptr) gf←c93312)+59) );
(void) (XR←RaiseSignal((* (( (ptr) gf←c93312)+4)/* Problem←v5072 */ ), 0, (word) &var←c01096));
};
};
SOURCE(61517, 71)
{
word pd501;
pd501 = (* (( (ptr) (* (( (ptr) gf←c93312)+276)/* var←c83456 */ ))+22) );
(void) ( *( (fPt) ((* (ptr) pd501 ))))((* (ptr) copies←v31464 ), selectedParts←v45680, transform←v45736, 0, 0, pd501);
};
SOURCE(61606, 80)
{
word var←c89344;
{
word pd502;
pd502 = (* (( (ptr) (* (( (ptr) gf←c93312)+276)/* var←c83456 */ ))+7) );
var←c89344 = (word) ( *( (fPt) ((* (ptr) pd502 ))))((* (ptr) copies←v31464 ), movingParts←v45708, pd502);
};
{
word pd503;
pd503 = (* (( (ptr) (* (( (ptr) gf←c93312)+271)/* var←c82752 */ ))+7) );
box←v45780 = (word) ( *( (fPt) ((* (ptr) pd503 ))))(var←c89344, pd503);
};
};
};
};
};
SOURCE(61086, 600)
return(box←v45780);
}
static void Init←P5700()
{
register ptr gf←c93344 = (ptr) &globalframe;
/* Init: */
SOURCE(61694, 63)
SOURCE(61712, 45)
{
word pd504;
pd504 = (* (( (ptr) (* (( (ptr) gf←c93344)+280)/* var←c85056 */ ))+4) );
(* (( (ptr) gf←c93344)+6)/* cache←v8068 */ ) = (word) ( *( (fPt) ((* (ptr) pd504 ))))(100, 2147483647, pd504);
};
}
/* file: GGSliceImplC, module: GGSliceImplC, compiled at: July 11, 1993 8:09:44 pm PDT */
extern void XR←install←GGSliceImplC() {
XR←FillWords(&dummy156, 2, 0);
NoName←Q9060();
}
extern void XR←run←GGSliceImplC() { XR←Start(&globalframe); }