/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation. All rights reserved. */
/* time: February 5, 1993 2:05:58 pm PST */
/* C2C version: October 7, 1992 (native) */
/* ref-counting: off */
/* file: GGSegmentImplA, module: GGSegmentImplA */
/* switches: bcfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [1437427825,2755230924] GGSegmentImplA";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1;} W2;
typedef W2 *W2Pt;
typedef struct {word f0, f1, f2, f3;} W4;
typedef W4 *W4Pt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {word f0, f1, f2, f3, f4;} W5;
typedef struct {W8 f; W5 r;} W13;
typedef W8 *W8Pt;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef struct {W8 f; W8 r;} W16;
typedef W6 *W6Pt;
typedef struct {word f0, f1, f2;} W3;
typedef struct {W8 f; word r;} W9;
#define SOURCE(p, l) /* source p, l */
static float fc70 = 2.0;
static float fc78 = 0.0;
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
static float fc115 = -1.0;
#define FMIN(x, y, tx, ty) ( (tx=((float) x)) <= (ty=((float) y)) ? tx : ty )
#define FMAX(x, y, tx, ty) ( (tx=((float) x)) >= (ty=((float) y)) ? tx : ty )
static float fc156 = 0.707106816;
static float fc158 = 1.0;
static float fc182 = 0.9999;
#define FABS(f, t) ( ((t=(f)) >= (float) 0.0) ? (t) : (- (t)) )
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
static float fc513 = 8608.12;
static float fc521 = 8607.22;
static float fc699 = 0.5;
static void NoName←Q9660();
static void GGSegmentImplA←P0();
static void RegisterSegmentClass←P60();
static word FetchSegmentClass←P120();
static word CopySegment←P180();
static void CopyLooks←P240();
static void SetDefaults←P300();
static word SameLooks←P360();
static word SameShape←P420();
static word EqualSequence←P480();
static void ReverseSegment←P540();
static void OpenUpSegment←P600();
static void TransformSegment←P660();
static void TranslateSegment←P720();
static void MoveEndPointSegment←P780();
static void DrawLine←P840();
static void EdgePathProc←P7212();
static word PatternProc←P7272();
static word BuildConicClass←P900();
static void ConicSetStrokeWidth←P960();
static word MakeConic←P1020();
static void ConicGetParams←P1080();
static void ConicSetRatio←P1140();
static void ConicSetControlPoint←P1200();
static word ConicBoundBox←P1260();
static word ConicTightBox←P1320();
static word ConicSameShape←P1380();
static void UpdateConicBoundBox←P1440();
static word ConicCopyData←P1500();
static void ConicReverse←P1560();
static void ConicBuildPath←P1620();
static void ConicBuildPathTransform←P1680();
static void ConicTransform←P1740();
static void ConicEndPointMoved←P1800();
static void ConicControlPointMoved←P1860();
static void TransformEndPoints←P1920();
static word ConicDescribe←P1980();
static void ConicFileOut←P2040();
static word ConicFileIn←P2100();
static void ConicFieldSet←P2160();
static word ConicFieldGet←P2220();
static void ConicControlPointGet←P2280();
static word ConicControlPointCount←P2340();
static void ConicClosestControlPoint←P2400();
static word ConicAsPolyline←P2460();
static word ConicPolyline←P2640();
static word BuildBezierClass←P2700();
static void BZSetStrokeWidth←P2760();
static word MakeBezier←P2820();
static void BezierGetParams←P2880();
static word BZBoundBox←P2940();
static word BZTightBox←P3000();
static void UpdateBZBoundBox←P3060();
static word BZCopyData←P3120();
static void BZReverse←P3180();
static void BZTransform←P3240();
static void BZEndPointMoved←P3300();
static void BZControlPointMoved←P3360();
static void BZControlPointMovedTo←P3420();
static void BZBuildPathTransform←P3480();
static void NoName←Q7524();
static void BZTransformPath←P3540();
static void BZSpecialTransformPath←P3600();
static void NoName←Q7680();
static void BZRestorePath←P3660();
static void BZControlPointGet←P3720();
static word BZControlPointCount←P3780();
static void BZFieldSet←P3840();
static word BZFieldGet←P3900();
static void BZClosestControlPoint←P3960();
static word BZAsSimpleCurve←P4020();
static word BZAsPolyline←P4080();
static void BZJointNormal←P4140();
static void BZAddJoint←P4200();
static word BZDescribe←P4260();
static void BZFileOut←P4320();
static word BZFileIn←P4380();
static word BuildCubicSplineClass←P4440();
static word CSSameShape←P4500();
static void CSSetStrokeWidth←P4560();
static word MakeCubicSpline←P4620();
static word CubicSplineGetParams←P4680();
static word CSBoundBox←P4740();
static word CSTightBox←P4800();
static void UpdateCSBoundBox←P4860();
static word CSCopyData←P4920();
static void CSReverse←P4980();
static void CSBuildPathTransform←P5040();
static void NoName←Q7932();
static void CSTransform←P5100();
static void CSEndPointMoved←P5160();
static void CSControlPointMoved←P5220();
static word CSDescribe←P5280();
static void CSFileOut←P5340();
static word CSFileIn←P5400();
static void CSFieldSet←P5460();
static word CSFieldGet←P5520();
static void CSControlPointGet←P5580();
static word CSControlPointCount←P5640();
static void CSClosestControlPoint←P5700();
static word CSAsPolyline←P5760();
static void CSCPNormal←P5820();
static void CSJointNormal←P5880();
static void CSAddJoint←P5940();
static word CSControlPointAdd←P6000();
static word CSControlPointDelete←P6060();
static word CountSelected←P8856();
static void CSControlPointSet←P6120();
static void CSEndPointSet←P6180();
static void CurveBoundBox←P6240();
static void CurveBuildPath←P6300();
static void NoName←Q9012();
static void CurveClosestPoint←P6360();
static word PointIsInBox←P6420();
static void KnotBoundBox←P6480();
static void FPToPoint←P6540();
static void PointToFP←P6600();
static word FindNearestPath←P6660();
static word PathNumToCPIndex←P6720();
static word GetPath←P6780();
static word PathFromConic←P6840();
static void bproc←P9360();
static word PathFromList←P6900();
static void Init←P6960();
static struct {unsigned f; char r[48];} string1 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\043\211\212\366\300\343\003\307\242\100\164\005\004\162\145\163\164\214\216\257\300\043\211\212\366\300\343\003\307\242\100\164\261\000\000\000"};
static struct {unsigned f; char r[4];} string2 = {131074, "\004\003\000"};
static struct {unsigned f; char r[16];} string3 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[4];} string4 = {65537, "\001\000\000"};
static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\043\211\212\366\300\343\003\307\242\100\164\000\000"};
static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\254\073\314\103\300\064\024\167\046\100\200\000\000"};
static struct {unsigned f; char r[28];} string7 = {1638425, "\006\011\000\001\004\001\024\001\040\001\100\124\001\100\130\001\100\134\001\100\140\001\100\144\001\000\000"};
static struct {unsigned f; char r[4];} string8 = {131076, "\216\251\000"};
static struct {unsigned f; char r[48];} string9 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\176\067\335\331\300\021\260\123\113\100\200\005\004\162\145\163\164\214\216\257\300\176\067\335\331\300\021\260\123\113\100\200\261\000\000\000"};
static struct {unsigned f; char r[16];} string10 = {851984, "\257\300\125\255\150\161\300\244\071\174\314\105\204\000\000"};
static struct {unsigned f; char r[4];} string11 = {131074, "\004\015\000"};
static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\254\073\314\103\300\064\024\167\046\100\244\000\000"};
static struct {unsigned f; char r[16];} string13 = {851984, "\257\300\125\255\150\161\300\244\071\174\314\106\354\000\000"};
static struct {unsigned f; char r[12];} string14 = {524296, "\011\000\004\000\040\000\004\001\000\000\000"};
static struct {unsigned f; char r[16];} string15 = {851984, "\257\300U\255hq\300\2449|\314A|\000\000"};
static struct {unsigned f; char r[4];} string16 = {131074, "\003\007\000"};
static struct {unsigned f; char r[16];} string17 = {851984, "\257\300\125\255\150\161\300\244\071\174\314\105\220\000\000"};
static struct {unsigned f; char r[16];} string18 = {851984, "\257\300\017\106\176\051\300\361\373\025\153\100\214\000\000"};
static struct {unsigned f; char r[16];} string19 = {851984, "\257\300\254\073\314\103\300\064\024\167\046\102\220\000\000"};
static struct {unsigned f; char r[16];} string20 = {851984, "\257\300\176\067\335\331\300\021\260\123\113\100\200\000\000"};
static struct {unsigned f; char r[16];} string21 = {851984, "\257\300\125\255\150\161\300\244\071\174\314\103\214\000\000"};
static struct {unsigned f; char r[4];} string22 = {131074, "\003\010\000"};
static struct {unsigned f; char r[16];} string23 = {851984, "\257\300\325\040\343\357\300\152\277\324\231\100\164\000\000"};
static struct {unsigned f; char r[4];} string24 = {131074, "\003\004\000"};
static struct {unsigned f; char r[16];} string25 = {851984, "\257\300\325\040\343\357\300\152\277\324\231\100\200\000\000"};
static struct {unsigned f; char r[8];} string26 = {393224, "Bezier\000"};
static struct {unsigned f; char r[4];} string27 = {196612, " %g"};
static struct {unsigned f; char r[16];} string28 = {983056, "Parabolic Conic"};
static struct {unsigned f; char r[8];} string29 = {458760, "Natural"};
static struct {unsigned f; char r[16];} string30 = {917520, "Cyclic Natural\000"};
static struct {unsigned f; char r[8];} string31 = {458760, "BSpline"};
static struct {unsigned f; char r[16];} string32 = {917520, "Type: Natural \000"};
static struct {unsigned f; char r[24];} string33 = {1310744, "Type: CyclicNatural \000\000\000"};
static struct {unsigned f; char r[16];} string34 = {917520, "Type: BSpline \000"};
static struct {unsigned f; char r[4];} string35 = {196612, "%g "};
static struct {unsigned f; char r[8];} string36 = {327688, "Type:\000\000"};
static struct {unsigned f; char r[16];} string37 = {851984, "CyclicNatural\000\000"};
static struct {unsigned f; char r[8];} string38 = {458760, "Cyclic:"};
static struct {unsigned f; char r[8];} string39 = {327688, "Conic\000\000"};
static struct {unsigned f; char r[20];} string40 = {1114132, "CurveClosestPoint\000\000"};
static struct {unsigned f; char r[12];} string41 = {524300, "Gargoyle\000\000\000"};
static struct {unsigned f; char r[12];} string42 = {720908, "CubicSpline"};
static struct {unsigned f; char r[28];} string43 = {1703964, "SegmentClass %g is unknown\000"};
static struct {unsigned f; char r[16];} string44 = {851984, "\257\300\125\255\150\161\300\244\071\174\314\100\164\000\000"};
static struct {unsigned f; char r[12];} string45 = {720907, "\006\002\030\001\100\170\010\000\004\023\001"};
static struct {unsigned f; char r[16];} string46 = {851984, "\257\300\055\153\222\376\300\327\164\352\142\100\150\000\000"};
static struct {unsigned f; char r[16];} string47 = {851984, "\257\300\006<7[\300;CV\364@h\000\000"};
static struct {unsigned f; char r[16];} string48 = {851984, "\257\300\176\067\335\331\300\021\260\123\113\100\150\000\000"};
static struct {unsigned f; char r[16];} string49 = {851984, "\257\300\325\040\343\357\300\152\277\324\231\100\150\000\000"};
static struct {unsigned f; char r[16];} string50 = {851984, "\257\300\017\106\176\051\300\361\373\025\153\100\150\000\000"};
static struct {unsigned f; char r[16];} string51 = {851984, "\257\300\322\334\347\304\300\124\107\000\027\100\150\000\000"};
static struct {unsigned f; char r[16];} string52 = {851984, "\257\300\265\217\206\011\300\172\271\371\033\100\150\000\000"};
static struct {unsigned f; char r[16];} string53 = {851984, "\257\300\231\005\151\136\300\275\231\323\274\100\150\000\000"};
static struct {unsigned f; char r[16];} string54 = {851984, "\257\300\335\021\351\270\300\210\237\013\247\100\150\000\000"};
static struct {unsigned f; char r[16];} string55 = {851984, "\257\300\236\155\220\261\300\040\017\026\014\100\150\000\000"};
static struct {unsigned f; char r[16];} string56 = {851984, "\257\300\045\215\147\016\300\153\043\150\276\100\150\000\000"};
static struct {unsigned f; char r[8];} string57 = {1195856741, "gment"};
static struct {unsigned f; char r[16];} string58 = {851984, "\257\300\043\211\212\366\300\343\003\307\242\100\150\000\000"};
static struct {unsigned f; char r[16];} string59 = {851984, "\257\300\104\154\010\164\300\126\073\363\036\100\150\000\000"};
static struct {unsigned f; char r[16];} string60 = {851984, "\257\300\370\132\042\205\300\045\133\011\125\100\150\000\000"};
static struct {unsigned f; char r[16];} string61 = {851984, "\257\300\074\177\166\242\300\203\113\217\044\100\150\000\000"};
static struct {unsigned f; char r[16];} string62 = {851984, "\257\300\354\147\236\353\300\316\347\225\106\100\150\000\000"};
static struct {unsigned f; char r[16];} string63 = {851984, "\257\300\121\117\377\026\300\315\013\026\004\100\150\000\000"};
static struct {unsigned f; char r[16];} string64 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\100\164\000\000"};
static struct {unsigned f; char r[16];} string65 = {851984, "\257\300\144\364\322\150\300\206\136\277\046\100\150\000\000"};
static struct {unsigned f; char r[16];} string66 = {851984, "\257\300\246\205\220\035\300\344\000\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string67 = {851984, "\257\300\245\247\302\156\300\052\156\325\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string68 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string69 = {851984, "\257\300\004\142\347\110\300\363\053\254\345\100\150\000\000"};
static struct {
word f0[49]; word f49; word f50; word f51;
word f52; word f53; word f54; word f55;
word f56; word f57; word f58; word f59;
word f60; word f61; word f62; word f63;
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;
word f252; word f253; word f254; word f255;
word f256; word f257; word f258; word f259;
word f260; word f261; word f262; word f263;
word f264; word f265; word f266; word f267;
word f268; word f269; word f270; word f271;
word f272; word f273; word f274; word f275;
word f276; word f277; word f278[29];
} globalframe = {
{0}, (word) Init←P6960, 0, (word) PathFromList←P6900,
0, (word) PathFromConic←P6840, 0, (word) GetPath←P6780,
0, (word) PathNumToCPIndex←P6720, 0, (word) FindNearestPath←P6660,
0, (word) PointToFP←P6600, 0, (word) FPToPoint←P6540,
0, (word) KnotBoundBox←P6480, 0, (word) PointIsInBox←P6420,
0, (word) CurveClosestPoint←P6360, 0, (word) CurveBuildPath←P6300,
0, (word) CurveBoundBox←P6240, 0, (word) CSEndPointSet←P6180,
0, (word) CSControlPointSet←P6120, 0, (word) CSControlPointDelete←P6060,
0, (word) CSControlPointAdd←P6000, 0, (word) CSAddJoint←P5940,
0, (word) CSJointNormal←P5880, 0, (word) CSCPNormal←P5820,
0, (word) CSAsPolyline←P5760, 0, (word) CSClosestControlPoint←P5700,
0, (word) CSControlPointCount←P5640, 0, (word) CSControlPointGet←P5580,
0, (word) CSFieldGet←P5520, 0, (word) CSFieldSet←P5460,
0, (word) CSFileIn←P5400, 0, (word) CSFileOut←P5340,
0, (word) CSDescribe←P5280, 0, (word) CSControlPointMoved←P5220,
0, (word) CSEndPointMoved←P5160, 0, (word) CSTransform←P5100,
0, (word) CSBuildPathTransform←P5040, 0, (word) CSReverse←P4980,
0, (word) CSCopyData←P4920, 0, (word) UpdateCSBoundBox←P4860,
0, (word) CSTightBox←P4800, 0, (word) CSBoundBox←P4740,
0, (word) CubicSplineGetParams←P4680, 0, (word) MakeCubicSpline←P4620,
0, (word) CSSetStrokeWidth←P4560, 0, (word) CSSameShape←P4500,
0, (word) BuildCubicSplineClass←P4440, 0, (word) BZFileIn←P4380,
0, (word) BZFileOut←P4320, 0, (word) BZDescribe←P4260,
0, (word) BZAddJoint←P4200, 0, (word) BZJointNormal←P4140,
0, (word) BZAsPolyline←P4080, 0, (word) BZAsSimpleCurve←P4020,
0, (word) BZClosestControlPoint←P3960, 0, (word) BZFieldGet←P3900,
0, (word) BZFieldSet←P3840, 0, (word) BZControlPointCount←P3780,
0, (word) BZControlPointGet←P3720, 0, (word) BZRestorePath←P3660,
0, (word) BZSpecialTransformPath←P3600, 0, (word) BZTransformPath←P3540,
0, (word) BZBuildPathTransform←P3480, 0, (word) BZControlPointMovedTo←P3420,
0, (word) BZControlPointMoved←P3360, 0, (word) BZEndPointMoved←P3300,
0, (word) BZTransform←P3240, 0, (word) BZReverse←P3180,
0, (word) BZCopyData←P3120, 0, (word) UpdateBZBoundBox←P3060,
0, (word) BZTightBox←P3000, 0, (word) BZBoundBox←P2940,
0, (word) BezierGetParams←P2880, 0, (word) MakeBezier←P2820,
0, (word) BZSetStrokeWidth←P2760, 0, (word) BuildBezierClass←P2700,
0, (word) ConicPolyline←P2640, 0, (word) ConicAsPolyline←P2460,
0, (word) ConicClosestControlPoint←P2400, 0, (word) ConicControlPointCount←P2340,
0, (word) ConicControlPointGet←P2280, 0, (word) ConicFieldGet←P2220,
0, (word) ConicFieldSet←P2160, 0, (word) ConicFileIn←P2100,
0, (word) ConicFileOut←P2040, 0, (word) ConicDescribe←P1980,
0, (word) TransformEndPoints←P1920, 0, (word) ConicControlPointMoved←P1860,
0, (word) ConicEndPointMoved←P1800, 0, (word) ConicTransform←P1740,
0, (word) ConicBuildPathTransform←P1680, 0, (word) ConicBuildPath←P1620,
0, (word) ConicReverse←P1560, 0, (word) ConicCopyData←P1500,
0, (word) UpdateConicBoundBox←P1440, 0, (word) ConicSameShape←P1380,
0, (word) ConicTightBox←P1320, 0, (word) ConicBoundBox←P1260,
0, (word) ConicSetControlPoint←P1200, 0, (word) ConicSetRatio←P1140,
0, (word) ConicGetParams←P1080, 0, (word) MakeConic←P1020,
0, (word) ConicSetStrokeWidth←P960, 0, (word) BuildConicClass←P900,
0, (word) DrawLine←P840, 0, (word) MoveEndPointSegment←P780,
0, (word) TranslateSegment←P720, 0, (word) TransformSegment←P660,
0, (word) OpenUpSegment←P600, 0, (word) ReverseSegment←P540,
0, (word) EqualSequence←P480, 0, (word) SameShape←P420,
0, (word) SameLooks←P360, 0, (word) SetDefaults←P300,
0, (word) CopyLooks←P240, 0, (word) CopySegment←P180,
0, (word) FetchSegmentClass←P120, 0, (word) RegisterSegmentClass←P60,
0, (word) GGSegmentImplA←P0, {0}
};
static void NoName←Q9660()
{
register ptr gf←c01263 = (ptr) &globalframe;
word var←c78068;
(* (( (ptr) gf←c01263)+11) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
(* (( (ptr) gf←c01263)+13) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
(* (( (ptr) gf←c01263)+14) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string2);
(* (( (ptr) gf←c01263)+15) ) = (word) XR←GetTypeIndex((word) &string6, 0, (word) &string7);
(* (( (ptr) gf←c01263)+16) ) = (word) XR←GetTypeIndex((word) &string8, 0, (word) &string4);
(* (( (ptr) gf←c01263)+17) ) = (word) XR←GetTypeIndex((word) &string9, 0, (word) &string2);
(* (( (ptr) gf←c01263)+19) ) = (word) XR←GetTypeIndex((word) &string10, 0, (word) &string11);
(* (( (ptr) gf←c01263)+20) ) = (word) XR←GetTypeIndex((word) &string12, 0, (word) &string4);
(* (( (ptr) gf←c01263)+21) ) = (word) XR←GetTypeIndex((word) &string13, 0, (word) &string14);
(* (( (ptr) gf←c01263)+22) ) = (word) XR←GetTypeIndex((word) &string15, 0, (word) &string16);
(* (( (ptr) gf←c01263)+23) ) = (word) XR←GetTypeIndexS((word) (&string17));
(* (( (ptr) gf←c01263)+24) ) = (word) XR←GetTypeIndexS((word) (&string18));
(* (( (ptr) gf←c01263)+25) ) = (word) XR←GetTypeIndexS((word) (&string19));
(* (( (ptr) gf←c01263)+26) ) = (word) XR←GetTypeIndexS((word) (&string20));
(* (( (ptr) gf←c01263)+27) ) = (word) XR←GetTypeIndex((word) &string21, 0, (word) &string22);
(* (( (ptr) gf←c01263)+28) ) = (word) XR←GetTypeIndex((word) &string23, 0, (word) &string24);
(* (( (ptr) gf←c01263)+29) ) = (word) XR←GetTypeIndexS((word) (&string25));
(* (ptr) (( (bPt) gf←c01263)+120) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01263)+16) ), (word) &string26);
(* (ptr) (( (bPt) gf←c01263)+124) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01263)+13) ), (word) &string26);
(* (ptr) (( (bPt) gf←c01263)+128) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01263)+13) ), (word) &string27);
(* (ptr) (( (bPt) gf←c01263)+132) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01263)+13) ), (word) &string28);
(* (ptr) (( (bPt) gf←c01263)+136) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01263)+13) ), (word) &string29);
(* (ptr) (( (bPt) gf←c01263)+140) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01263)+13) ), (word) &string30);
(* (ptr) (( (bPt) gf←c01263)+144) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01263)+13) ), (word) &string31);
(* (ptr) (( (bPt) gf←c01263)+148) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01263)+13) ), (word) &string32);
(* (ptr) (( (bPt) gf←c01263)+152) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01263)+13) ), (word) &string33);
(* (ptr) (( (bPt) gf←c01263)+156) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01263)+13) ), (word) &string34);
(* (ptr) (( (bPt) gf←c01263)+160) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01263)+13) ), (word) &string35);
(* (ptr) (( (bPt) gf←c01263)+164) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01263)+13) ), (word) &string36);
(* (ptr) (( (bPt) gf←c01263)+168) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01263)+13) ), (word) &string37);
(* (ptr) (( (bPt) gf←c01263)+172) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01263)+13) ), (word) &string38);
(* (ptr) (( (bPt) gf←c01263)+176) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01263)+16) ), (word) &string39);
(* (ptr) (( (bPt) gf←c01263)+180) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01263)+16) ), (word) &string40);
(* (ptr) (( (bPt) gf←c01263)+184) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01263)+16) ), (word) &string41);
(* (ptr) (( (bPt) gf←c01263)+188) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01263)+16) ), (word) &string42);
(* (ptr) (( (bPt) gf←c01263)+192) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01263)+13) ), (word) &string43);
(void) XR←DeclareGlobalFrame((word) "GGSegmentImplA", &globalframe, (word) XR←GetTypeIndex((word) &string44, 0, (word) &string45)
, (word) (( (bPt) gf←c01263)+1108)/* var←c64756 */ );
var←c78068 = (word) XR←ImportInterface((word) "Atom", (word) XR←GetTypeIndexS((word) (&string46)), 16);
(* (( (ptr) gf←c01263)+284)/* var←c64980 */ ) = var←c78068;
(void) XR←ImportProcS(var←c78068, 67372289);
var←c78068 = (word) XR←ImportInterface((word) "CodeTimer", (word) XR←GetTypeIndexS((word) (&string47)), 21);
(* (( (ptr) gf←c01263)+304)/* var←c76980 */ ) = var←c78068;
(void) XR←ImportProcS(var←c78068, 526850);
(void) XR←ImportProcS(var←c78068, 526338);
var←c78068 = (word) XR←ImportInterface((word) "Cubic2", (word) XR←GetTypeIndexS((word) (&string48)), 5);
(* (( (ptr) gf←c01263)+302)/* var←c70004 */ ) = var←c78068;
(void) XR←ImportProcS(var←c78068, 1076101890);
var←c78068 = (word) XR←ImportInterface((word) "CubicPaths", (word) XR←GetTypeIndexS((word) (&string49)), 13);
(* (( (ptr) gf←c01263)+291)/* var←c65492 */ ) = var←c78068;
(void) XR←ImportProcS(var←c78068, 68158211);
(void) XR←ImportProcS(var←c78068, 202377731);
(void) XR←ImportProcS(var←c78068, 69733122);
(void) XR←ImportProcS(var←c78068, 786691);
(void) XR←ImportProcS(var←c78068, 263681);
(void) XR←ImportProcS(var←c78068, 787715);
(void) XR←ImportProcS(var←c78068, 264449);
(void) XR←ImportProcS(var←c78068, 67373057);
(void) XR←ImportProcS(var←c78068, 67633154);
var←c78068 = (word) XR←ImportInterface((word) "CubicSplines", (word) XR←GetTypeIndexS((word) (&string50)), 6);
(* (( (ptr) gf←c01263)+290)/* var←c65460 */ ) = var←c78068;
(void) XR←ImportProcS(var←c78068, 67634178);
var←c78068 = (word) XR←ImportInterface((word) "Feedback", (word) XR←GetTypeIndexS((word) (&string51)), 25);
(* (( (ptr) gf←c01263)+283)/* var←c64852 */ ) = var←c78068;
var←c78068 = (word) XR←ImportInterface((word) "GGBoundBox", (word) XR←GetTypeIndexS((word) (&string52)), 24);
(* (( (ptr) gf←c01263)+287)/* var←c65172 */ ) = var←c78068;
(void) XR←ImportProcS(var←c78068, 527618);
(void) XR←ImportProcS(var←c78068, 1314309);
(void) XR←ImportProcS(var←c78068, 68681990);
(void) XR←ImportProcS(var←c78068, 67371777);
var←c78068 = (word) XR←ImportInterface((word) "GGCoreOps", (word) XR←GetTypeIndexS((word) (&string53)), 37);
(* (( (ptr) gf←c01263)+289)/* var←c65332 */ ) = var←c78068;
(void) XR←ImportProcS(var←c78068, 67641090);
var←c78068 = (word) XR←ImportInterface((word) "GGCubic2", (word) XR←GetTypeIndexS((word) (&string54)), 3);
(* (( (ptr) gf←c01263)+301)/* var←c69812 */ ) = var←c78068;
(void) XR←ImportProcS(var←c78068, 69468674);
var←c78068 = (word) XR←ImportInterface((word) "GGParseIn", (word) XR←GetTypeIndexS((word) (&string55)), 26);
(* (( (ptr) gf←c01263)+297)/* var←c66260 */ ) = var←c78068;
(void) XR←ImportProcS(var←c78068, 67376385);
(void) XR←ImportProcS(var←c78068, 67376129);
(void) XR←ImportProcS(var←c78068, 67372033);
(void) XR←ImportProcS(var←c78068, 525570);
(void) XR←ImportProcS(var←c78068, 67376897);
(void) XR←ImportProcS(var←c78068, 134483713);
var←c78068 = (word) XR←ImportInterface((word) "GGParseOut", (word) XR←GetTypeIndexS((word) (&string56)), 15);
(* (( (ptr) gf←c01263)+296)/* var←c66196 */ ) = var←c78068;
(void) XR←ImportProcS(var←c78068, 787714);
var←c78068 = (word) XR←ImportInterface((word) &string57, (word) XR←GetTypeIndexS((word) (&string58)), 47);
(* (( (ptr) gf←c01263)+295)/* var←c65748 */ ) = var←c78068;
(void) XR←ImportProcS(var←c78068, 67641090);
(void) XR←ImportProcS(var←c78068, 67376129);
(void) XR←ImportProcS(var←c78068, 135015682);
(void) XR←ImportProcS(var←c78068, 270019332);
(void) XR←ImportProcS(var←c78068, 135801860);
(void) XR←ImportProcS(var←c78068, 67905794);
(void) XR←ImportProcS(var←c78068, 134752258);
(void) XR←ImportProcS(var←c78068, 134752002);
(void) XR←ImportProcS(var←c78068, 336602627);
var←c78068 = (word) XR←ImportInterface((word) "GGTransform", (word) XR←GetTypeIndexS((word) (&string59)), 7);
(* (( (ptr) gf←c01263)+292)/* var←c65524 */ ) = var←c78068;
(void) XR←ImportProcS(var←c78068, 135004418);
var←c78068 = (word) XR←ImportInterface((word) "GGUtility", (word) XR←GetTypeIndexS((word) (&string60)), 42);
(* (( (ptr) gf←c01263)+286)/* var←c65108 */ ) = var←c78068;
(void) XR←ImportProcS(var←c78068, 67379457);
var←c78068 = (word) XR←ImportInterface((word) "Imager", (word) XR←GetTypeIndexS((word) (&string61)), 84);
(* (( (ptr) gf←c01263)+294)/* var←c65684 */ ) = var←c78068;
(void) XR←ImportProcS(var←c78068, 1328387);
(void) XR←ImportProcS(var←c78068, 1591046);
(void) XR←ImportProcS(var←c78068, 536578);
(void) XR←ImportProcS(var←c78068, 540930);
(void) XR←ImportProcS(var←c78068, 540674);
var←c78068 = (word) XR←ImportInterface((word) "ImagerPath", (word) XR←GetTypeIndexS((word) (&string62)), 18);
(* (( (ptr) gf←c01263)+305)/* var←c77588 */ ) = var←c78068;
(void) XR←ImportProcS(var←c78068, 2097157);
var←c78068 = (word) XR←ImportInterface((word) "ImagerTransformation", (word) XR←GetTypeIndexS((word) (&string63)), 55);
(* (( (ptr) gf←c01263)+293)/* var←c65588 */ ) = var←c78068;
(void) XR←ImportProcS(var←c78068, 135013122);
(void) XR←ImportProcS(var←c78068, 67634689);
var←c78068 = (word) XR←ImportInterface((word) "IO", (word) XR←GetTypeIndexS((word) (&string64)), 103);
(* (( (ptr) gf←c01263)+285)/* var←c65044 */ ) = var←c78068;
(void) XR←ImportProcS(var←c78068, 1071364);
(void) XR←ImportProcS(var←c78068, 528642);
(void) XR←ImportProcS(var←c78068, 1063171);
(void) XR←ImportProcS(var←c78068, 67910402);
var←c78068 = (word) XR←ImportInterface((word) "List", (word) XR←GetTypeIndexS((word) (&string65)), 28);
(* (( (ptr) gf←c01263)+288)/* var←c65268 */ ) = var←c78068;
(void) XR←ImportProcS(var←c78068, 67633666);
var←c78068 = (word) XR←ImportInterface((word) "Real", (word) XR←GetTypeIndexS((word) (&string66)), 11);
(* (( (ptr) gf←c01263)+298)/* var←c66644 */ ) = var←c78068;
(void) XR←ImportProcS(var←c78068, 67633154);
var←c78068 = (word) XR←ImportInterface((word) "RealFns", (word) XR←GetTypeIndexS((word) (&string67)), 36);
(* (( (ptr) gf←c01263)+299)/* var←c66836 */ ) = var←c78068;
(void) XR←ImportProcS(var←c78068, 67372289);
var←c78068 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string68)), 43);
(* (( (ptr) gf←c01263)+303)/* var←c72340 */ ) = var←c78068;
(void) XR←ImportProcS(var←c78068, 67896323);
var←c78068 = (word) XR←ImportInterface((word) "Vectors2d", (word) XR←GetTypeIndexS((word) (&string69)), 21);
(* (( (ptr) gf←c01263)+300)/* var←c69588 */ ) = var←c78068;
(void) XR←ImportProcS(var←c78068, 68158722);
(void) XR←ImportProcS(var←c78068, 135270914);
(void) XR←ImportProcS(var←c78068, 68161794);
var←c78068 = (word) XR←ExportInterface((word) &string57, (word) XR←GetTypeIndexS((word) (&string58)), 47);
(* (( (ptr) gf←c01263)+306)/* var←c78100 */ ) = var←c78068;
(void) XR←ExportProcS(var←c78068, (word) (( (bPt) gf←c01263)+748)/* var←c63316 */ , 69468677);
(void) XR←ExportProcS(var←c78068, (word) (( (bPt) gf←c01263)+972)/* var←c64212 */ , 69206789);
(void) XR←ExportProcS(var←c78068, (word) (( (bPt) gf←c01263)+508)/* var←c62356 */ , 67896579);
(void) XR←ExportProcS(var←c78068, (word) (( (bPt) gf←c01263)+740)/* var←c63284 */ , 537134593);
(void) XR←ExportProcS(var←c78068, (word) (( (bPt) gf←c01263)+964)/* var←c64180 */ , 470025985);
(void) XR←ExportProcS(var←c78068, (word) (( (bPt) gf←c01263)+956)/* var←c64148 */ , 526338);
(void) XR←ExportProcS(var←c78068, (word) (( (bPt) gf←c01263)+948)/* var←c64116 */ , 788738);
(void) XR←ExportProcS(var←c78068, (word) (( (bPt) gf←c01263)+500)/* var←c62324 */ , 67373825);
(void) XR←ExportProcS(var←c78068, (word) (( (bPt) gf←c01263)+1068)/* var←c64596 */ , 527362);
(void) XR←ExportProcS(var←c78068, (word) (( (bPt) gf←c01263)+1084)/* var←c64660 */ , 67374337);
(void) XR←ExportProcS(var←c78068, (word) (( (bPt) gf←c01263)+1076)/* var←c64628 */ , 527874);
(void) XR←ExportProcS(var←c78068, (word) (( (bPt) gf←c01263)+1060)/* var←c64564 */ , 67636994);
(void) XR←ExportProcS(var←c78068, (word) (( (bPt) gf←c01263)+1052)/* var←c64532 */ , 67637250);
(void) XR←ExportProcS(var←c78068, (word) (( (bPt) gf←c01263)+1036)/* var←c64468 */ , 266753);
(void) XR←ExportProcS(var←c78068, (word) (( (bPt) gf←c01263)+1028)/* var←c64436 */ , 267009);
(void) XR←ExportProcS(var←c78068, (word) (( (bPt) gf←c01263)+1092)/* var←c64692 */ , 67376129);
(void) XR←ExportProcS(var←c78068, (word) (( (bPt) gf←c01263)+1100)/* var←c64724 */ , 267521);
(void) XR←ExportProcS(var←c78068, (word) (( (bPt) gf←c01263)+1020)/* var←c64404 */ , 529922);
(void) XR←ExportProcS(var←c78068, (word) (( (bPt) gf←c01263)+1012)/* var←c64372 */ , 792322);
(void) XR←ExportProcS(var←c78068, (word) (( (bPt) gf←c01263)+1004)/* var←c64340 */ , 1054723);
(void) XR←ExportProcS(var←c78068, (word) (( (bPt) gf←c01263)+996)/* var←c64308 */ , 1579268);
(void) XR←ExportProcS(var←c78068, (word) (( (bPt) gf←c01263)+324)/* var←c61620 */ , 67901954);
(void) XR←ExportProcS(var←c78068, (word) (( (bPt) gf←c01263)+316)/* var←c61588 */ , 67640066);
(void) XR←ExportProcS(var←c78068, (word) (( (bPt) gf←c01263)+644)/* var←c62900 */ , 2104328);
(void) XR←ExportProcS(var←c78068, (word) (( (bPt) gf←c01263)+668)/* var←c62996 */ , 1056003);
}
static void GGSegmentImplA←P0(formal←c0150, formal←c0149)
word formal←c0150;
word formal←c0149;
{
register ptr gf←c78132 = (ptr) &globalframe;
/* GGSegmentImplA: */
SOURCE(341, 51804)
SOURCE(1704, 30)
(* (( (ptr) gf←c78132)+4)/* defaultStrokeWidth←v4540 */ ) = (* (ptr) &fc70 );
SOURCE(1736, 35)
(* (( (ptr) gf←c78132)+5)/* defaultStrokeEnd←v4568 */ ) = 2;
SOURCE(1858, 16)
(* (( (ptr) gf←c78132)+7)/* Problem←v4680 */ ) = (* (ptr) (* (( (ptr) (* (( (ptr) gf←c78132)+283)/* var←c64852 */ ))+28)
) );
SOURCE(48443, 20)
(* (( (ptr) gf←c78132)+8)/* useBBox←v7956 */ ) = 1;
SOURCE(52139, 6)
(void) Init←P6960();
}
static void RegisterSegmentClass←P60(classDef←v8548)
word classDef←v8548;
{
register ptr gf←c78164 = (ptr) &globalframe;
/* RegisterSegmentClass: */
SOURCE(1912, 106)
SOURCE(1971, 47)
{
word var←c64884;
var←c64884 = XR←NewObject(8, (* (( (ptr) gf←c78164)+11) ));
(* (ptr) var←c64884 ) = classDef←v8548;
(* (( (ptr) var←c64884)+1) ) = (* (( (ptr) gf←c78164)+6)/* segmentClasses←v4596 */ );
(* (( (ptr) gf←c78164)+6)/* segmentClasses←v4596 */ ) = var←c64884;
};
}
static word FetchSegmentClass←P120(type←v8608)
word type←v8608;
{
register ptr gf←c78196 = (ptr) &globalframe;
word class←v8652;
/* FetchSegmentClass: */
SOURCE(2024, 289)
SOURCE(2024, 289)
class←v8652 = 0;
SOURCE(2102, 111)
{
register word l←v23776;
l←v23776 = (* (( (ptr) gf←c78196)+6)/* segmentClasses←v4596 */ );
lab←L100003: ;
if ((l←v23776 != 0)) {
}
else {
goto lab←L100000;
};
SOURCE(2166, 47)
if (((* (ptr) (* (ptr) l←v23776 ) ) == type←v8608)) {
SOURCE(2192, 21)
return((* (( (ptr) (* (ptr) l←v23776 ))+1) ));
};
l←v23776 = (* (( (ptr) l←v23776)+1) );
goto lab←L100003;
lab←L100000: ;
};
SOURCE(2224, 89)
{
word var←c64916;
{
word var←c64948;
{
word pd71;
pd71 = (* (( (ptr) (* (( (ptr) gf←c78196)+284)/* var←c64980 */ ))+9) );
var←c64948 = (word) ( *( (fPt) ((* (ptr) pd71 ))))(type←v8608, pd71);
};
{
W2 var←c65012;
var←c65012.f0 = 11;
var←c65012.f1 = var←c64948;
{
word pd72;
pd72 = (* (( (ptr) (* (( (ptr) gf←c78196)+285)/* var←c65044 */ ))+63) );
var←c64916 = (word) ( *( (fPt) ((* (ptr) pd72 ))))((* (( (ptr) gf←c78196)+48) ), var←c65012, pd72);
};
};
};
{
word var←c0159;
var←c0159 = var←c64916;
(void) XR←RaiseError((* (( (ptr) gf←c78196)+7)/* Problem←v4680 */ ), (word) &var←c0159);
};
};
}
static word CopySegment←P180(seg←v8712)
word seg←v8712;
{
register ptr gf←c78228 = (ptr) &globalframe;
word copy←v8756;
word copyData←v23904 = 0;
/* CopySegment: */
SOURCE(2319, 639)
SOURCE(2319, 639)
copy←v8756 = 0;
SOURCE(2406, 34)
{
word pd73;
pd73 = (* (( (ptr) (* (ptr) seg←v8712 ))+3) );
copyData←v23904 = (word) ( *( (fPt) ((* (ptr) pd73 ))))(seg←v8712, pd73);
};
SOURCE(2442, 516)
{
word var←c65076;
word var←c65140;
word var←c65204;
word var←c65236;
word var←c65300;
{
word pd74;
pd74 = (* (( (ptr) (* (( (ptr) gf←c78228)+286)/* var←c65108 */ ))+37) );
var←c65076 = (word) ( *( (fPt) ((* (ptr) pd74 ))))((* ((( (ptr) seg←v8712)+5)) ), pd74);
};
{
word pd75;
pd75 = (* (( (ptr) (* (( (ptr) gf←c78228)+287)/* var←c65172 */ ))+7) );
var←c65140 = (word) ( *( (fPt) ((* (ptr) pd75 ))))((* ((( (ptr) seg←v8712)+21)) ), pd75);
};
{
word pd76;
pd76 = (* (( (ptr) (* (( (ptr) gf←c78228)+287)/* var←c65172 */ ))+7) );
var←c65204 = (word) ( *( (fPt) ((* (ptr) pd76 ))))((* ((( (ptr) seg←v8712)+22)) ), pd76);
};
{
word pd77;
pd77 = (* (( (ptr) (* (( (ptr) gf←c78228)+288)/* var←c65268 */ ))+6) );
var←c65236 = (word) ( *( (fPt) ((* (ptr) pd77 ))))((* (( (ptr) seg←v8712)+25) ), 0, pd77);
};
var←c65300 = XR←NewObject(104, (* (( (ptr) gf←c78228)+15) ));
(* (ptr) var←c65300 ) = (* (ptr) seg←v8712 );
(* (( (ptr) var←c65300)+1) ) = (* (( (ptr) seg←v8712)+1) );
(* (( (ptr) var←c65300)+2) ) = (* (( (ptr) seg←v8712)+2) );
(* (( (ptr) var←c65300)+3) ) = (* (( (ptr) seg←v8712)+3) );
(* (( (ptr) var←c65300)+4) ) = (* (( (ptr) seg←v8712)+4) );
(* (( (ptr) var←c65300)+5) ) = var←c65076;
(* (( (ptr) var←c65300)+6) ) = (* (( (ptr) seg←v8712)+6) );
(* (( (ptr) var←c65300)+7) ) = (* (( (ptr) seg←v8712)+7) );
(* (( (ptr) var←c65300)+8) ) = (* (( (ptr) seg←v8712)+8) );
(* (W2Pt) (( (ptr) var←c65300)+9) ) = (* (W2Pt) (( (ptr) seg←v8712)+9) );
(* (W2Pt) (( (ptr) var←c65300)+11) ) = (* (W2Pt) (( (ptr) seg←v8712)+11) );
(* (( (ptr) var←c65300)+13) ) = (* (ptr) &fc78 );
(* (( (ptr) var←c65300)+14) ) = (* (ptr) &fc78 );
(* (( (ptr) var←c65300)+15) ) = (* (ptr) &fc78 );
(* (( (ptr) var←c65300)+16) ) = (* (ptr) &fc78 );
(* (W4Pt) (( (ptr) var←c65300)+17) ) = (* (W4Pt) (( (ptr) seg←v8712)+17) );
(* (( (ptr) var←c65300)+21) ) = var←c65140;
(* (( (ptr) var←c65300)+22) ) = var←c65204;
(* (( (ptr) var←c65300)+24) ) = copyData←v23904;
(* (( (ptr) var←c65300)+25) ) = var←c65236;
copy←v8756 = var←c65300;
};
SOURCE(2319, 639)
return(copy←v8756);
}
static void CopyLooks←P240(from←v8816, to←v8844)
word from←v8816;
word to←v8844;
{
register ptr gf←c78260 = (ptr) &globalframe;
/* CopyLooks: */
SOURCE(2964, 290)
SOURCE(3011, 21)
(* (( (ptr) to←v8844)+8) ) = (* (( (ptr) from←v8816)+8) );
SOURCE(3034, 33)
(* (( (ptr) to←v8844)+2) ) = (* (( (ptr) from←v8816)+2) );
SOURCE(3069, 29)
(* (( (ptr) to←v8844)+3) ) = (* (( (ptr) from←v8816)+3) );
SOURCE(3100, 23)
(* (( (ptr) to←v8844)+4) ) = (* (( (ptr) from←v8816)+4) );
SOURCE(3125, 48)
{
word pd79;
pd79 = (* (( (ptr) (* (( (ptr) gf←c78260)+286)/* var←c65108 */ ))+37) );
(* (( (ptr) to←v8844)+5) ) = (word) ( *( (fPt) ((* (ptr) pd79 ))))((* ((( (ptr) from←v8816)+5)) ), pd79);
};
SOURCE(3206, 23)
(* (( (ptr) to←v8844)+6) ) = (* (( (ptr) from←v8816)+6) );
SOURCE(3231, 23)
(* (( (ptr) to←v8844)+7) ) = (* (( (ptr) from←v8816)+7) );
}
static void SetDefaults←P300(seg←v8904, defaults←v8932)
word seg←v8904;
word defaults←v8932;
{
register ptr gf←c78292 = (ptr) &globalframe;
/* SetDefaults: */
SOURCE(3260, 364)
SOURCE(3327, 34)
(* (( (ptr) seg←v8904)+3) ) = (* (( (ptr) defaults←v8932)+2) );
SOURCE(3363, 28)
(* (( (ptr) seg←v8904)+4) ) = (* (( (ptr) defaults←v8932)+3) );
SOURCE(3393, 53)
{
word pd80;
pd80 = (* (( (ptr) (* (( (ptr) gf←c78292)+286)/* var←c65108 */ ))+37) );
(* (( (ptr) seg←v8904)+5) ) = (word) ( *( (fPt) ((* (ptr) pd80 ))))((* ((( (ptr) defaults←v8932)+4)) ), pd80);
};
SOURCE(3479, 28)
(* (( (ptr) seg←v8904)+6) ) = (* (( (ptr) defaults←v8932)+5) );
SOURCE(3509, 28)
(* (( (ptr) seg←v8904)+7) ) = (* (( (ptr) defaults←v8932)+6) );
SOURCE(3539, 32)
(* (( (ptr) seg←v8904)+8) ) = (* (( (ptr) defaults←v8932)+7) );
SOURCE(3573, 51)
{
word pd81;
pd81 = (* (( (ptr) (* (ptr) seg←v8904 ))+28) );
(void) ( *( (fPt) ((* (ptr) pd81 ))))(seg←v8904, (* (ptr) defaults←v8932 ), pd81);
};
}
static word SameLooks←P360(seg1←v8992, seg2←v9020)
word seg1←v8992;
word seg2←v9020;
{
register ptr gf←c78324 = (ptr) &globalframe;
word var←c9064;
/* SameLooks: */
SOURCE(3630, 518)
SOURCE(3703, 47)
if (((* (( (ptr) seg1←v8992)+4) ) != (* (( (ptr) seg2←v9020)+4) ))) {
SOURCE(3737, 13)
return(0);
};
SOURCE(3752, 53)
if (((* (( (ptr) seg1←v8992)+3) ) != (* (( (ptr) seg2←v9020)+3) ))) {
SOURCE(3792, 13)
return(0);
};
SOURCE(3807, 57)
{
word x82;
word x83;
if (((
x82 = (* (( (ptr) seg1←v8992)+2) ), *(float*)&x82
) != (
x83 = (* (( (ptr) seg2←v9020)+2) ), *(float*)&x83
))) {
SOURCE(3851, 13)
return(0);
};
};
SOURCE(3866, 187)
if ((0 != (* (( (ptr) seg1←v8992)+4) ))) {
SOURCE(3888, 47)
{
word x84;
word x85;
if (((
x84 = (* (( (ptr) seg1←v8992)+6) ), *(float*)&x84
) != (
x85 = (* (( (ptr) seg2←v9020)+6) ), *(float*)&x85
))) {
SOURCE(3922, 13)
return(0);
};
};
SOURCE(3937, 47)
{
word x86;
word x87;
if (((
x86 = (* (( (ptr) seg1←v8992)+7) ), *(float*)&x86
) != (
x87 = (* (( (ptr) seg2←v9020)+7) ), *(float*)&x87
))) {
SOURCE(3971, 13)
return(0);
};
};
SOURCE(3986, 67)
if ((0 == (word) EqualSequence←P480((* (( (ptr) seg1←v8992)+5) ), (* (( (ptr) seg2←v9020)+5) )))) {
SOURCE(4040, 13)
return(0);
};
};
SOURCE(4058, 76)
{
word pd88;
pd88 = (* (( (ptr) (* (( (ptr) gf←c78324)+289)/* var←c65332 */ ))+35) );
if ((0 == (word) ( *( (fPt) ((* (ptr) pd88 ))))((* (( (ptr) seg1←v8992)+8) ), (* (( (ptr) seg2←v9020)+8) ), pd88))) {
SOURCE(4121, 13)
return(0);
};
};
SOURCE(4136, 12)
return(1);
}
static word SameShape←P420(seg1←v9124, seg2←v9152)
word seg1←v9124;
word seg2←v9152;
{
word same←v9196;
/* SameShape: */
SOURCE(4154, 120)
SOURCE(4233, 41)
{
word pd89;
pd89 = (* (( (ptr) (* (ptr) seg1←v9124 ))+5) );
return((word) ( *( (fPt) ((* (ptr) pd89 ))))(seg1←v9124, seg2←v9152, pd89));
};
}
static word EqualSequence←P480(s1←v9256, s2←v9284)
word s1←v9256;
word s2←v9284;
{
word var←c9328;
/* EqualSequence: */
SOURCE(4280, 190)
SOURCE(4344, 37)
if (((* (ptr) s1←v9256 ) != (* (ptr) s2←v9284 ))) {
SOURCE(4368, 13)
return(0);
};
SOURCE(4383, 64)
{
register word i←v23960 = 0;
register word noName←c65396;
noName←c65396 = (* (ptr) s1←v9256 );
if ((i←v23960 >= noName←c65396)) {
goto lab←L100004;
};
lab←L100007: ;
SOURCE(4412, 35)
{
word limit90;
word x91;
word limit92;
word x93;
if (((
x91 = (* ((( (ptr) s1←v9256)+1)+(
limit90 = (* (ptr) s1←v9256 ),
BCK(i←v23960, limit90)
)) ), *(float*)&x91
) != (
x93 = (* ((( (ptr) s2←v9284)+1)+(
limit92 = (* (ptr) s2←v9284 ),
BCK(i←v23960, limit92)
)) ), *(float*)&x93
))) {
SOURCE(4434, 13)
return(0);
};
};
i←v23960 = (i←v23960 + 1);
if ((i←v23960 < noName←c65396)) {
goto lab←L100007;
};
lab←L100004: ;
};
SOURCE(4458, 12)
return(1);
}
static void ReverseSegment←P540(seg←v9388)
word seg←v9388;
{
W2 temp←v24004;
/* ReverseSegment: */
SOURCE(4476, 129)
SOURCE(4536, 13)
temp←v24004 = (* (W2Pt) (( (ptr) seg←v9388)+9) );
SOURCE(4551, 15)
(* (W2Pt) (( (ptr) seg←v9388)+9) ) = (* (W2Pt) (( (ptr) seg←v9388)+11) );
SOURCE(4568, 13)
(* (W2Pt) (( (ptr) seg←v9388)+11) ) = temp←v24004;
SOURCE(4583, 22)
{
word pd94;
pd94 = (* (( (ptr) (* (ptr) seg←v9388 ))+4) );
(void) ( *( (fPt) ((* (ptr) pd94 ))))(seg←v9388, pd94);
};
}
static void OpenUpSegment←P600(seg←v9448)
word seg←v9448;
{
register ptr gf←c78356 = (ptr) &globalframe;
/* OpenUpSegment: */
SOURCE(4611, 261)
SOURCE(4658, 214)
if (((* (ptr) (* (ptr) seg←v9448 ) ) == (* (( (ptr) gf←c78356)+47) ))) {
SOURCE(4694, 203)
{
word data←v24048;
SOURCE(4696, 40)
data←v24048 = XR←Narrow((* (( (ptr) seg←v9448)+24) ), (* (( (ptr) gf←c78356)+19) ));
SOURCE(4738, 134)
if (((* (( (ptr) data←v24048)+1) ) == 3)) {
SOURCE(4767, 21)
(* (( (ptr) data←v24048)+1) ) = 2;
SOURCE(4790, 82)
{
word var←c65428;
{
word pd95;
pd95 = (* (( (ptr) (* (( (ptr) gf←c78356)+290)/* var←c65460 */ ))+8) );
var←c65428 = (word) ( *( (fPt) ((* (ptr) pd95 ))))((* (ptr) data←v24048 ), (* (( (ptr) data←v24048)+1) ), pd95);
};
{
word pd96;
pd96 = (* (( (ptr) (* (( (ptr) gf←c78356)+291)/* var←c65492 */ ))+4) );
(* (( (ptr) data←v24048)+2) ) = (word) ( *( (fPt) ((* (ptr) pd96 ))))(var←c65428, 1, pd96);
};
};
};
};
};
}
static void TransformSegment←P660(seg←v9508, transform←v9536)
word seg←v9508;
word transform←v9536;
{
register ptr gf←c78388 = (ptr) &globalframe;
/* TransformSegment: */
SOURCE(4904, 235)
SOURCE(5002, 49)
{
word pd97;
pd97 = (* (( (ptr) (* (( (ptr) gf←c78388)+292)/* var←c65524 */ ))+5) );
(void) ( *( (fPt) ((* (ptr) pd97 ))))((word) (( (bPt) seg←v9508)+36), transform←v9536, (* (W2Pt) (( (ptr) seg←v9508)+9)
), pd97);
};
SOURCE(5053, 49)
{
word pd98;
pd98 = (* (( (ptr) (* (( (ptr) gf←c78388)+292)/* var←c65524 */ ))+5) );
(void) ( *( (fPt) ((* (ptr) pd98 ))))((word) (( (bPt) seg←v9508)+44), transform←v9536, (* (W2Pt) (( (ptr) seg←v9508)+11)
), pd98);
};
SOURCE(5104, 35)
{
word pd99;
pd99 = (* (( (ptr) (* (ptr) seg←v9508 ))+8) );
(void) ( *( (fPt) ((* (ptr) pd99 ))))(seg←v9508, transform←v9536, pd99);
};
}
static void TranslateSegment←P720(seg←v9596, vector←v9624)
word seg←v9596;
W2 vector←v9624;
{
register ptr gf←c78420 = (ptr) &globalframe;
word transform←v24092 = 0;
/* TranslateSegment: */
SOURCE(5145, 212)
SOURCE(5259, 64)
{
W2 var←c65556;
var←c65556.f0 = vector←v9624.f0;
var←c65556.f1 = vector←v9624.f1;
{
word pd100;
pd100 = (* (( (ptr) (* (( (ptr) gf←c78420)+293)/* var←c65588 */ ))+10) );
transform←v24092 = (word) ( *( (fPt) ((* (ptr) pd100 ))))(var←c65556, pd100);
};
};
SOURCE(5325, 32)
(void) TransformSegment←P660(seg←v9596, transform←v24092);
}
static void MoveEndPointSegment←P780(seg←v9684, lo←v9712, newPoint←v9740)
word seg←v9684;
word lo←v9712;
W2 newPoint←v9740;
{
/* MoveEndPointSegment: */
SOURCE(5363, 174)
SOURCE(5442, 51)
if ((0 != lo←v9712)) {
SOURCE(5453, 23)
(* (W2Pt) (( (ptr) seg←v9684)+9) ) = newPoint←v9740;
}
else {
SOURCE(5476, 17)
(* (W2Pt) (( (ptr) seg←v9684)+11) ) = newPoint←v9740;
};
SOURCE(5495, 42)
{
word pd101;
pd101 = (* (( (ptr) (* (ptr) seg←v9684 ))+9) );
(void) ( *( (fPt) ((* (ptr) pd101 ))))(seg←v9684, lo←v9712, newPoint←v9740, pd101);
};
}
static void DrawLine←P840(dc←v9800, formal←c01401, formal←c01402, seg←v9884)
word dc←v9800;
W2 formal←c01401;
W2 formal←c01402;
word seg←v9884;
{
W13 var←c78452;
/* declaration of p1←v9828 skipped */
/* declaration of p2←v9856 skipped */
register ptr gf←c78484 = (ptr) &globalframe;
/* declaration of var←c65620 skipped */
/* declaration of var←c65652 skipped */
(* (W2Pt) (( (ptr) &var←c78452)+4)/* p1←v9828 */ ) = formal←c01401;
(* (W2Pt) (( (ptr) &var←c78452)+6)/* p2←v9856 */ ) = formal←c01402;
/* DrawLine: */
SOURCE(5542, 566)
{
word tmpAddr102;
tmpAddr102 = (word) (( (ptr) &var←c78452)+8)/* var←c65620 */ ;
(* (ptr) tmpAddr102 ) = ( ((word) (fPt) PatternProc←P7272) );
(* (( (ptr) tmpAddr102) + 1) ) = 1;
};
{
word tmpAddr103;
tmpAddr103 = (word) (( (ptr) &var←c78452)+10)/* var←c65652 */ ;
(* (ptr) tmpAddr103 ) = ( ((word) (fPt) EdgePathProc←P7212) );
(* (( (ptr) tmpAddr103) + 1) ) = 1;
};
SOURCE(5618, 490)
{
word x104;
word x105;
if (((* (( (ptr) seg←v9884)+8) ) == 0) || ((
x104 = (* (( (ptr) seg←v9884)+2) ), *(float*)&x104
) == (
x105 = (* (ptr) &fc78 ), *(float*)&x105
))) {
SOURCE(5663, 12)
return;
}
else {
SOURCE(5677, 42)
{
word pd106;
pd106 = (* (( (ptr) (* (( (ptr) gf←c78484)+294)/* var←c65684 */ ))+68) );
(void) ( *( (fPt) ((* (ptr) pd106 ))))(dc←v9800, (* (( (ptr) seg←v9884)+2) ), pd106);
};
SOURCE(5721, 38)
{
word pd107;
pd107 = (* (( (ptr) (* (( (ptr) gf←c78484)+294)/* var←c65684 */ ))+69) );
(void) ( *( (fPt) ((* (ptr) pd107 ))))(dc←v9800, (* (( (ptr) seg←v9884)+3) ), pd107);
};
SOURCE(5761, 30)
{
word pd108;
pd108 = (* (( (ptr) (* (( (ptr) gf←c78484)+294)/* var←c65684 */ ))+52) );
(void) ( *( (fPt) ((* (ptr) pd108 ))))(dc←v9800, (* (( (ptr) seg←v9884)+8) ), pd108);
};
SOURCE(5793, 315)
if ((0 != (* (( (ptr) seg←v9884)+4) ))) {
SOURCE(5812, 260)
{
/* declaration of pattern←v24192 skipped */
SOURCE(5940, 37)
(* (( (ptr) &var←c78452)+12)/* pattern←v24192 */ ) = (* (( (ptr) seg←v9884)+5) );
SOURCE(5979, 91)
{
word pd109;
pd109 = (* (( (ptr) (* (( (ptr) gf←c78484)+294)/* var←c65684 */ ))+75) );
(void) ( *( (fPt) ((* (ptr) pd109 ))))(dc←v9800, (word) (( (bPt) &var←c78452)+40)/* var←c65652 */ , (* (ptr) (* (( (ptr) &var←c78452)+12)
/* pattern←v24192 */ ) ), (word) (( (bPt) &var←c78452)+32)/* var←c65620 */ , (* (( (ptr) seg←v9884)+6) ), (* (( (ptr) seg←v9884)+7)
), pd109);
};
};
}
else {
SOURCE(6079, 29)
{
word pd110;
pd110 = (* (( (ptr) (* (( (ptr) gf←c78484)+294)/* var←c65684 */ ))+73) );
(void) ( *( (fPt) ((* (ptr) pd110 ))))(dc←v9800, (* (W2Pt) (( (ptr) &var←c78452)+4)/* p1←v9828 */ ), (* (W2Pt) (( (ptr) &var←c78452)+6)
/* p2←v9856 */ ), pd110);
};
};
};
};
}
static void EdgePathProc←P7212(moveTo←v52264, lineTo←v52292, curveTo←v52320, conicTo←v52348, arcTo←v52376, formal←c78516)
word moveTo←v52264;
word lineTo←v52292;
word curveTo←v52320;
word conicTo←v52348;
word arcTo←v52376;
word formal←c78516;
{
formal←c78516 = (formal←c78516 - 40);
/* EdgePathProc: */
SOURCE(5814, 32)
SOURCE(5847, 10)
(void) ( *( (fPt) ((* (ptr) moveTo←v52264 ))))((* (W2Pt) ((( (ptr) formal←c78516)+4)) ), moveTo←v52264);
SOURCE(5859, 10)
(void) ( *( (fPt) ((* (ptr) lineTo←v52292 ))))((* (W2Pt) ((( (ptr) formal←c78516)+6)) ), lineTo←v52292);
}
static word PatternProc←P7272(i←v24268, formal←c78548)
word i←v24268;
word formal←c78548;
{
word var←c24312;
formal←c78548 = (formal←c78548 - 32);
/* PatternProc: */
SOURCE(5874, 19)
SOURCE(5919, 18)
{
word limit111;
return((* ((( (ptr) (* (( (ptr) formal←c78548)+12) ))+1)+(
limit111 = (* (ptr) (* (( (ptr) formal←c78548)+12) ) ),
BCK(i←v24268, limit111)
)) ));
};
}
static word BuildConicClass←P900()
{
register ptr gf←c78580 = (ptr) &globalframe;
word class←v10084;
/* BuildConicClass: */
SOURCE(6260, 1053)
SOURCE(6260, 1053)
class←v10084 = 0;
SOURCE(6335, 978)
{
word var←c65716;
var←c65716 = XR←NewObject(116, (* (( (ptr) gf←c78580)+20) ));
(* (ptr) var←c65716 ) = (* (( (ptr) gf←c78580)+44) );
(* (( (ptr) var←c65716)+1) ) = (word) (( (bPt) gf←c78580)+940)/* var←c64084 */ ;
(* (( (ptr) var←c65716)+2) ) = (word) (( (bPt) gf←c78580)+932)/* var←c64052 */ ;
(* (( (ptr) var←c65716)+3) ) = (word) (( (bPt) gf←c78580)+908)/* var←c63956 */ ;
(* (( (ptr) var←c65716)+4) ) = (word) (( (bPt) gf←c78580)+900)/* var←c63924 */ ;
(* (( (ptr) var←c65716)+5) ) = (word) (( (bPt) gf←c78580)+924)/* var←c64020 */ ;
(* (( (ptr) var←c65716)+6) ) = (word) (( (bPt) gf←c78580)+892)/* var←c63892 */ ;
(* (( (ptr) var←c65716)+7) ) = (word) (( (bPt) gf←c78580)+884)/* var←c63860 */ ;
(* (( (ptr) var←c65716)+8) ) = (word) (( (bPt) gf←c78580)+876)/* var←c63828 */ ;
(* (( (ptr) var←c65716)+9) ) = (word) (( (bPt) gf←c78580)+868)/* var←c63796 */ ;
(* (( (ptr) var←c65716)+10) ) = (word) (( (bPt) gf←c78580)+860)/* var←c63764 */ ;
(* (( (ptr) var←c65716)+11) ) = (word) (( (bPt) gf←c78580)+844)/* var←c63700 */ ;
(* (( (ptr) var←c65716)+12) ) = (word) (( (bPt) gf←c78580)+836)/* var←c63668 */ ;
(* (( (ptr) var←c65716)+13) ) = (word) (( (bPt) gf←c78580)+828)/* var←c63636 */ ;
(* (( (ptr) var←c65716)+14) ) = (word) (( (bPt) gf←c78580)+820)/* var←c63604 */ ;
(* (( (ptr) var←c65716)+15) ) = (word) (( (bPt) gf←c78580)+812)/* var←c63572 */ ;
(* (( (ptr) var←c65716)+16) ) = (word) (( (bPt) gf←c78580)+804)/* var←c63540 */ ;
(* (( (ptr) var←c65716)+17) ) = (word) (( (bPt) gf←c78580)+796)/* var←c63508 */ ;
(* (( (ptr) var←c65716)+18) ) = (word) (( (bPt) gf←c78580)+276)/* var←c61428 */ ;
(* (( (ptr) var←c65716)+19) ) = (word) (( (bPt) gf←c78580)+788)/* var←c63476 */ ;
(* (( (ptr) var←c65716)+20) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c78580)+295)/* var←c65748 */ ))+42) );
(* (( (ptr) var←c65716)+21) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c78580)+295)/* var←c65748 */ ))+43) );
(* (( (ptr) var←c65716)+22) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c78580)+295)/* var←c65748 */ ))+44) );
(* (( (ptr) var←c65716)+23) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c78580)+295)/* var←c65748 */ ))+45) );
(* (( (ptr) var←c65716)+24) ) = (word) (( (bPt) gf←c78580)+780)/* var←c63444 */ ;
(* (( (ptr) var←c65716)+25) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c78580)+295)/* var←c65748 */ ))+48) );
(* (( (ptr) var←c65716)+26) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c78580)+295)/* var←c65748 */ ))+47) );
(* (( (ptr) var←c65716)+27) ) = (* (( (ptr) (* (( (ptr) gf←c78580)+295)/* var←c65748 */ ))+49) );
(* (( (ptr) var←c65716)+28) ) = (word) (( (bPt) gf←c78580)+980)/* var←c64244 */ ;
class←v10084 = var←c65716;
};
SOURCE(6260, 1053)
return(class←v10084);
}
static void ConicSetStrokeWidth←P960(seg←v10144, strokeWidth←v10172)
word seg←v10144;
word strokeWidth←v10172;
{
/* ConicSetStrokeWidth: */
SOURCE(7319, 119)
SOURCE(7383, 29)
(* (( (ptr) seg←v10144)+2) ) = strokeWidth←v10172;
SOURCE(7414, 24)
(void) UpdateConicBoundBox←P1440(seg←v10144);
}
static word MakeConic←P1020(p0←v10232, p1←v10260, p2←v10288, r←v10316, props←v10344)
W2 p0←v10232;
W2 p1←v10260;
W2 p2←v10288;
word r←v10316;
word props←v10344;
{
register ptr gf←c78612 = (ptr) &globalframe;
word seg←v10488;
word data←v24340;
/* MakeConic: */
SOURCE(7444, 622)
SOURCE(7444, 622)
seg←v10488 = 0;
SOURCE(7547, 134)
{
word var←c65780;
word var←c65812;
var←c65780 = (word) PathFromConic←P6840(p0←v10232, p1←v10260, p2←v10288, r←v10316);
var←c65812 = XR←NewObject(32, (* (( (ptr) gf←c78612)+22) ));
(* (ptr) var←c65812 ) = p1←v10260.f0;
(* (( (ptr) var←c65812)+1) ) = p1←v10260.f1;
(* (( (ptr) var←c65812)+2) ) = r←v10316;
(* (W4Pt) (( (ptr) var←c65812)+3) ) = (* (W4Pt) (( (ptr) gf←c78612)+279)/* var←c64820 */ );
(* (( (ptr) var←c65812)+7) ) = var←c65780;
data←v24340 = var←c65812;
};
SOURCE(7683, 357)
{
word var←c65844;
word var←c65876;
word var←c65908;
word var←c65940;
{
word pd112;
pd112 = (* (( (ptr) (* (( (ptr) gf←c78612)+295)/* var←c65748 */ ))+24) );
var←c65844 = (word) ( *( (fPt) ((* (ptr) pd112 ))))((* ((( (ptr) gf←c78612)+44)) ), pd112);
};
{
word pd113;
pd113 = (* (( (ptr) (* (( (ptr) gf←c78612)+287)/* var←c65172 */ ))+5) );
var←c65876 = (word) ( *( (fPt) ((* (ptr) pd113 ))))((* (ptr) &fc78 ), (* (ptr) &fc78 ), (* (ptr) &fc78 ), (* (ptr) &fc78 ), 0, 0, pd113)
;
};
{
word pd114;
pd114 = (* (( (ptr) (* (( (ptr) gf←c78612)+287)/* var←c65172 */ ))+5) );
var←c65908 = (word) ( *( (fPt) ((* (ptr) pd114 ))))((* (ptr) &fc78 ), (* (ptr) &fc78 ), (* (ptr) &fc78 ), (* (ptr) &fc78 ), 0, 0, pd114)
;
};
var←c65940 = XR←NewObject(104, (* (( (ptr) gf←c78612)+15) ));
(* (ptr) var←c65940 ) = var←c65844;
(* (( (ptr) var←c65940)+2) ) = (* (( (ptr) gf←c78612)+4)/* defaultStrokeWidth←v4540 */ );
(* (( (ptr) var←c65940)+3) ) = (* (( (ptr) gf←c78612)+5)/* defaultStrokeEnd←v4568 */ );
(* (( (ptr) var←c65940)+6) ) = (* (ptr) &fc78 );
(* (( (ptr) var←c65940)+7) ) = (* (ptr) &fc115 );
(* (( (ptr) var←c65940)+8) ) = (* (ptr) (* (( (ptr) (* (( (ptr) gf←c78612)+294)/* var←c65684 */ ))+54) ) );
(* (W2Pt) (( (ptr) var←c65940)+9) ) = p0←v10232;
(* (W2Pt) (( (ptr) var←c65940)+11) ) = p2←v10288;
(* (( (ptr) var←c65940)+13) ) = (* (ptr) &fc78 );
(* (( (ptr) var←c65940)+14) ) = (* (ptr) &fc78 );
(* (( (ptr) var←c65940)+15) ) = (* (ptr) &fc78 );
(* (( (ptr) var←c65940)+16) ) = (* (ptr) &fc78 );
(* (W4Pt) (( (ptr) var←c65940)+17) ) = (* (W4Pt) (( (ptr) gf←c78612)+279)/* var←c64820 */ );
(* (( (ptr) var←c65940)+21) ) = var←c65876;
(* (( (ptr) var←c65940)+22) ) = var←c65908;
(* (( (ptr) var←c65940)+24) ) = data←v24340;
(* (( (ptr) var←c65940)+25) ) = props←v10344;
seg←v10488 = var←c65940;
};
SOURCE(8042, 24)
(void) UpdateConicBoundBox←P1440(seg←v10488);
SOURCE(7444, 622)
return(seg←v10488);
}
static void ConicGetParams←P1080(formal←c0236, seg←v10548)
word formal←c0236;
word seg←v10548;
{
register ptr gf←c78644 = (ptr) &globalframe;
W2 p0←v10592;
W2 p1←v10620;
W2 p2←v10648;
word r←v10676;
word data←v24384;
/* ConicGetParams: */
SOURCE(8072, 170)
SOURCE(8156, 34)
data←v24384 = XR←Narrow((* (( (ptr) seg←v10548)+24) ), (* (( (ptr) gf←c78644)+22) ));
SOURCE(8192, 11)
p0←v10592 = (* (W2Pt) (( (ptr) seg←v10548)+9) );
SOURCE(8205, 12)
p1←v10620 = (* (W2Pt) data←v24384 );
SOURCE(8219, 11)
p2←v10648 = (* (W2Pt) (( (ptr) seg←v10548)+11) );
SOURCE(8232, 10)
r←v10676 = (* (( (ptr) data←v24384)+2) );
/* removed tail goto */
(* (W2Pt) formal←c0236 ) = p0←v10592;
(* (W2Pt) (( (ptr) formal←c0236)+2) ) = p1←v10620;
(* (W2Pt) (( (ptr) formal←c0236)+4) ) = p2←v10648;
(* (( (ptr) formal←c0236)+6) ) = r←v10676;
return;
}
static void ConicSetRatio←P1140(seg←v10736, r←v10764)
word seg←v10736;
word r←v10764;
{
register ptr gf←c78676 = (ptr) &globalframe;
word data←v24428;
/* ConicSetRatio: */
SOURCE(8248, 187)
SOURCE(8303, 34)
data←v24428 = XR←Narrow((* (( (ptr) seg←v10736)+24) ), (* (( (ptr) gf←c78676)+22) ));
SOURCE(8339, 10)
(* (( (ptr) data←v24428)+2) ) = r←v10764;
SOURCE(8351, 58)
(* (( (ptr) data←v24428)+7) ) = (word) PathFromConic←P6840((* (W2Pt) (( (ptr) seg←v10736)+9) ), (* (W2Pt) data←v24428 ), (* (W2Pt) (
( (ptr) seg←v10736)+11) ), (* (( (ptr) data←v24428)+2) ));
SOURCE(8411, 24)
(void) UpdateConicBoundBox←P1440(seg←v10736);
}
static void ConicSetControlPoint←P1200(seg←v10824, p1←v10852)
word seg←v10824;
W2 p1←v10852;
{
register ptr gf←c78708 = (ptr) &globalframe;
word data←v24472;
/* ConicSetControlPoint: */
SOURCE(8441, 198)
SOURCE(8505, 34)
data←v24472 = XR←Narrow((* (( (ptr) seg←v10824)+24) ), (* (( (ptr) gf←c78708)+22) ));
SOURCE(8541, 12)
(* (W2Pt) data←v24472 ) = p1←v10852;
SOURCE(8555, 58)
(* (( (ptr) data←v24472)+7) ) = (word) PathFromConic←P6840((* (W2Pt) (( (ptr) seg←v10824)+9) ), (* (W2Pt) data←v24472 ), (* (W2Pt) (
( (ptr) seg←v10824)+11) ), (* (( (ptr) data←v24472)+2) ));
SOURCE(8615, 24)
(void) UpdateConicBoundBox←P1440(seg←v10824);
}
static word ConicBoundBox←P1260(seg←v10912)
word seg←v10912;
{
word bBox←v10956;
/* ConicBoundBox: */
SOURCE(8645, 79)
SOURCE(8645, 79)
bBox←v10956 = 0;
SOURCE(8709, 15)
bBox←v10956 = (* (( (ptr) seg←v10912)+21) );
SOURCE(8645, 79)
return(bBox←v10956);
}
static word ConicTightBox←P1320(seg←v11016)
word seg←v11016;
{
word bBox←v11060;
/* ConicTightBox: */
SOURCE(8730, 83)
SOURCE(8730, 83)
bBox←v11060 = 0;
SOURCE(8794, 19)
bBox←v11060 = (* (( (ptr) seg←v11016)+22) );
SOURCE(8730, 83)
return(bBox←v11060);
}
static word ConicSameShape←P1380(seg1←v11120, seg2←v11148)
word seg1←v11120;
word seg2←v11148;
{
register ptr gf←c78740 = (ptr) &globalframe;
word same←v11192;
word seg1Data←v24516;
word seg2Data←v24544;
/* ConicSameShape: */
SOURCE(8818, 187)
SOURCE(8818, 187)
same←v11192 = 1;
SOURCE(8893, 39)
seg1Data←v24516 = XR←Narrow((* (( (ptr) seg1←v11120)+24) ), (* (( (ptr) gf←c78740)+22) ));
SOURCE(8934, 39)
seg2Data←v24544 = XR←Narrow((* (( (ptr) seg2←v11148)+24) ), (* (( (ptr) gf←c78740)+22) ));
SOURCE(8975, 30)
{
word x116;
word x117;
same←v11192 = ((
x116 = (* (( (ptr) seg1Data←v24516)+2) ), *(float*)&x116
) == (
x117 = (* (( (ptr) seg2Data←v24544)+2) ), *(float*)&x117
));
};
SOURCE(8818, 187)
return(same←v11192);
}
static void UpdateConicBoundBox←P1440(seg←v11252)
word seg←v11252;
{
register ptr gf←c78772 = (ptr) &globalframe;
word data←v24588;
word pad←v24616;
word minX←v24644;
word minY←v24672;
word maxX←v24700;
word maxY←v24728;
/* UpdateConicBoundBox: */
SOURCE(9044, 545)
SOURCE(9089, 34)
data←v24588 = XR←Narrow((* (( (ptr) seg←v11252)+24) ), (* (( (ptr) gf←c78772)+22) ));
SOURCE(9166, 41)
{
word x118;
float tf119;
float tf120;
word x121;
float tf122;
float tf123;
float tf124;
word x125;
float tf126;
tf122 = FMIN((
x118 = (* (( (ptr) seg←v11252)+9) ), *(float*)&x118
), (
x121 = (* (( (ptr) seg←v11252)+11) ), *(float*)&x121
), tf119, tf120);
minX←v24644 = (
tf126 = FMIN(tf122, (
x125 = (* (ptr) data←v24588 ), *(float*)&x125
), tf123, tf124), *(word*)&tf126
);
};
SOURCE(9209, 41)
{
word x127;
float tf128;
float tf129;
word x130;
float tf131;
float tf132;
float tf133;
word x134;
float tf135;
tf131 = FMIN((
x127 = (* (( (ptr) seg←v11252)+10) ), *(float*)&x127
), (
x130 = (* (( (ptr) seg←v11252)+12) ), *(float*)&x130
), tf128, tf129);
minY←v24672 = (
tf135 = FMIN(tf131, (
x134 = (* (( (ptr) data←v24588)+1) ), *(float*)&x134
), tf132, tf133), *(word*)&tf135
);
};
SOURCE(9252, 41)
{
word x136;
float tf137;
float tf138;
word x139;
float tf140;
float tf141;
float tf142;
word x143;
float tf144;
tf140 = FMAX((
x136 = (* (( (ptr) seg←v11252)+9) ), *(float*)&x136
), (
x139 = (* (( (ptr) seg←v11252)+11) ), *(float*)&x139
), tf137, tf138);
maxX←v24700 = (
tf144 = FMAX(tf140, (
x143 = (* (ptr) data←v24588 ), *(float*)&x143
), tf141, tf142), *(word*)&tf144
);
};
SOURCE(9295, 41)
{
word x145;
float tf146;
float tf147;
word x148;
float tf149;
float tf150;
float tf151;
word x152;
float tf153;
tf149 = FMAX((
x145 = (* (( (ptr) seg←v11252)+10) ), *(float*)&x145
), (
x148 = (* (( (ptr) seg←v11252)+12) ), *(float*)&x148
), tf146, tf147);
maxY←v24728 = (
tf153 = FMAX(tf149, (
x152 = (* (( (ptr) data←v24588)+1) ), *(float*)&x152
), tf150, tf151), *(word*)&tf153
);
};
SOURCE(9338, 63)
{
word pd154;
pd154 = (* (( (ptr) (* (( (ptr) gf←c78772)+287)/* var←c65172 */ ))+18) );
(void) ( *( (fPt) ((* (ptr) pd154 ))))((* (( (ptr) seg←v11252)+22) ), minX←v24644, minY←v24672, maxX←v24700, maxY←v24728, pd154)
;
};
SOURCE(9403, 35)
(void) CurveBoundBox←P6240(seg←v11252, (* (( (ptr) seg←v11252)+21) ), 0);
SOURCE(9440, 106)
if (((* (( (ptr) seg←v11252)+3) ) == 0)) {
SOURCE(9471, 44)
{
word x155;
word x157;
word x159;
*(float*)&pad←v24616 = ((
x155 = (* (( (ptr) seg←v11252)+2) ), *(float*)&x155
) * (
x157 = (* (ptr) &fc156 ), *(float*)&x157
)) + (
x159 = (* (ptr) &fc158 ), *(float*)&x159
);
};
}
else {
SOURCE(9515, 31)
{
word x160;
word x161;
word x162;
*(float*)&pad←v24616 = ((
x160 = (* (( (ptr) seg←v11252)+2) ), *(float*)&x160
) / (
x161 = (* (ptr) &fc70 ), *(float*)&x161
)) + (
x162 = (* (ptr) &fc158 ), *(float*)&x162
);
};
};
SOURCE(9548, 41)
{
word pd163;
pd163 = (* (( (ptr) (* (( (ptr) gf←c78772)+287)/* var←c65172 */ ))+17) );
(void) ( *( (fPt) ((* (ptr) pd163 ))))((* (( (ptr) seg←v11252)+21) ), pad←v24616, pd163);
};
}
static word ConicCopyData←P1500(seg←v38408)
word seg←v38408;
{
register ptr gf←c78804 = (ptr) &globalframe;
word data←v38452;
word conicData←v24772;
word new←v24800;
/* ConicCopyData: */
SOURCE(9595, 266)
SOURCE(9595, 266)
data←v38452 = 0;
SOURCE(9642, 39)
conicData←v24772 = XR←Narrow((* (( (ptr) seg←v38408)+24) ), (* (( (ptr) gf←c78804)+22) ));
SOURCE(9683, 34)
new←v24800 = XR←NewObject(32, (* (( (ptr) gf←c78804)+22) ));
SOURCE(9719, 21)
(* (W2Pt) new←v24800 ) = (* (W2Pt) conicData←v24772 );
SOURCE(9742, 19)
(* (( (ptr) new←v24800)+2) ) = (* (( (ptr) conicData←v24772)+2) );
SOURCE(9763, 37)
(* (W4Pt) (( (ptr) new←v24800)+3) ) = (* (W4Pt) (( (ptr) conicData←v24772)+3) );
SOURCE(9802, 46)
{
word pd164;
pd164 = (* (( (ptr) (* (( (ptr) gf←c78804)+291)/* var←c65492 */ ))+12) );
(* (( (ptr) new←v24800)+7) ) = (word) ( *( (fPt) ((* (ptr) pd164 ))))((* ((( (ptr) conicData←v24772)+7)) ), pd164);
};
SOURCE(9850, 11)
return(new←v24800);
}
static void ConicReverse←P1560(seg←v11312)
word seg←v11312;
{
register ptr gf←c78836 = (ptr) &globalframe;
word data←v24844;
/* ConicReverse: */
SOURCE(9867, 107)
SOURCE(9905, 34)
data←v24844 = XR←Narrow((* (( (ptr) seg←v11312)+24) ), (* (( (ptr) gf←c78836)+22) ));
SOURCE(9941, 33)
{
word pd165;
pd165 = (* (( (ptr) (* (( (ptr) gf←c78836)+291)/* var←c65492 */ ))+13) );
(void) ( *( (fPt) ((* (ptr) pd165 ))))((* ((( (ptr) data←v24844)+7)) ), pd165);
};
}
static void ConicBuildPath←P1620(seg←v11372, lineTo←v11400, curveTo←v11428, conicTo←v11456, arcTo←v11484)
word seg←v11372;
word lineTo←v11400;
word curveTo←v11428;
word conicTo←v11456;
word arcTo←v11484;
{
register ptr gf←c78868 = (ptr) &globalframe;
word data←v24888;
/* ConicBuildPath: */
SOURCE(9980, 234)
SOURCE(10146, 34)
data←v24888 = XR←Narrow((* (( (ptr) seg←v11372)+24) ), (* (( (ptr) gf←c78868)+22) ));
SOURCE(10182, 32)
(void) ( *( (fPt) ((* (ptr) conicTo←v11456 ))))((* (W2Pt) data←v24888 ), (* (W2Pt) (( (ptr) seg←v11372)+11) ), (* (( (ptr) data←v24888)+2)
), conicTo←v11456);
}
static void ConicBuildPathTransform←P1680(seg←v11544, transform←v11572, entire←v11600, lo←v11628, hi←v11656, controlPoints←v11684, lineTo←v11712, curveTo←v11740, conicTo←v11768, arcTo←v11796)
word seg←v11544;
word transform←v11572;
word entire←v11600;
word lo←v11628;
word hi←v11656;
word controlPoints←v11684;
word lineTo←v11712;
word curveTo←v11740;
word conicTo←v11768;
word arcTo←v11796;
{
register ptr gf←c78900 = (ptr) &globalframe;
word data←v24932;
W2 p0←v24960;
W2 p1←v24988;
W2 p2←v25016;
/* ConicBuildPathTransform: */
SOURCE(10220, 681)
SOURCE(10491, 34)
data←v24932 = XR←Narrow((* (( (ptr) seg←v11544)+24) ), (* (( (ptr) gf←c78900)+22) ));
SOURCE(10542, 333)
if ((0 != entire←v11600)) {
SOURCE(10559, 68)
{
W4 var←c66004;
(void) TransformEndPoints←P1920((word) &var←c66004, (* (W2Pt) (( (ptr) seg←v11544)+9) ), (* (W2Pt) (( (ptr) seg←v11544)+11)
), 1, 1, transform←v11572);
p2←v25016 = (* (W2Pt) (( (ptr) &var←c66004)+2) );
p0←v24960 = (* (W2Pt) &var←c66004 );
};
SOURCE(10629, 55)
{
word pd166;
pd166 = (* (( (ptr) (* (( (ptr) gf←c78900)+293)/* var←c65588 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd166 ))))((word) &p1←v24988, transform←v11572, (* (W2Pt) data←v24932 ), pd166);
};
}
else {
SOURCE(10695, 64)
{
W4 var←c66036;
(void) TransformEndPoints←P1920((word) &var←c66036, (* (W2Pt) (( (ptr) seg←v11544)+9) ), (* (W2Pt) (( (ptr) seg←v11544)+11)
), lo←v11628, hi←v11656, transform←v11572);
p2←v25016 = (* (W2Pt) (( (ptr) &var←c66036)+2) );
p0←v24960 = (* (W2Pt) &var←c66036 );
};
SOURCE(10761, 114)
{
word limit168;
if ((controlPoints←v11684 == 0)) { goto then0167;};
if (XR←ExtractField(controlPoints←v11684, 32 + (word) (
limit168 = (* (ptr) controlPoints←v11684 ),
BCK(0, limit168)
), 1)) {
then0167: ;
{
W2 var←c0290;
{
word pd169;
pd169 = (* (( (ptr) (* (( (ptr) gf←c78900)+293)/* var←c65588 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd169 ))))((word) &var←c0290, transform←v11572, (* (W2Pt) data←v24932 ), pd169);
};
p1←v24988 = var←c0290;
};
}
else {
p1←v24988 = (* (W2Pt) data←v24932 );
};
};
};
SOURCE(10880, 21)
(void) ( *( (fPt) ((* (ptr) conicTo←v11768 ))))(p1←v24988, p2←v25016, (* (( (ptr) data←v24932)+2) ), conicTo←v11768);
}
static void ConicTransform←P1740(seg←v11856, transform←v11884)
word seg←v11856;
word transform←v11884;
{
register ptr gf←c78932 = (ptr) &globalframe;
word data←v25060;
/* ConicTransform: */
SOURCE(10906, 265)
SOURCE(10994, 34)
data←v25060 = XR←Narrow((* (( (ptr) seg←v11856)+24) ), (* (( (ptr) gf←c78932)+22) ));
SOURCE(11030, 60)
{
word pd170;
pd170 = (* (( (ptr) (* (( (ptr) gf←c78932)+293)/* var←c65588 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd170 ))))((word) data←v25060, transform←v11884, (* (W2Pt) data←v25060 ), pd170);
};
SOURCE(11092, 53)
{
word pd171;
pd171 = (* (( (ptr) (* (( (ptr) gf←c78932)+291)/* var←c65492 */ ))+9) );
(void) ( *( (fPt) ((* (ptr) pd171 ))))((* (( (ptr) data←v25060)+7) ), transform←v11884, 0, pd171);
};
SOURCE(11147, 24)
(void) UpdateConicBoundBox←P1440(seg←v11856);
}
static void ConicEndPointMoved←P1800(seg←v11944, lo←v11972, newPoint←v12000)
word seg←v11944;
word lo←v11972;
W2 newPoint←v12000;
{
register ptr gf←c78964 = (ptr) &globalframe;
word data←v25104;
W2 p0←v25132;
W2 p1←v25160;
W2 p2←v25188;
/* ConicEndPointMoved: */
SOURCE(11177, 304)
SOURCE(11248, 34)
data←v25104 = XR←Narrow((* (( (ptr) seg←v11944)+24) ), (* (( (ptr) gf←c78964)+22) ));
SOURCE(11284, 43)
{
word tcp172;
if ((0 != lo←v11972)) {
tcp172 = (word) &newPoint←v12000;
}
else {
tcp172 = (word) (( (ptr) seg←v11944)+9);
};
p0←v25132 = (* (W2Pt) tcp172 );
};
SOURCE(11329, 34)
p1←v25160.f0 = (* (ptr) data←v25104 );
p1←v25160.f1 = (* (( (ptr) data←v25104)+1) );
SOURCE(11365, 43)
{
word tcp173;
if ((0 != lo←v11972)) {
tcp173 = (word) (( (ptr) seg←v11944)+11);
}
else {
tcp173 = (word) &newPoint←v12000;
};
p2←v25188 = (* (W2Pt) tcp173 );
};
SOURCE(11410, 45)
(* (( (ptr) data←v25104)+7) ) = (word) PathFromConic←P6840(p0←v25132, p1←v25160, p2←v25188, (* (( (ptr) data←v25104)+2) ))
;
SOURCE(11457, 24)
(void) UpdateConicBoundBox←P1440(seg←v11944);
}
static void ConicControlPointMoved←P1860(seg←v12060, transform←v12088, controlPointNum←v12116)
word seg←v12060;
word transform←v12088;
word controlPointNum←v12116;
{
register ptr gf←c78996 = (ptr) &globalframe;
W2 p1Vec←v25232;
W2 p1←v25260;
word data←v25288;
/* ConicControlPointMoved: */
SOURCE(11487, 391)
SOURCE(11628, 34)
data←v25288 = XR←Narrow((* (( (ptr) seg←v12060)+24) ), (* (( (ptr) gf←c78996)+22) ));
SOURCE(11664, 26)
if ((controlPointNum←v12116 != 0)) {
SOURCE(11690, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(11697, 58)
{
word pd174;
pd174 = (* (( (ptr) (* (( (ptr) gf←c78996)+293)/* var←c65588 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd174 ))))((word) &p1Vec←v25232, transform←v12088, (* (W2Pt) data←v25288 ), pd174);
};
SOURCE(11757, 23)
p1←v25260.f0 = p1Vec←v25232.f0;
p1←v25260.f1 = p1Vec←v25232.f1;
SOURCE(11782, 53)
(* (( (ptr) data←v25288)+7) ) = (word) PathFromConic←P6840((* (W2Pt) (( (ptr) seg←v12060)+9) ), p1←v25260, (* (W2Pt) (( (ptr) seg←v12060)+11)
), (* (( (ptr) data←v25288)+2) ));
SOURCE(11837, 15)
(* (W2Pt) data←v25288 ) = p1Vec←v25232;
SOURCE(11854, 24)
(void) UpdateConicBoundBox←P1440(seg←v12060);
}
static void TransformEndPoints←P1920(formal←c0320, loPt←v12176, hiPt←v12204, lo←v12232, hi←v12260, transform←v12288)
word formal←c0320;
W2 loPt←v12176;
W2 hiPt←v12204;
word lo←v12232;
word hi←v12260;
word transform←v12288;
{
register ptr gf←c79028 = (ptr) &globalframe;
W2 newLo←v12332;
W2 newHi←v12360;
/* TransformEndPoints: */
SOURCE(11884, 353)
SOURCE(12023, 106)
if ((0 != lo←v12232)) {
SOURCE(12034, 72)
{
W2 var←c0317;
{
W2 var←c66100;
var←c66100.f0 = loPt←v12176.f0;
var←c66100.f1 = loPt←v12176.f1;
{
word pd175;
pd175 = (* (( (ptr) (* (( (ptr) gf←c79028)+293)/* var←c65588 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd175 ))))((word) &var←c0317, transform←v12288, var←c66100, pd175);
};
};
newLo←v12332 = var←c0317;
};
}
else {
SOURCE(12106, 23)
newLo←v12332.f0 = loPt←v12176.f0;
newLo←v12332.f1 = loPt←v12176.f1;
};
SOURCE(12131, 106)
if ((0 != hi←v12260)) {
SOURCE(12142, 72)
{
W2 var←c0319;
{
W2 var←c66132;
var←c66132.f0 = hiPt←v12204.f0;
var←c66132.f1 = hiPt←v12204.f1;
{
word pd176;
pd176 = (* (( (ptr) (* (( (ptr) gf←c79028)+293)/* var←c65588 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd176 ))))((word) &var←c0319, transform←v12288, var←c66132, pd176);
};
};
newHi←v12360 = var←c0319;
};
}
else {
SOURCE(12214, 23)
newHi←v12360.f0 = hiPt←v12204.f0;
newHi←v12360.f1 = hiPt←v12204.f1;
};
/* removed tail goto */
(* (W2Pt) formal←c0320 ) = newLo←v12332;
(* (W2Pt) (( (ptr) formal←c0320)+2) ) = newHi←v12360;
return;
}
static word ConicDescribe←P1980(seg←v12420, self←v12448, lo←v12476, hi←v12504, cps←v12532)
word seg←v12420;
word self←v12448;
word lo←v12476;
word hi←v12504;
word cps←v12532;
{
register ptr gf←c79060 = (ptr) &globalframe;
word rope←v12576;
/* ConicDescribe: */
SOURCE(12242, 125)
SOURCE(12242, 125)
rope←v12576 = 0;
SOURCE(12343, 24)
rope←v12576 = (* (( (ptr) gf←c79060)+33) );
SOURCE(12242, 125)
return(rope←v12576);
}
static void ConicFileOut←P2040(seg←v12636, f←v12664)
word seg←v12636;
word f←v12664;
{
register ptr gf←c79092 = (ptr) &globalframe;
word data←v25332;
W2 p1←v25360;
/* ConicFileOut: */
SOURCE(12373, 184)
SOURCE(12425, 34)
data←v25332 = XR←Narrow((* (( (ptr) seg←v12636)+24) ), (* (( (ptr) gf←c79092)+22) ));
SOURCE(12461, 34)
p1←v25360.f0 = (* (ptr) data←v25332 );
p1←v25360.f1 = (* (( (ptr) data←v25332)+1) );
SOURCE(12497, 28)
{
word pd177;
pd177 = (* (( (ptr) (* (( (ptr) gf←c79092)+296)/* var←c66196 */ ))+9) );
(void) ( *( (fPt) ((* (ptr) pd177 ))))(f←v12664, p1←v25360, pd177);
};
SOURCE(12527, 30)
{
W2 var←c66228;
var←c66228.f0 = 8;
var←c66228.f1 = (* (( (ptr) data←v25332)+2) );
{
word pd178;
pd178 = (* (( (ptr) (* (( (ptr) gf←c79092)+285)/* var←c65044 */ ))+61) );
(void) ( *( (fPt) ((* (ptr) pd178 ))))(f←v12664, (* (( (ptr) gf←c79092)+32) ), var←c66228, pd178);
};
};
}
static word ConicFileIn←P2100(f←v12724, loPoint←v12752, hiPoint←v12780, version←v12808)
word f←v12724;
W2 loPoint←v12752;
W2 hiPoint←v12780;
word version←v12808;
{
register ptr gf←c79124 = (ptr) &globalframe;
word seg←v12852;
word s←v25404;
W2 p1←v25432;
/* ConicFileIn: */
SOURCE(12563, 221)
SOURCE(12563, 221)
seg←v12852 = 0;
SOURCE(12683, 27)
{
word pd179;
pd179 = (* (( (ptr) (* (( (ptr) gf←c79124)+297)/* var←c66260 */ ))+19) );
(void) ( *( (fPt) ((* (ptr) pd179 ))))((word) &p1←v25432, f←v12724, pd179);
};
SOURCE(12712, 25)
{
word pd180;
pd180 = (* (( (ptr) (* (( (ptr) gf←c79124)+297)/* var←c66260 */ ))+27) );
s←v25404 = (word) ( *( (fPt) ((* (ptr) pd180 ))))(f←v12724, pd180);
};
SOURCE(12739, 45)
seg←v12852 = (word) MakeConic←P1020(loPoint←v12752, p1←v25432, hiPoint←v12780, s←v25404, 0);
SOURCE(12563, 221)
return(seg←v12852);
}
static void ConicFieldSet←P2160(seg←v38512, controlPointNum←v38540, selected←v38568, selectClass←v38596)
word seg←v38512;
word controlPointNum←v38540;
word selected←v38568;
word selectClass←v38596;
{
register ptr gf←c79156 = (ptr) &globalframe;
word data←v25476;
/* ConicFieldSet: */
SOURCE(12790, 324)
SOURCE(12849, 34)
data←v25476 = XR←Narrow((* (( (ptr) seg←v38512)+24) ), (* (( (ptr) gf←c79156)+22) ));
SOURCE(12885, 28)
if ((controlPointNum←v38540 != 0)) {
SOURCE(12913, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(12920, 194)
{
word var←c66292;
var←c66292 = selectClass←v38596;
switch (var←c66292) {
case 0:
SOURCE(12954, 33)
(* (( (ptr) data←v25476)+3) ) = selected←v38568;
break;
case 1:
SOURCE(12996, 30)
(* (( (ptr) data←v25476)+4) ) = selected←v38568;
break;
case 2:
SOURCE(13038, 33)
(* (( (ptr) data←v25476)+5) ) = selected←v38568;
break;
case 3:
SOURCE(13082, 32)
(* (( (ptr) data←v25476)+6) ) = selected←v38568;
break;
default:
SOURCE(13127, 5)
(void) XR←RaiseUnnamedError();
break;
};
};
}
static word ConicFieldGet←P2220(seg←v38656, controlPointNum←v38684, selectClass←v38712)
word seg←v38656;
word controlPointNum←v38684;
word selectClass←v38712;
{
register ptr gf←c79188 = (ptr) &globalframe;
word selected←v38756;
word data←v25520;
/* ConicFieldGet: */
SOURCE(13138, 324)
SOURCE(13197, 34)
data←v25520 = XR←Narrow((* (( (ptr) seg←v38656)+24) ), (* (( (ptr) gf←c79188)+22) ));
SOURCE(13233, 28)
if ((controlPointNum←v38684 != 0)) {
SOURCE(13261, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(13268, 194)
{
word var←c66324;
var←c66324 = selectClass←v38712;
switch (var←c66324) {
case 0:
SOURCE(13302, 33)
selected←v38756 = (* (( (ptr) data←v25520)+3) );
break;
case 1:
SOURCE(13344, 30)
selected←v38756 = (* (( (ptr) data←v25520)+4) );
break;
case 2:
SOURCE(13386, 33)
selected←v38756 = (* (( (ptr) data←v25520)+5) );
break;
case 3:
SOURCE(13430, 32)
selected←v38756 = (* (( (ptr) data←v25520)+6) );
break;
default:
SOURCE(13475, 5)
(void) XR←RaiseUnnamedError();
break;
};
};
SOURCE(13138, 324)
return(selected←v38756);
}
static void ConicControlPointGet←P2280(formal←c0358, seg←v12912, controlPointNum←v12940)
word formal←c0358;
word seg←v12912;
word controlPointNum←v12940;
{
register ptr gf←c79220 = (ptr) &globalframe;
W2 point←v12984;
word data←v25564;
/* ConicControlPointGet: */
SOURCE(13486, 192)
SOURCE(13577, 34)
data←v25564 = XR←Narrow((* (( (ptr) seg←v12912)+24) ), (* (( (ptr) gf←c79220)+22) ));
SOURCE(13613, 26)
if ((controlPointNum←v12940 != 0)) {
SOURCE(13639, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(13646, 32)
point←v12984.f0 = (* (ptr) data←v25564 );
point←v12984.f1 = (* (( (ptr) data←v25564)+1) );
/* removed tail goto */
(* (W2Pt) formal←c0358 ) = point←v12984;
return;
}
static word ConicControlPointCount←P2340(seg←v13044)
word seg←v13044;
{
register ptr gf←c79252 = (ptr) &globalframe;
word controlPointCount←v13088;
word data←v25608;
/* ConicControlPointCount: */
SOURCE(13684, 175)
SOURCE(13765, 34)
data←v25608 = XR←Narrow((* (( (ptr) seg←v13044)+24) ), (* (( (ptr) gf←c79252)+22) ));
SOURCE(13850, 9)
return(1);
}
static void ConicClosestControlPoint←P2400(formal←c0370, seg←v13148, testPoint←v13176, tolerance←v13204)
word formal←c0370;
word seg←v13148;
W2 testPoint←v13176;
word tolerance←v13204;
{
register ptr gf←c79284 = (ptr) &globalframe;
W2 point←v13248;
W2 normal←v13276;
word controlPointNum←v13304;
word success←v13332;
word data←v25652;
/* ConicClosestControlPoint: */
SOURCE(13864, 273)
SOURCE(13864, 273)
normal←v13276.f0 = (* (ptr) &fc78 );
normal←v13276.f1 = (* (ptr) &fc115 );
SOURCE(14034, 34)
data←v25652 = XR←Narrow((* (( (ptr) seg←v13148)+24) ), (* (( (ptr) gf←c79284)+22) ));
SOURCE(14070, 14)
success←v13332 = 1;
SOURCE(14086, 19)
controlPointNum←v13304 = 0;
SOURCE(14107, 30)
point←v13248.f0 = (* (ptr) data←v25652 );
point←v13248.f1 = (* (( (ptr) data←v25652)+1) );
/* removed tail goto */
(* (W2Pt) formal←c0370 ) = point←v13248;
(* (W2Pt) (( (ptr) formal←c0370)+2) ) = normal←v13276;
(* (( (ptr) formal←c0370)+4) ) = controlPointNum←v13304;
(* (( (ptr) formal←c0370)+5) ) = success←v13332;
return;
}
static word ConicAsPolyline←P2460(seg←v13392, tolerance←v13420)
word seg←v13392;
word tolerance←v13420;
{
register ptr gf←c79316 = (ptr) &globalframe;
word polyline←v13464;
word data←v25696;
W2 p0←v25724;
W2 p1←v25752;
W2 p2←v25780;
word r←v25808;
/* ConicAsPolyline: */
SOURCE(14142, 271)
SOURCE(14142, 271)
polyline←v13464 = 0;
SOURCE(14248, 34)
data←v25696 = XR←Narrow((* (( (ptr) seg←v13392)+24) ), (* (( (ptr) gf←c79316)+22) ));
SOURCE(14310, 11)
p0←v25724 = (* (W2Pt) (( (ptr) seg←v13392)+9) );
SOURCE(14323, 12)
p1←v25752 = (* (W2Pt) data←v25696 );
SOURCE(14337, 11)
p2←v25780 = (* (W2Pt) (( (ptr) seg←v13392)+11) );
SOURCE(14350, 10)
r←v25808 = (* (( (ptr) data←v25696)+2) );
SOURCE(14363, 50)
polyline←v13464 = (word) ConicPolyline←P2640(p0←v25724, p1←v25752, p2←v25780, r←v25808, tolerance←v13420);
SOURCE(14142, 271)
return(polyline←v13464);
}
static word ConicPolyline←P2640(p0←v13760, p1←v13788, p2←v13816, r←v13844, tolerance←v13872)
W2 p0←v13760;
W2 p1←v13788;
W2 p2←v13816;
word r←v13844;
word tolerance←v13872;
{
register ptr gf←c79348 = (ptr) &globalframe;
word polyline←v13916;
/* ConicPolyline: */
SOURCE(14589, 1266)
SOURCE(14589, 1266)
polyline←v13916 = 0;
SOURCE(14705, 1150)
{
word var←c66420;
var←c66420 = r←v13844;
{
word x181;
word x183;
word x187;
word x188;
if (((
x181 = var←c66420, *(float*)&x181
) > (
x183 = (* (ptr) &fc182 ), *(float*)&x183
))) {
SOURCE(14733, 49)
{
word var←c66452;
var←c66452 = XR←NewObject(32, (* (( (ptr) gf←c79348)+25) ));
(* (( (ptr) var←c66452)+1) ) = 3;
polyline←v13916 = var←c66452;
};
SOURCE(14784, 19)
(* (ptr) polyline←v13916 ) = 3;
SOURCE(14805, 16)
{
word limit184;
(* (( (W2Pt) (( (ptr) polyline←v13916)+2))+(
limit184 = (* (( (ptr) polyline←v13916)+1) ),
BCK(0, limit184)
)) ) = p0←v13760;
};
SOURCE(14823, 16)
{
word limit185;
(* (( (W2Pt) (( (ptr) polyline←v13916)+2))+(
limit185 = (* (( (ptr) polyline←v13916)+1) ),
BCK(1, limit185)
)) ) = p1←v13788;
};
SOURCE(14841, 16)
{
word limit186;
(* (( (W2Pt) (( (ptr) polyline←v13916)+2))+(
limit186 = (* (( (ptr) polyline←v13916)+1) ),
BCK(2, limit186)
)) ) = p2←v13816;
};
}
else {
if (((
x187 = var←c66420, *(float*)&x187
) <= (
x188 = (* (ptr) &fc78 ), *(float*)&x188
))) {
SOURCE(14874, 49)
{
word var←c66484;
var←c66484 = XR←NewObject(24, (* (( (ptr) gf←c79348)+25) ));
(* (( (ptr) var←c66484)+1) ) = 2;
polyline←v13916 = var←c66484;
};
SOURCE(14925, 19)
(* (ptr) polyline←v13916 ) = 2;
SOURCE(14946, 16)
{
word limit189;
(* (( (W2Pt) (( (ptr) polyline←v13916)+2))+(
limit189 = (* (( (ptr) polyline←v13916)+1) ),
BCK(0, limit189)
)) ) = p0←v13760;
};
SOURCE(14964, 16)
{
word limit190;
(* (( (W2Pt) (( (ptr) polyline←v13916)+2))+(
limit190 = (* (( (ptr) polyline←v13916)+1) ),
BCK(1, limit190)
)) ) = p2←v13816;
};
}
else {
SOURCE(14996, 873)
{
W2 p02←v25852;
W2 m←v25880;
SOURCE(14998, 22)
{
W2 p←v60936;
W2 q←v60964;
p←v60936 = p0←v13760;
q←v60964 = p2←v13816;
SOURCE(14466, 40)
{
W2 var←c66548;
{
word var←c66580;
word r←v61060;
{
/*1*/ word x191;
/*1*/ word x192;
/*1*/ *(float*)&r←v61060 = (
/*1*/ x191 = p←v60936.f0, *(float*)&x191
/*1*/ ) + (
/*1*/ x192 = q←v60964.f0, *(float*)&x192
/*1*/ );
/*1*/ };
SOURCE(14557, 28)
{
/*1*/ word pd193;
/*1*/ pd193 = (* (( (ptr) (* (( (ptr) gf←c79348)+298)/* var←c66644 */ ))+4) );
/*1*/ var←c66580 = (word) ( *( (fPt) ((* (ptr) pd193 ))))(r←v61060, (word) -1, pd193);
/*1*/ };
var←c66548.f0 = var←c66580;
};
{
word var←c66676;
word r←v61012;
{
/*1*/ word x194;
/*1*/ word x195;
/*1*/ *(float*)&r←v61012 = (
/*1*/ x194 = p←v60936.f1, *(float*)&x194
/*1*/ ) + (
/*1*/ x195 = q←v60964.f1, *(float*)&x195
/*1*/ );
/*1*/ };
SOURCE(14557, 28)
{
/*1*/ word pd196;
/*1*/ pd196 = (* (( (ptr) (* (( (ptr) gf←c79348)+298)/* var←c66644 */ ))+4) );
/*1*/ var←c66676 = (word) ( *( (fPt) ((* (ptr) pd196 ))))(r←v61012, (word) -1, pd196);
/*1*/ };
var←c66548.f1 = var←c66676;
};
p02←v25852 = var←c66548;
};
};
SOURCE(15022, 33)
{
word x197;
word x198;
*(float*)&m←v25880.f0 = (
x197 = p1←v13788.f0, *(float*)&x197
) - (
x198 = p02←v25852.f0, *(float*)&x198
);
};
{
word x199;
word x200;
*(float*)&m←v25880.f1 = (
x199 = p1←v13788.f1, *(float*)&x199
) - (
x200 = p02←v25852.f1, *(float*)&x200
);
};
SOURCE(15057, 798)
{
float tf201;
word x202;
float tf203;
word x204;
word x205;
word x206;
if (((FABS((
x202 = m←v25880.f0, *(float*)&x202
), tf201) + FABS((
x204 = m←v25880.f1, *(float*)&x204
), tf203)) * (
x205 = r←v13844, *(float*)&x205
) <= (
x206 = tolerance←v13872, *(float*)&x206
))) {
SOURCE(15139, 49)
{
word var←c66772;
var←c66772 = XR←NewObject(24, (* (( (ptr) gf←c79348)+25) ));
(* (( (ptr) var←c66772)+1) ) = 2;
polyline←v13916 = var←c66772;
};
SOURCE(15190, 19)
(* (ptr) polyline←v13916 ) = 2;
SOURCE(15211, 16)
{
word limit207;
(* (( (W2Pt) (( (ptr) polyline←v13916)+2))+(
/*1*/ limit207 = (* (( (ptr) polyline←v13916)+1) ),
/*1*/ BCK(0, limit207)
/*1*/ )) ) = p0←v13760;
};
SOURCE(15229, 16)
{
word limit208;
(* (( (W2Pt) (( (ptr) polyline←v13916)+2))+(
/*1*/ limit208 = (* (( (ptr) polyline←v13916)+1) ),
/*1*/ BCK(1, limit208)
/*1*/ )) ) = p2←v13816;
};
}
else {
SOURCE(15254, 612)
{
W2 q←v25924;
word rNew←v25952;
word poly1←v25980 = 0;
word poly2←v26008 = 0;
word totalPoints←v26036;
SOURCE(15256, 35)
{
/*1*/ word x209;
/*1*/ word x210;
/*1*/ word x211;
/*1*/ *(float*)&q←v25924.f0 = ((
/*1*/ x209 = m←v25880.f0, *(float*)&x209
/*1*/ ) * (
/*1*/ x210 = r←v13844, *(float*)&x210
/*1*/ )) + (
/*1*/ x211 = p02←v25852.f0, *(float*)&x211
/*1*/ );
/*1*/ };
{
/*1*/ word x212;
/*1*/ word x213;
/*1*/ word x214;
/*1*/ *(float*)&q←v25924.f1 = ((
/*1*/ x212 = m←v25880.f1, *(float*)&x212
/*1*/ ) * (
/*1*/ x213 = r←v13844, *(float*)&x213
/*1*/ )) + (
/*1*/ x214 = p02←v25852.f1, *(float*)&x214
/*1*/ );
/*1*/ };
SOURCE(15293, 46)
{
/*1*/ word x215;
/*1*/ word x216;
/*1*/ word pd217;
/*1*/ word x218;
/*1*/ word x219;
/*1*/ word x220;
/*1*/ float tf221;
/*1*/ word x222;
/*1*/ pd217 = (* (( (ptr) (* (( (ptr) gf←c79348)+299)/* var←c66836 */ ))+9) );
/*1*/ *(float*)&rNew←v25952 = (
/*1*/ x215 = (* (ptr) &fc158 ), *(float*)&x215
/*1*/ ) / ((
/*1*/ x216 = (* (ptr) &fc158 ), *(float*)&x216
/*1*/ ) + (
/*1*/ x222 = (word) ( *( (fPt) ((* (ptr) pd217 ))))((
/*1*/ tf221 = (
/*1*/ x218 = (* (ptr) &fc70 ), *(float*)&x218
/*1*/ ) * ((
/*1*/ x219 = (* (ptr) &fc158 ), *(float*)&x219
/*1*/ ) - (
/*1*/ x220 = r←v13844, *(float*)&x220
/*1*/ )), *(word*)&tf221
/*1*/ ), pd217), *(float*)&x222
/*1*/ ));
/*1*/ };
SOURCE(15402, 87)
{
/*1*/ W2 var←c66868;
/*1*/ {
/*1*/ word x223;
/*1*/ word x224;
/*1*/ word x225;
/*1*/ word x226;
/*1*/ *(float*)&var←c66868.f0 = (((
/*1*/ x223 = p1←v13788.f0, *(float*)&x223
/*1*/ ) - (
/*1*/ x224 = p0←v13760.f0, *(float*)&x224
/*1*/ )) * (
/*1*/ x225 = r←v13844, *(float*)&x225
/*1*/ )) + (
/*1*/ x226 = p0←v13760.f0, *(float*)&x226
/*1*/ );
/*1*/ };
/*1*/ {
/*1*/ word x227;
/*1*/ word x228;
/*1*/ word x229;
/*1*/ word x230;
/*1*/ *(float*)&var←c66868.f1 = (((
/*1*/ x227 = p1←v13788.f1, *(float*)&x227
/*1*/ ) - (
/*1*/ x228 = p0←v13760.f1, *(float*)&x228
/*1*/ )) * (
/*1*/ x229 = r←v13844, *(float*)&x229
/*1*/ )) + (
/*1*/ x230 = p0←v13760.f1, *(float*)&x230
/*1*/ );
/*1*/ };
/*1*/ poly1←v25980 = (word) ConicPolyline←P2640(p0←v13760, var←c66868, q←v25924, rNew←v25952, tolerance←v13872);
/*1*/ };
SOURCE(15491, 87)
{
/*1*/ W2 var←c66900;
/*1*/ {
/*1*/ word x231;
/*1*/ word x232;
/*1*/ word x233;
/*1*/ word x234;
/*1*/ *(float*)&var←c66900.f0 = (((
/*1*/ x231 = p1←v13788.f0, *(float*)&x231
/*1*/ ) - (
/*1*/ x232 = p2←v13816.f0, *(float*)&x232
/*1*/ )) * (
/*1*/ x233 = r←v13844, *(float*)&x233
/*1*/ )) + (
/*1*/ x234 = p2←v13816.f0, *(float*)&x234
/*1*/ );
/*1*/ };
/*1*/ {
/*1*/ word x235;
/*1*/ word x236;
/*1*/ word x237;
/*1*/ word x238;
/*1*/ *(float*)&var←c66900.f1 = (((
/*1*/ x235 = p1←v13788.f1, *(float*)&x235
/*1*/ ) - (
/*1*/ x236 = p2←v13816.f1, *(float*)&x236
/*1*/ )) * (
/*1*/ x237 = r←v13844, *(float*)&x237
/*1*/ )) + (
/*1*/ x238 = p2←v13816.f1, *(float*)&x238
/*1*/ );
/*1*/ };
/*1*/ poly2←v26008 = (word) ConicPolyline←P2640(q←v25924, var←c66900, p2←v13816, rNew←v25952, tolerance←v13872);
/*1*/ };
SOURCE(15580, 41)
{
/*1*/ word idx239;
/*1*/ totalPoints←v26036 = (
/*1*/ idx239 = (word) (((* (ptr) poly1←v25980 ) + (* (ptr) poly2←v26008 )) - 1),
/*1*/ SGNCK(idx239)
/*1*/ );
/*1*/ };
SOURCE(15623, 59)
{
/*1*/ word var←c66932;
/*1*/ word var←c66964;
/*1*/ var←c66932 = ((word) totalPoints←v26036 << 3);
/*1*/ var←c66964 = XR←NewObject((8 + var←c66932), (* (( (ptr) gf←c79348)+25) ));
/*1*/ (* (( (ptr) var←c66964)+1) ) = totalPoints←v26036;
/*1*/ polyline←v13916 = var←c66964;
/*1*/ };
SOURCE(15684, 29)
(* (ptr) polyline←v13916 ) = totalPoints←v26036;
SOURCE(15715, 57)
{
/*1*/ register word i←v26080 = 0;
/*1*/ register word noName←c66996;
/*1*/ noName←c66996 = (* (ptr) poly1←v25980 );
/*1*/ if ((i←v26080 >= noName←c66996)) {
/*1*/ goto lab←L100015;
/*1*/ };
/*1*/ lab←L100018: ;
SOURCE(15750, 22)
/*1*/ {
/*1*/ word limit240;
/*1*/ word limit241;
/*1*/ (* (( (W2Pt) (( (ptr) polyline←v13916)+2))+(
/*1*/ limit240 = (* (( (ptr) polyline←v13916)+1) ),
/*1*/ BCK(i←v26080, limit240)
/*1*/ )) ) = (* (( (W2Pt) (( (ptr) poly1←v25980)+2))+(
/*1*/ limit241 = (* (( (ptr) poly1←v25980)+1) ),
/*1*/ BCK(i←v26080, limit241)
/*1*/ )) );
/*1*/ };
/*1*/ i←v26080 = (i←v26080 + 1);
/*1*/ if ((i←v26080 < noName←c66996)) {
/*1*/ goto lab←L100018;
/*1*/ };
/*1*/ lab←L100015: ;
/*1*/ };
SOURCE(15783, 72)
{
/*1*/ register word i←v26124 = 1;
/*1*/ register word noName←c67028;
/*1*/ noName←c67028 = (* (ptr) poly2←v26008 );
/*1*/ if ((i←v26124 >= noName←c67028)) {
/*1*/ goto lab←L100019;
/*1*/ };
/*1*/ lab←L100022: ;
SOURCE(15818, 37)
/*1*/ {
/*1*/ word var←c67060;
/*1*/ var←c67060 = ((i←v26124 + (* (ptr) poly1←v25980 )) - 1);
/*1*/ {
/*1*/ word limit242;
/*1*/ word limit243;
/*1*/ (* (( (W2Pt) (( (ptr) polyline←v13916)+2))+(
/*1*/ limit242 = (* (( (ptr) polyline←v13916)+1) ),
/*1*/ BCK(var←c67060, limit242)
/*1*/ )) ) = (* (( (W2Pt) (( (ptr) poly2←v26008)+2))+(
/*1*/ limit243 = (* (( (ptr) poly2←v26008)+1) ),
/*1*/ BCK(i←v26124, limit243)
/*1*/ )) );
/*1*/ };
/*1*/ };
/*1*/ i←v26124 = (i←v26124 + 1);
/*1*/ if ((i←v26124 < noName←c67028)) {
/*1*/ goto lab←L100022;
/*1*/ };
/*1*/ lab←L100019: ;
/*1*/ };
};
};
};
};
};
};
};
};
SOURCE(14589, 1266)
return(polyline←v13916);
}
static word BuildBezierClass←P2700()
{
register ptr gf←c79380 = (ptr) &globalframe;
word class←v14088;
/* BuildBezierClass: */
SOURCE(16015, 1028)
SOURCE(16015, 1028)
class←v14088 = 0;
SOURCE(16091, 952)
{
word var←c67092;
var←c67092 = XR←NewObject(116, (* (( (ptr) gf←c79380)+20) ));
(* (ptr) var←c67092 ) = (* (( (ptr) gf←c79380)+30) );
(* (( (ptr) var←c67092)+1) ) = (word) (( (bPt) gf←c79380)+732)/* var←c63252 */ ;
(* (( (ptr) var←c67092)+2) ) = (word) (( (bPt) gf←c79380)+724)/* var←c63220 */ ;
(* (( (ptr) var←c67092)+3) ) = (word) (( (bPt) gf←c79380)+708)/* var←c63156 */ ;
(* (( (ptr) var←c67092)+4) ) = (word) (( (bPt) gf←c79380)+700)/* var←c63124 */ ;
(* (( (ptr) var←c67092)+5) ) = (* (( (ptr) (* (( (ptr) gf←c79380)+295)/* var←c65748 */ ))+35) );
(* (( (ptr) var←c67092)+6) ) = (word) (( (bPt) gf←c79380)+284)/* var←c61460 */ ;
(* (( (ptr) var←c67092)+7) ) = (word) (( (bPt) gf←c79380)+660)/* var←c62964 */ ;
(* (( (ptr) var←c67092)+8) ) = (word) (( (bPt) gf←c79380)+692)/* var←c63092 */ ;
(* (( (ptr) var←c67092)+9) ) = (word) (( (bPt) gf←c79380)+684)/* var←c63060 */ ;
(* (( (ptr) var←c67092)+10) ) = (word) (( (bPt) gf←c79380)+676)/* var←c63028 */ ;
(* (( (ptr) var←c67092)+11) ) = (word) (( (bPt) gf←c79380)+556)/* var←c62548 */ ;
(* (( (ptr) var←c67092)+12) ) = (word) (( (bPt) gf←c79380)+548)/* var←c62516 */ ;
(* (( (ptr) var←c67092)+13) ) = (word) (( (bPt) gf←c79380)+540)/* var←c62484 */ ;
(* (( (ptr) var←c67092)+14) ) = (word) (( (bPt) gf←c79380)+612)/* var←c62772 */ ;
(* (( (ptr) var←c67092)+15) ) = (word) (( (bPt) gf←c79380)+604)/* var←c62740 */ ;
(* (( (ptr) var←c67092)+16) ) = (word) (( (bPt) gf←c79380)+628)/* var←c62836 */ ;
(* (( (ptr) var←c67092)+17) ) = (word) (( (bPt) gf←c79380)+620)/* var←c62804 */ ;
(* (( (ptr) var←c67092)+18) ) = (word) (( (bPt) gf←c79380)+276)/* var←c61428 */ ;
(* (( (ptr) var←c67092)+19) ) = (word) (( (bPt) gf←c79380)+596)/* var←c62708 */ ;
(* (( (ptr) var←c67092)+20) ) = (* (( (ptr) (* (( (ptr) gf←c79380)+295)/* var←c65748 */ ))+42) );
(* (( (ptr) var←c67092)+21) ) = (* (( (ptr) (* (( (ptr) gf←c79380)+295)/* var←c65748 */ ))+43) );
(* (( (ptr) var←c67092)+22) ) = (* (( (ptr) (* (( (ptr) gf←c79380)+295)/* var←c65748 */ ))+44) );
(* (( (ptr) var←c67092)+23) ) = (word) (( (bPt) gf←c79380)+588)/* var←c62676 */ ;
(* (( (ptr) var←c67092)+24) ) = (word) (( (bPt) gf←c79380)+580)/* var←c62644 */ ;
(* (( (ptr) var←c67092)+25) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c79380)+295)/* var←c65748 */ ))+48) );
(* (( (ptr) var←c67092)+26) ) = (word) (( (bPt) gf←c79380)+572)/* var←c62612 */ ;
(* (( (ptr) var←c67092)+27) ) = (word) (( (bPt) gf←c79380)+564)/* var←c62580 */ ;
(* (( (ptr) var←c67092)+28) ) = (word) (( (bPt) gf←c79380)+756)/* var←c63348 */ ;
class←v14088 = var←c67092;
};
SOURCE(16015, 1028)
return(class←v14088);
}
static void BZSetStrokeWidth←P2760(seg←v14148, strokeWidth←v14176)
word seg←v14148;
word strokeWidth←v14176;
{
/* BZSetStrokeWidth: */
SOURCE(17049, 113)
SOURCE(17110, 29)
(* (( (ptr) seg←v14148)+2) ) = strokeWidth←v14176;
SOURCE(17141, 21)
(void) UpdateBZBoundBox←P3060(seg←v14148);
}
static word MakeBezier←P2820(p0←v14236, p1←v14264, p2←v14292, p3←v14320, props←v14348)
W2 p0←v14236;
W2 p1←v14264;
W2 p2←v14292;
W2 p3←v14320;
word props←v14348;
{
register ptr gf←c79412 = (ptr) &globalframe;
word seg←v14488;
word data←v26168;
/* MakeBezier: */
SOURCE(17168, 637)
SOURCE(17168, 637)
seg←v14488 = 0;
SOURCE(17267, 73)
{
word var←c67124;
word var←c67188;
var←c67124 = XR←NewObject(20, (* (( (ptr) gf←c79412)+28) ));
var←c67188 = XR←NewObject(36, (* (( (ptr) gf←c79412)+27) ));
(* (( (ptr) var←c67188)+8) ) = var←c67124;
data←v26168 = var←c67188;
};
SOURCE(17342, 50)
{
word var←c67220;
{
word var←c67252;
var←c67252 = XR←NewObject(36, (* (( (ptr) gf←c79412)+29) ));
(* (ptr) var←c67252 ) = 1;
var←c67220 = var←c67252;
};
(* (( (ptr) (* (( (ptr) data←v26168)+8) ))+4) ) = var←c67220;
};
SOURCE(17394, 38)
{
word var←c67316;
word var←c67284;
{
word limit244;
var←c67284 = (* (( (ptr) (* (( (ptr) data←v26168)+8) ))+4) );
var←c67316 = (word) (( (W8Pt) (( (bPt) var←c67284)+4))+(
limit244 = (* (ptr) var←c67284 ),
BCK(0, limit244)
));
};
(* (W2Pt) var←c67316 ) = p0←v14236;
(* (W2Pt) (( (ptr) var←c67316)+2) ) = p1←v14264;
(* (W2Pt) (( (ptr) var←c67316)+4) ) = p2←v14292;
(* (W2Pt) (( (ptr) var←c67316)+6) ) = p3←v14320;
};
SOURCE(17434, 348)
{
word var←c67348;
word var←c67380;
word var←c67412;
word var←c67444;
var←c67348 = (word) FetchSegmentClass←P120((* ((( (ptr) gf←c79412)+30)) ));
{
word pd245;
pd245 = (* (( (ptr) (* (( (ptr) gf←c79412)+287)/* var←c65172 */ ))+5) );
var←c67380 = (word) ( *( (fPt) ((* (ptr) pd245 ))))((* (ptr) &fc78 ), (* (ptr) &fc78 ), (* (ptr) &fc78 ), (* (ptr) &fc78 ), 0, 0, pd245)
;
};
{
word pd246;
pd246 = (* (( (ptr) (* (( (ptr) gf←c79412)+287)/* var←c65172 */ ))+5) );
var←c67412 = (word) ( *( (fPt) ((* (ptr) pd246 ))))((* (ptr) &fc78 ), (* (ptr) &fc78 ), (* (ptr) &fc78 ), (* (ptr) &fc78 ), 0, 0, pd246)
;
};
var←c67444 = XR←NewObject(104, (* (( (ptr) gf←c79412)+15) ));
(* (ptr) var←c67444 ) = var←c67348;
(* (( (ptr) var←c67444)+2) ) = (* (( (ptr) gf←c79412)+4)/* defaultStrokeWidth←v4540 */ );
(* (( (ptr) var←c67444)+3) ) = (* (( (ptr) gf←c79412)+5)/* defaultStrokeEnd←v4568 */ );
(* (( (ptr) var←c67444)+6) ) = (* (ptr) &fc78 );
(* (( (ptr) var←c67444)+7) ) = (* (ptr) &fc115 );
(* (( (ptr) var←c67444)+8) ) = (* (ptr) (* (( (ptr) (* (( (ptr) gf←c79412)+294)/* var←c65684 */ ))+54) ) );
(* (W2Pt) (( (ptr) var←c67444)+9) ) = p0←v14236;
(* (W2Pt) (( (ptr) var←c67444)+11) ) = p3←v14320;
(* (( (ptr) var←c67444)+13) ) = (* (ptr) &fc78 );
(* (( (ptr) var←c67444)+14) ) = (* (ptr) &fc78 );
(* (( (ptr) var←c67444)+15) ) = (* (ptr) &fc78 );
(* (( (ptr) var←c67444)+16) ) = (* (ptr) &fc78 );
(* (W4Pt) (( (ptr) var←c67444)+17) ) = (* (W4Pt) (( (ptr) gf←c79412)+279)/* var←c64820 */ );
(* (( (ptr) var←c67444)+21) ) = var←c67380;
(* (( (ptr) var←c67444)+22) ) = var←c67412;
(* (( (ptr) var←c67444)+24) ) = data←v26168;
(* (( (ptr) var←c67444)+25) ) = props←v14348;
seg←v14488 = var←c67444;
};
SOURCE(17784, 21)
(void) UpdateBZBoundBox←P3060(seg←v14488);
SOURCE(17168, 637)
return(seg←v14488);
}
static void BezierGetParams←P2880(formal←c0443, seg←v14548)
word formal←c0443;
word seg←v14548;
{
register ptr gf←c79444 = (ptr) &globalframe;
W2 p0←v14592;
W2 p1←v14620;
W2 p2←v14648;
W2 p3←v14676;
word data←v26212;
/* BezierGetParams: */
SOURCE(17811, 231)
SOURCE(17891, 35)
data←v26212 = XR←Narrow((* (( (ptr) seg←v14548)+24) ), (* (( (ptr) gf←c79444)+27) ));
{
word var←c67476;
word var←c67508;
word var←c67540;
word var←c67572;
SOURCE(17928, 27)
{
word limit247;
var←c67476 = (* (( (ptr) (* (( (ptr) data←v26212)+8) ))+4) );
p0←v14592 = (* (W2Pt) (( (W8Pt) (( (ptr) var←c67476)+1))+(
limit247 = (* (ptr) var←c67476 ),
BCK(0, limit247)
)) );
};
SOURCE(17957, 27)
{
word limit248;
var←c67508 = (* (( (ptr) (* (( (ptr) data←v26212)+8) ))+4) );
p1←v14620 = (* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c67508)+1))+(
limit248 = (* (ptr) var←c67508 ),
BCK(0, limit248)
)))+2) );
};
SOURCE(17986, 27)
{
word limit249;
var←c67540 = (* (( (ptr) (* (( (ptr) data←v26212)+8) ))+4) );
p2←v14648 = (* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c67540)+1))+(
limit249 = (* (ptr) var←c67540 ),
BCK(0, limit249)
)))+4) );
};
SOURCE(18015, 27)
{
word limit250;
var←c67572 = (* (( (ptr) (* (( (ptr) data←v26212)+8) ))+4) );
p3←v14676 = (* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c67572)+1))+(
limit250 = (* (ptr) var←c67572 ),
BCK(0, limit250)
)))+6) );
};
};
/* removed tail goto */
(* (W2Pt) formal←c0443 ) = p0←v14592;
(* (W2Pt) (( (ptr) formal←c0443)+2) ) = p1←v14620;
(* (W2Pt) (( (ptr) formal←c0443)+4) ) = p2←v14648;
(* (W2Pt) (( (ptr) formal←c0443)+6) ) = p3←v14676;
return;
}
static word BZBoundBox←P2940(seg←v14736)
word seg←v14736;
{
word bBox←v14780;
/* BZBoundBox: */
SOURCE(18048, 76)
SOURCE(18048, 76)
bBox←v14780 = 0;
SOURCE(18109, 15)
bBox←v14780 = (* (( (ptr) seg←v14736)+21) );
SOURCE(18048, 76)
return(bBox←v14780);
}
static word BZTightBox←P3000(seg←v14840)
word seg←v14840;
{
word bBox←v14884;
/* BZTightBox: */
SOURCE(18130, 80)
SOURCE(18130, 80)
bBox←v14884 = 0;
SOURCE(18191, 19)
bBox←v14884 = (* (( (ptr) seg←v14840)+22) );
SOURCE(18130, 80)
return(bBox←v14884);
}
static void UpdateBZBoundBox←P3060(seg←v14944)
word seg←v14944;
{
register ptr gf←c79476 = (ptr) &globalframe;
word pad←v26256;
word data←v26284;
word cubics←v26312;
word floX←v26340;
word floY←v26368;
word fhiX←v26396;
word fhiY←v26424;
word ft1←v26452;
word ft2←v26480;
word ft3←v26508;
word ft4←v26536;
/* UpdateBZBoundBox: */
SOURCE(18216, 1117)
SOURCE(18269, 35)
data←v26284 = XR←Narrow((* (( (ptr) seg←v14944)+24) ), (* (( (ptr) gf←c79476)+27) ));
SOURCE(18306, 54)
cubics←v26312 = (* (( (ptr) (* (( (ptr) data←v26284)+8) ))+4) );
SOURCE(18418, 20)
{
word limit251;
ft1←v26452 = (* (( (W8Pt) (( (ptr) cubics←v26312)+1))+(
limit251 = (* (ptr) cubics←v26312 ),
BCK(0, limit251)
)) ).f0;
};
SOURCE(18440, 20)
{
word limit252;
ft2←v26480 = (* (( (W8Pt) (( (ptr) cubics←v26312)+1))+(
limit252 = (* (ptr) cubics←v26312 ),
BCK(0, limit252)
)) ).f2;
};
SOURCE(18462, 20)
{
word limit253;
ft3←v26508 = (* (( (W8Pt) (( (ptr) cubics←v26312)+1))+(
limit253 = (* (ptr) cubics←v26312 ),
BCK(0, limit253)
)) ).f4;
};
SOURCE(18484, 20)
{
word limit254;
ft4←v26536 = (* (( (W8Pt) (( (ptr) cubics←v26312)+1))+(
limit254 = (* (ptr) cubics←v26312 ),
BCK(0, limit254)
)) ).f6;
};
SOURCE(18506, 30)
{
word x255;
float tf256;
float tf257;
word x258;
float tf259;
float tf260;
float tf261;
word x262;
float tf263;
float tf264;
float tf265;
word x266;
float tf267;
tf259 = FMIN((
x255 = ft1←v26452, *(float*)&x255
), (
x258 = ft2←v26480, *(float*)&x258
), tf256, tf257);
tf263 = FMIN(tf259, (
x262 = ft3←v26508, *(float*)&x262
), tf260, tf261);
floX←v26340 = (
tf267 = FMIN(tf263, (
x266 = ft4←v26536, *(float*)&x266
), tf264, tf265), *(word*)&tf267
);
};
SOURCE(18538, 20)
{
word limit268;
ft1←v26452 = (* (( (W8Pt) (( (ptr) cubics←v26312)+1))+(
limit268 = (* (ptr) cubics←v26312 ),
BCK(0, limit268)
)) ).f1;
};
SOURCE(18560, 20)
{
word limit269;
ft2←v26480 = (* (( (W8Pt) (( (ptr) cubics←v26312)+1))+(
limit269 = (* (ptr) cubics←v26312 ),
BCK(0, limit269)
)) ).f3;
};
SOURCE(18582, 20)
{
word limit270;
ft3←v26508 = (* (( (W8Pt) (( (ptr) cubics←v26312)+1))+(
limit270 = (* (ptr) cubics←v26312 ),
BCK(0, limit270)
)) ).f5;
};
SOURCE(18604, 20)
{
word limit271;
ft4←v26536 = (* (( (W8Pt) (( (ptr) cubics←v26312)+1))+(
limit271 = (* (ptr) cubics←v26312 ),
BCK(0, limit271)
)) ).f7;
};
SOURCE(18626, 30)
{
word x272;
float tf273;
float tf274;
word x275;
float tf276;
float tf277;
float tf278;
word x279;
float tf280;
float tf281;
float tf282;
word x283;
float tf284;
tf276 = FMIN((
x272 = ft1←v26452, *(float*)&x272
), (
x275 = ft2←v26480, *(float*)&x275
), tf273, tf274);
tf280 = FMIN(tf276, (
x279 = ft3←v26508, *(float*)&x279
), tf277, tf278);
floY←v26368 = (
tf284 = FMIN(tf280, (
x283 = ft4←v26536, *(float*)&x283
), tf281, tf282), *(word*)&tf284
);
};
SOURCE(18658, 20)
{
word limit285;
ft1←v26452 = (* (( (W8Pt) (( (ptr) cubics←v26312)+1))+(
limit285 = (* (ptr) cubics←v26312 ),
BCK(0, limit285)
)) ).f0;
};
SOURCE(18680, 20)
{
word limit286;
ft2←v26480 = (* (( (W8Pt) (( (ptr) cubics←v26312)+1))+(
limit286 = (* (ptr) cubics←v26312 ),
BCK(0, limit286)
)) ).f2;
};
SOURCE(18702, 20)
{
word limit287;
ft3←v26508 = (* (( (W8Pt) (( (ptr) cubics←v26312)+1))+(
limit287 = (* (ptr) cubics←v26312 ),
BCK(0, limit287)
)) ).f4;
};
SOURCE(18724, 20)
{
word limit288;
ft4←v26536 = (* (( (W8Pt) (( (ptr) cubics←v26312)+1))+(
limit288 = (* (ptr) cubics←v26312 ),
BCK(0, limit288)
)) ).f6;
};
SOURCE(18746, 30)
{
word x289;
float tf290;
float tf291;
word x292;
float tf293;
float tf294;
float tf295;
word x296;
float tf297;
float tf298;
float tf299;
word x300;
float tf301;
tf293 = FMAX((
x289 = ft1←v26452, *(float*)&x289
), (
x292 = ft2←v26480, *(float*)&x292
), tf290, tf291);
tf297 = FMAX(tf293, (
x296 = ft3←v26508, *(float*)&x296
), tf294, tf295);
fhiX←v26396 = (
tf301 = FMAX(tf297, (
x300 = ft4←v26536, *(float*)&x300
), tf298, tf299), *(word*)&tf301
);
};
SOURCE(18778, 20)
{
word limit302;
ft1←v26452 = (* (( (W8Pt) (( (ptr) cubics←v26312)+1))+(
limit302 = (* (ptr) cubics←v26312 ),
BCK(0, limit302)
)) ).f1;
};
SOURCE(18800, 20)
{
word limit303;
ft2←v26480 = (* (( (W8Pt) (( (ptr) cubics←v26312)+1))+(
limit303 = (* (ptr) cubics←v26312 ),
BCK(0, limit303)
)) ).f3;
};
SOURCE(18822, 20)
{
word limit304;
ft3←v26508 = (* (( (W8Pt) (( (ptr) cubics←v26312)+1))+(
limit304 = (* (ptr) cubics←v26312 ),
BCK(0, limit304)
)) ).f5;
};
SOURCE(18844, 20)
{
word limit305;
ft4←v26536 = (* (( (W8Pt) (( (ptr) cubics←v26312)+1))+(
limit305 = (* (ptr) cubics←v26312 ),
BCK(0, limit305)
)) ).f7;
};
SOURCE(18866, 30)
{
word x306;
float tf307;
float tf308;
word x309;
float tf310;
float tf311;
float tf312;
word x313;
float tf314;
float tf315;
float tf316;
word x317;
float tf318;
tf310 = FMAX((
x306 = ft1←v26452, *(float*)&x306
), (
x309 = ft2←v26480, *(float*)&x309
), tf307, tf308);
tf314 = FMAX(tf310, (
x313 = ft3←v26508, *(float*)&x313
), tf311, tf312);
fhiY←v26424 = (
tf318 = FMAX(tf314, (
x317 = ft4←v26536, *(float*)&x317
), tf315, tf316), *(word*)&tf318
);
};
SOURCE(18898, 89)
{
word pd319;
pd319 = (* (( (ptr) (* (( (ptr) gf←c79476)+287)/* var←c65172 */ ))+18) );
(void) ( *( (fPt) ((* (ptr) pd319 ))))((* (( (ptr) seg←v14944)+22) ), floX←v26340, floY←v26368, fhiX←v26396, fhiY←v26424, pd319)
;
};
SOURCE(18989, 34)
{
word pd320;
pd320 = (* (( (ptr) (* (( (ptr) gf←c79476)+291)/* var←c65492 */ ))+10) );
(void) ( *( (fPt) ((* (ptr) pd320 ))))((* ((( (ptr) data←v26284)+8)) ), pd320);
};
SOURCE(19025, 157)
{
word pd321;
word x322;
word x323;
float tf324;
word x325;
word x326;
float tf327;
pd321 = (* (( (ptr) (* (( (ptr) gf←c79476)+287)/* var←c65172 */ ))+18) );
(void) ( *( (fPt) ((* (ptr) pd321 ))))((* (( (ptr) seg←v14944)+21) ), (* (ptr) (* (( (ptr) data←v26284)+8) ) ), (* (( (ptr) (* (
( (ptr) data←v26284)+8) ))+1) ), (
tf324 = (
x322 = (* (ptr) (* (( (ptr) data←v26284)+8) ) ), *(float*)&x322
) + (
x323 = (* (( (ptr) (* (( (ptr) data←v26284)+8) ))+2) ), *(float*)&x323
), *(word*)&tf324
), (
tf327 = (
x325 = (* (( (ptr) (* (( (ptr) data←v26284)+8) ))+1) ), *(float*)&x325
) + (
x326 = (* (( (ptr) (* (( (ptr) data←v26284)+8) ))+3) ), *(float*)&x326
), *(word*)&tf327
), pd321);
};
SOURCE(19184, 106)
if (((* (( (ptr) seg←v14944)+3) ) == 0)) {
SOURCE(19215, 44)
{
word x328;
word x329;
word x330;
*(float*)&pad←v26256 = ((
x328 = (* (( (ptr) seg←v14944)+2) ), *(float*)&x328
) * (
x329 = (* (ptr) &fc156 ), *(float*)&x329
)) + (
x330 = (* (ptr) &fc158 ), *(float*)&x330
);
};
}
else {
SOURCE(19259, 31)
{
word x331;
word x332;
word x333;
*(float*)&pad←v26256 = ((
x331 = (* (( (ptr) seg←v14944)+2) ), *(float*)&x331
) / (
x332 = (* (ptr) &fc70 ), *(float*)&x332
)) + (
x333 = (* (ptr) &fc158 ), *(float*)&x333
);
};
};
SOURCE(19292, 41)
{
word pd334;
pd334 = (* (( (ptr) (* (( (ptr) gf←c79476)+287)/* var←c65172 */ ))+17) );
(void) ( *( (fPt) ((* (ptr) pd334 ))))((* (( (ptr) seg←v14944)+21) ), pad←v26256, pd334);
};
}
static word BZCopyData←P3120(seg←v38880)
word seg←v38880;
{
register ptr gf←c79508 = (ptr) &globalframe;
word data←v38924;
word bzData←v26592;
word new←v26620;
/* BZCopyData: */
SOURCE(19339, 249)
SOURCE(19339, 249)
data←v38924 = 0;
SOURCE(19383, 37)
bzData←v26592 = XR←Narrow((* (( (ptr) seg←v38880)+24) ), (* (( (ptr) gf←c79508)+27) ));
SOURCE(19422, 36)
new←v26620 = XR←NewObject(36, (* (( (ptr) gf←c79508)+27) ));
SOURCE(19460, 34)
(* (W4Pt) new←v26620 ) = (* (W4Pt) bzData←v26592 );
SOURCE(19496, 34)
(* (W4Pt) (( (ptr) new←v26620)+4) ) = (* (W4Pt) (( (ptr) bzData←v26592)+4) );
SOURCE(19532, 43)
{
word pd335;
pd335 = (* (( (ptr) (* (( (ptr) gf←c79508)+291)/* var←c65492 */ ))+12) );
(* (( (ptr) new←v26620)+8) ) = (word) ( *( (fPt) ((* (ptr) pd335 ))))((* ((( (ptr) bzData←v26592)+8)) ), pd335);
};
SOURCE(19577, 11)
return(new←v26620);
}
static void BZReverse←P3180(seg←v15004)
word seg←v15004;
{
register ptr gf←c79540 = (ptr) &globalframe;
word data←v26664;
/* BZReverse: */
SOURCE(19594, 105)
SOURCE(19629, 35)
data←v26664 = XR←Narrow((* (( (ptr) seg←v15004)+24) ), (* (( (ptr) gf←c79540)+27) ));
SOURCE(19666, 33)
{
word pd336;
pd336 = (* (( (ptr) (* (( (ptr) gf←c79540)+291)/* var←c65492 */ ))+13) );
(void) ( *( (fPt) ((* (ptr) pd336 ))))((* ((( (ptr) data←v26664)+8)) ), pd336);
};
}
static void BZTransform←P3240(seg←v15064, transform←v15092)
word seg←v15064;
word transform←v15092;
{
register ptr gf←c79572 = (ptr) &globalframe;
word data←v26708;
/* BZTransform: */
SOURCE(19704, 198)
SOURCE(19789, 35)
data←v26708 = XR←Narrow((* (( (ptr) seg←v15064)+24) ), (* (( (ptr) gf←c79572)+27) ));
SOURCE(19826, 53)
{
word pd337;
pd337 = (* (( (ptr) (* (( (ptr) gf←c79572)+291)/* var←c65492 */ ))+9) );
(void) ( *( (fPt) ((* (ptr) pd337 ))))((* (( (ptr) data←v26708)+8) ), transform←v15092, 0, pd337);
};
SOURCE(19881, 21)
(void) UpdateBZBoundBox←P3060(seg←v15064);
}
static void BZEndPointMoved←P3300(seg←v15152, lo←v15180, newPoint←v15208)
word seg←v15152;
word lo←v15180;
W2 newPoint←v15208;
{
register ptr gf←c79604 = (ptr) &globalframe;
word data←v26752;
/* BZEndPointMoved: */
SOURCE(19908, 243)
SOURCE(19976, 35)
data←v26752 = XR←Narrow((* (( (ptr) seg←v15152)+24) ), (* (( (ptr) gf←c79604)+27) ));
SOURCE(20013, 115)
if ((0 != lo←v15180)) {
SOURCE(20024, 55)
{
word var←c67668;
word var←c67636;
{
word limit338;
var←c67636 = (* (( (ptr) (* (( (ptr) data←v26752)+8) ))+4) );
var←c67668 = (word) (( (W8Pt) (( (bPt) var←c67636)+4))+(
limit338 = (* (ptr) var←c67636 ),
BCK(0, limit338)
));
};
(* (ptr) var←c67668 ) = newPoint←v15208.f0;
(* (( (ptr) var←c67668)+1) ) = newPoint←v15208.f1;
};
}
else {
SOURCE(20079, 49)
{
word var←c67732;
word var←c67700;
{
word limit339;
var←c67700 = (* (( (ptr) (* (( (ptr) data←v26752)+8) ))+4) );
var←c67732 = (word) (( (bPt) (( (W8Pt) (( (bPt) var←c67700)+4))+(
limit339 = (* (ptr) var←c67700 ),
BCK(0, limit339)
)))+24);
};
(* (ptr) var←c67732 ) = newPoint←v15208.f0;
(* (( (ptr) var←c67732)+1) ) = newPoint←v15208.f1;
};
};
SOURCE(20130, 21)
(void) UpdateBZBoundBox←P3060(seg←v15152);
}
static void BZControlPointMoved←P3360(seg←v15268, transform←v15296, controlPointNum←v15324)
word seg←v15268;
word transform←v15296;
word controlPointNum←v15324;
{
register ptr gf←c79636 = (ptr) &globalframe;
word data←v26796;
/* BZControlPointMoved: */
SOURCE(20157, 413)
SOURCE(20272, 35)
data←v26796 = XR←Narrow((* (( (ptr) seg←v15268)+24) ), (* (( (ptr) gf←c79636)+27) ));
SOURCE(20309, 220)
{
word var←c67764;
var←c67764 = controlPointNum←v15324;
if ((var←c67764 == 0)) {
SOURCE(20342, 90)
{
W2 var←c67796;
word var←c67860;
{
W2 var←c0484;
{
word var←c67828;
W2 var←c01371;
{
word limit340;
var←c67828 = (* (( (ptr) (* (( (ptr) data←v26796)+8) ))+4) );
var←c01371 = (* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c67828)+1))+(
/*1*/ limit340 = (* (ptr) var←c67828 ),
/*1*/ BCK(0, limit340)
/*1*/ )))+2) );
};
{
word pd341;
pd341 = (* (( (ptr) (* (( (ptr) gf←c79636)+293)/* var←c65588 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd341 ))))((word) &var←c0484, transform←v15296, var←c01371, pd341);
};
};
var←c67796 = var←c0484;
};
{
word limit342;
var←c67860 = (* (( (ptr) (* (( (ptr) data←v26796)+8) ))+4) );
(* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c67860)+1))+(
limit342 = (* (ptr) var←c67860 ),
BCK(0, limit342)
)))+2) ) = var←c67796;
};
};
}
else {
if ((var←c67764 == 1)) {
SOURCE(20439, 90)
{
W2 var←c67892;
word var←c67956;
{
W2 var←c0488;
{
word var←c67924;
W2 var←c01372;
{
word limit343;
var←c67924 = (* (( (ptr) (* (( (ptr) data←v26796)+8) ))+4) );
var←c01372 = (* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c67924)+1))+(
/*1*/ limit343 = (* (ptr) var←c67924 ),
/*1*/ BCK(0, limit343)
/*1*/ )))+4) );
};
{
word pd344;
pd344 = (* (( (ptr) (* (( (ptr) gf←c79636)+293)/* var←c65588 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd344 ))))((word) &var←c0488, transform←v15296, var←c01372, pd344);
};
};
var←c67892 = var←c0488;
};
{
word limit345;
var←c67956 = (* (( (ptr) (* (( (ptr) data←v26796)+8) ))+4) );
(* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c67956)+1))+(
limit345 = (* (ptr) var←c67956 ),
BCK(0, limit345)
)))+4) ) = var←c67892;
};
};
}
else {
SOURCE(20542, 5)
(void) XR←RaiseUnnamedError();
};
};
};
SOURCE(20549, 21)
(void) UpdateBZBoundBox←P3060(seg←v15268);
}
static void BZControlPointMovedTo←P3420(seg←v15384, newPos←v15412, controlPointNum←v15440)
word seg←v15384;
W2 newPos←v15412;
word controlPointNum←v15440;
{
register ptr gf←c79668 = (ptr) &globalframe;
word data←v26840;
/* BZControlPointMovedTo: */
SOURCE(20576, 271)
SOURCE(20667, 35)
data←v26840 = XR←Narrow((* (( (ptr) seg←v15384)+24) ), (* (( (ptr) gf←c79668)+27) ));
SOURCE(20704, 102)
{
word var←c67988;
word var←c68020;
word var←c68052;
var←c67988 = controlPointNum←v15440;
if ((var←c67988 == 0)) {
SOURCE(20737, 31)
{
word limit346;
var←c68020 = (* (( (ptr) (* (( (ptr) data←v26840)+8) ))+4) );
(* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c68020)+1))+(
limit346 = (* (ptr) var←c68020 ),
BCK(0, limit346)
)))+2) ) = newPos←v15412;
};
}
else {
if ((var←c67988 == 1)) {
SOURCE(20775, 31)
{
word limit347;
var←c68052 = (* (( (ptr) (* (( (ptr) data←v26840)+8) ))+4) );
(* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c68052)+1))+(
limit347 = (* (ptr) var←c68052 ),
BCK(0, limit347)
)))+4) ) = newPos←v15412;
};
}
else {
SOURCE(20819, 5)
(void) XR←RaiseUnnamedError();
};
};
};
SOURCE(20826, 21)
(void) UpdateBZBoundBox←P3060(seg←v15384);
}
static void BZBuildPathTransform←P3480(seg←v15500, transform←v15528, entire←v15556, lo←v15584, hi←v15612, controlPoints←v15640, lineTo←v15668, curveTo←v15696, conicTo←v15724, arcTo←v15752)
word seg←v15500;
word transform←v15528;
word entire←v15556;
word lo←v15584;
word hi←v15612;
word controlPoints←v15640;
word lineTo←v15668;
word curveTo←v15696;
word conicTo←v15724;
word arcTo←v15752;
{
W6 var←c79700;
register ptr gf←c79732 = (ptr) &globalframe;
/* declaration of var←c68084 skipped */
word path←v26884;
word moveTo←v26912;
/* BZBuildPathTransform: */
SOURCE(20853, 756)
{
word tmpAddr348;
tmpAddr348 = (word) (( (ptr) &var←c79700)+4)/* var←c68084 */ ;
(* (ptr) tmpAddr348 ) = ( ((word) (fPt) NoName←Q7524) );
(* (( (ptr) tmpAddr348) + 1) ) = 1;
};
SOURCE(21121, 36)
path←v26884 = (word) GetPath←P6780(seg←v15500);
SOURCE(21159, 32)
moveTo←v26912 = (word) (( (bPt) &var←c79700)+16)/* var←c68084 */ ;
SOURCE(21195, 414)
if ((0 != entire←v15556)) {
SOURCE(21210, 173)
{
word scratchPath←v26956;
SOURCE(21212, 56)
{
word pd349;
pd349 = (* (( (ptr) (* (( (ptr) gf←c79732)+291)/* var←c65492 */ ))+12) );
scratchPath←v26956 = (word) ( *( (fPt) ((* (ptr) pd349 ))))(path←v26884, pd349);
};
SOURCE(21270, 55)
{
word pd350;
pd350 = (* (( (ptr) (* (( (ptr) gf←c79732)+291)/* var←c65492 */ ))+9) );
(void) ( *( (fPt) ((* (ptr) pd350 ))))(scratchPath←v26956, transform←v15528, 0, pd350);
};
SOURCE(21327, 54)
{
word pd351;
pd351 = (* (( (ptr) (* (( (ptr) gf←c79732)+291)/* var←c65492 */ ))+5) );
(void) ( *( (fPt) ((* (ptr) pd351 ))))(scratchPath←v26956, moveTo←v26912, curveTo←v15696, pd351);
};
};
}
else {
SOURCE(21390, 221)
{
W2 oldLo←v27000;
W2 oldHi←v27028;
W2 oldC1←v27056;
W2 oldC2←v27084;
SOURCE(21425, 86)
{
W8 var←c68116;
(void) BZTransformPath←P3540((word) &var←c68116, path←v26884, transform←v15528, lo←v15584, hi←v15612, controlPoints←v15640)
;
oldC2←v27084 = (* (W2Pt) (( (ptr) &var←c68116)+6) );
oldC1←v27056 = (* (W2Pt) (( (ptr) &var←c68116)+4) );
oldHi←v27028 = (* (W2Pt) (( (ptr) &var←c68116)+2) );
oldLo←v27000 = (* (W2Pt) &var←c68116 );
};
SOURCE(21513, 47)
{
word pd352;
pd352 = (* (( (ptr) (* (( (ptr) gf←c79732)+291)/* var←c65492 */ ))+5) );
(void) ( *( (fPt) ((* (ptr) pd352 ))))(path←v26884, moveTo←v26912, curveTo←v15696, pd352);
};
SOURCE(21562, 47)
(void) BZRestorePath←P3660(path←v26884, oldLo←v27000, oldHi←v27028, oldC1←v27056, oldC2←v27084);
};
};
}
static void NoName←Q7524(p←v56832, formal←c79764)
W2 p←v56832;
word formal←c79764;
{
formal←c79764 = (formal←c79764 - 16);
/* : */
}
static void BZTransformPath←P3540(formal←c0545, path←v15812, transform←v15840, lo←v15868, hi←v15896, controlPoints←v15924)
word formal←c0545;
word path←v15812;
word transform←v15840;
word lo←v15868;
word hi←v15896;
word controlPoints←v15924;
{
register ptr gf←c79796 = (ptr) &globalframe;
W2 oldLo←v15968;
W2 oldHi←v15996;
W2 oldC1←v16024;
W2 oldC2←v16052;
/* BZTransformPath: */
SOURCE(21617, 704)
{
word var←c68148;
word var←c68180;
word var←c68212;
word var←c68244;
SOURCE(21797, 25)
{
word limit353;
var←c68148 = (* (( (ptr) path←v15812)+4) );
oldLo←v15968 = (* (W2Pt) (( (W8Pt) (( (ptr) var←c68148)+1))+(
limit353 = (* (ptr) var←c68148 ),
BCK(0, limit353)
)) );
};
SOURCE(21824, 25)
{
word limit354;
var←c68180 = (* (( (ptr) path←v15812)+4) );
oldHi←v15996 = (* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c68180)+1))+(
limit354 = (* (ptr) var←c68180 ),
BCK(0, limit354)
)))+6) );
};
SOURCE(21851, 25)
{
word limit355;
var←c68212 = (* (( (ptr) path←v15812)+4) );
oldC1←v16024 = (* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c68212)+1))+(
limit355 = (* (ptr) var←c68212 ),
BCK(0, limit355)
)))+2) );
};
SOURCE(21878, 25)
{
word limit356;
var←c68244 = (* (( (ptr) path←v15812)+4) );
oldC2←v16052 = (* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c68244)+1))+(
limit356 = (* (ptr) var←c68244 ),
BCK(0, limit356)
)))+4) );
};
SOURCE(21905, 79)
if ((0 != lo←v15868)) {
SOURCE(21916, 68)
{
W2 var←c68276;
word var←c68308;
{
word pd357;
pd357 = (* (( (ptr) (* (( (ptr) gf←c79796)+293)/* var←c65588 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd357 ))))((word) &var←c68276, transform←v15840, oldLo←v15968, pd357);
};
{
word limit358;
var←c68308 = (* (( (ptr) path←v15812)+4) );
(* (W2Pt) (( (W8Pt) (( (ptr) var←c68308)+1))+(
limit358 = (* (ptr) var←c68308 ),
BCK(0, limit358)
)) ) = var←c68276;
};
};
};
SOURCE(21986, 79)
if ((0 != hi←v15896)) {
SOURCE(21997, 68)
{
W2 var←c68340;
word var←c68372;
{
word pd359;
pd359 = (* (( (ptr) (* (( (ptr) gf←c79796)+293)/* var←c65588 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd359 ))))((word) &var←c68340, transform←v15840, oldHi←v15996, pd359);
};
{
word limit360;
var←c68372 = (* (( (ptr) path←v15812)+4) );
(* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c68372)+1))+(
limit360 = (* (ptr) var←c68372 ),
BCK(0, limit360)
)))+6) ) = var←c68340;
};
};
};
SOURCE(22067, 126)
{
word limit362;
if ((controlPoints←v15924 == 0)) { goto then0361;};
if (XR←ExtractField(controlPoints←v15924, 32 + (word) (
limit362 = (* (ptr) controlPoints←v15924 ),
BCK(0, limit362)
), 1)) {
then0361: ;
SOURCE(22113, 80)
{
W2 var←c68404;
word var←c68468;
{
W2 var←c0539;
{
word var←c68436;
W2 var←c01373;
{
word limit363;
var←c68436 = (* (( (ptr) path←v15812)+4) );
var←c01373 = (* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c68436)+1))+(
/*1*/ limit363 = (* (ptr) var←c68436 ),
/*1*/ BCK(0, limit363)
/*1*/ )))+2) );
};
{
word pd364;
pd364 = (* (( (ptr) (* (( (ptr) gf←c79796)+293)/* var←c65588 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd364 ))))((word) &var←c0539, transform←v15840, var←c01373, pd364);
};
};
var←c68404 = var←c0539;
};
{
word limit365;
var←c68468 = (* (( (ptr) path←v15812)+4) );
(* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c68468)+1))+(
limit365 = (* (ptr) var←c68468 ),
BCK(0, limit365)
)))+2) ) = var←c68404;
};
};
};
};
SOURCE(22195, 126)
{
word limit367;
if ((controlPoints←v15924 == 0)) { goto then0366;};
if (XR←ExtractField(controlPoints←v15924, 32 + (word) (
limit367 = (* (ptr) controlPoints←v15924 ),
BCK(1, limit367)
), 1)) {
then0366: ;
SOURCE(22241, 80)
{
W2 var←c68500;
word var←c68564;
{
W2 var←c0543;
{
word var←c68532;
W2 var←c01374;
{
word limit368;
var←c68532 = (* (( (ptr) path←v15812)+4) );
var←c01374 = (* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c68532)+1))+(
/*1*/ limit368 = (* (ptr) var←c68532 ),
/*1*/ BCK(0, limit368)
/*1*/ )))+4) );
};
{
word pd369;
pd369 = (* (( (ptr) (* (( (ptr) gf←c79796)+293)/* var←c65588 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd369 ))))((word) &var←c0543, transform←v15840, var←c01374, pd369);
};
};
var←c68500 = var←c0543;
};
{
word limit370;
var←c68564 = (* (( (ptr) path←v15812)+4) );
(* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c68564)+1))+(
limit370 = (* (ptr) var←c68564 ),
BCK(0, limit370)
)))+4) ) = var←c68500;
};
};
};
};
};
/* removed tail goto */
(* (W2Pt) formal←c0545 ) = oldLo←v15968;
(* (W2Pt) (( (ptr) formal←c0545)+2) ) = oldHi←v15996;
(* (W2Pt) (( (ptr) formal←c0545)+4) ) = oldC1←v16024;
(* (W2Pt) (( (ptr) formal←c0545)+6) ) = oldC2←v16052;
return;
}
static void BZSpecialTransformPath←P3600(seg←v16112, transform←v16140, lo←v16168, hi←v16196, controlPoints←v16224, loTransform←v16252, hiTransform←v16280, curveTo←v16308)
word seg←v16112;
word transform←v16140;
word lo←v16168;
word hi←v16196;
word controlPoints←v16224;
word loTransform←v16252;
word hiTransform←v16280;
word curveTo←v16308;
{
W6 var←c79828;
register ptr gf←c79860 = (ptr) &globalframe;
/* declaration of var←c68596 skipped */
W2 oldLo←v27128;
W2 oldHi←v27156;
W2 oldC1←v27184;
W2 oldC2←v27212;
word path←v27240;
word moveTo←v27268;
word var←c68628;
word var←c68660;
word var←c68692;
word var←c68724;
/* BZSpecialTransformPath: */
SOURCE(22327, 972)
{
word tmpAddr371;
tmpAddr371 = (word) (( (ptr) &var←c79828)+4)/* var←c68596 */ ;
(* (ptr) tmpAddr371 ) = ( ((word) (fPt) NoName←Q7680) );
(* (( (ptr) tmpAddr371) + 1) ) = 1;
};
SOURCE(22599, 36)
path←v27240 = (word) GetPath←P6780(seg←v16112);
SOURCE(22637, 32)
moveTo←v27268 = (word) (( (bPt) &var←c79828)+16)/* var←c68596 */ ;
SOURCE(22673, 25)
{
word limit372;
var←c68628 = (* (( (ptr) path←v27240)+4) );
oldLo←v27128 = (* (W2Pt) (( (W8Pt) (( (ptr) var←c68628)+1))+(
limit372 = (* (ptr) var←c68628 ),
BCK(0, limit372)
)) );
};
SOURCE(22700, 25)
{
word limit373;
var←c68660 = (* (( (ptr) path←v27240)+4) );
oldHi←v27156 = (* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c68660)+1))+(
limit373 = (* (ptr) var←c68660 ),
BCK(0, limit373)
)))+6) );
};
SOURCE(22727, 25)
{
word limit374;
var←c68692 = (* (( (ptr) path←v27240)+4) );
oldC1←v27184 = (* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c68692)+1))+(
limit374 = (* (ptr) var←c68692 ),
BCK(0, limit374)
)))+2) );
};
SOURCE(22754, 25)
{
word limit375;
var←c68724 = (* (( (ptr) path←v27240)+4) );
oldC2←v27212 = (* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c68724)+1))+(
limit375 = (* (ptr) var←c68724 ),
BCK(0, limit375)
)))+4) );
};
SOURCE(22781, 79)
if ((0 != lo←v16168)) {
SOURCE(22792, 68)
{
W2 var←c68756;
word var←c68788;
{
word pd376;
pd376 = (* (( (ptr) (* (( (ptr) gf←c79860)+293)/* var←c65588 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd376 ))))((word) &var←c68756, transform←v16140, oldLo←v27128, pd376);
};
{
word limit377;
var←c68788 = (* (( (ptr) path←v27240)+4) );
(* (W2Pt) (( (W8Pt) (( (ptr) var←c68788)+1))+(
limit377 = (* (ptr) var←c68788 ),
BCK(0, limit377)
)) ) = var←c68756;
};
};
};
SOURCE(22862, 79)
if ((0 != hi←v16196)) {
SOURCE(22873, 68)
{
W2 var←c68820;
word var←c68852;
{
word pd378;
pd378 = (* (( (ptr) (* (( (ptr) gf←c79860)+293)/* var←c65588 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd378 ))))((word) &var←c68820, transform←v16140, oldHi←v27156, pd378);
};
{
word limit379;
var←c68852 = (* (( (ptr) path←v27240)+4) );
(* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c68852)+1))+(
limit379 = (* (ptr) var←c68852 ),
BCK(0, limit379)
)))+6) ) = var←c68820;
};
};
};
SOURCE(22943, 128)
{
word limit381;
if ((controlPoints←v16224 == 0)) { goto then0380;};
if (XR←ExtractField(controlPoints←v16224, 32 + (word) (
limit381 = (* (ptr) controlPoints←v16224 ),
BCK(0, limit381)
), 1)) {
then0380: ;
SOURCE(22989, 82)
{
W2 var←c68884;
word var←c68948;
{
W2 var←c0573;
{
word var←c68916;
W2 var←c01375;
{
word limit382;
var←c68916 = (* (( (ptr) path←v27240)+4) );
var←c01375 = (* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c68916)+1))+(
/*1*/ limit382 = (* (ptr) var←c68916 ),
/*1*/ BCK(0, limit382)
/*1*/ )))+2) );
};
{
word pd383;
pd383 = (* (( (ptr) (* (( (ptr) gf←c79860)+293)/* var←c65588 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd383 ))))((word) &var←c0573, loTransform←v16252, var←c01375, pd383);
};
};
var←c68884 = var←c0573;
};
{
word limit384;
var←c68948 = (* (( (ptr) path←v27240)+4) );
(* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c68948)+1))+(
limit384 = (* (ptr) var←c68948 ),
BCK(0, limit384)
)))+2) ) = var←c68884;
};
};
};
};
SOURCE(23073, 128)
{
word limit386;
if ((controlPoints←v16224 == 0)) { goto then0385;};
if (XR←ExtractField(controlPoints←v16224, 32 + (word) (
limit386 = (* (ptr) controlPoints←v16224 ),
BCK(1, limit386)
), 1)) {
then0385: ;
SOURCE(23119, 82)
{
W2 var←c68980;
word var←c69044;
{
W2 var←c0577;
{
word var←c69012;
W2 var←c01376;
{
word limit387;
var←c69012 = (* (( (ptr) path←v27240)+4) );
var←c01376 = (* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c69012)+1))+(
/*1*/ limit387 = (* (ptr) var←c69012 ),
/*1*/ BCK(0, limit387)
/*1*/ )))+4) );
};
{
word pd388;
pd388 = (* (( (ptr) (* (( (ptr) gf←c79860)+293)/* var←c65588 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd388 ))))((word) &var←c0577, hiTransform←v16280, var←c01376, pd388);
};
};
var←c68980 = var←c0577;
};
{
word limit389;
var←c69044 = (* (( (ptr) path←v27240)+4) );
(* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c69044)+1))+(
limit389 = (* (ptr) var←c69044 ),
BCK(0, limit389)
)))+4) ) = var←c68980;
};
};
};
};
SOURCE(23203, 47)
{
word pd390;
pd390 = (* (( (ptr) (* (( (ptr) gf←c79860)+291)/* var←c65492 */ ))+5) );
(void) ( *( (fPt) ((* (ptr) pd390 ))))(path←v27240, moveTo←v27268, curveTo←v16308, pd390);
};
SOURCE(23252, 47)
(void) BZRestorePath←P3660(path←v27240, oldLo←v27128, oldHi←v27156, oldC1←v27184, oldC2←v27212);
}
static void NoName←Q7680(p←v57040, formal←c79892)
W2 p←v57040;
word formal←c79892;
{
formal←c79892 = (formal←c79892 - 16);
/* : */
}
static void BZRestorePath←P3660(path←v16368, oldLo←v16396, oldHi←v16424, oldC1←v16452, oldC2←v16480)
word path←v16368;
W2 oldLo←v16396;
W2 oldHi←v16424;
W2 oldC1←v16452;
W2 oldC2←v16480;
{
word var←c69076;
word var←c69108;
word var←c69140;
word var←c69172;
/* BZRestorePath: */
SOURCE(23305, 187)
SOURCE(23386, 25)
{
word limit391;
var←c69076 = (* (( (ptr) path←v16368)+4) );
(* (W2Pt) (( (W8Pt) (( (ptr) var←c69076)+1))+(
limit391 = (* (ptr) var←c69076 ),
BCK(0, limit391)
)) ) = oldLo←v16396;
};
SOURCE(23413, 25)
{
word limit392;
var←c69108 = (* (( (ptr) path←v16368)+4) );
(* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c69108)+1))+(
limit392 = (* (ptr) var←c69108 ),
BCK(0, limit392)
)))+6) ) = oldHi←v16424;
};
SOURCE(23440, 25)
{
word limit393;
var←c69140 = (* (( (ptr) path←v16368)+4) );
(* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c69140)+1))+(
limit393 = (* (ptr) var←c69140 ),
BCK(0, limit393)
)))+2) ) = oldC1←v16452;
};
SOURCE(23467, 25)
{
word limit394;
var←c69172 = (* (( (ptr) path←v16368)+4) );
(* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c69172)+1))+(
limit394 = (* (ptr) var←c69172 ),
BCK(0, limit394)
)))+4) ) = oldC2←v16480;
};
}
static void BZControlPointGet←P3720(formal←c0598, seg←v16540, controlPointNum←v16568)
word formal←c0598;
word seg←v16540;
word controlPointNum←v16568;
{
register ptr gf←c79924 = (ptr) &globalframe;
W2 point←v16612;
word data←v27312;
/* BZControlPointGet: */
SOURCE(23498, 227)
SOURCE(23586, 35)
data←v27312 = XR←Narrow((* (( (ptr) seg←v16540)+24) ), (* (( (ptr) gf←c79924)+27) ));
SOURCE(23623, 102)
{
word var←c69204;
var←c69204 = controlPointNum←v16568;
if ((var←c69204 == 0)) {
SOURCE(23656, 31)
{
W2 var←c69268;
word var←c69236;
{
word limit395;
var←c69236 = (* (( (ptr) (* (( (ptr) data←v27312)+8) ))+4) );
var←c69268 = (* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c69236)+1))+(
limit395 = (* (ptr) var←c69236 ),
BCK(0, limit395)
)))+2) );
};
point←v16612 = var←c69268;
/* removed tail goto */
};
}
else {
if ((var←c69204 == 1)) {
SOURCE(23694, 31)
{
W2 var←c69332;
word var←c69300;
{
word limit396;
var←c69300 = (* (( (ptr) (* (( (ptr) data←v27312)+8) ))+4) );
var←c69332 = (* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c69300)+1))+(
limit396 = (* (ptr) var←c69300 ),
BCK(0, limit396)
)))+4) );
};
point←v16612 = var←c69332;
/* removed tail goto */
};
}
else {
SOURCE(23738, 5)
(void) XR←RaiseUnnamedError();
};
};
};
(* (W2Pt) formal←c0598 ) = point←v16612;
return;
}
static word BZControlPointCount←P3780(seg←v16672)
word seg←v16672;
{
register ptr gf←c79956 = (ptr) &globalframe;
word controlPointCount←v16716;
word data←v27356;
/* BZControlPointCount: */
SOURCE(23749, 173)
SOURCE(23827, 35)
data←v27356 = XR←Narrow((* (( (ptr) seg←v16672)+24) ), (* (( (ptr) gf←c79956)+27) ));
SOURCE(23913, 9)
return(2);
}
static void BZFieldSet←P3840(seg←v38984, controlPointNum←v39012, selected←v39040, selectClass←v39068)
word seg←v38984;
word controlPointNum←v39012;
word selected←v39040;
word selectClass←v39068;
{
register ptr gf←c79988 = (ptr) &globalframe;
word data←v27400;
/* BZFieldSet: */
SOURCE(23928, 546)
SOURCE(23984, 35)
data←v27400 = XR←Narrow((* (( (ptr) seg←v38984)+24) ), (* (( (ptr) gf←c79988)+27) ));
SOURCE(24021, 453)
{
word var←c69364;
var←c69364 = controlPointNum←v39012;
if ((var←c69364 == 0)) {
SOURCE(24056, 194)
{
word var←c69396;
var←c69396 = selectClass←v39068;
switch (var←c69396) {
case 0:
SOURCE(24090, 33)
(* (ptr) data←v27400 ) = selected←v39040;
break;
case 1:
SOURCE(24132, 30)
(* (( (ptr) data←v27400)+1) ) = selected←v39040;
break;
case 2:
SOURCE(24174, 33)
(* (( (ptr) data←v27400)+2) ) = selected←v39040;
break;
case 3:
SOURCE(24218, 32)
(* (( (ptr) data←v27400)+3) ) = selected←v39040;
break;
default:
SOURCE(24263, 5)
(void) XR←RaiseUnnamedError();
break;
};
};
}
else {
if ((var←c69364 == 1)) {
SOURCE(24280, 194)
{
word var←c69428;
var←c69428 = selectClass←v39068;
switch (var←c69428) {
case 0:
SOURCE(24314, 33)
(* (( (ptr) data←v27400)+4) ) = selected←v39040;
break;
case 1:
SOURCE(24356, 30)
(* (( (ptr) data←v27400)+5) ) = selected←v39040;
break;
case 2:
SOURCE(24398, 33)
(* (( (ptr) data←v27400)+6) ) = selected←v39040;
break;
case 3:
SOURCE(24442, 32)
(* (( (ptr) data←v27400)+7) ) = selected←v39040;
break;
default:
SOURCE(24487, 5)
(void) XR←RaiseUnnamedError();
break;
};
};
}
else {
SOURCE(24508, 5)
(void) XR←RaiseUnnamedError();
};
};
};
}
static word BZFieldGet←P3900(seg←v39128, controlPointNum←v39156, selectClass←v39184)
word seg←v39128;
word controlPointNum←v39156;
word selectClass←v39184;
{
register ptr gf←c80020 = (ptr) &globalframe;
word selected←v39228;
word data←v27444;
/* BZFieldGet: */
SOURCE(24519, 546)
SOURCE(24575, 35)
data←v27444 = XR←Narrow((* (( (ptr) seg←v39128)+24) ), (* (( (ptr) gf←c80020)+27) ));
SOURCE(24612, 453)
{
word var←c69460;
var←c69460 = controlPointNum←v39156;
if ((var←c69460 == 0)) {
SOURCE(24647, 194)
{
word var←c69492;
var←c69492 = selectClass←v39184;
switch (var←c69492) {
case 0:
SOURCE(24681, 33)
selected←v39228 = (* (ptr) data←v27444 );
break;
case 1:
SOURCE(24723, 30)
selected←v39228 = (* (( (ptr) data←v27444)+1) );
break;
case 2:
SOURCE(24765, 33)
selected←v39228 = (* (( (ptr) data←v27444)+2) );
break;
case 3:
SOURCE(24809, 32)
selected←v39228 = (* (( (ptr) data←v27444)+3) );
break;
default:
SOURCE(24854, 5)
(void) XR←RaiseUnnamedError();
break;
};
};
}
else {
if ((var←c69460 == 1)) {
SOURCE(24871, 194)
{
word var←c69524;
var←c69524 = selectClass←v39184;
switch (var←c69524) {
case 0:
SOURCE(24905, 33)
selected←v39228 = (* (( (ptr) data←v27444)+4) );
break;
case 1:
SOURCE(24947, 30)
selected←v39228 = (* (( (ptr) data←v27444)+5) );
break;
case 2:
SOURCE(24989, 33)
selected←v39228 = (* (( (ptr) data←v27444)+6) );
break;
case 3:
SOURCE(25033, 32)
selected←v39228 = (* (( (ptr) data←v27444)+7) );
break;
default:
SOURCE(25078, 5)
(void) XR←RaiseUnnamedError();
break;
};
};
}
else {
SOURCE(25099, 5)
(void) XR←RaiseUnnamedError();
};
};
};
SOURCE(24519, 546)
return(selected←v39228);
}
static void BZClosestControlPoint←P3960(formal←c0632, seg←v16776, testPoint←v16804, tolerance←v16832)
word formal←c0632;
word seg←v16776;
W2 testPoint←v16804;
word tolerance←v16832;
{
register ptr gf←c80052 = (ptr) &globalframe;
W2 point←v16876;
W2 normal←v16904;
word controlPointNum←v16932;
word success←v16960;
word data←v27488;
word d0←v27516;
word d1←v27544;
/* BZClosestControlPoint: */
SOURCE(25109, 585)
SOURCE(25109, 585)
normal←v16904.f0 = (* (ptr) &fc78 );
normal←v16904.f1 = (* (ptr) &fc115 );
SOURCE(25276, 35)
data←v27488 = XR←Narrow((* (( (ptr) seg←v16776)+24) ), (* (( (ptr) gf←c80052)+27) ));
SOURCE(25313, 71)
{
word var←c69556;
W2 var←c01377;
{
word limit397;
var←c69556 = (* (( (ptr) (* (( (ptr) data←v27488)+8) ))+4) );
var←c01377 = (* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c69556)+1))+(
limit397 = (* (ptr) var←c69556 ),
BCK(0, limit397)
)))+2) );
};
{
word pd398;
pd398 = (* (( (ptr) (* (( (ptr) gf←c80052)+300)/* var←c69588 */ ))+21) );
d0←v27516 = (word) ( *( (fPt) ((* (ptr) pd398 ))))(testPoint←v16804, var←c01377, pd398);
};
};
SOURCE(25386, 71)
{
word var←c69620;
W2 var←c01378;
{
word limit399;
var←c69620 = (* (( (ptr) (* (( (ptr) data←v27488)+8) ))+4) );
var←c01378 = (* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c69620)+1))+(
limit399 = (* (ptr) var←c69620 ),
BCK(0, limit399)
)))+4) );
};
{
word pd400;
pd400 = (* (( (ptr) (* (( (ptr) gf←c80052)+300)/* var←c69588 */ ))+21) );
d1←v27544 = (word) ( *( (fPt) ((* (ptr) pd400 ))))(testPoint←v16804, var←c01378, pd400);
};
};
SOURCE(25459, 235)
{
word x401;
word x402;
if (((
x401 = d0←v27516, *(float*)&x401
) < (
x402 = d1←v27544, *(float*)&x402
))) {
{
word var←c69652;
SOURCE(25477, 21)
{
word pd403;
pd403 = (* (( (ptr) (* (( (ptr) gf←c80052)+299)/* var←c66836 */ ))+9) );
d0←v27516 = (word) ( *( (fPt) ((* (ptr) pd403 ))))(d0←v27516, pd403);
};
SOURCE(25500, 30)
{
word limit404;
var←c69652 = (* (( (ptr) (* (( (ptr) data←v27488)+8) ))+4) );
point←v16876 = (* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c69652)+1))+(
limit404 = (* (ptr) var←c69652 ),
BCK(0, limit404)
)))+2) );
};
SOURCE(25532, 19)
controlPointNum←v16932 = 0;
SOURCE(25553, 27)
{
word x405;
word x406;
success←v16960 = ((
x405 = d0←v27516, *(float*)&x405
) <= (
x406 = tolerance←v16832, *(float*)&x406
));
};
};
}
else {
{
word var←c69684;
SOURCE(25591, 21)
{
word pd407;
pd407 = (* (( (ptr) (* (( (ptr) gf←c80052)+299)/* var←c66836 */ ))+9) );
d1←v27544 = (word) ( *( (fPt) ((* (ptr) pd407 ))))(d1←v27544, pd407);
};
SOURCE(25614, 30)
{
word limit408;
var←c69684 = (* (( (ptr) (* (( (ptr) data←v27488)+8) ))+4) );
point←v16876 = (* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c69684)+1))+(
limit408 = (* (ptr) var←c69684 ),
BCK(0, limit408)
)))+4) );
};
SOURCE(25646, 19)
controlPointNum←v16932 = 1;
SOURCE(25667, 27)
{
word x409;
word x410;
success←v16960 = ((
x409 = d1←v27544, *(float*)&x409
) <= (
x410 = tolerance←v16832, *(float*)&x410
));
};
};
};
};
/* removed tail goto */
(* (W2Pt) formal←c0632 ) = point←v16876;
(* (W2Pt) (( (ptr) formal←c0632)+2) ) = normal←v16904;
(* (( (ptr) formal←c0632)+4) ) = controlPointNum←v16932;
(* (( (ptr) formal←c0632)+5) ) = success←v16960;
return;
}
static word BZAsSimpleCurve←P4020(seg←v17020, point←v17048)
word seg←v17020;
W2 point←v17048;
{
register ptr gf←c80084 = (ptr) &globalframe;
word simpleCurve←v17092;
word data←v27588;
W8 bezier←v27616;
/* BZAsSimpleCurve: */
SOURCE(25703, 195)
SOURCE(25703, 195)
simpleCurve←v17092 = 0;
SOURCE(25789, 35)
data←v27588 = XR←Narrow((* (( (ptr) seg←v17020)+24) ), (* (( (ptr) gf←c80084)+27) ));
SOURCE(25826, 36)
{
word var←c69716;
var←c69716 = (* (( (ptr) (* (( (ptr) data←v27588)+8) ))+4) );
{
word limit411;
bezier←v27616 = (* (( (W8Pt) (( (ptr) var←c69716)+1))+(
limit411 = (* (ptr) var←c69716 ),
BCK(0, limit411)
)) );
};
};
SOURCE(25864, 34)
{
word var←c69748;
var←c69748 = XR←NewObject(32, (* (( (ptr) gf←c80084)+26) ));
(* (W8Pt) var←c69748 ) = bezier←v27616;
simpleCurve←v17092 = var←c69748;
};
SOURCE(25703, 195)
return(simpleCurve←v17092);
}
static word BZAsPolyline←P4080(seg←v17164, tolerance←v17192)
word seg←v17164;
word tolerance←v17192;
{
register ptr gf←c80116 = (ptr) &globalframe;
word polyline←v17236;
word data←v27660;
/* BZAsPolyline: */
SOURCE(25904, 202)
SOURCE(25904, 202)
polyline←v17236 = 0;
SOURCE(26007, 35)
data←v27660 = XR←Narrow((* (( (ptr) seg←v17164)+24) ), (* (( (ptr) gf←c80116)+27) ));
SOURCE(26044, 62)
{
word var←c69780;
W8 var←c01379;
var←c69780 = (* (( (ptr) (* (( (ptr) data←v27660)+8) ))+4) );
{
word limit412;
var←c01379 = (* (( (W8Pt) (( (ptr) var←c69780)+1))+(
limit412 = (* (ptr) var←c69780 ),
BCK(0, limit412)
)) );
};
{
word pd413;
pd413 = (* (( (ptr) (* (( (ptr) gf←c80116)+301)/* var←c69812 */ ))+6) );
polyline←v17236 = (word) ( *( (fPt) ((* (ptr) pd413 ))))(var←c01379, tolerance←v17192, pd413);
};
};
SOURCE(25904, 202)
return(polyline←v17236);
}
static void BZJointNormal←P4140(formal←c0666, seg←v17296, joint←v17324, point←v17352, hi←v17380)
word formal←c0666;
word seg←v17296;
W2 joint←v17324;
W2 point←v17352;
word hi←v17380;
{
register ptr gf←c80148 = (ptr) &globalframe;
W2 normal←v17424;
W2 tangent←v17452;
word data←v27704;
W2 normal1←v27732;
W2 normal2←v27760;
W2 direction←v27788;
W2 p0←v27816;
W2 p1←v27844;
W2 p2←v27872;
W2 p3←v27900;
/* BZJointNormal: */
SOURCE(26112, 852)
SOURCE(26216, 35)
data←v27704 = XR←Narrow((* (( (ptr) seg←v17296)+24) ), (* (( (ptr) gf←c80148)+27) ));
{
word var←c69844;
word var←c69876;
word var←c69908;
word var←c69940;
SOURCE(26310, 27)
{
word limit414;
var←c69844 = (* (( (ptr) (* (( (ptr) data←v27704)+8) ))+4) );
p0←v27816 = (* (W2Pt) (( (W8Pt) (( (ptr) var←c69844)+1))+(
limit414 = (* (ptr) var←c69844 ),
BCK(0, limit414)
)) );
};
SOURCE(26339, 27)
{
word limit415;
var←c69876 = (* (( (ptr) (* (( (ptr) data←v27704)+8) ))+4) );
p1←v27844 = (* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c69876)+1))+(
limit415 = (* (ptr) var←c69876 ),
BCK(0, limit415)
)))+2) );
};
SOURCE(26368, 27)
{
word limit416;
var←c69908 = (* (( (ptr) (* (( (ptr) data←v27704)+8) ))+4) );
p2←v27872 = (* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c69908)+1))+(
limit416 = (* (ptr) var←c69908 ),
BCK(0, limit416)
)))+4) );
};
SOURCE(26397, 27)
{
word limit417;
var←c69940 = (* (( (ptr) (* (( (ptr) data←v27704)+8) ))+4) );
p3←v27900 = (* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c69940)+1))+(
limit417 = (* (ptr) var←c69940 ),
BCK(0, limit417)
)))+6) );
};
SOURCE(26426, 298)
if ((0 != hi←v17380)) {
SOURCE(26439, 43)
{
word pd418;
pd418 = (* (( (ptr) (* (( (ptr) gf←c80148)+300)/* var←c69588 */ ))+22) );
(void) ( *( (fPt) ((* (ptr) pd418 ))))((word) &tangent←v17452, p3←v27900, p2←v27872, pd418);
};
SOURCE(26484, 21)
normal1←v27732.f0 = tangent←v17452.f1;
SOURCE(26507, 22)
{
word x419;
*(float*)&normal1←v27732.f1 = - (
x419 = tangent←v17452.f0, *(float*)&x419
);
};
SOURCE(26531, 22)
{
word x420;
*(float*)&normal2←v27760.f0 = - (
x420 = tangent←v17452.f1, *(float*)&x420
);
};
SOURCE(26555, 21)
normal2←v27760.f1 = tangent←v17452.f0;
}
else {
SOURCE(26587, 43)
{
word pd421;
pd421 = (* (( (ptr) (* (( (ptr) gf←c80148)+300)/* var←c69588 */ ))+22) );
(void) ( *( (fPt) ((* (ptr) pd421 ))))((word) &tangent←v17452, p0←v27816, p1←v27844, pd421);
};
SOURCE(26632, 21)
normal1←v27732.f0 = tangent←v17452.f1;
SOURCE(26655, 22)
{
word x422;
*(float*)&normal1←v27732.f1 = - (
x422 = tangent←v17452.f0, *(float*)&x422
);
};
SOURCE(26679, 22)
{
word x423;
*(float*)&normal2←v27760.f0 = - (
x423 = tangent←v17452.f1, *(float*)&x423
);
};
SOURCE(26703, 21)
normal2←v27760.f1 = tangent←v17452.f0;
};
SOURCE(26729, 52)
{
word pd424;
pd424 = (* (( (ptr) (* (( (ptr) gf←c80148)+300)/* var←c69588 */ ))+22) );
(void) ( *( (fPt) ((* (ptr) pd424 ))))((word) &direction←v27788, joint←v17324, point←v17352, pd424);
};
SOURCE(26783, 181)
{
float tf425;
word pd426;
word x427;
float tf428;
word pd429;
word x430;
pd426 = (* (( (ptr) (* (( (ptr) gf←c80148)+300)/* var←c69588 */ ))+9) );
pd429 = (* (( (ptr) (* (( (ptr) gf←c80148)+300)/* var←c69588 */ ))+9) );
if ((FABS((
x427 = (word) ( *( (fPt) ((* (ptr) pd426 ))))(normal1←v27732, direction←v27788, pd426), *(float*)&x427
), tf425) < FABS((
x430 = (word) ( *( (fPt) ((* (ptr) pd429 ))))(normal2←v27760, direction←v27788, pd429), *(float*)&x430
), tf428))) {
SOURCE(26921, 17)
normal←v17424 = normal1←v27732;
}
else {
SOURCE(26948, 16)
normal←v17424 = normal2←v27760;
};
};
};
/* removed tail goto */
(* (W2Pt) formal←c0666 ) = normal←v17424;
(* (W2Pt) (( (ptr) formal←c0666)+2) ) = tangent←v17452;
return;
}
static void BZAddJoint←P4200(formal←c0679, seg←v17512, pos←v17540)
word formal←c0679;
word seg←v17512;
W2 pos←v17540;
{
register ptr gf←c80180 = (ptr) &globalframe;
word seg1←v17584;
word seg2←v17612;
word data←v27944;
W8 bezier←v27972;
W8 bezier1←v28000;
W8 bezier2←v28028;
word alpha←v28056;
/* BZAddJoint: */
SOURCE(26971, 445)
SOURCE(26971, 445)
seg1←v17584 = 0;
SOURCE(26971, 445)
seg2←v17612 = 0;
SOURCE(27056, 35)
data←v27944 = XR←Narrow((* (( (ptr) seg←v17512)+24) ), (* (( (ptr) gf←c80180)+27) ));
SOURCE(27147, 28)
{
word var←c69972;
var←c69972 = (* (( (ptr) (* (( (ptr) data←v27944)+8) ))+4) );
{
word limit431;
bezier←v27972 = (* (( (W8Pt) (( (ptr) var←c69972)+1))+(
limit431 = (* (ptr) var←c69972 ),
BCK(0, limit431)
)) );
};
};
SOURCE(27177, 40)
{
word pd432;
pd432 = (* (( (ptr) (* (( (ptr) gf←c80180)+291)/* var←c65492 */ ))+15) );
alpha←v28056 = (word) ( *( (fPt) ((* (ptr) pd432 ))))(bezier←v27972, pos←v17540, pd432);
};
SOURCE(27219, 53)
{
W16 var←c70036;
{
word pd433;
pd433 = (* (( (ptr) (* (( (ptr) gf←c80180)+302)/* var←c70004 */ ))+7) );
(void) ( *( (fPt) ((* (ptr) pd433 ))))((word) &var←c70036, bezier←v27972, alpha←v28056, pd433);
};
bezier2←v28028 = (* (W8Pt) (( (ptr) &var←c70036)+8) );
bezier1←v28000 = (* (W8Pt) &var←c70036 );
};
SOURCE(27274, 70)
seg1←v17584 = (word) MakeBezier←P2820((* (W2Pt) &bezier1←v28000 ), (* (W2Pt) (( (ptr) &bezier1←v28000)+2) ), (* (W2Pt) (
( (ptr) &bezier1←v28000)+4) ), (* (W2Pt) (( (ptr) &bezier1←v28000)+6) ), 0);
SOURCE(27346, 70)
seg2←v17612 = (word) MakeBezier←P2820((* (W2Pt) &bezier2←v28028 ), (* (W2Pt) (( (ptr) &bezier2←v28028)+2) ), (* (W2Pt) (
( (ptr) &bezier2←v28028)+4) ), (* (W2Pt) (( (ptr) &bezier2←v28028)+6) ), 0);
/* removed tail goto */
(* (ptr) formal←c0679 ) = seg1←v17584;
(* (( (ptr) formal←c0679)+1) ) = seg2←v17612;
return;
}
static word BZDescribe←P4260(seg←v17672, self←v17700, lo←v17728, hi←v17756, cps←v17784)
word seg←v17672;
word self←v17700;
word lo←v17728;
word hi←v17756;
word cps←v17784;
{
register ptr gf←c80212 = (ptr) &globalframe;
word rope←v17828;
/* BZDescribe: */
SOURCE(27422, 113)
SOURCE(27422, 113)
rope←v17828 = 0;
SOURCE(27520, 15)
rope←v17828 = (* (( (ptr) gf←c80212)+31) );
SOURCE(27422, 113)
return(rope←v17828);
}
static void BZFileOut←P4320(seg←v17888, f←v17916)
word seg←v17888;
word f←v17916;
{
register ptr gf←c80244 = (ptr) &globalframe;
word data←v28100;
/* BZFileOut: */
SOURCE(27541, 202)
SOURCE(27590, 35)
data←v28100 = XR←Narrow((* (( (ptr) seg←v17888)+24) ), (* (( (ptr) gf←c80244)+27) ));
SOURCE(27627, 48)
{
word var←c70068;
W2 var←c01380;
{
word limit434;
var←c70068 = (* (( (ptr) (* (( (ptr) data←v28100)+8) ))+4) );
var←c01380 = (* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c70068)+1))+(
limit434 = (* (ptr) var←c70068 ),
BCK(0, limit434)
)))+2) );
};
{
word pd435;
pd435 = (* (( (ptr) (* (( (ptr) gf←c80244)+296)/* var←c66196 */ ))+9) );
(void) ( *( (fPt) ((* (ptr) pd435 ))))(f←v17916, var←c01380, pd435);
};
};
SOURCE(27677, 16)
{
word pd436;
pd436 = (* (( (ptr) (* (( (ptr) gf←c80244)+285)/* var←c65044 */ ))+21) );
(void) ( *( (fPt) ((* (ptr) pd436 ))))(f←v17916, 32, pd436);
};
SOURCE(27695, 48)
{
word var←c70100;
W2 var←c01381;
{
word limit437;
var←c70100 = (* (( (ptr) (* (( (ptr) data←v28100)+8) ))+4) );
var←c01381 = (* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c70100)+1))+(
limit437 = (* (ptr) var←c70100 ),
BCK(0, limit437)
)))+4) );
};
{
word pd438;
pd438 = (* (( (ptr) (* (( (ptr) gf←c80244)+296)/* var←c66196 */ ))+9) );
(void) ( *( (fPt) ((* (ptr) pd438 ))))(f←v17916, var←c01381, pd438);
};
};
}
static word BZFileIn←P4380(f←v17976, loPoint←v18004, hiPoint←v18032, version←v18060)
word f←v17976;
W2 loPoint←v18004;
W2 hiPoint←v18032;
word version←v18060;
{
register ptr gf←c80276 = (ptr) &globalframe;
word seg←v18104;
W2 p1←v28144;
W2 p2←v28172;
/* BZFileIn: */
SOURCE(27749, 217)
SOURCE(27749, 217)
seg←v18104 = 0;
SOURCE(27861, 27)
{
word pd439;
pd439 = (* (( (ptr) (* (( (ptr) gf←c80276)+297)/* var←c66260 */ ))+19) );
(void) ( *( (fPt) ((* (ptr) pd439 ))))((word) &p1←v28144, f←v17976, pd439);
};
SOURCE(27890, 27)
{
word pd440;
pd440 = (* (( (ptr) (* (( (ptr) gf←c80276)+297)/* var←c66260 */ ))+19) );
(void) ( *( (fPt) ((* (ptr) pd440 ))))((word) &p2←v28172, f←v17976, pd440);
};
SOURCE(27919, 47)
seg←v18104 = (word) MakeBezier←P2820(loPoint←v18004, p1←v28144, p2←v28172, hiPoint←v18032, 0);
SOURCE(27749, 217)
return(seg←v18104);
}
static word BuildCubicSplineClass←P4440()
{
register ptr gf←c80308 = (ptr) &globalframe;
word class←v18408;
/* BuildCubicSplineClass: */
SOURCE(28316, 992)
SOURCE(28316, 992)
class←v18408 = 0;
SOURCE(28397, 911)
{
word var←c70132;
var←c70132 = XR←NewObject(116, (* (( (ptr) gf←c80308)+20) ));
(* (ptr) var←c70132 ) = (* (( (ptr) gf←c80308)+47) );
(* (( (ptr) var←c70132)+1) ) = (word) (( (bPt) gf←c80308)+492)/* var←c62292 */ ;
(* (( (ptr) var←c70132)+2) ) = (word) (( (bPt) gf←c80308)+484)/* var←c62260 */ ;
(* (( (ptr) var←c70132)+3) ) = (word) (( (bPt) gf←c80308)+468)/* var←c62196 */ ;
(* (( (ptr) var←c70132)+4) ) = (word) (( (bPt) gf←c80308)+460)/* var←c62164 */ ;
(* (( (ptr) var←c70132)+5) ) = (word) (( (bPt) gf←c80308)+524)/* var←c62420 */ ;
(* (( (ptr) var←c70132)+6) ) = (word) (( (bPt) gf←c80308)+284)/* var←c61460 */ ;
(* (( (ptr) var←c70132)+7) ) = (word) (( (bPt) gf←c80308)+452)/* var←c62132 */ ;
(* (( (ptr) var←c70132)+8) ) = (word) (( (bPt) gf←c80308)+444)/* var←c62100 */ ;
(* (( (ptr) var←c70132)+9) ) = (word) (( (bPt) gf←c80308)+436)/* var←c62068 */ ;
(* (( (ptr) var←c70132)+10) ) = (word) (( (bPt) gf←c80308)+428)/* var←c62036 */ ;
(* (( (ptr) var←c70132)+11) ) = (word) (( (bPt) gf←c80308)+420)/* var←c62004 */ ;
(* (( (ptr) var←c70132)+12) ) = (word) (( (bPt) gf←c80308)+412)/* var←c61972 */ ;
(* (( (ptr) var←c70132)+13) ) = (word) (( (bPt) gf←c80308)+404)/* var←c61940 */ ;
(* (( (ptr) var←c70132)+14) ) = (word) (( (bPt) gf←c80308)+396)/* var←c61908 */ ;
(* (( (ptr) var←c70132)+15) ) = (word) (( (bPt) gf←c80308)+388)/* var←c61876 */ ;
(* (( (ptr) var←c70132)+16) ) = (word) (( (bPt) gf←c80308)+380)/* var←c61844 */ ;
(* (( (ptr) var←c70132)+17) ) = (word) (( (bPt) gf←c80308)+372)/* var←c61812 */ ;
(* (( (ptr) var←c70132)+18) ) = (word) (( (bPt) gf←c80308)+276)/* var←c61428 */ ;
(* (( (ptr) var←c70132)+19) ) = (word) (( (bPt) gf←c80308)+364)/* var←c61780 */ ;
(* (( (ptr) var←c70132)+20) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c80308)+295)/* var←c65748 */ ))+42) );
(* (( (ptr) var←c70132)+21) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c80308)+295)/* var←c65748 */ ))+43) );
(* (( (ptr) var←c70132)+22) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c80308)+295)/* var←c65748 */ ))+44) );
(* (( (ptr) var←c70132)+23) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c80308)+295)/* var←c65748 */ ))+45) );
(* (( (ptr) var←c70132)+24) ) = (word) (( (bPt) gf←c80308)+356)/* var←c61748 */ ;
(* (( (ptr) var←c70132)+25) ) = (word) (( (bPt) gf←c80308)+348)/* var←c61716 */ ;
(* (( (ptr) var←c70132)+26) ) = (word) (( (bPt) gf←c80308)+340)/* var←c61684 */ ;
(* (( (ptr) var←c70132)+27) ) = (word) (( (bPt) gf←c80308)+332)/* var←c61652 */ ;
(* (( (ptr) var←c70132)+28) ) = (word) (( (bPt) gf←c80308)+516)/* var←c62388 */ ;
class←v18408 = var←c70132;
};
SOURCE(28316, 992)
return(class←v18408);
}
static word CSSameShape←P4500(seg1←v39288, seg2←v39316)
word seg1←v39288;
word seg2←v39316;
{
register ptr gf←c80340 = (ptr) &globalframe;
word var←c39360;
word data1←v28216;
word data2←v28244;
/* CSSameShape: */
SOURCE(29314, 164)
SOURCE(29361, 42)
data1←v28216 = XR←Narrow((* (( (ptr) seg1←v39288)+24) ), (* (( (ptr) gf←c80340)+19) ));
SOURCE(29405, 42)
data2←v28244 = XR←Narrow((* (( (ptr) seg2←v39316)+24) ), (* (( (ptr) gf←c80340)+19) ));
SOURCE(29449, 29)
return(((* (( (ptr) data1←v28216)+1) ) == (* (( (ptr) data2←v28244)+1) )));
}
static void CSSetStrokeWidth←P4560(seg←v18468, strokeWidth←v18496)
word seg←v18468;
word strokeWidth←v18496;
{
/* CSSetStrokeWidth: */
SOURCE(29484, 113)
SOURCE(29545, 29)
(* (( (ptr) seg←v18468)+2) ) = strokeWidth←v18496;
SOURCE(29576, 21)
(void) UpdateCSBoundBox←P4860(seg←v18468);
}
static word MakeCubicSpline←P4620(cps←v18556, type←v18584, props←v18612)
word cps←v18556;
word type←v18584;
word props←v18612;
{
register ptr gf←c80372 = (ptr) &globalframe;
word seg←v18752;
word coeffs←v28288 = 0;
word data←v28316 = 0;
word newCPs←v28344 = 0;
word last←v28372;
/* MakeCubicSpline: */
SOURCE(29603, 1404)
SOURCE(29603, 1404)
seg←v18752 = 0;
SOURCE(29841, 24)
{
word idx441;
last←v28372 = (
idx441 = (word) ((* (ptr) cps←v18556 ) - 1),
SGNCK(idx441)
);
};
SOURCE(29867, 209)
{
word var←c70164;
var←c70164 = type←v18584;
switch (var←c70164) {
case 2: case 3:
SOURCE(29953, 54)
{
word var←c70196;
word var←c70228;
word var←c70260;
{
word idx442;
var←c70196 = (
idx442 = (* (ptr) cps←v18556 ),
BCK(idx442, 33554431)
);
};
var←c70228 = ((word) var←c70196 << 3);
var←c70260 = XR←NewObject((4 + var←c70228), (* (( (ptr) gf←c80372)+24) ));
(* (ptr) var←c70260 ) = var←c70196;
newCPs←v28344 = var←c70260;
};
break;
case 6:
SOURCE(30020, 56)
{
word var←c70292;
word var←c70324;
word var←c70356;
{
word idx443;
var←c70292 = (
idx443 = (word) ((* (ptr) cps←v18556 ) + 4),
BCK(idx443, 33554431)
);
};
var←c70324 = ((word) var←c70292 << 3);
var←c70356 = XR←NewObject((4 + var←c70324), (* (( (ptr) gf←c80372)+24) ));
(* (ptr) var←c70356 ) = var←c70292;
newCPs←v28344 = var←c70356;
};
break;
default:
SOURCE(30089, 5)
(void) XR←RaiseUnnamedError();
break;
};
};
SOURCE(30096, 112)
{
word var←c70388;
word var←c70516;
{
word var←c70420;
word var←c70452;
word var←c70484;
{
word idx444;
var←c70420 = (
idx444 = (* (ptr) cps←v18556 ),
BCK(idx444, 16777215)
);
};
var←c70452 = ((word) var←c70420 << 4);
var←c70484 = XR←NewObject((4 + var←c70452), (* (( (ptr) gf←c80372)+23) ));
(* (ptr) var←c70484 ) = var←c70420;
var←c70388 = var←c70484;
};
var←c70516 = XR←NewObject(16, (* (( (ptr) gf←c80372)+19) ));
(* (ptr) var←c70516 ) = newCPs←v28344;
(* (( (ptr) var←c70516)+1) ) = type←v18584;
(* (( (ptr) var←c70516)+3) ) = var←c70388;
data←v28316 = var←c70516;
};
SOURCE(30210, 399)
{
word var←c70548;
word var←c70580;
word var←c70612;
word var←c70644;
var←c70548 = (word) FetchSegmentClass←P120((* ((( (ptr) gf←c80372)+47)) ));
{
word pd445;
pd445 = (* (( (ptr) (* (( (ptr) gf←c80372)+287)/* var←c65172 */ ))+5) );
var←c70580 = (word) ( *( (fPt) ((* (ptr) pd445 ))))((* (ptr) &fc78 ), (* (ptr) &fc78 ), (* (ptr) &fc78 ), (* (ptr) &fc78 ), 0, 0, pd445)
;
};
{
word pd446;
pd446 = (* (( (ptr) (* (( (ptr) gf←c80372)+287)/* var←c65172 */ ))+5) );
var←c70612 = (word) ( *( (fPt) ((* (ptr) pd446 ))))((* (ptr) &fc78 ), (* (ptr) &fc78 ), (* (ptr) &fc78 ), (* (ptr) &fc78 ), 0, 0, pd446)
;
};
var←c70644 = XR←NewObject(104, (* (( (ptr) gf←c80372)+15) ));
(* (ptr) var←c70644 ) = var←c70548;
(* (( (ptr) var←c70644)+2) ) = (* (( (ptr) gf←c80372)+4)/* defaultStrokeWidth←v4540 */ );
(* (( (ptr) var←c70644)+3) ) = (* (( (ptr) gf←c80372)+5)/* defaultStrokeEnd←v4568 */ );
(* (( (ptr) var←c70644)+6) ) = (* (ptr) &fc78 );
(* (( (ptr) var←c70644)+7) ) = (* (ptr) &fc115 );
(* (( (ptr) var←c70644)+8) ) = (* (ptr) (* (( (ptr) (* (( (ptr) gf←c80372)+294)/* var←c65684 */ ))+54) ) );
{
word limit447;
(* (( (ptr) var←c70644)+9) ) = (* (( (W2Pt) (( (ptr) cps←v18556)+1))+(
limit447 = (* (ptr) cps←v18556 ),
BCK(0, limit447)
)) ).f0;
};
{
word limit448;
(* (( (ptr) var←c70644)+10) ) = (* (( (W2Pt) (( (ptr) cps←v18556)+1))+(
limit448 = (* (ptr) cps←v18556 ),
BCK(0, limit448)
)) ).f1;
};
{
word limit449;
(* (( (ptr) var←c70644)+11) ) = (* (( (W2Pt) (( (ptr) cps←v18556)+1))+(
limit449 = (* (ptr) cps←v18556 ),
BCK(last←v28372, limit449)
)) ).f0;
};
{
word limit450;
(* (( (ptr) var←c70644)+12) ) = (* (( (W2Pt) (( (ptr) cps←v18556)+1))+(
limit450 = (* (ptr) cps←v18556 ),
BCK(last←v28372, limit450)
)) ).f1;
};
(* (( (ptr) var←c70644)+13) ) = (* (ptr) &fc78 );
(* (( (ptr) var←c70644)+14) ) = (* (ptr) &fc78 );
(* (( (ptr) var←c70644)+15) ) = (* (ptr) &fc78 );
(* (( (ptr) var←c70644)+16) ) = (* (ptr) &fc78 );
(* (W4Pt) (( (ptr) var←c70644)+17) ) = (* (W4Pt) (( (ptr) gf←c80372)+279)/* var←c64820 */ );
(* (( (ptr) var←c70644)+21) ) = var←c70580;
(* (( (ptr) var←c70644)+22) ) = var←c70612;
(* (( (ptr) var←c70644)+24) ) = data←v28316;
(* (( (ptr) var←c70644)+25) ) = props←v18612;
seg←v18752 = var←c70644;
};
SOURCE(30611, 59)
{
W2 var←c70676;
{
word limit451;
(void) FPToPoint←P6540((word) &var←c70676, (* (( (W2Pt) (( (ptr) cps←v18556)+1))+(
limit451 = (* (ptr) cps←v18556 ),
BCK(0, limit451)
)) ));
};
(void) CSEndPointSet←P6180(seg←v18752, 1, var←c70676);
};
SOURCE(30672, 63)
{
W2 var←c70708;
{
word limit452;
(void) FPToPoint←P6540((word) &var←c70708, (* (( (W2Pt) (( (ptr) cps←v18556)+1))+(
limit452 = (* (ptr) cps←v18556 ),
BCK(last←v28372, limit452)
)) ));
};
(void) CSEndPointSet←P6180(seg←v18752, 0, var←c70708);
};
SOURCE(30737, 101)
{
register word i←v28416 = 0;
register word noName←c70740;
{
word pd453;
pd453 = (* (( (ptr) (* (ptr) seg←v18752 ))+17) );
noName←c70740 = (word) ( *( (fPt) ((* (ptr) pd453 ))))(seg←v18752, pd453);
};
if (( (int)i←v28416 >= (int)noName←c70740)) {
goto lab←L100029;
};
lab←L100032: ;
SOURCE(30792, 46)
{
W2 var←c70772;
{
W2 var←c0741;
{
word var←c70804;
W2 var←c01382;
var←c70804 = (i←v28416 + 1);
{
word limit454;
var←c01382 = (* (( (W2Pt) (( (ptr) cps←v18556)+1))+(
limit454 = (* (ptr) cps←v18556 ),
BCK(var←c70804, limit454)
)) );
};
(void) FPToPoint←P6540((word) &var←c0741, var←c01382);
};
var←c70772 = var←c0741;
};
(void) CSControlPointSet←P6120(seg←v18752, SGNCK(i←v28416), var←c70772);
};
i←v28416 = (i←v28416 + 1);
if (( (int)i←v28416 < (int)noName←c70740)) {
goto lab←L100032;
};
lab←L100029: ;
};
SOURCE(30849, 48)
{
word pd455;
pd455 = (* (( (ptr) (* (( (ptr) gf←c80372)+290)/* var←c65460 */ ))+8) );
coeffs←v28288 = (word) ( *( (fPt) ((* (ptr) pd455 ))))((* (ptr) data←v28316 ), type←v18584, pd455);
};
SOURCE(30899, 51)
{
word pd456;
pd456 = (* (( (ptr) (* (( (ptr) gf←c80372)+291)/* var←c65492 */ ))+4) );
(* (( (ptr) data←v28316)+2) ) = (word) ( *( (fPt) ((* (ptr) pd456 ))))(coeffs←v28288, 0, pd456);
};
SOURCE(30986, 21)
(void) UpdateCSBoundBox←P4860(seg←v18752);
SOURCE(29603, 1404)
return(seg←v18752);
}
static word CubicSplineGetParams←P4680(seg←v18812)
word seg←v18812;
{
register ptr gf←c80404 = (ptr) &globalframe;
word var←c18856;
word data←v28460;
/* CubicSplineGetParams: */
SOURCE(31013, 138)
SOURCE(31092, 40)
data←v28460 = XR←Narrow((* (( (ptr) seg←v18812)+24) ), (* (( (ptr) gf←c80404)+19) ));
SOURCE(31134, 17)
return((* (( (ptr) data←v28460)+2) ));
}
static word CSBoundBox←P4740(seg←v18916)
word seg←v18916;
{
word bBox←v18960;
/* CSBoundBox: */
SOURCE(31157, 76)
SOURCE(31157, 76)
bBox←v18960 = 0;
SOURCE(31218, 15)
bBox←v18960 = (* (( (ptr) seg←v18916)+21) );
SOURCE(31157, 76)
return(bBox←v18960);
}
static word CSTightBox←P4800(seg←v19020)
word seg←v19020;
{
word bBox←v19064;
/* CSTightBox: */
SOURCE(31239, 80)
SOURCE(31239, 80)
bBox←v19064 = 0;
SOURCE(31300, 19)
bBox←v19064 = (* (( (ptr) seg←v19020)+22) );
SOURCE(31239, 80)
return(bBox←v19064);
}
static void UpdateCSBoundBox←P4860(seg←v19124)
word seg←v19124;
{
register ptr gf←c80436 = (ptr) &globalframe;
word data←v28504;
word path←v28532;
word pad←v28560;
/* UpdateCSBoundBox: */
SOURCE(31325, 499)
SOURCE(31367, 40)
data←v28504 = XR←Narrow((* (( (ptr) seg←v19124)+24) ), (* (( (ptr) gf←c80436)+19) ));
SOURCE(31409, 33)
path←v28532 = (* (( (ptr) data←v28504)+2) );
SOURCE(31455, 106)
if (((* (( (ptr) seg←v19124)+3) ) == 0)) {
SOURCE(31486, 44)
{
word x457;
word x458;
word x459;
*(float*)&pad←v28560 = ((
x457 = (* (( (ptr) seg←v19124)+2) ), *(float*)&x457
) * (
x458 = (* (ptr) &fc156 ), *(float*)&x458
)) + (
x459 = (* (ptr) &fc158 ), *(float*)&x459
);
};
}
else {
SOURCE(31530, 31)
{
word x460;
word x461;
word x462;
*(float*)&pad←v28560 = ((
x460 = (* (( (ptr) seg←v19124)+2) ), *(float*)&x460
) / (
x461 = (* (ptr) &fc70 ), *(float*)&x461
)) + (
x462 = (* (ptr) &fc158 ), *(float*)&x462
);
};
};
SOURCE(31563, 261)
if (((* (( (ptr) data←v28504)+1) ) == 6)) {
SOURCE(31593, 31)
(void) KnotBoundBox←P6480(seg←v19124, (* (( (ptr) seg←v19124)+22) ));
SOURCE(31626, 35)
(void) CurveBoundBox←P6240(seg←v19124, (* (( (ptr) seg←v19124)+21) ), 0);
SOURCE(31663, 41)
{
word pd463;
pd463 = (* (( (ptr) (* (( (ptr) gf←c80436)+287)/* var←c65172 */ ))+17) );
(void) ( *( (fPt) ((* (ptr) pd463 ))))((* (( (ptr) seg←v19124)+21) ), pad←v28560, pd463);
};
}
else {
SOURCE(31715, 39)
(void) CurveBoundBox←P6240(seg←v19124, (* (( (ptr) seg←v19124)+22) ), 0);
SOURCE(31756, 25)
(* (W6Pt) (* (( (ptr) seg←v19124)+21) ) ) = (* (W6Pt) (* (( (ptr) seg←v19124)+22) ) );
SOURCE(31783, 41)
{
word pd464;
pd464 = (* (( (ptr) (* (( (ptr) gf←c80436)+287)/* var←c65172 */ ))+17) );
(void) ( *( (fPt) ((* (ptr) pd464 ))))((* (( (ptr) seg←v19124)+21) ), pad←v28560, pd464);
};
};
}
static word CSCopyData←P4920(seg←v39420)
word seg←v39420;
{
register ptr gf←c80468 = (ptr) &globalframe;
word data←v39464;
word csData←v28604;
word new←v28632;
word cpCount←v28660;
/* CSCopyData: */
SOURCE(31833, 540)
SOURCE(31833, 540)
data←v39464 = 0;
SOURCE(31877, 42)
csData←v28604 = XR←Narrow((* (( (ptr) seg←v39420)+24) ), (* (( (ptr) gf←c80468)+19) ));
SOURCE(31921, 46)
new←v28632 = XR←NewObject(16, (* (( (ptr) gf←c80468)+19) ));
SOURCE(31969, 47)
{
word pd465;
pd465 = (* (( (ptr) (* (ptr) seg←v39420 ))+17) );
cpCount←v28660 = (word) ( *( (fPt) ((* (ptr) pd465 ))))(seg←v39420, pd465);
};
SOURCE(32018, 62)
{
word var←c70868;
{
word var←c70900;
word var←c70932;
word var←c70964;
{
word idx466;
var←c70900 = (
idx466 = (* (ptr) (* (ptr) csData←v28604 ) ),
BCK(idx466, 33554431)
);
};
var←c70932 = ((word) var←c70900 << 3);
var←c70964 = XR←NewObject((4 + var←c70932), (* (( (ptr) gf←c80468)+24) ));
(* (ptr) var←c70964 ) = var←c70900;
var←c70868 = var←c70964;
};
(* (ptr) new←v28632 ) = var←c70868;
};
SOURCE(32082, 52)
{
word var←c70996;
{
word var←c71028;
word var←c71060;
word var←c71092;
var←c71028 = BCK(cpCount←v28660, 16777215);
var←c71060 = ((word) var←c71028 << 4);
var←c71092 = XR←NewObject((4 + var←c71060), (* (( (ptr) gf←c80468)+23) ));
(* (ptr) var←c71092 ) = var←c71028;
var←c70996 = var←c71092;
};
(* (( (ptr) new←v28632)+3) ) = var←c70996;
};
SOURCE(32136, 63)
{
register word i←v28704 = 0;
register word noName←c71124;
noName←c71124 = (* (ptr) (* (ptr) new←v28632 ) );
if ((i←v28704 >= noName←c71124)) {
goto lab←L100033;
};
lab←L100036: ;
SOURCE(32173, 26)
{
word var←c71188;
var←c71188 = (* (ptr) new←v28632 );
{
word var←c71156;
var←c71156 = (* (ptr) csData←v28604 );
{
word limit467;
word limit468;
(* (( (W2Pt) (( (ptr) var←c71188)+1))+(
limit467 = (* (ptr) var←c71188 ),
BCK(i←v28704, limit467)
)) ) = (* (( (W2Pt) (( (ptr) var←c71156)+1))+(
limit468 = (* (ptr) var←c71156 ),
BCK(i←v28704, limit468)
)) );
};
};
};
i←v28704 = (i←v28704 + 1);
if ((i←v28704 < noName←c71124)) {
goto lab←L100036;
};
lab←L100033: ;
};
SOURCE(32210, 72)
{
register word i←v28748 = 0;
register word noName←c71220;
noName←c71220 = cpCount←v28660;
if ((i←v28748 >= noName←c71220)) {
goto lab←L100037;
};
lab←L100040: ;
SOURCE(32240, 42)
{
word var←c71284;
var←c71284 = (* (( (ptr) new←v28632)+3) );
{
word var←c71252;
var←c71252 = (* (( (ptr) csData←v28604)+3) );
{
word limit469;
word limit470;
(* (( (W4Pt) (( (ptr) var←c71284)+1))+(
limit469 = (* (ptr) var←c71284 ),
BCK(i←v28748, limit469)
)) ) = (* (( (W4Pt) (( (ptr) var←c71252)+1))+(
limit470 = (* (ptr) var←c71252 ),
BCK(i←v28748, limit470)
)) );
};
};
};
i←v28748 = (i←v28748 + 1);
if ((i←v28748 < noName←c71220)) {
goto lab←L100040;
};
lab←L100037: ;
};
SOURCE(32293, 22)
(* (( (ptr) new←v28632)+1) ) = (* (( (ptr) csData←v28604)+1) );
SOURCE(32317, 43)
{
word pd471;
pd471 = (* (( (ptr) (* (( (ptr) gf←c80468)+291)/* var←c65492 */ ))+12) );
(* (( (ptr) new←v28632)+2) ) = (word) ( *( (fPt) ((* (ptr) pd471 ))))((* ((( (ptr) csData←v28604)+2)) ), pd471);
};
SOURCE(32362, 11)
return(new←v28632);
}
static void CSReverse←P4980(seg←v19184)
word seg←v19184;
{
register ptr gf←c80500 = (ptr) &globalframe;
word data←v28792;
W2 temp←v28820;
word last←v28848;
/* CSReverse: */
SOURCE(32379, 296)
SOURCE(32414, 40)
data←v28792 = XR←Narrow((* (( (ptr) seg←v19184)+24) ), (* (( (ptr) gf←c80500)+19) ));
SOURCE(32485, 29)
{
word idx472;
last←v28848 = (
idx472 = (word) ((* (ptr) (* (ptr) data←v28792 ) ) - 1),
SGNCK(idx472)
);
};
SOURCE(32516, 115)
{
register word i←v28892 = 0;
register word noName←c71316;
noName←c71316 = ((* (ptr) (* (ptr) data←v28792 ) ) >> 1);
if ((i←v28892 >= noName←c71316)) {
goto lab←L100041;
};
lab←L100044: ;
SOURCE(32556, 18)
{
word var←c71348;
var←c71348 = (* (ptr) data←v28792 );
{
word limit473;
temp←v28820 = (* (( (W2Pt) (( (ptr) var←c71348)+1))+(
limit473 = (* (ptr) var←c71348 ),
BCK(i←v28892, limit473)
)) );
};
};
SOURCE(32576, 30)
{
word var←c71444;
var←c71444 = (* (ptr) data←v28792 );
{
word var←c71380;
word var←c71412;
var←c71380 = (last←v28848 - i←v28892);
var←c71412 = (* (ptr) data←v28792 );
{
word limit474;
word limit475;
(* (( (W2Pt) (( (ptr) var←c71444)+1))+(
limit474 = (* (ptr) var←c71444 ),
BCK(i←v28892, limit474)
)) ) = (* (( (W2Pt) (( (ptr) var←c71412)+1))+(
limit475 = (* (ptr) var←c71412 ),
BCK(var←c71380, limit475)
)) );
};
};
};
SOURCE(32608, 23)
{
word var←c71476;
word var←c71508;
var←c71476 = (last←v28848 - i←v28892);
var←c71508 = (* (ptr) data←v28792 );
{
word limit476;
(* (( (W2Pt) (( (ptr) var←c71508)+1))+(
limit476 = (* (ptr) var←c71508 ),
BCK(var←c71476, limit476)
)) ) = temp←v28820;
};
};
i←v28892 = (i←v28892 + 1);
if ((i←v28892 < noName←c71316)) {
goto lab←L100044;
};
lab←L100041: ;
};
SOURCE(32642, 33)
{
word pd477;
pd477 = (* (( (ptr) (* (( (ptr) gf←c80500)+291)/* var←c65492 */ ))+13) );
(void) ( *( (fPt) ((* (ptr) pd477 ))))((* ((( (ptr) data←v28792)+2)) ), pd477);
};
}
static void CSBuildPathTransform←P5040(seg←v19244, transform←v19272, entire←v19300, lo←v19328, hi←v19356, controlPoints←v19384, lineTo←v19412, curveTo←v19440, conicTo←v19468, arcTo←v19496)
word seg←v19244;
word transform←v19272;
word entire←v19300;
word lo←v19328;
word hi←v19356;
word controlPoints←v19384;
word lineTo←v19412;
word curveTo←v19440;
word conicTo←v19468;
word arcTo←v19496;
{
W6 var←c80532;
register ptr gf←c80564 = (ptr) &globalframe;
/* declaration of var←c71540 skipped */
word data←v28936;
word moveTo←v28964;
/* CSBuildPathTransform: */
SOURCE(32681, 1338)
{
word tmpAddr478;
tmpAddr478 = (word) (( (ptr) &var←c80532)+4)/* var←c71540 */ ;
(* (ptr) tmpAddr478 ) = ( ((word) (fPt) NoName←Q7932) );
(* (( (ptr) tmpAddr478) + 1) ) = 1;
};
SOURCE(32949, 40)
data←v28936 = XR←Narrow((* (( (ptr) seg←v19244)+24) ), (* (( (ptr) gf←c80564)+19) ));
SOURCE(32991, 32)
moveTo←v28964 = (word) (( (bPt) &var←c80532)+16)/* var←c71540 */ ;
SOURCE(33027, 992)
if ((0 != entire←v19300)) {
SOURCE(33042, 178)
{
word scratchPath←v29008;
SOURCE(33044, 61)
{
word pd479;
pd479 = (* (( (ptr) (* (( (ptr) gf←c80564)+291)/* var←c65492 */ ))+12) );
scratchPath←v29008 = (word) ( *( (fPt) ((* (ptr) pd479 ))))((* ((( (ptr) data←v28936)+2)) ), pd479);
};
SOURCE(33107, 55)
{
word pd480;
pd480 = (* (( (ptr) (* (( (ptr) gf←c80564)+291)/* var←c65492 */ ))+9) );
(void) ( *( (fPt) ((* (ptr) pd480 ))))(scratchPath←v29008, transform←v19272, 0, pd480);
};
SOURCE(33164, 54)
{
word pd481;
pd481 = (* (( (ptr) (* (( (ptr) gf←c80564)+291)/* var←c65492 */ ))+5) );
(void) ( *( (fPt) ((* (ptr) pd481 ))))(scratchPath←v29008, moveTo←v28964, curveTo←v19440, pd481);
};
};
}
else {
SOURCE(33227, 813)
{
word coeffs←v29052 = 0;
word cpsCopy←v29080;
SOURCE(33266, 87)
{
word var←c71572;
word var←c71604;
word var←c71636;
{
word idx482;
var←c71572 = (
idx482 = (* (ptr) (* (ptr) data←v28936 ) ),
BCK(idx482, 33554431)
);
};
var←c71604 = ((word) var←c71572 << 3);
var←c71636 = XR←NewObject((4 + var←c71604), (* (( (ptr) gf←c80564)+24) ));
(* (ptr) var←c71636 ) = var←c71572;
cpsCopy←v29080 = var←c71636;
};
SOURCE(33375, 61)
{
register word i←v29124 = 0;
register word noName←c71668;
noName←c71668 = (* (ptr) (* (ptr) data←v28936 ) );
if (( (int)i←v29124 >= (int)noName←c71668)) {
goto lab←L100045;
};
lab←L100048: ;
SOURCE(33412, 24)
{
word var←c71700;
var←c71700 = (* (ptr) data←v28936 );
{
word limit483;
word limit484;
(* (( (W2Pt) (( (ptr) cpsCopy←v29080)+1))+(
limit483 = (* (ptr) cpsCopy←v29080 ),
BCK(i←v29124, limit483)
)) ) = (* (( (W2Pt) (( (ptr) var←c71700)+1))+(
limit484 = (* (ptr) var←c71700 ),
BCK(i←v29124, limit484)
)) );
};
};
i←v29124 = (i←v29124 + 1);
if (( (int)i←v29124 < (int)noName←c71668)) {
goto lab←L100048;
};
lab←L100045: ;
};
SOURCE(33447, 195)
{
register word i←v29168 = 0;
register word noName←c71732;
{
word pd485;
pd485 = (* (( (ptr) (* (ptr) seg←v19244 ))+17) );
noName←c71732 = (word) ( *( (fPt) ((* (ptr) pd485 ))))(seg←v19244, pd485);
};
if (( (int)i←v29168 >= (int)noName←c71732)) {
goto lab←L100049;
};
lab←L100052: ;
SOURCE(33501, 141)
{
word limit487;
if ((controlPoints←v19384 == 0)) { goto then0486;};
if (XR←ExtractField(controlPoints←v19384, 32 + (word) (
limit487 = (* (ptr) controlPoints←v19384 ),
BCK(i←v29168, limit487)
), 1)) {
then0486: ;
SOURCE(33547, 95)
{
W2 var←c71764;
{
W2 var←c71796;
(void) CSControlPointGet←P5580((word) &var←c71796, seg←v19244, SGNCK(i←v29168));
{
W2 var←c0813;
{
/*1*/ word pd488;
/*1*/ pd488 = (* (( (ptr) (* (( (ptr) gf←c80564)+293)/* var←c65588 */ ))+39) );
/*1*/ (void) ( *( (fPt) ((* (ptr) pd488 ))))((word) &var←c0813, transform←v19272, var←c71796, pd488);
/*1*/ };
var←c71764 = var←c0813;
};
};
(void) CSControlPointSet←P6120(seg←v19244, SGNCK(i←v29168), var←c71764);
};
};
};
i←v29168 = (i←v29168 + 1);
if (( (int)i←v29168 < (int)noName←c71732)) {
goto lab←L100052;
};
lab←L100049: ;
};
SOURCE(33653, 102)
if ((0 != lo←v19328)) {
SOURCE(33664, 91)
{
W2 var←c71828;
{
word pd489;
pd489 = (* (( (ptr) (* (( (ptr) gf←c80564)+293)/* var←c65588 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd489 ))))((word) &var←c71828, transform←v19272, (* (W2Pt) (( (ptr) seg←v19244)+9) ), pd489)
;
};
(void) CSEndPointSet←P6180(seg←v19244, 1, var←c71828);
};
};
SOURCE(33757, 103)
if ((0 != hi←v19356)) {
SOURCE(33768, 92)
{
W2 var←c71860;
{
word pd490;
pd490 = (* (( (ptr) (* (( (ptr) gf←c80564)+293)/* var←c65588 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd490 ))))((word) &var←c71860, transform←v19272, (* (W2Pt) (( (ptr) seg←v19244)+11) ), pd490)
;
};
(void) CSEndPointSet←P6180(seg←v19244, 0, var←c71860);
};
};
SOURCE(33862, 53)
{
word pd491;
pd491 = (* (( (ptr) (* (( (ptr) gf←c80564)+290)/* var←c65460 */ ))+8) );
coeffs←v29052 = (word) ( *( (fPt) ((* (ptr) pd491 ))))((* (ptr) data←v28936 ), (* (( (ptr) data←v28936)+1) ), pd491);
};
SOURCE(33917, 82)
{
word var←c71892;
{
word pd492;
pd492 = (* (( (ptr) (* (( (ptr) gf←c80564)+291)/* var←c65492 */ ))+4) );
var←c71892 = (word) ( *( (fPt) ((* (ptr) pd492 ))))(coeffs←v29052, 0, pd492);
};
{
word pd493;
pd493 = (* (( (ptr) (* (( (ptr) gf←c80564)+291)/* var←c65492 */ ))+5) );
(void) ( *( (fPt) ((* (ptr) pd493 ))))(var←c71892, moveTo←v28964, curveTo←v19440, pd493);
};
};
SOURCE(34001, 18)
(* (ptr) data←v28936 ) = cpsCopy←v29080;
};
};
}
static void NoName←Q7932(p←v58552, formal←c80596)
W2 p←v58552;
word formal←c80596;
{
formal←c80596 = (formal←c80596 - 16);
/* : */
}
static void CSTransform←P5100(seg←v19556, transform←v19584)
word seg←v19556;
word transform←v19584;
{
register ptr gf←c80628 = (ptr) &globalframe;
word data←v29212;
/* CSTransform: */
SOURCE(34047, 397)
SOURCE(34132, 40)
data←v29212 = XR←Narrow((* (( (ptr) seg←v19556)+24) ), (* (( (ptr) gf←c80628)+19) ));
SOURCE(34174, 183)
{
register word i←v29256 = 0;
register word noName←c71924;
noName←c71924 = (* (ptr) (* (ptr) data←v29212 ) );
if ((i←v29256 >= noName←c71924)) {
goto lab←L100053;
};
lab←L100056: ;
{
W2 vec←v29300;
word var←c71988;
word var←c72020;
word var←c72052;
word var←c72084;
SOURCE(34212, 43)
{
word limit494;
var←c71988 = (* (ptr) data←v29212 );
vec←v29300.f0 = (* (( (W2Pt) (( (ptr) var←c71988)+1))+(
limit494 = (* (ptr) var←c71988 ),
BCK(i←v29256, limit494)
)) ).f0;
};
{
word limit495;
var←c72020 = (* (ptr) data←v29212 );
vec←v29300.f1 = (* (( (W2Pt) (( (ptr) var←c72020)+1))+(
limit495 = (* (ptr) var←c72020 ),
BCK(i←v29256, limit495)
)) ).f1;
};
SOURCE(34257, 52)
{
word pd496;
pd496 = (* (( (ptr) (* (( (ptr) gf←c80628)+293)/* var←c65588 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd496 ))))((word) &vec←v29300, transform←v19584, vec←v29300, pd496);
};
SOURCE(34311, 22)
{
word limit497;
var←c72052 = (* (ptr) data←v29212 );
(* (( (W2Pt) (( (ptr) var←c72052)+1))+(
limit497 = (* (ptr) var←c72052 ),
BCK(i←v29256, limit497)
)) ).f0 = vec←v29300.f0;
};
SOURCE(34335, 22)
{
word limit498;
var←c72084 = (* (ptr) data←v29212 );
(* (( (W2Pt) (( (ptr) var←c72084)+1))+(
limit498 = (* (ptr) var←c72084 ),
BCK(i←v29256, limit498)
)) ).f1 = vec←v29300.f1;
};
};
i←v29256 = (i←v29256 + 1);
if ((i←v29256 < noName←c71924)) {
goto lab←L100056;
};
lab←L100053: ;
};
SOURCE(34368, 53)
{
word pd499;
pd499 = (* (( (ptr) (* (( (ptr) gf←c80628)+291)/* var←c65492 */ ))+9) );
(void) ( *( (fPt) ((* (ptr) pd499 ))))((* (( (ptr) data←v29212)+2) ), transform←v19584, 0, pd499);
};
SOURCE(34423, 21)
(void) UpdateCSBoundBox←P4860(seg←v19556);
}
static void CSEndPointMoved←P5160(seg←v19644, lo←v19672, newPoint←v19700)
word seg←v19644;
word lo←v19672;
W2 newPoint←v19700;
{
register ptr gf←c80660 = (ptr) &globalframe;
word data←v29344;
word coeffs←v29372 = 0;
/* CSEndPointMoved: */
SOURCE(34450, 343)
SOURCE(34518, 40)
data←v29344 = XR←Narrow((* (( (ptr) seg←v19644)+24) ), (* (( (ptr) gf←c80660)+19) ));
SOURCE(34597, 32)
(void) CSEndPointSet←P6180(seg←v19644, lo←v19672, newPoint←v19700);
SOURCE(34631, 53)
{
word pd500;
pd500 = (* (( (ptr) (* (( (ptr) gf←c80660)+290)/* var←c65460 */ ))+8) );
coeffs←v29372 = (word) ( *( (fPt) ((* (ptr) pd500 ))))((* (ptr) data←v29344 ), (* (( (ptr) data←v29344)+1) ), pd500);
};
SOURCE(34719, 51)
{
word pd501;
pd501 = (* (( (ptr) (* (( (ptr) gf←c80660)+291)/* var←c65492 */ ))+4) );
(* (( (ptr) data←v29344)+2) ) = (word) ( *( (fPt) ((* (ptr) pd501 ))))(coeffs←v29372, 0, pd501);
};
SOURCE(34772, 21)
(void) UpdateCSBoundBox←P4860(seg←v19644);
}
static void CSControlPointMoved←P5220(seg←v19760, transform←v19788, controlPointNum←v19816)
word seg←v19760;
word transform←v19788;
word controlPointNum←v19816;
{
register ptr gf←c80692 = (ptr) &globalframe;
word data←v29416;
word coeffs←v29444 = 0;
/* CSControlPointMoved: */
SOURCE(34799, 448)
SOURCE(34914, 40)
data←v29416 = XR←Narrow((* (( (ptr) seg←v19760)+24) ), (* (( (ptr) gf←c80692)+19) ));
SOURCE(34993, 123)
{
W2 var←c72116;
{
W2 var←c72148;
(void) CSControlPointGet←P5580((word) &var←c72148, seg←v19760, controlPointNum←v19816);
{
W2 var←c0844;
{
word pd502;
pd502 = (* (( (ptr) (* (( (ptr) gf←c80692)+293)/* var←c65588 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd502 ))))((word) &var←c0844, transform←v19788, var←c72148, pd502);
};
var←c72116 = var←c0844;
};
};
(void) CSControlPointSet←P6120(seg←v19760, controlPointNum←v19816, var←c72116);
};
SOURCE(35118, 53)
{
word pd503;
pd503 = (* (( (ptr) (* (( (ptr) gf←c80692)+290)/* var←c65460 */ ))+8) );
coeffs←v29444 = (word) ( *( (fPt) ((* (ptr) pd503 ))))((* (ptr) data←v29416 ), (* (( (ptr) data←v29416)+1) ), pd503);
};
SOURCE(35173, 51)
{
word pd504;
pd504 = (* (( (ptr) (* (( (ptr) gf←c80692)+291)/* var←c65492 */ ))+4) );
(* (( (ptr) data←v29416)+2) ) = (word) ( *( (fPt) ((* (ptr) pd504 ))))(coeffs←v29444, 0, pd504);
};
SOURCE(35226, 21)
(void) UpdateCSBoundBox←P4860(seg←v19760);
}
static word CSDescribe←P5280(seg←v19876, self←v19904, lo←v19932, hi←v19960, cps←v19988)
word seg←v19876;
word self←v19904;
word lo←v19932;
word hi←v19960;
word cps←v19988;
{
register ptr gf←c80724 = (ptr) &globalframe;
word rope←v20032;
word data←v29488;
/* CSDescribe: */
SOURCE(35253, 257)
SOURCE(35253, 257)
rope←v20032 = 0;
SOURCE(35351, 40)
data←v29488 = XR←Narrow((* (( (ptr) seg←v19876)+24) ), (* (( (ptr) gf←c80724)+19) ));
SOURCE(35393, 117)
{
word var←c72180;
var←c72180 = (* (( (ptr) data←v29488)+1) );
switch (var←c72180) {
case 2:
SOURCE(35428, 16)
rope←v20032 = (* (( (ptr) gf←c80724)+34) );
break;
case 3:
SOURCE(35458, 23)
rope←v20032 = (* (( (ptr) gf←c80724)+35) );
break;
case 6:
SOURCE(35494, 16)
rope←v20032 = (* (( (ptr) gf←c80724)+36) );
break;
default:
SOURCE(35523, 5)
(void) XR←RaiseUnnamedError();
break;
};
};
SOURCE(35253, 257)
return(rope←v20032);
}
static void CSFileOut←P5340(seg←v20092, f←v20120)
word seg←v20092;
word f←v20120;
{
register ptr gf←c80756 = (ptr) &globalframe;
word data←v29532;
word cpCount←v29560;
/* CSFileOut: */
SOURCE(35534, 442)
SOURCE(35583, 40)
data←v29532 = XR←Narrow((* (( (ptr) seg←v20092)+24) ), (* (( (ptr) gf←c80756)+19) ));
SOURCE(35625, 47)
{
word pd505;
pd505 = (* (( (ptr) (* (ptr) seg←v20092 ))+17) );
cpCount←v29560 = (word) ( *( (fPt) ((* (ptr) pd505 ))))(seg←v20092, pd505);
};
SOURCE(35674, 149)
{
word var←c72212;
var←c72212 = (* (( (ptr) data←v29532)+1) );
switch (var←c72212) {
case 2:
SOURCE(35709, 27)
{
word pd506;
pd506 = (* (( (ptr) (* (( (ptr) gf←c80756)+285)/* var←c65044 */ ))+93) );
(void) ( *( (fPt) ((* (ptr) pd506 ))))(f←v20120, (* (( (ptr) gf←c80756)+37) ), 0, 2147483647, pd506);
};
break;
case 3:
SOURCE(35750, 33)
{
word pd507;
pd507 = (* (( (ptr) (* (( (ptr) gf←c80756)+285)/* var←c65044 */ ))+93) );
(void) ( *( (fPt) ((* (ptr) pd507 ))))(f←v20120, (* (( (ptr) gf←c80756)+38) ), 0, 2147483647, pd507);
};
break;
case 6:
SOURCE(35796, 27)
{
word pd508;
pd508 = (* (( (ptr) (* (( (ptr) gf←c80756)+285)/* var←c65044 */ ))+93) );
(void) ( *( (fPt) ((* (ptr) pd508 ))))(f←v20120, (* (( (ptr) gf←c80756)+39) ), 0, 2147483647, pd508);
};
break;
default:
SOURCE(35836, 5)
(void) XR←RaiseUnnamedError();
break;
};
};
SOURCE(35843, 35)
{
W2 var←c72244;
var←c72244.f0 = 5;
var←c72244.f1 = cpCount←v29560;
{
word pd509;
pd509 = (* (( (ptr) (* (( (ptr) gf←c80756)+285)/* var←c65044 */ ))+61) );
(void) ( *( (fPt) ((* (ptr) pd509 ))))(f←v20120, (* (( (ptr) gf←c80756)+40) ), var←c72244, pd509);
};
};
SOURCE(35880, 96)
{
register word i←v29604 = 0;
register word noName←c72276;
noName←c72276 = cpCount←v29560;
if (( (int)i←v29604 >= (int)noName←c72276)) {
goto lab←L100057;
};
lab←L100060: ;
SOURCE(35910, 51)
{
W2 var←c72308;
(void) CSControlPointGet←P5580((word) &var←c72308, seg←v20092, SGNCK(i←v29604));
{
word pd510;
pd510 = (* (( (ptr) (* (( (ptr) gf←c80756)+296)/* var←c66196 */ ))+9) );
(void) ( *( (fPt) ((* (ptr) pd510 ))))(f←v20120, var←c72308, pd510);
};
};
SOURCE(35963, 13)
{
word pd511;
pd511 = (* (( (ptr) (* (( (ptr) gf←c80756)+285)/* var←c65044 */ ))+21) );
(void) ( *( (fPt) ((* (ptr) pd511 ))))(f←v20120, 32, pd511);
};
i←v29604 = (i←v29604 + 1);
if (( (int)i←v29604 < (int)noName←c72276)) {
goto lab←L100060;
};
lab←L100057: ;
};
}
static word CSFileIn←P5400(f←v20180, loPoint←v20208, hiPoint←v20236, version←v20264)
word f←v20180;
W2 loPoint←v20208;
W2 hiPoint←v20236;
word version←v20264;
{
register ptr gf←c80788 = (ptr) &globalframe;
word seg←v20308;
word cps←v29648 = 0;
word type←v29676;
word typeWord←v29704 = 0;
word cyclic←v29732;
/* CSFileIn: */
SOURCE(35991, 1043)
SOURCE(35991, 1043)
seg←v20308 = 0;
SOURCE(36186, 470)
{
word x512;
word x514;
if (((
x512 = version←v20264, *(float*)&x512
) >= (
x514 = (* (ptr) &fc513 ), *(float*)&x514
))) {
SOURCE(36215, 30)
{
word pd515;
pd515 = (* (( (ptr) (* (( (ptr) gf←c80788)+297)/* var←c66260 */ ))+9) );
(void) ( *( (fPt) ((* (ptr) pd515 ))))(f←v20180, (* (( (ptr) gf←c80788)+41) ), pd515);
};
SOURCE(36247, 32)
{
word pd516;
pd516 = (* (( (ptr) (* (( (ptr) gf←c80788)+297)/* var←c66260 */ ))+8) );
typeWord←v29704 = (word) ( *( (fPt) ((* (ptr) pd516 ))))(f←v20180, pd516);
};
SOURCE(36281, 189)
{
word pd517;
pd517 = (* (( (ptr) (* (( (ptr) gf←c80788)+303)/* var←c72340 */ ))+8) );
if ((0 != (word) ( *( (fPt) ((* (ptr) pd517 ))))(typeWord←v29704, (* (( (ptr) gf←c80788)+34) ), 1, pd517))) {
SOURCE(36321, 22)
type←v29676 = 2;
}
else {
SOURCE(36343, 127)
{
word pd518;
pd518 = (* (( (ptr) (* (( (ptr) gf←c80788)+303)/* var←c72340 */ ))+8) );
if ((0 != (word) ( *( (fPt) ((* (ptr) pd518 ))))(typeWord←v29704, (* (( (ptr) gf←c80788)+42) ), 1, pd518))) {
SOURCE(36389, 21)
type←v29676 = 3;
}
else {
SOURCE(36410, 60)
{
word pd519;
pd519 = (* (( (ptr) (* (( (ptr) gf←c80788)+303)/* var←c72340 */ ))+8) );
if ((0 != (word) ( *( (fPt) ((* (ptr) pd519 ))))(typeWord←v29704, (* (( (ptr) gf←c80788)+36) ), 1, pd519))) {
SOURCE(36450, 20)
type←v29676 = 6;
}
else {
SOURCE(36470, 5)
(void) XR←RaiseUnnamedError();
};
};
};
};
};
};
}
else {
SOURCE(36484, 172)
{
word x520;
word x522;
if (((
x520 = version←v20264, *(float*)&x520
) >= (
x522 = (* (ptr) &fc521 ), *(float*)&x522
))) {
SOURCE(36513, 32)
{
word pd523;
pd523 = (* (( (ptr) (* (( (ptr) gf←c80788)+297)/* var←c66260 */ ))+9) );
(void) ( *( (fPt) ((* (ptr) pd523 ))))(f←v20180, (* (( (ptr) gf←c80788)+43) ), pd523);
};
SOURCE(36547, 30)
{
word pd524;
pd524 = (* (( (ptr) (* (( (ptr) gf←c80788)+297)/* var←c66260 */ ))+24) );
cyclic←v29732 = (word) ( *( (fPt) ((* (ptr) pd524 ))))(f←v20180, pd524);
};
SOURCE(36579, 52)
if ((0 != cyclic←v29732)) {
SOURCE(36594, 21)
type←v29676 = 3;
}
else {
SOURCE(36615, 16)
type←v29676 = 2;
};
}
else {
SOURCE(36640, 16)
type←v29676 = 2;
};
};
};
};
SOURCE(36658, 63)
{
word var←c72372;
word var←c72404;
word var←c72436;
{
word pd525;
word idx526;
pd525 = (* (( (ptr) (* (( (ptr) gf←c80788)+297)/* var←c66260 */ ))+25) );
var←c72372 = (
idx526 = (word) ((word) ( *( (fPt) ((* (ptr) pd525 ))))(f←v20180, pd525) + 2),
BCK(idx526, 33554431)
);
};
var←c72404 = ((word) var←c72372 << 3);
var←c72436 = XR←NewObject((4 + var←c72404), (* (( (ptr) gf←c80788)+24) ));
(* (ptr) var←c72436 ) = var←c72372;
cps←v29648 = var←c72436;
};
SOURCE(36723, 77)
{
register word i←v29776 = 1;
register word noName←c72468;
noName←c72468 = ((* (ptr) cps←v29648 ) - 1);
if (( (int)i←v29776 >= (int)noName←c72468)) {
goto lab←L100061;
};
lab←L100064: ;
SOURCE(36758, 42)
{
W2 var←c72500;
{
W2 var←c72532;
{
word pd527;
pd527 = (* (( (ptr) (* (( (ptr) gf←c80788)+297)/* var←c66260 */ ))+19) );
(void) ( *( (fPt) ((* (ptr) pd527 ))))((word) &var←c72532, f←v20180, pd527);
};
{
W2 var←c0880;
(void) PointToFP←P6600((word) &var←c0880, var←c72532);
var←c72500 = var←c0880;
};
};
{
word limit528;
(* (( (W2Pt) (( (ptr) cps←v29648)+1))+(
limit528 = (* (ptr) cps←v29648 ),
BCK(i←v29776, limit528)
)) ) = var←c72500;
};
};
i←v29776 = (i←v29776 + 1);
if (( (int)i←v29776 < (int)noName←c72468)) {
goto lab←L100064;
};
lab←L100061: ;
};
SOURCE(36811, 48)
if ( ( (type←v29676 == 3) ? ! XR←EqualWords(&loPoint←v20208, &hiPoint←v20236, 2) : 0 ) ) {
SOURCE(36859, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(36928, 27)
{
W2 var←c72564;
(void) PointToFP←P6600((word) &var←c72564, loPoint←v20208);
{
word limit529;
(* (( (W2Pt) (( (ptr) cps←v29648)+1))+(
limit529 = (* (ptr) cps←v29648 ),
BCK(0, limit529)
)) ) = var←c72564;
};
};
SOURCE(36957, 38)
{
W2 var←c72596;
(void) PointToFP←P6600((word) &var←c72596, hiPoint←v20236);
{
word var←c72628;
var←c72628 = ((* (ptr) cps←v29648 ) - 1);
{
word limit530;
(* (( (W2Pt) (( (ptr) cps←v29648)+1))+(
limit530 = (* (ptr) cps←v29648 ),
BCK(var←c72628, limit530)
)) ) = var←c72596;
};
};
};
SOURCE(36997, 37)
seg←v20308 = (word) MakeCubicSpline←P4620(cps←v29648, type←v29676, 0);
SOURCE(35991, 1043)
return(seg←v20308);
}
static void CSFieldSet←P5460(seg←v39524, controlPointNum←v39552, selected←v39580, selectClass←v39608)
word seg←v39524;
word controlPointNum←v39552;
word selected←v39580;
word selectClass←v39608;
{
register ptr gf←c80820 = (ptr) &globalframe;
word data←v29820;
/* CSFieldSet: */
SOURCE(37040, 364)
SOURCE(37096, 40)
data←v29820 = XR←Narrow((* (( (ptr) seg←v39524)+24) ), (* (( (ptr) gf←c80820)+19) ));
SOURCE(37138, 266)
{
word var←c72660;
word var←c72692;
word var←c72724;
word var←c72756;
word var←c72788;
var←c72660 = selectClass←v39608;
switch (var←c72660) {
case 0:
SOURCE(37172, 51)
{
word limit531;
var←c72692 = (* (( (ptr) data←v29820)+3) );
(* (( (W4Pt) (( (ptr) var←c72692)+1))+(
limit531 = (* (ptr) var←c72692 ),
BCK(controlPointNum←v39552, limit531)
)) ).f0 = selected←v39580;
};
break;
case 1:
SOURCE(37232, 48)
{
word limit532;
var←c72724 = (* (( (ptr) data←v29820)+3) );
(* (( (W4Pt) (( (ptr) var←c72724)+1))+(
limit532 = (* (ptr) var←c72724 ),
BCK(controlPointNum←v39552, limit532)
)) ).f1 = selected←v39580;
};
break;
case 2:
SOURCE(37292, 51)
{
word limit533;
var←c72756 = (* (( (ptr) data←v29820)+3) );
(* (( (W4Pt) (( (ptr) var←c72756)+1))+(
limit533 = (* (ptr) var←c72756 ),
BCK(controlPointNum←v39552, limit533)
)) ).f2 = selected←v39580;
};
break;
case 3:
SOURCE(37354, 50)
{
word limit534;
var←c72788 = (* (( (ptr) data←v29820)+3) );
(* (( (W4Pt) (( (ptr) var←c72788)+1))+(
limit534 = (* (ptr) var←c72788 ),
BCK(controlPointNum←v39552, limit534)
)) ).f3 = selected←v39580;
};
break;
default:
SOURCE(37417, 5)
(void) XR←RaiseUnnamedError();
break;
};
};
}
static word CSFieldGet←P5520(seg←v39668, controlPointNum←v39696, selectClass←v39724)
word seg←v39668;
word controlPointNum←v39696;
word selectClass←v39724;
{
register ptr gf←c80852 = (ptr) &globalframe;
word selected←v39768;
word data←v29864;
/* CSFieldGet: */
SOURCE(37428, 364)
SOURCE(37484, 40)
data←v29864 = XR←Narrow((* (( (ptr) seg←v39668)+24) ), (* (( (ptr) gf←c80852)+19) ));
SOURCE(37526, 266)
{
word var←c72820;
word var←c72852;
word var←c72884;
word var←c72916;
word var←c72948;
var←c72820 = selectClass←v39724;
switch (var←c72820) {
case 0:
SOURCE(37560, 51)
{
word limit535;
var←c72852 = (* (( (ptr) data←v29864)+3) );
selected←v39768 = (* (( (W4Pt) (( (ptr) var←c72852)+1))+(
limit535 = (* (ptr) var←c72852 ),
BCK(controlPointNum←v39696, limit535)
)) ).f0;
};
break;
case 1:
SOURCE(37620, 48)
{
word limit536;
var←c72884 = (* (( (ptr) data←v29864)+3) );
selected←v39768 = (* (( (W4Pt) (( (ptr) var←c72884)+1))+(
limit536 = (* (ptr) var←c72884 ),
BCK(controlPointNum←v39696, limit536)
)) ).f1;
};
break;
case 2:
SOURCE(37680, 51)
{
word limit537;
var←c72916 = (* (( (ptr) data←v29864)+3) );
selected←v39768 = (* (( (W4Pt) (( (ptr) var←c72916)+1))+(
limit537 = (* (ptr) var←c72916 ),
BCK(controlPointNum←v39696, limit537)
)) ).f2;
};
break;
case 3:
SOURCE(37742, 50)
{
word limit538;
var←c72948 = (* (( (ptr) data←v29864)+3) );
selected←v39768 = (* (( (W4Pt) (( (ptr) var←c72948)+1))+(
limit538 = (* (ptr) var←c72948 ),
BCK(controlPointNum←v39696, limit538)
)) ).f3;
};
break;
default:
SOURCE(37805, 5)
(void) XR←RaiseUnnamedError();
break;
};
};
SOURCE(37428, 364)
return(selected←v39768);
}
static void CSControlPointGet←P5580(formal←c0919, seg←v20368, controlPointNum←v20396)
word formal←c0919;
word seg←v20368;
word controlPointNum←v20396;
{
register ptr gf←c80884 = (ptr) &globalframe;
W2 point←v20440;
word data←v29908;
/* CSControlPointGet: */
SOURCE(37816, 393)
SOURCE(37904, 40)
data←v29908 = XR←Narrow((* (( (ptr) seg←v20368)+24) ), (* (( (ptr) gf←c80884)+19) ));
SOURCE(37946, 263)
{
word var←c72980;
var←c72980 = (* (( (ptr) data←v29908)+1) );
switch (var←c72980) {
case 2: case 3:
SOURCE(37993, 45)
if (( (int)controlPointNum←v20396 >= (int)((* (ptr) (* (ptr) data←v29908 ) ) - 2))) {
SOURCE(38038, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(38045, 47)
{
W2 var←c73108;
{
W2 var←c0914;
{
word var←c73044;
word var←c73076;
W2 var←c01383;
var←c73044 = (controlPointNum←v20396 + 1);
var←c73076 = (* (ptr) data←v29908 );
{
word limit539;
var←c01383 = (* (( (W2Pt) (( (ptr) var←c73076)+1))+(
/*1*/ limit539 = (* (ptr) var←c73076 ),
/*1*/ BCK(var←c73044, limit539)
/*1*/ )) );
};
(void) FPToPoint←P6540((word) &var←c0914, var←c01383);
};
var←c73108 = var←c0914;
};
point←v20440 = var←c73108;
/* removed tail goto */
};
break;
case 6:
SOURCE(38110, 45)
if (( (int)controlPointNum←v20396 >= (int)((* (ptr) (* (ptr) data←v29908 ) ) - 4))) {
SOURCE(38155, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(38162, 47)
{
W2 var←c73236;
{
W2 var←c0918;
{
word var←c73172;
word var←c73204;
W2 var←c01384;
var←c73172 = (controlPointNum←v20396 + 3);
var←c73204 = (* (ptr) data←v29908 );
{
word limit540;
var←c01384 = (* (( (W2Pt) (( (ptr) var←c73204)+1))+(
/*1*/ limit540 = (* (ptr) var←c73204 ),
/*1*/ BCK(var←c73172, limit540)
/*1*/ )) );
};
(void) FPToPoint←P6540((word) &var←c0918, var←c01384);
};
var←c73236 = var←c0918;
};
point←v20440 = var←c73236;
/* removed tail goto */
};
break;
default:
SOURCE(38225, 5)
(void) XR←RaiseUnnamedError();
break;
};
};
(* (W2Pt) formal←c0919 ) = point←v20440;
return;
}
static word CSControlPointCount←P5640(seg←v20500)
word seg←v20500;
{
register ptr gf←c80916 = (ptr) &globalframe;
word controlPointCount←v20544;
word data←v29952;
/* CSControlPointCount: */
SOURCE(38236, 361)
SOURCE(38314, 40)
data←v29952 = XR←Narrow((* (( (ptr) seg←v20500)+24) ), (* (( (ptr) gf←c80916)+19) ));
SOURCE(38405, 192)
{
word var←c73268;
var←c73268 = (* (( (ptr) data←v29952)+1) );
switch (var←c73268) {
case 2: case 3:
SOURCE(38450, 25)
{
word idx541;
return((
idx541 = (word) ((* (ptr) (* (ptr) data←v29952 ) ) - 2),
SGNCK(idx541)
));
};
case 6:
SOURCE(38524, 73)
{
word idx542;
return((
idx542 = (word) ((* (ptr) (* (ptr) data←v29952 ) ) - 6),
SGNCK(idx542)
));
};
default:
SOURCE(38597, 5)
(void) XR←RaiseUnnamedError();
break;
};
};
}
static void CSClosestControlPoint←P5700(formal←c0951, seg←v20604, testPoint←v20632, tolerance←v20660)
word formal←c0951;
word seg←v20604;
W2 testPoint←v20632;
word tolerance←v20660;
{
register ptr gf←c80948 = (ptr) &globalframe;
W2 point←v20704;
W2 normal←v20732;
word controlPointNum←v20760;
word success←v20788;
word data←v29996;
word nextDist←v30024;
word minDist←v30052;
/* CSClosestControlPoint: */
SOURCE(38607, 1336)
SOURCE(38607, 1336)
normal←v20732.f0 = (* (ptr) &fc78 );
normal←v20732.f1 = (* (ptr) &fc115 );
SOURCE(38774, 40)
data←v29996 = XR←Narrow((* (( (ptr) seg←v20604)+24) ), (* (( (ptr) gf←c80948)+19) ));
SOURCE(38847, 78)
{
word pd543;
pd543 = (* (( (ptr) (* (ptr) seg←v20604 ))+17) );
if (((word) ( *( (fPt) ((* (ptr) pd543 ))))(seg←v20604, pd543) == 0)) {
SOURCE(38892, 33)
point←v20704.f0 = (* (ptr) &fc78 );
point←v20704.f1 = (* (ptr) &fc78 );
normal←v20732.f0 = (* (ptr) &fc78 );
normal←v20732.f1 = (* (ptr) &fc115 );
controlPointNum←v20760 = 999;
success←v20788 = 0;
goto lab←L100066;
};
};
SOURCE(38927, 73)
{
W2 var←c73364;
(void) CSControlPointGet←P5580((word) &var←c73364, seg←v20604, 0);
{
word pd544;
pd544 = (* (( (ptr) (* (( (ptr) gf←c80948)+300)/* var←c69588 */ ))+21) );
minDist←v30052 = (word) ( *( (fPt) ((* (ptr) pd544 ))))(testPoint←v20632, var←c73364, pd544);
};
};
SOURCE(39002, 19)
controlPointNum←v20760 = 0;
SOURCE(39023, 190)
{
register word i←v30096 = 1;
register word noName←c73396;
word var←c01385;
{
word pd545;
pd545 = (* (( (ptr) (* (ptr) seg←v20604 ))+17) );
noName←c73396 = (word) ( *( (fPt) ((* (ptr) pd545 ))))(seg←v20604, pd545);
};
if (( (int)i←v30096 >= (int)noName←c73396)) {
goto lab←L100067;
};
lab←L100070: ;
SOURCE(39077, 136)
{
word x547;
word x548;
{
W2 var←c73428;
(void) CSControlPointGet←P5580((word) &var←c73428, seg←v20604, SGNCK(i←v30096));
{
word pd546;
pd546 = (* (( (ptr) (* (( (ptr) gf←c80948)+300)/* var←c69588 */ ))+21) );
nextDist←v30024 = (word) ( *( (fPt) ((* (ptr) pd546 ))))(testPoint←v20632, var←c73428, pd546);
};
};
var←c01385 = nextDist←v30024;
if (((
x547 = var←c01385, *(float*)&x547
) < (
x548 = minDist←v30052, *(float*)&x548
))) {
SOURCE(39174, 18)
minDist←v30052 = nextDist←v30024;
SOURCE(39194, 19)
controlPointNum←v20760 = SGNCK(i←v30096);
};
};
i←v30096 = (i←v30096 + 1);
if (( (int)i←v30096 < (int)noName←c73396)) {
goto lab←L100070;
};
lab←L100067: ;
};
SOURCE(39228, 31)
{
word pd549;
pd549 = (* (( (ptr) (* (( (ptr) gf←c80948)+299)/* var←c66836 */ ))+9) );
minDist←v30052 = (word) ( *( (fPt) ((* (ptr) pd549 ))))(minDist←v30052, pd549);
};
SOURCE(39261, 32)
{
word x550;
word x551;
success←v20788 = ((
x550 = minDist←v30052, *(float*)&x550
) <= (
x551 = tolerance←v20660, *(float*)&x551
));
};
SOURCE(39295, 47)
(void) CSControlPointGet←P5580((word) &point←v20704, seg←v20604, controlPointNum←v20760);
SOURCE(39345, 598)
if ((0 != success←v20788)) {
SOURCE(39363, 580)
if (((* (( (ptr) data←v29996)+1) ) == 2) || ((* (( (ptr) data←v29996)+1) ) == 3)) {
SOURCE(39417, 529)
{
W2 normal1←v30140;
W2 normal2←v30168;
W2 tangent←v30196;
W2 direction←v30224;
W2 p2←v30252;
W2 p3←v30280;
word var←c73460;
word var←c73492;
SOURCE(39479, 41)
{
word limit552;
var←c73460 = (* (( (ptr) (* (( (ptr) data←v29996)+2) ))+4) );
p2←v30252 = (* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c73460)+1))+(
limit552 = (* (ptr) var←c73460 ),
BCK(controlPointNum←v20760, limit552)
)))+4) );
};
SOURCE(39522, 41)
{
word limit553;
var←c73492 = (* (( (ptr) (* (( (ptr) data←v29996)+2) ))+4) );
p3←v30280 = (* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c73492)+1))+(
limit553 = (* (ptr) var←c73492 ),
BCK(controlPointNum←v20760, limit553)
)))+6) );
};
SOURCE(39565, 43)
{
word pd554;
pd554 = (* (( (ptr) (* (( (ptr) gf←c80948)+300)/* var←c69588 */ ))+22) );
(void) ( *( (fPt) ((* (ptr) pd554 ))))((word) &tangent←v30196, p3←v30280, p2←v30252, pd554);
};
SOURCE(39610, 21)
normal1←v30140.f0 = tangent←v30196.f1;
SOURCE(39633, 22)
{
word x555;
*(float*)&normal1←v30140.f1 = - (
x555 = tangent←v30196.f0, *(float*)&x555
);
};
SOURCE(39657, 22)
{
word x556;
*(float*)&normal2←v30168.f0 = - (
x556 = tangent←v30196.f1, *(float*)&x556
);
};
SOURCE(39681, 21)
normal2←v30168.f1 = tangent←v30196.f0;
SOURCE(39704, 56)
{
word pd557;
pd557 = (* (( (ptr) (* (( (ptr) gf←c80948)+300)/* var←c69588 */ ))+22) );
(void) ( *( (fPt) ((* (ptr) pd557 ))))((word) &direction←v30224, point←v20704, testPoint←v20632, pd557);
};
SOURCE(39762, 181)
{
float tf558;
word pd559;
word x560;
float tf561;
word pd562;
word x563;
pd559 = (* (( (ptr) (* (( (ptr) gf←c80948)+300)/* var←c69588 */ ))+9) );
pd562 = (* (( (ptr) (* (( (ptr) gf←c80948)+300)/* var←c69588 */ ))+9) );
if ((FABS((
x560 = (word) ( *( (fPt) ((* (ptr) pd559 ))))(normal1←v30140, direction←v30224, pd559), *(float*)&x560
), tf558) < FABS((
x563 = (word) ( *( (fPt) ((* (ptr) pd562 ))))(normal2←v30168, direction←v30224, pd562), *(float*)&x563
), tf561))) {
SOURCE(39900, 17)
normal←v20732 = normal1←v30140;
}
else {
SOURCE(39927, 16)
normal←v20732 = normal2←v30168;
};
};
};
};
};
/* removed tail goto */
lab←L100066: ;
(* (W2Pt) formal←c0951 ) = point←v20704;
(* (W2Pt) (( (ptr) formal←c0951)+2) ) = normal←v20732;
(* (( (ptr) formal←c0951)+4) ) = controlPointNum←v20760;
(* (( (ptr) formal←c0951)+5) ) = success←v20788;
return;
}
static word CSAsPolyline←P5760(seg←v20952, tolerance←v20980)
word seg←v20952;
word tolerance←v20980;
{
register ptr gf←c80980 = (ptr) &globalframe;
word polyline←v21024;
word data←v30324;
word polylines←v30352 = 0;
word lineCount←v30380 = 0;
word index←v30408 = 0;
/* CSAsPolyline: */
SOURCE(40083, 705)
SOURCE(40083, 705)
polyline←v21024 = 0;
SOURCE(40186, 40)
data←v30324 = XR←Narrow((* (( (ptr) seg←v20952)+24) ), (* (( (ptr) gf←c80980)+19) ));
SOURCE(40278, 54)
{
word var←c73524;
word var←c73556;
word var←c73588;
{
word idx564;
var←c73524 = (
idx564 = (* (ptr) (* (( (ptr) (* (( (ptr) data←v30324)+2) ))+4) ) ),
BCK(idx564, 67108863)
);
};
var←c73556 = ((word) var←c73524 << 2);
var←c73588 = XR←NewObject((4 + var←c73556), (* (( (ptr) gf←c80980)+21) ));
(* (ptr) var←c73588 ) = var←c73524;
polylines←v30352 = var←c73588;
};
SOURCE(40334, 157)
{
register word i←v30452 = 0;
register word noName←c73620;
noName←c73620 = (* (ptr) (* (( (ptr) (* (( (ptr) data←v30324)+2) ))+4) ) );
if ((i←v30452 >= noName←c73620)) {
goto lab←L100071;
};
lab←L100074: ;
SOURCE(40380, 66)
{
word var←c73652;
{
word var←c73684;
W8 var←c01386;
var←c73684 = (* (( (ptr) (* (( (ptr) data←v30324)+2) ))+4) );
{
word limit565;
var←c01386 = (* (( (W8Pt) (( (ptr) var←c73684)+1))+(
limit565 = (* (ptr) var←c73684 ),
BCK(i←v30452, limit565)
)) );
};
{
word pd566;
pd566 = (* (( (ptr) (* (( (ptr) gf←c80980)+301)/* var←c69812 */ ))+6) );
var←c73652 = (word) ( *( (fPt) ((* (ptr) pd566 ))))(var←c01386, tolerance←v20980, pd566);
};
};
{
word limit567;
(* ((( (ptr) polylines←v30352)+1)+(
limit567 = (* (ptr) polylines←v30352 ),
BCK(i←v30452, limit567)
)) ) = var←c73652;
};
};
SOURCE(40448, 43)
{
word limit568;
word idx569;
lineCount←v30380 = (
idx569 = (word) ((lineCount←v30380 + (* (ptr) (* ((( (ptr) polylines←v30352)+1)+(
limit568 = (* (ptr) polylines←v30352 ),
BCK(i←v30452, limit568)
)) ) )) - 1),
SGNCK(idx569)
);
};
i←v30452 = (i←v30452 + 1);
if ((i←v30452 < noName←c73620)) {
goto lab←L100074;
};
lab←L100071: ;
};
SOURCE(40502, 59)
{
word var←c73716;
word var←c73748;
word var←c73780;
var←c73716 = (lineCount←v30380 + 1);
var←c73748 = ((word) var←c73716 << 3);
var←c73780 = XR←NewObject((8 + var←c73748), (* (( (ptr) gf←c80980)+25) ));
(* (( (ptr) var←c73780)+1) ) = var←c73716;
polyline←v21024 = var←c73780;
};
SOURCE(40563, 29)
(* (ptr) polyline←v21024 ) = (lineCount←v30380 + 1);
SOURCE(40594, 33)
{
word var←c73812;
{
word limit570;
var←c73812 = (* ((( (ptr) polylines←v30352)+1)+(
limit570 = (* (ptr) polylines←v30352 ),
BCK(0, limit570)
)) );
};
{
word limit571;
word limit572;
(* (( (W2Pt) (( (ptr) polyline←v21024)+2))+(
limit571 = (* (( (ptr) polyline←v21024)+1) ),
BCK(index←v30408, limit571)
)) ) = (* (( (W2Pt) (( (ptr) var←c73812)+2))+(
limit572 = (* (( (ptr) var←c73812)+1) ),
BCK(0, limit572)
)) );
};
};
SOURCE(40629, 17)
index←v30408 = (index←v30408 + 1);
SOURCE(40648, 140)
{
register word i←v30496 = 0;
register word noName←c73844;
noName←c73844 = (* (ptr) (* (( (ptr) (* (( (ptr) data←v30324)+2) ))+4) ) );
if ((i←v30496 >= noName←c73844)) {
goto lab←L100075;
};
lab←L100078: ;
SOURCE(40694, 94)
{
register word j←v30540 = 1;
register word noName←c73876;
{
word limit573;
noName←c73876 = (* (ptr) (* ((( (ptr) polylines←v30352)+1)+(
limit573 = (* (ptr) polylines←v30352 ),
BCK(i←v30496, limit573)
)) ) );
};
if ((j←v30540 >= noName←c73876)) {
goto lab←L100079;
};
lab←L100082: ;
SOURCE(40736, 33)
{
word var←c73908;
{
word limit574;
var←c73908 = (* ((( (ptr) polylines←v30352)+1)+(
limit574 = (* (ptr) polylines←v30352 ),
BCK(i←v30496, limit574)
)) );
};
{
word limit575;
word limit576;
(* (( (W2Pt) (( (ptr) polyline←v21024)+2))+(
limit575 = (* (( (ptr) polyline←v21024)+1) ),
BCK(index←v30408, limit575)
)) ) = (* (( (W2Pt) (( (ptr) var←c73908)+2))+(
limit576 = (* (( (ptr) var←c73908)+1) ),
BCK(j←v30540, limit576)
)) );
};
};
SOURCE(40771, 17)
index←v30408 = (index←v30408 + 1);
j←v30540 = (j←v30540 + 1);
if ((j←v30540 < noName←c73876)) {
goto lab←L100082;
};
lab←L100079: ;
};
i←v30496 = (i←v30496 + 1);
if ((i←v30496 < noName←c73844)) {
goto lab←L100078;
};
lab←L100075: ;
};
SOURCE(40083, 705)
return(polyline←v21024);
}
static void CSCPNormal←P5820(formal←c0991, seg←v21084, controlPointNum←v21112, cPoint←v21140, testPoint←v21168)
word formal←c0991;
word seg←v21084;
word controlPointNum←v21112;
W2 cPoint←v21140;
W2 testPoint←v21168;
{
register ptr gf←c81012 = (ptr) &globalframe;
W2 normal←v21212;
word data←v30584;
/* CSCPNormal: */
SOURCE(40812, 741)
SOURCE(40812, 741)
normal←v21212.f0 = (* (ptr) &fc78 );
normal←v21212.f1 = (* (ptr) &fc115 );
SOURCE(40930, 40)
data←v30584 = XR←Narrow((* (( (ptr) seg←v21084)+24) ), (* (( (ptr) gf←c81012)+19) ));
SOURCE(40972, 581)
if (((* (( (ptr) data←v30584)+1) ) == 2) || ((* (( (ptr) data←v30584)+1) ) == 3)) {
SOURCE(41026, 530)
{
W2 normal1←v30628;
W2 normal2←v30656;
W2 tangent←v30684;
W2 direction←v30712;
W2 p2←v30740;
W2 p3←v30768;
word var←c73940;
word var←c73972;
SOURCE(41088, 41)
{
word limit577;
var←c73940 = (* (( (ptr) (* (( (ptr) data←v30584)+2) ))+4) );
p2←v30740 = (* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c73940)+1))+(
limit577 = (* (ptr) var←c73940 ),
BCK(controlPointNum←v21112, limit577)
)))+4) );
};
SOURCE(41131, 41)
{
word limit578;
var←c73972 = (* (( (ptr) (* (( (ptr) data←v30584)+2) ))+4) );
p3←v30768 = (* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c73972)+1))+(
limit578 = (* (ptr) var←c73972 ),
BCK(controlPointNum←v21112, limit578)
)))+6) );
};
SOURCE(41174, 43)
{
word pd579;
pd579 = (* (( (ptr) (* (( (ptr) gf←c81012)+300)/* var←c69588 */ ))+22) );
(void) ( *( (fPt) ((* (ptr) pd579 ))))((word) &tangent←v30684, p3←v30768, p2←v30740, pd579);
};
SOURCE(41219, 21)
normal1←v30628.f0 = tangent←v30684.f1;
SOURCE(41242, 22)
{
word x580;
*(float*)&normal1←v30628.f1 = - (
x580 = tangent←v30684.f0, *(float*)&x580
);
};
SOURCE(41266, 22)
{
word x581;
*(float*)&normal2←v30656.f0 = - (
x581 = tangent←v30684.f1, *(float*)&x581
);
};
SOURCE(41290, 21)
normal2←v30656.f1 = tangent←v30684.f0;
SOURCE(41313, 57)
{
word pd582;
pd582 = (* (( (ptr) (* (( (ptr) gf←c81012)+300)/* var←c69588 */ ))+22) );
(void) ( *( (fPt) ((* (ptr) pd582 ))))((word) &direction←v30712, cPoint←v21140, testPoint←v21168, pd582);
};
SOURCE(41372, 181)
{
float tf583;
word pd584;
word x585;
float tf586;
word pd587;
word x588;
pd584 = (* (( (ptr) (* (( (ptr) gf←c81012)+300)/* var←c69588 */ ))+9) );
pd587 = (* (( (ptr) (* (( (ptr) gf←c81012)+300)/* var←c69588 */ ))+9) );
if ((FABS((
x585 = (word) ( *( (fPt) ((* (ptr) pd584 ))))(normal1←v30628, direction←v30712, pd584), *(float*)&x585
), tf583) < FABS((
x588 = (word) ( *( (fPt) ((* (ptr) pd587 ))))(normal2←v30656, direction←v30712, pd587), *(float*)&x588
), tf586))) {
SOURCE(41510, 17)
normal←v21212 = normal1←v30628;
}
else {
SOURCE(41537, 16)
normal←v21212 = normal2←v30656;
};
};
};
};
/* removed tail goto */
(* (W2Pt) formal←c0991 ) = normal←v21212;
return;
}
static void CSJointNormal←P5880(formal←c01017, seg←v21272, joint←v21300, point←v21328, hi←v21356)
word formal←c01017;
word seg←v21272;
W2 joint←v21300;
W2 point←v21328;
word hi←v21356;
{
register ptr gf←c81044 = (ptr) &globalframe;
W2 normal←v21400;
W2 tangent←v21428;
W2 normal1←v30812;
W2 normal2←v30840;
W2 direction←v30868;
W2 p0←v30896;
W2 p1←v30924;
W2 p2←v30952;
W2 p3←v30980;
word offset←v31008;
word data←v31036;
word path←v31064;
/* CSJointNormal: */
SOURCE(41564, 1038)
SOURCE(41564, 1038)
normal←v21400.f0 = (* (ptr) &fc78 );
normal←v21400.f1 = (* (ptr) &fc115 );
SOURCE(41564, 1038)
tangent←v21428.f0 = (* (ptr) &fc78 );
tangent←v21428.f1 = (* (ptr) &fc115 );
SOURCE(41747, 40)
data←v31036 = XR←Narrow((* (( (ptr) seg←v21272)+24) ), (* (( (ptr) gf←c81044)+19) ));
SOURCE(41789, 36)
path←v31064 = (word) GetPath←P6780(seg←v21272);
{
word var←c74004;
word var←c74036;
word var←c74068;
word var←c74100;
word var←c74132;
word var←c74164;
SOURCE(41827, 58)
if (((* (( (ptr) data←v31036)+1) ) == 6)) {
SOURCE(41856, 10)
offset←v31008 = 1;
}
else {
SOURCE(41875, 10)
offset←v31008 = 0;
};
SOURCE(41890, 31)
{
word limit589;
var←c74004 = (* (( (ptr) path←v31064)+4) );
p0←v30896 = (* (W2Pt) (( (W8Pt) (( (ptr) var←c74004)+1))+(
limit589 = (* (ptr) var←c74004 ),
BCK(offset←v31008, limit589)
)) );
};
SOURCE(41923, 31)
{
word limit590;
var←c74036 = (* (( (ptr) path←v31064)+4) );
p1←v30924 = (* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c74036)+1))+(
limit590 = (* (ptr) var←c74036 ),
BCK(offset←v31008, limit590)
)))+2) );
};
SOURCE(41956, 52)
{
word limit591;
var←c74068 = (((* (ptr) (* (( (ptr) path←v31064)+4) ) ) - 1) - offset←v31008);
var←c74100 = (* (( (ptr) path←v31064)+4) );
p2←v30952 = (* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c74100)+1))+(
limit591 = (* (ptr) var←c74100 ),
BCK(var←c74068, limit591)
)))+4) );
};
SOURCE(42010, 52)
{
word limit592;
var←c74132 = (((* (ptr) (* (( (ptr) path←v31064)+4) ) ) - 1) - offset←v31008);
var←c74164 = (* (( (ptr) path←v31064)+4) );
p3←v30980 = (* (W2Pt) (( (ptr) (( (W8Pt) (( (ptr) var←c74164)+1))+(
limit592 = (* (ptr) var←c74164 ),
BCK(var←c74132, limit592)
)))+6) );
};
SOURCE(42064, 298)
if ((0 != hi←v21356)) {
SOURCE(42077, 43)
{
word pd593;
pd593 = (* (( (ptr) (* (( (ptr) gf←c81044)+300)/* var←c69588 */ ))+22) );
(void) ( *( (fPt) ((* (ptr) pd593 ))))((word) &tangent←v21428, p3←v30980, p2←v30952, pd593);
};
SOURCE(42122, 21)
normal1←v30812.f0 = tangent←v21428.f1;
SOURCE(42145, 22)
{
word x594;
*(float*)&normal1←v30812.f1 = - (
x594 = tangent←v21428.f0, *(float*)&x594
);
};
SOURCE(42169, 22)
{
word x595;
*(float*)&normal2←v30840.f0 = - (
x595 = tangent←v21428.f1, *(float*)&x595
);
};
SOURCE(42193, 21)
normal2←v30840.f1 = tangent←v21428.f0;
}
else {
SOURCE(42225, 43)
{
word pd596;
pd596 = (* (( (ptr) (* (( (ptr) gf←c81044)+300)/* var←c69588 */ ))+22) );
(void) ( *( (fPt) ((* (ptr) pd596 ))))((word) &tangent←v21428, p0←v30896, p1←v30924, pd596);
};
SOURCE(42270, 21)
normal1←v30812.f0 = tangent←v21428.f1;
SOURCE(42293, 22)
{
word x597;
*(float*)&normal1←v30812.f1 = - (
x597 = tangent←v21428.f0, *(float*)&x597
);
};
SOURCE(42317, 22)
{
word x598;
*(float*)&normal2←v30840.f0 = - (
x598 = tangent←v21428.f1, *(float*)&x598
);
};
SOURCE(42341, 21)
normal2←v30840.f1 = tangent←v21428.f0;
};
SOURCE(42367, 52)
{
word pd599;
pd599 = (* (( (ptr) (* (( (ptr) gf←c81044)+300)/* var←c69588 */ ))+22) );
(void) ( *( (fPt) ((* (ptr) pd599 ))))((word) &direction←v30868, joint←v21300, point←v21328, pd599);
};
SOURCE(42421, 181)
{
float tf600;
word pd601;
word x602;
float tf603;
word pd604;
word x605;
pd601 = (* (( (ptr) (* (( (ptr) gf←c81044)+300)/* var←c69588 */ ))+9) );
pd604 = (* (( (ptr) (* (( (ptr) gf←c81044)+300)/* var←c69588 */ ))+9) );
if ((FABS((
x602 = (word) ( *( (fPt) ((* (ptr) pd601 ))))(normal1←v30812, direction←v30868, pd601), *(float*)&x602
), tf600) < FABS((
x605 = (word) ( *( (fPt) ((* (ptr) pd604 ))))(normal2←v30840, direction←v30868, pd604), *(float*)&x605
), tf603))) {
SOURCE(42559, 17)
normal←v21400 = normal1←v30812;
}
else {
SOURCE(42586, 16)
normal←v21400 = normal2←v30840;
};
};
};
/* removed tail goto */
(* (W2Pt) formal←c01017 ) = normal←v21400;
(* (W2Pt) (( (ptr) formal←c01017)+2) ) = tangent←v21428;
return;
}
static void CSAddJoint←P5940(formal←c01059, seg←v21488, pos←v21516)
word formal←c01059;
word seg←v21488;
W2 pos←v21516;
{
register ptr gf←c81076 = (ptr) &globalframe;
word seg1←v21560;
word seg2←v21588;
word data←v31108;
word data1←v31136 = 0;
word data2←v31164 = 0;
word oldCPCount←v31192;
word nearest←v31220;
word cpsInSeg1←v31248;
word cpsInSeg2←v31276;
word coeffs←v31304 = 0;
/* CSAddJoint: */
SOURCE(42609, 1657)
SOURCE(42609, 1657)
seg1←v21560 = 0;
SOURCE(42609, 1657)
seg2←v21588 = 0;
SOURCE(42687, 40)
data←v31108 = XR←Narrow((* (( (ptr) seg←v21488)+24) ), (* (( (ptr) gf←c81076)+19) ));
SOURCE(42760, 50)
{
word pd606;
pd606 = (* (( (ptr) (* (ptr) seg←v21488 ))+17) );
oldCPCount←v31192 = (word) ( *( (fPt) ((* (ptr) pd606 ))))(seg←v21488, pd606);
};
SOURCE(42812, 46)
nearest←v31220 = (word) FindNearestPath←P6660((* (( (ptr) data←v31108)+2) ), pos←v21516);
SOURCE(42860, 47)
cpsInSeg1←v31248 = (word) PathNumToCPIndex←P6720(seg←v21488, nearest←v31220);
SOURCE(42951, 39)
cpsInSeg2←v31276 = (oldCPCount←v31192 - cpsInSeg1←v31248);
SOURCE(43029, 23)
seg1←v21560 = (word) CopySegment←P180(seg←v21488);
SOURCE(43054, 23)
seg2←v21588 = (word) CopySegment←P180(seg←v21488);
SOURCE(43079, 25)
data1←v31136 = XR←Narrow((* (( (ptr) seg1←v21560)+24) ), (* (( (ptr) gf←c81076)+19) ));
SOURCE(43106, 25)
data2←v31164 = XR←Narrow((* (( (ptr) seg2←v21588)+24) ), (* (( (ptr) gf←c81076)+19) ));
SOURCE(43133, 62)
if (((* (( (ptr) data←v31108)+1) ) == 3)) {
SOURCE(43160, 35)
(* (( (ptr) data2←v31164)+1) ) = 2;
(* (( (ptr) data1←v31136)+1) ) = 2;
};
SOURCE(43226, 72)
{
word var←c74196;
{
word var←c74228;
word var←c74260;
word var←c74292;
{
word idx607;
var←c74228 = (
idx607 = (word) ((* (ptr) (* (ptr) data←v31108 ) ) - cpsInSeg2←v31276),
BCK(idx607, 33554431)
);
};
var←c74260 = ((word) var←c74228 << 3);
var←c74292 = XR←NewObject((4 + var←c74260), (* (( (ptr) gf←c81076)+24) ));
(* (ptr) var←c74292 ) = var←c74228;
var←c74196 = var←c74292;
};
(* (ptr) data1←v31136 ) = var←c74196;
};
SOURCE(43300, 56)
{
word var←c74324;
{
word var←c74356;
word var←c74388;
word var←c74420;
var←c74356 = BCK(cpsInSeg1←v31248, 16777215);
var←c74388 = ((word) var←c74356 << 4);
var←c74420 = XR←NewObject((4 + var←c74388), (* (( (ptr) gf←c81076)+23) ));
(* (ptr) var←c74420 ) = var←c74356;
var←c74324 = var←c74420;
};
(* (( (ptr) data1←v31136)+3) ) = var←c74324;
};
SOURCE(43358, 33)
(void) CSEndPointSet←P6180(seg1←v21560, 1, (* (W2Pt) (( (ptr) seg←v21488)+9) ));
SOURCE(43393, 31)
(void) CSEndPointSet←P6180(seg1←v21560, 0, pos←v21516);
SOURCE(43426, 13)
(* (W2Pt) (( (ptr) seg1←v21560)+11) ) = pos←v21516;
SOURCE(43441, 128)
{
register word i←v31348 = 0;
register word noName←c74452;
noName←c74452 = cpsInSeg1←v31248;
if (( (int)i←v31348 >= (int)noName←c74452)) {
goto lab←L100086;
};
lab←L100089: ;
SOURCE(43472, 53)
{
W2 var←c74484;
(void) CSControlPointGet←P5580((word) &var←c74484, seg←v21488, SGNCK(i←v31348));
(void) CSControlPointSet←P6120(seg1←v21560, SGNCK(i←v31348), var←c74484);
};
SOURCE(43527, 42)
{
word var←c74548;
var←c74548 = (* (( (ptr) data1←v31136)+3) );
{
word var←c74516;
var←c74516 = (* (( (ptr) data←v31108)+3) );
{
word limit608;
word limit609;
(* (( (W4Pt) (( (ptr) var←c74548)+1))+(
limit608 = (* (ptr) var←c74548 ),
BCK(i←v31348, limit608)
)) ) = (* (( (W4Pt) (( (ptr) var←c74516)+1))+(
limit609 = (* (ptr) var←c74516 ),
BCK(i←v31348, limit609)
)) );
};
};
};
i←v31348 = (i←v31348 + 1);
if (( (int)i←v31348 < (int)noName←c74452)) {
goto lab←L100089;
};
lab←L100086: ;
};
SOURCE(43580, 55)
{
word pd610;
pd610 = (* (( (ptr) (* (( (ptr) gf←c81076)+290)/* var←c65460 */ ))+8) );
coeffs←v31304 = (word) ( *( (fPt) ((* (ptr) pd610 ))))((* (ptr) data1←v31136 ), (* (( (ptr) data1←v31136)+1) ), pd610);
};
SOURCE(43637, 52)
{
word pd611;
pd611 = (* (( (ptr) (* (( (ptr) gf←c81076)+291)/* var←c65492 */ ))+4) );
(* (( (ptr) data1←v31136)+2) ) = (word) ( *( (fPt) ((* (ptr) pd611 ))))(coeffs←v31304, 0, pd611);
};
SOURCE(43691, 72)
{
word var←c74580;
{
word var←c74612;
word var←c74644;
word var←c74676;
{
word idx612;
var←c74612 = (
idx612 = (word) ((* (ptr) (* (ptr) data←v31108 ) ) - cpsInSeg1←v31248),
BCK(idx612, 33554431)
);
};
var←c74644 = ((word) var←c74612 << 3);
var←c74676 = XR←NewObject((4 + var←c74644), (* (( (ptr) gf←c81076)+24) ));
(* (ptr) var←c74676 ) = var←c74612;
var←c74580 = var←c74676;
};
(* (ptr) data2←v31164 ) = var←c74580;
};
SOURCE(43765, 56)
{
word var←c74708;
{
word var←c74740;
word var←c74772;
word var←c74804;
var←c74740 = BCK(cpsInSeg2←v31276, 16777215);
var←c74772 = ((word) var←c74740 << 4);
var←c74804 = XR←NewObject((4 + var←c74772), (* (( (ptr) gf←c81076)+23) ));
(* (ptr) var←c74804 ) = var←c74740;
var←c74708 = var←c74804;
};
(* (( (ptr) data2←v31164)+3) ) = var←c74708;
};
SOURCE(43823, 30)
(void) CSEndPointSet←P6180(seg2←v21588, 1, pos←v21516);
SOURCE(43855, 34)
(void) CSEndPointSet←P6180(seg2←v21588, 0, (* (W2Pt) (( (ptr) seg←v21488)+11) ));
SOURCE(43891, 13)
(* (W2Pt) (( (ptr) seg2←v21588)+9) ) = pos←v21516;
SOURCE(43906, 157)
{
register word i←v31392;
register word noName←c74836;
i←v31392 = cpsInSeg1←v31248;
noName←c74836 = oldCPCount←v31192;
if (( (int)i←v31392 >= (int)noName←c74836)) {
goto lab←L100090;
};
lab←L100093: ;
SOURCE(43946, 63)
{
W2 var←c74868;
(void) CSControlPointGet←P5580((word) &var←c74868, seg←v21488, SGNCK(i←v31392));
(void) CSControlPointSet←P6120(seg2←v21588, SGNCK((i←v31392 - cpsInSeg1←v31248)), var←c74868);
};
SOURCE(44011, 52)
{
word var←c74932;
word var←c74964;
var←c74932 = (i←v31392 - cpsInSeg1←v31248);
var←c74964 = (* (( (ptr) data2←v31164)+3) );
{
word var←c74900;
var←c74900 = (* (( (ptr) data←v31108)+3) );
{
word limit613;
word limit614;
(* (( (W4Pt) (( (ptr) var←c74964)+1))+(
limit613 = (* (ptr) var←c74964 ),
BCK(var←c74932, limit613)
)) ) = (* (( (W4Pt) (( (ptr) var←c74900)+1))+(
limit614 = (* (ptr) var←c74900 ),
BCK(i←v31392, limit614)
)) );
};
};
};
i←v31392 = (i←v31392 + 1);
if (( (int)i←v31392 < (int)noName←c74836)) {
goto lab←L100093;
};
lab←L100090: ;
};
SOURCE(44074, 55)
{
word pd615;
pd615 = (* (( (ptr) (* (( (ptr) gf←c81076)+290)/* var←c65460 */ ))+8) );
coeffs←v31304 = (word) ( *( (fPt) ((* (ptr) pd615 ))))((* (ptr) data2←v31164 ), (* (( (ptr) data2←v31164)+1) ), pd615);
};
SOURCE(44131, 52)
{
word pd616;
pd616 = (* (( (ptr) (* (( (ptr) gf←c81076)+291)/* var←c65492 */ ))+4) );
(* (( (ptr) data2←v31164)+2) ) = (word) ( *( (fPt) ((* (ptr) pd616 ))))(coeffs←v31304, 0, pd616);
};
SOURCE(44185, 22)
(void) UpdateCSBoundBox←P4860(seg1←v21560);
SOURCE(44244, 22)
(void) UpdateCSBoundBox←P4860(seg2←v21588);
/* removed tail goto */
(* (ptr) formal←c01059 ) = seg1←v21560;
(* (( (ptr) formal←c01059)+1) ) = seg2←v21588;
return;
}
static word CSControlPointAdd←P6000(seg←v21648, pos←v21676)
word seg←v21648;
W2 pos←v21676;
{
register ptr gf←c81108 = (ptr) &globalframe;
word var←c21720;
word data←v31436;
word oldCPCount←v31464;
word nearest←v31492;
word newCPIndex←v31520;
word newSeg←v31548;
word newSegData←v31576;
word coeffs←v31604 = 0;
/* CSControlPointAdd: */
SOURCE(44307, 1465)
SOURCE(44387, 40)
data←v31436 = XR←Narrow((* (( (ptr) seg←v21648)+24) ), (* (( (ptr) gf←c81108)+19) ));
SOURCE(44429, 50)
{
word pd617;
pd617 = (* (( (ptr) (* (ptr) seg←v21648 ))+17) );
oldCPCount←v31464 = (word) ( *( (fPt) ((* (ptr) pd617 ))))(seg←v21648, pd617);
};
SOURCE(44481, 46)
nearest←v31492 = (word) FindNearestPath←P6660((* (( (ptr) data←v31436)+2) ), pos←v21676);
SOURCE(44529, 48)
newCPIndex←v31520 = (word) PathNumToCPIndex←P6720(seg←v21648, nearest←v31492);
SOURCE(44664, 34)
newSeg←v31548 = (word) CopySegment←P180(seg←v21648);
SOURCE(44700, 49)
newSegData←v31576 = XR←Narrow((* (( (ptr) newSeg←v31548)+24) ), (* (( (ptr) gf←c81108)+19) ));
SOURCE(44788, 69)
{
word var←c74996;
{
word var←c75028;
word var←c75060;
word var←c75092;
{
word idx618;
var←c75028 = (
idx618 = (word) ((* (ptr) (* (ptr) data←v31436 ) ) + 1),
BCK(idx618, 33554431)
);
};
var←c75060 = ((word) var←c75028 << 3);
var←c75092 = XR←NewObject((4 + var←c75060), (* (( (ptr) gf←c81108)+24) ));
(* (ptr) var←c75092 ) = var←c75028;
var←c74996 = var←c75092;
};
(* (ptr) newSegData←v31576 ) = var←c74996;
};
SOURCE(44859, 64)
{
word var←c75124;
{
word var←c75156;
word var←c75188;
word var←c75220;
var←c75156 = BCK((oldCPCount←v31464 + 1), 16777215);
var←c75188 = ((word) var←c75156 << 4);
var←c75220 = XR←NewObject((4 + var←c75188), (* (( (ptr) gf←c81108)+23) ));
(* (ptr) var←c75220 ) = var←c75156;
var←c75124 = var←c75220;
};
(* (( (ptr) newSegData←v31576)+3) ) = var←c75124;
};
SOURCE(44925, 35)
(void) CSEndPointSet←P6180(newSeg←v31548, 1, (* (W2Pt) (( (ptr) seg←v21648)+9) ));
SOURCE(44962, 36)
(void) CSEndPointSet←P6180(newSeg←v31548, 0, (* (W2Pt) (( (ptr) seg←v21648)+11) ));
SOURCE(45000, 136)
{
register word i←v31648 = 0;
register word noName←c75252;
noName←c75252 = newCPIndex←v31520;
if (( (int)i←v31648 >= (int)noName←c75252)) {
goto lab←L100094;
};
lab←L100097: ;
SOURCE(45032, 55)
{
W2 var←c75284;
(void) CSControlPointGet←P5580((word) &var←c75284, seg←v21648, SGNCK(i←v31648));
(void) CSControlPointSet←P6120(newSeg←v31548, SGNCK(i←v31648), var←c75284);
};
SOURCE(45089, 47)
{
word var←c75348;
var←c75348 = (* (( (ptr) newSegData←v31576)+3) );
{
word var←c75316;
var←c75316 = (* (( (ptr) data←v31436)+3) );
{
word limit619;
word limit620;
(* (( (W4Pt) (( (ptr) var←c75348)+1))+(
limit619 = (* (ptr) var←c75348 ),
BCK(i←v31648, limit619)
)) ) = (* (( (W4Pt) (( (ptr) var←c75316)+1))+(
limit620 = (* (ptr) var←c75316 ),
BCK(i←v31648, limit620)
)) );
};
};
};
i←v31648 = (i←v31648 + 1);
if (( (int)i←v31648 < (int)noName←c75252)) {
goto lab←L100097;
};
lab←L100094: ;
};
SOURCE(45147, 42)
(void) CSControlPointSet←P6120(newSeg←v31548, SGNCK(newCPIndex←v31520), pos←v21676);
SOURCE(45191, 44)
(void) CSFieldSet←P5460(newSeg←v31548, SGNCK(newCPIndex←v31520), 1, 0);
SOURCE(45273, 42)
(void) CSFieldSet←P5460(newSeg←v31548, SGNCK(newCPIndex←v31520), 0, 1);
SOURCE(45317, 45)
(void) CSFieldSet←P5460(newSeg←v31548, SGNCK(newCPIndex←v31520), 0, 2);
SOURCE(45364, 44)
(void) CSFieldSet←P5460(newSeg←v31548, SGNCK(newCPIndex←v31520), 0, 3);
SOURCE(45410, 149)
{
register word i←v31692;
register word noName←c75380;
i←v31692 = newCPIndex←v31520;
noName←c75380 = oldCPCount←v31464;
if (( (int)i←v31692 >= (int)noName←c75380)) {
goto lab←L100098;
};
lab←L100101: ;
SOURCE(45451, 57)
{
W2 var←c75412;
(void) CSControlPointGet←P5580((word) &var←c75412, seg←v21648, SGNCK(i←v31692));
(void) CSControlPointSet←P6120(newSeg←v31548, SGNCK((i←v31692 + 1)), var←c75412);
};
SOURCE(45510, 49)
{
word var←c75476;
word var←c75508;
var←c75476 = (i←v31692 + 1);
var←c75508 = (* (( (ptr) newSegData←v31576)+3) );
{
word var←c75444;
var←c75444 = (* (( (ptr) data←v31436)+3) );
{
word limit621;
word limit622;
(* (( (W4Pt) (( (ptr) var←c75508)+1))+(
limit621 = (* (ptr) var←c75508 ),
BCK(var←c75476, limit621)
)) ) = (* (( (W4Pt) (( (ptr) var←c75444)+1))+(
limit622 = (* (ptr) var←c75444 ),
BCK(i←v31692, limit622)
)) );
};
};
};
i←v31692 = (i←v31692 + 1);
if (( (int)i←v31692 < (int)noName←c75380)) {
goto lab←L100101;
};
lab←L100098: ;
};
SOURCE(45570, 65)
{
word pd623;
pd623 = (* (( (ptr) (* (( (ptr) gf←c81108)+290)/* var←c65460 */ ))+8) );
coeffs←v31604 = (word) ( *( (fPt) ((* (ptr) pd623 ))))((* (ptr) newSegData←v31576 ), (* (( (ptr) newSegData←v31576)+1) ), pd623)
;
};
SOURCE(45637, 57)
{
word pd624;
pd624 = (* (( (ptr) (* (( (ptr) gf←c81108)+291)/* var←c65492 */ ))+4) );
(* (( (ptr) newSegData←v31576)+2) ) = (word) ( *( (fPt) ((* (ptr) pd624 ))))(coeffs←v31604, 0, pd624);
};
SOURCE(45696, 24)
(void) UpdateCSBoundBox←P4860(newSeg←v31548);
SOURCE(45757, 15)
return(newSeg←v31548);
}
static word CSControlPointDelete←P6060(seg←v21780, cpVec←v21808)
word seg←v21780;
word cpVec←v21808;
{
W6 var←c81140;
register ptr gf←c81172 = (ptr) &globalframe;
word var←c21852;
/* declaration of var←c75540 skipped */
word data←v31764;
word currentCPIndex←v31792 = 0;
word oldCPCount←v31820;
word cpSelectedCount←v31848;
word newSeg←v31876;
word coeffs←v31904 = 0;
word newSegData←v31932;
/* CSControlPointDelete: */
SOURCE(45778, 1234)
{
word tmpAddr625;
tmpAddr625 = (word) (( (ptr) &var←c81140)+4)/* var←c75540 */ ;
(* (ptr) tmpAddr625 ) = ( ((word) (fPt) CountSelected←P8856) );
(* (( (ptr) tmpAddr625) + 1) ) = 1;
};
SOURCE(46041, 40)
data←v31764 = XR←Narrow((* (( (ptr) seg←v21780)+24) ), (* (( (ptr) gf←c81172)+19) ));
SOURCE(46108, 50)
{
word pd626;
pd626 = (* (( (ptr) (* (ptr) seg←v21780 ))+17) );
oldCPCount←v31820 = (word) ( *( (fPt) ((* (ptr) pd626 ))))(seg←v21780, pd626);
};
SOURCE(46160, 43)
cpSelectedCount←v31848 = (word) CountSelected←P8856(cpVec←v21808, (word) (( (bPt) &var←c81140)+16)/* var←c75540 */ );
SOURCE(46205, 34)
newSeg←v31876 = (word) CopySegment←P180(seg←v21780);
SOURCE(46278, 49)
newSegData←v31932 = XR←Narrow((* (( (ptr) newSeg←v31876)+24) ), (* (( (ptr) gf←c81172)+19) ));
SOURCE(46329, 83)
{
word var←c75572;
{
word var←c75604;
word var←c75636;
word var←c75668;
{
word idx627;
var←c75604 = (
idx627 = (word) ((* (ptr) (* (ptr) data←v31764 ) ) - cpSelectedCount←v31848),
BCK(idx627, 33554431)
);
};
var←c75636 = ((word) var←c75604 << 3);
var←c75668 = XR←NewObject((4 + var←c75636), (* (( (ptr) gf←c81172)+24) ));
(* (ptr) var←c75668 ) = var←c75604;
var←c75572 = var←c75668;
};
(* (ptr) newSegData←v31932 ) = var←c75572;
};
SOURCE(46414, 83)
{
word var←c75700;
{
word var←c75732;
word var←c75764;
word var←c75796;
{
word idx628;
var←c75732 = (
idx628 = (word) ((* (ptr) (* (ptr) data←v31764 ) ) - cpSelectedCount←v31848),
BCK(idx628, 16777215)
);
};
var←c75764 = ((word) var←c75732 << 4);
var←c75796 = XR←NewObject((4 + var←c75764), (* (( (ptr) gf←c81172)+23) ));
(* (ptr) var←c75796 ) = var←c75732;
var←c75700 = var←c75796;
};
(* (( (ptr) newSegData←v31932)+3) ) = var←c75700;
};
SOURCE(46499, 35)
(void) CSEndPointSet←P6180(newSeg←v31876, 1, (* (W2Pt) (( (ptr) seg←v21780)+9) ));
SOURCE(46536, 36)
(void) CSEndPointSet←P6180(newSeg←v31876, 0, (* (W2Pt) (( (ptr) seg←v21780)+11) ));
SOURCE(46574, 222)
{
register word i←v32080 = 0;
register word noName←c75828;
noName←c75828 = oldCPCount←v31820;
if (( (int)i←v32080 >= (int)noName←c75828)) {
goto lab←L100102;
};
lab←L100105: ;
SOURCE(46606, 190)
{
word limit629;
if ( ! XR←ExtractField(cpVec←v21808, 32 + (word) (
limit629 = (* (ptr) cpVec←v21808 ),
BCK(i←v32080, limit629)
), 1)) {
SOURCE(46629, 68)
{
W2 var←c75860;
(void) CSControlPointGet←P5580((word) &var←c75860, seg←v21780, SGNCK(i←v32080));
(void) CSControlPointSet←P6120(newSeg←v31876, SGNCK(currentCPIndex←v31792), var←c75860);
};
SOURCE(46699, 60)
{
word var←c75924;
var←c75924 = (* (( (ptr) newSegData←v31932)+3) );
{
word var←c75892;
var←c75892 = (* (( (ptr) data←v31764)+3) );
{
word limit630;
word limit631;
(* (( (W4Pt) (( (ptr) var←c75924)+1))+(
limit630 = (* (ptr) var←c75924 ),
BCK(currentCPIndex←v31792, limit630)
)) ) = (* (( (W4Pt) (( (ptr) var←c75892)+1))+(
limit631 = (* (ptr) var←c75892 ),
BCK(i←v32080, limit631)
)) );
};
};
};
SOURCE(46761, 35)
currentCPIndex←v31792 = (currentCPIndex←v31792 + 1);
};
};
i←v32080 = (i←v32080 + 1);
if (( (int)i←v32080 < (int)noName←c75828)) {
goto lab←L100105;
};
lab←L100102: ;
};
SOURCE(46810, 65)
{
word pd632;
pd632 = (* (( (ptr) (* (( (ptr) gf←c81172)+290)/* var←c65460 */ ))+8) );
coeffs←v31904 = (word) ( *( (fPt) ((* (ptr) pd632 ))))((* (ptr) newSegData←v31932 ), (* (( (ptr) newSegData←v31932)+1) ), pd632)
;
};
SOURCE(46877, 57)
{
word pd633;
pd633 = (* (( (ptr) (* (( (ptr) gf←c81172)+291)/* var←c65492 */ ))+4) );
(* (( (ptr) newSegData←v31932)+2) ) = (word) ( *( (fPt) ((* (ptr) pd633 ))))(coeffs←v31904, 0, pd633);
};
SOURCE(46936, 24)
(void) UpdateCSBoundBox←P4860(newSeg←v31876);
SOURCE(46997, 15)
return(newSeg←v31876);
}
static word CountSelected←P8856(bitVec←v32008, formal←c81204)
word bitVec←v32008;
word formal←c81204;
{
word selectedCount←v32052;
formal←c81204 = (formal←c81204 - 16);
/* CountSelected: */
SOURCE(45867, 160)
SOURCE(45867, 160)
selectedCount←v32052 = 0;
SOURCE(45944, 83)
{
register word i←v32124 = 0;
register word noName←c75956;
noName←c75956 = (* (ptr) bitVec←v32008 );
if (( (int)i←v32124 >= (int)noName←c75956)) {
goto lab←L100106;
};
lab←L100109: ;
SOURCE(45976, 51)
{
word limit634;
if (XR←ExtractField(bitVec←v32008, 32 + (word) (
limit634 = (* (ptr) bitVec←v32008 ),
BCK(i←v32124, limit634)
), 1)) {
SOURCE(45994, 33)
selectedCount←v32052 = (selectedCount←v32052 + 1);
};
};
i←v32124 = (i←v32124 + 1);
if (( (int)i←v32124 < (int)noName←c75956)) {
goto lab←L100109;
};
lab←L100106: ;
};
SOURCE(45867, 160)
return(selectedCount←v32052);
}
static void CSControlPointSet←P6120(seg←v21912, controlPointNum←v21940, point←v21968)
word seg←v21912;
word controlPointNum←v21940;
W2 point←v21968;
{
register ptr gf←c81236 = (ptr) &globalframe;
word data←v32168;
/* CSControlPointSet: */
SOURCE(47017, 271)
SOURCE(47096, 40)
data←v32168 = XR←Narrow((* (( (ptr) seg←v21912)+24) ), (* (( (ptr) gf←c81236)+19) ));
SOURCE(47138, 150)
{
word var←c75988;
var←c75988 = (* (( (ptr) data←v32168)+1) );
switch (var←c75988) {
case 2: case 3:
SOURCE(47183, 46)
{
W2 var←c76020;
(void) PointToFP←P6600((word) &var←c76020, point←v21968);
{
word var←c76052;
word var←c76084;
var←c76052 = (controlPointNum←v21940 + 1);
var←c76084 = (* (ptr) data←v32168 );
{
word limit635;
(* (( (W2Pt) (( (ptr) var←c76084)+1))+(
limit635 = (* (ptr) var←c76084 ),
BCK(var←c76052, limit635)
)) ) = var←c76020;
};
};
};
break;
case 6:
SOURCE(47242, 46)
{
W2 var←c76116;
(void) PointToFP←P6600((word) &var←c76116, point←v21968);
{
word var←c76148;
word var←c76180;
var←c76148 = (controlPointNum←v21940 + 3);
var←c76180 = (* (ptr) data←v32168 );
{
word limit636;
(* (( (W2Pt) (( (ptr) var←c76180)+1))+(
limit636 = (* (ptr) var←c76180 ),
BCK(var←c76148, limit636)
)) ) = var←c76116;
};
};
};
break;
default:
SOURCE(47301, 5)
(void) XR←RaiseUnnamedError();
break;
};
};
}
static void CSEndPointSet←P6180(seg←v22028, lo←v22056, point←v22084)
word seg←v22028;
word lo←v22056;
W2 point←v22084;
{
register ptr gf←c81268 = (ptr) &globalframe;
word data←v32212;
/* CSEndPointSet: */
SOURCE(47312, 508)
SOURCE(47375, 40)
data←v32212 = XR←Narrow((* (( (ptr) seg←v22028)+24) ), (* (( (ptr) gf←c81268)+19) ));
SOURCE(47417, 403)
{
word var←c76212;
var←c76212 = (* (( (ptr) data←v32212)+1) );
switch (var←c76212) {
case 2:
SOURCE(47454, 93)
if ((0 != lo←v22056)) {
SOURCE(47465, 36)
{
W2 var←c76244;
(void) PointToFP←P6600((word) &var←c76244, point←v22084);
{
word var←c76276;
var←c76276 = (* (ptr) data←v32212 );
{
word limit637;
(* (( (W2Pt) (( (ptr) var←c76276)+1))+(
/*1*/ limit637 = (* (ptr) var←c76276 ),
/*1*/ BCK(0, limit637)
/*1*/ )) ) = var←c76244;
};
};
};
}
else {
SOURCE(47501, 46)
{
W2 var←c76308;
(void) PointToFP←P6600((word) &var←c76308, point←v22084);
{
word var←c76340;
word var←c76372;
var←c76340 = ((* (ptr) (* (ptr) data←v32212 ) ) - 1);
var←c76372 = (* (ptr) data←v32212 );
{
word limit638;
(* (( (W2Pt) (( (ptr) var←c76372)+1))+(
/*1*/ limit638 = (* (ptr) var←c76372 ),
/*1*/ BCK(var←c76340, limit638)
/*1*/ )) ) = var←c76308;
};
};
};
};
break;
case 3:
SOURCE(47564, 60)
{
W2 var←c76404;
(void) PointToFP←P6600((word) &var←c76404, point←v22084);
{
word var←c76436;
word var←c76468;
var←c76436 = ((* (ptr) (* (ptr) data←v32212 ) ) - 1);
var←c76468 = (* (ptr) data←v32212 );
{
word limit639;
(* (( (W2Pt) (( (ptr) var←c76468)+1))+(
limit639 = (* (ptr) var←c76468 ),
BCK(var←c76436, limit639)
)) ) = var←c76404;
};
};
{
word var←c76500;
var←c76500 = (* (ptr) data←v32212 );
{
word limit640;
(* (( (W2Pt) (( (ptr) var←c76500)+1))+(
limit640 = (* (ptr) var←c76500 ),
BCK(0, limit640)
)) ) = var←c76404;
};
};
};
break;
case 6:
SOURCE(47639, 181)
if ((0 != lo←v22056)) {
SOURCE(47650, 64)
{
W2 var←c76532;
(void) PointToFP←P6600((word) &var←c76532, point←v22084);
{
word var←c76564;
var←c76564 = (* (ptr) data←v32212 );
{
word limit641;
(* (( (W2Pt) (( (ptr) var←c76564)+1))+(
/*1*/ limit641 = (* (ptr) var←c76564 ),
/*1*/ BCK(2, limit641)
/*1*/ )) ) = var←c76532;
};
};
{
word var←c76596;
var←c76596 = (* (ptr) data←v32212 );
{
word limit642;
(* (( (W2Pt) (( (ptr) var←c76596)+1))+(
/*1*/ limit642 = (* (ptr) var←c76596 ),
/*1*/ BCK(1, limit642)
/*1*/ )) ) = var←c76532;
};
};
{
word var←c76628;
var←c76628 = (* (ptr) data←v32212 );
{
word limit643;
(* (( (W2Pt) (( (ptr) var←c76628)+1))+(
/*1*/ limit643 = (* (ptr) var←c76628 ),
/*1*/ BCK(0, limit643)
/*1*/ )) ) = var←c76532;
};
};
};
}
else {
SOURCE(47714, 106)
{
W2 var←c76660;
(void) PointToFP←P6600((word) &var←c76660, point←v22084);
{
word var←c76692;
word var←c76724;
var←c76692 = ((* (ptr) (* (ptr) data←v32212 ) ) - 3);
var←c76724 = (* (ptr) data←v32212 );
{
word limit644;
(* (( (W2Pt) (( (ptr) var←c76724)+1))+(
/*1*/ limit644 = (* (ptr) var←c76724 ),
/*1*/ BCK(var←c76692, limit644)
/*1*/ )) ) = var←c76660;
};
};
{
word var←c76756;
word var←c76788;
var←c76756 = ((* (ptr) (* (ptr) data←v32212 ) ) - 2);
var←c76788 = (* (ptr) data←v32212 );
{
word limit645;
(* (( (W2Pt) (( (ptr) var←c76788)+1))+(
/*1*/ limit645 = (* (ptr) var←c76788 ),
/*1*/ BCK(var←c76756, limit645)
/*1*/ )) ) = var←c76660;
};
};
{
word var←c76820;
word var←c76852;
var←c76820 = ((* (ptr) (* (ptr) data←v32212 ) ) - 1);
var←c76852 = (* (ptr) data←v32212 );
{
word limit646;
(* (( (W2Pt) (( (ptr) var←c76852)+1))+(
/*1*/ limit646 = (* (ptr) var←c76852 ),
/*1*/ BCK(var←c76820, limit646)
/*1*/ )) ) = var←c76660;
};
};
};
};
break;
default:
SOURCE(47836, 5)
(void) XR←RaiseUnnamedError();
break;
};
};
}
static void CurveBoundBox←P6240(seg←v22144, bBox←v22172, boundsOK←v22200)
word seg←v22144;
word bBox←v22172;
word boundsOK←v22200;
{
register ptr gf←c81300 = (ptr) &globalframe;
word path←v32256;
W4 r←v32284;
/* CurveBoundBox: */
SOURCE(47847, 298)
SOURCE(47926, 36)
path←v32256 = (word) GetPath←P6780(seg←v22144);
SOURCE(47985, 50)
if ((0 == boundsOK←v22200)) {
SOURCE(48006, 29)
{
word pd647;
pd647 = (* (( (ptr) (* (( (ptr) gf←c81300)+291)/* var←c65492 */ ))+10) );
(void) ( *( (fPt) ((* (ptr) pd647 ))))(path←v32256, pd647);
};
};
SOURCE(48069, 15)
r←v32284 = (* (W4Pt) path←v32256 );
SOURCE(48086, 59)
{
word pd648;
word x649;
word x650;
float tf651;
word x652;
word x653;
float tf654;
pd648 = (* (( (ptr) (* (( (ptr) gf←c81300)+287)/* var←c65172 */ ))+18) );
(void) ( *( (fPt) ((* (ptr) pd648 ))))(bBox←v22172, r←v32284.f0, r←v32284.f1, (
tf651 = (
x649 = r←v32284.f0, *(float*)&x649
) + (
x650 = r←v32284.f2, *(float*)&x650
), *(word*)&tf651
), (
tf654 = (
x652 = r←v32284.f1, *(float*)&x652
) + (
x653 = r←v32284.f3, *(float*)&x653
), *(word*)&tf654
), pd648);
};
}
static void CurveBuildPath←P6300(seg←v22260, lineTo←v22288, curveTo←v22316, conicTo←v22344, arcTo←v22372)
word seg←v22260;
word lineTo←v22288;
word curveTo←v22316;
word conicTo←v22344;
word arcTo←v22372;
{
W6 var←c81332;
register ptr gf←c81364 = (ptr) &globalframe;
/* declaration of var←c76884 skipped */
word path←v32328;
word moveTo←v32356;
/* CurveBuildPath: */
SOURCE(48150, 287)
{
word tmpAddr655;
tmpAddr655 = (word) (( (ptr) &var←c81332)+4)/* var←c76884 */ ;
(* (ptr) tmpAddr655 ) = ( ((word) (fPt) NoName←Q9012) );
(* (( (ptr) tmpAddr655) + 1) ) = 1;
};
SOURCE(48316, 36)
path←v32328 = (word) GetPath←P6780(seg←v22260);
SOURCE(48354, 32)
moveTo←v32356 = (word) (( (bPt) &var←c81332)+16)/* var←c76884 */ ;
SOURCE(48390, 47)
{
word pd656;
pd656 = (* (( (ptr) (* (( (ptr) gf←c81364)+291)/* var←c65492 */ ))+5) );
(void) ( *( (fPt) ((* (ptr) pd656 ))))(path←v32328, moveTo←v32356, curveTo←v22316, pd656);
};
}
static void NoName←Q9012(p←v59592, formal←c81396)
W2 p←v59592;
word formal←c81396;
{
formal←c81396 = (formal←c81396 - 16);
/* : */
}
static void CurveClosestPoint←P6360(formal←c01186, seg←v22432, testPoint←v22460, tolerance←v22488)
word formal←c01186;
word seg←v22432;
W2 testPoint←v22460;
word tolerance←v22488;
{
register ptr gf←c81428 = (ptr) &globalframe;
W2 point←v22532;
word success←v22560;
word path←v32400 = 0;
/* CurveClosestPoint: */
SOURCE(48465, 560)
SOURCE(48604, 216)
if ((0 != (* (( (ptr) gf←c81428)+8)/* useBBox←v7956 */ ))) {
SOURCE(48620, 202)
{
W6 bigBox←v32444;
SOURCE(48622, 132)
{
word x657;
word x658;
*(float*)&bigBox←v32444.f0 = (
x657 = (* (ptr) (* (( (ptr) seg←v22432)+21) ) ), *(float*)&x657
) - (
x658 = tolerance←v22488, *(float*)&x658
);
};
{
word x659;
word x660;
*(float*)&bigBox←v32444.f1 = (
x659 = (* (( (ptr) (* (( (ptr) seg←v22432)+21) ))+1) ), *(float*)&x659
) - (
x660 = tolerance←v22488, *(float*)&x660
);
};
{
word x661;
word x662;
*(float*)&bigBox←v32444.f2 = (
x661 = (* (( (ptr) (* (( (ptr) seg←v22432)+21) ))+2) ), *(float*)&x661
) + (
x662 = tolerance←v22488, *(float*)&x662
);
};
{
word x663;
word x664;
*(float*)&bigBox←v32444.f3 = (
x663 = (* (( (ptr) (* (( (ptr) seg←v22432)+21) ))+3) ), *(float*)&x663
) + (
x664 = tolerance←v22488, *(float*)&x664
);
};
bigBox←v32444.f4 = 0;
bigBox←v32444.f5 = 0;
SOURCE(48756, 64)
if ((0 == (word) PointIsInBox←P6420(testPoint←v22460, bigBox←v32444))) {
SOURCE(48800, 20)
point←v22532.f0 = (* (ptr) &fc78 );
point←v22532.f1 = (* (ptr) &fc78 );
success←v22560 = 0;
goto lab←L100110;
};
};
};
SOURCE(48825, 49)
{
word pd665;
pd665 = (* (( (ptr) (* (( (ptr) gf←c81428)+304)/* var←c76980 */ ))+12) );
(void) ( *( (fPt) ((* (ptr) pd665 ))))((* (( (ptr) gf←c81428)+45) ), (* (( (ptr) gf←c81428)+46) ), pd665);
};
SOURCE(48876, 19)
path←v32400 = (word) GetPath←P6780(seg←v22432);
SOURCE(48897, 78)
{
W3 var←c77012;
{
word pd666;
pd666 = (* (( (ptr) (* (( (ptr) gf←c81428)+291)/* var←c65492 */ ))+14) );
(void) ( *( (fPt) ((* (ptr) pd666 ))))((word) &var←c77012, testPoint←v22460, path←v32400, tolerance←v22488, pd666);
};
success←v22560 = var←c77012.f2;
point←v22532 = (* (W2Pt) &var←c77012 );
};
SOURCE(48977, 48)
{
word pd667;
pd667 = (* (( (ptr) (* (( (ptr) gf←c81428)+304)/* var←c76980 */ ))+14) );
(void) ( *( (fPt) ((* (ptr) pd667 ))))((* (( (ptr) gf←c81428)+45) ), (* (( (ptr) gf←c81428)+46) ), pd667);
};
/* removed tail goto */
lab←L100110: ;
(* (W2Pt) formal←c01186 ) = point←v22532;
(* (( (ptr) formal←c01186)+2) ) = success←v22560;
return;
}
static word PointIsInBox←P6420(test←v22620, box←v22648)
W2 test←v22620;
W6 box←v22648;
{
word var←c22692;
/* PointIsInBox: */
SOURCE(49031, 162)
SOURCE(49101, 92)
{
word tc668;
word x669;
word x670;
word x671;
word x672;
word x673;
word x674;
word x675;
word x676;
if ( ( ( ((
x669 = test←v22620.f0, *(float*)&x669
) >= (
x670 = box←v22648.f0, *(float*)&x670
)) ? ((
x671 = test←v22620.f0, *(float*)&x671
) <= (
x672 = box←v22648.f2, *(float*)&x672
)) : 0 ) ? ((
x673 = test←v22620.f1, *(float*)&x673
) >= (
x674 = box←v22648.f1, *(float*)&x674
)) : 0 ) ) {
tc668 = (word) ((
x675 = test←v22620.f1, *(float*)&x675
) <= (
x676 = box←v22648.f3, *(float*)&x676
));
}
else {
tc668 = (word) 0;
};
return(tc668);
};
}
static void KnotBoundBox←P6480(seg←v22752, bBox←v22780)
word seg←v22752;
word bBox←v22780;
{
register ptr gf←c81460 = (ptr) &globalframe;
word data←v32488;
word cps←v32516;
word minX←v32544;
word maxX←v32572;
word minY←v32600;
word maxY←v32628;
/* KnotBoundBox: */
SOURCE(49199, 494)
SOURCE(49253, 40)
data←v32488 = XR←Narrow((* (( (ptr) seg←v22752)+24) ), (* (( (ptr) gf←c81460)+19) ));
SOURCE(49295, 41)
cps←v32516 = (* (ptr) data←v32488 );
SOURCE(49338, 28)
{
word limit677;
minX←v32544 = (* (( (W2Pt) (( (ptr) cps←v32516)+1))+(
limit677 = (* (ptr) cps←v32516 ),
BCK(0, limit677)
)) ).f0;
};
maxX←v32572 = minX←v32544;
SOURCE(49368, 28)
{
word limit678;
minY←v32600 = (* (( (W2Pt) (( (ptr) cps←v32516)+1))+(
limit678 = (* (ptr) cps←v32516 ),
BCK(0, limit678)
)) ).f1;
};
maxY←v32628 = minY←v32600;
SOURCE(49398, 202)
{
register word i←v32672 = 1;
register word noName←c77044;
noName←c77044 = (* (ptr) cps←v32516 );
if (( (int)i←v32672 >= (int)noName←c77044)) {
goto lab←L100111;
};
lab←L100114: ;
SOURCE(49430, 41)
{
word x679;
word limit680;
word x681;
if (((
x679 = maxX←v32572, *(float*)&x679
) < (
x681 = (* (( (W2Pt) (( (ptr) cps←v32516)+1))+(
limit680 = (* (ptr) cps←v32516 ),
BCK(i←v32672, limit680)
)) ).f0, *(float*)&x681
))) {
SOURCE(49455, 16)
{
word limit682;
maxX←v32572 = (* (( (W2Pt) (( (ptr) cps←v32516)+1))+(
limit682 = (* (ptr) cps←v32516 ),
BCK(i←v32672, limit682)
)) ).f0;
};
};
};
SOURCE(49473, 41)
{
word x683;
word limit684;
word x685;
if (((
x683 = minX←v32544, *(float*)&x683
) > (
x685 = (* (( (W2Pt) (( (ptr) cps←v32516)+1))+(
limit684 = (* (ptr) cps←v32516 ),
BCK(i←v32672, limit684)
)) ).f0, *(float*)&x685
))) {
SOURCE(49498, 16)
{
word limit686;
minX←v32544 = (* (( (W2Pt) (( (ptr) cps←v32516)+1))+(
limit686 = (* (ptr) cps←v32516 ),
BCK(i←v32672, limit686)
)) ).f0;
};
};
};
SOURCE(49516, 41)
{
word x687;
word limit688;
word x689;
if (((
x687 = maxY←v32628, *(float*)&x687
) < (
x689 = (* (( (W2Pt) (( (ptr) cps←v32516)+1))+(
limit688 = (* (ptr) cps←v32516 ),
BCK(i←v32672, limit688)
)) ).f1, *(float*)&x689
))) {
SOURCE(49541, 16)
{
word limit690;
maxY←v32628 = (* (( (W2Pt) (( (ptr) cps←v32516)+1))+(
limit690 = (* (ptr) cps←v32516 ),
BCK(i←v32672, limit690)
)) ).f1;
};
};
};
SOURCE(49559, 41)
{
word x691;
word limit692;
word x693;
if (((
x691 = minY←v32600, *(float*)&x691
) > (
x693 = (* (( (W2Pt) (( (ptr) cps←v32516)+1))+(
limit692 = (* (ptr) cps←v32516 ),
BCK(i←v32672, limit692)
)) ).f1, *(float*)&x693
))) {
SOURCE(49584, 16)
{
word limit694;
minY←v32600 = (* (( (W2Pt) (( (ptr) cps←v32516)+1))+(
limit694 = (* (ptr) cps←v32516 ),
BCK(i←v32672, limit694)
)) ).f1;
};
};
};
i←v32672 = (i←v32672 + 1);
if (( (int)i←v32672 < (int)noName←c77044)) {
goto lab←L100114;
};
lab←L100111: ;
};
SOURCE(49611, 82)
(* (ptr) bBox←v22780 ) = minX←v32544;
(* (( (ptr) bBox←v22780)+1) ) = minY←v32600;
(* (( (ptr) bBox←v22780)+2) ) = maxX←v32572;
(* (( (ptr) bBox←v22780)+3) ) = maxY←v32628;
(* (( (ptr) bBox←v22780)+4) ) = 0;
(* (( (ptr) bBox←v22780)+5) ) = 0;
}
static void FPToPoint←P6540(formal←c01202, FP←v22840)
word formal←c01202;
W2 FP←v22840;
{
W2 point←v22884;
/* FPToPoint: */
SOURCE(49699, 94)
SOURCE(49770, 23)
point←v22884.f0 = FP←v22840.f0;
point←v22884.f1 = FP←v22840.f1;
/* removed tail goto */
(* (W2Pt) formal←c01202 ) = point←v22884;
return;
}
static void PointToFP←P6600(formal←c01205, point←v22944)
word formal←c01205;
W2 point←v22944;
{
word var←c01403;
word var←c01404;
/* PointToFP: */
SOURCE(49799, 94)
/* Return var split */
SOURCE(49866, 27)
var←c01403 = point←v22944.f0;
var←c01404 = point←v22944.f1;
/* removed tail goto */
(* (( (ptr) formal←c01205)+1) ) = var←c01404;
(* (ptr) formal←c01205 ) = var←c01403;
return;
}
static word FindNearestPath←P6660(path←v23048, pos←v23076)
word path←v23048;
W2 pos←v23076;
{
register ptr gf←c81492 = (ptr) &globalframe;
word var←c23120;
word miniPath←v32716;
/* FindNearestPath: */
SOURCE(49899, 375)
SOURCE(49975, 51)
miniPath←v32716 = XR←NewObject(20, (* (( (ptr) gf←c81492)+28) ));
SOURCE(50028, 49)
{
word var←c77172;
{
word var←c77204;
var←c77204 = XR←NewObject(36, (* (( (ptr) gf←c81492)+29) ));
(* (ptr) var←c77204 ) = 1;
var←c77172 = var←c77204;
};
(* (( (ptr) miniPath←v32716)+4) ) = var←c77172;
};
SOURCE(50079, 173)
{
register word i←v32760 = 0;
register word noName←c77236;
noName←c77236 = (* (ptr) (* (( (ptr) path←v23048)+4) ) );
if (( (int)i←v32760 >= (int)noName←c77236)) {
goto lab←L100117;
};
lab←L100120: ;
SOURCE(50119, 35)
{
word var←c77300;
var←c77300 = (* (( (ptr) miniPath←v32716)+4) );
{
word var←c77268;
var←c77268 = (* (( (ptr) path←v23048)+4) );
{
word limit695;
word limit696;
(* (( (W8Pt) (( (ptr) var←c77300)+1))+(
limit695 = (* (ptr) var←c77300 ),
BCK(0, limit695)
)) ) = (* (( (W8Pt) (( (ptr) var←c77268)+1))+(
limit696 = (* (ptr) var←c77268 ),
BCK(i←v32760, limit696)
)) );
};
};
};
SOURCE(50156, 33)
{
word pd697;
pd697 = (* (( (ptr) (* (( (ptr) gf←c81492)+291)/* var←c65492 */ ))+10) );
(void) ( *( (fPt) ((* (ptr) pd697 ))))(miniPath←v32716, pd697);
};
SOURCE(50191, 61)
{
word pd698;
pd698 = (* (( (ptr) (* (( (ptr) gf←c81492)+291)/* var←c65492 */ ))+7) );
if ((0 != (word) ( *( (fPt) ((* (ptr) pd698 ))))(pos←v23076, miniPath←v32716, (* (ptr) &fc699 ), pd698))) {
SOURCE(50242, 10)
return(i←v32760);
};
};
i←v32760 = (i←v32760 + 1);
if (( (int)i←v32760 < (int)noName←c77236)) {
goto lab←L100120;
};
lab←L100117: ;
};
SOURCE(50263, 11)
return( (word) -1);
}
static word PathNumToCPIndex←P6720(seg←v23180, pathNum←v23208)
word seg←v23180;
word pathNum←v23208;
{
register ptr gf←c81524 = (ptr) &globalframe;
word cpIndex←v23252;
word data←v32804;
word cpCount←v32832;
/* PathNumToCPIndex: */
SOURCE(50280, 372)
SOURCE(50359, 40)
data←v32804 = XR←Narrow((* (( (ptr) seg←v23180)+24) ), (* (( (ptr) gf←c81524)+19) ));
SOURCE(50401, 47)
{
word pd700;
pd700 = (* (( (ptr) (* (ptr) seg←v23180 ))+17) );
cpCount←v32832 = (word) ( *( (fPt) ((* (ptr) pd700 ))))(seg←v23180, pd700);
};
SOURCE(50450, 94)
{
word var←c77332;
var←c77332 = (* (( (ptr) data←v32804)+1) );
switch (var←c77332) {
case 3: case 2:
SOURCE(50495, 17)
cpIndex←v23252 = pathNum←v23208;
break;
case 6:
SOURCE(50525, 19)
cpIndex←v23252 = (pathNum←v23208 - 1);
break;
default:
SOURCE(50557, 5)
(void) XR←RaiseUnnamedError();
break;
};
};
SOURCE(50564, 80)
if (( (int)cpIndex←v23252 < (int)0)) {
SOURCE(50584, 17)
cpIndex←v23252 = 0;
}
else {
SOURCE(50601, 43)
if (( (int)cpIndex←v23252 > (int)cpCount←v32832)) {
SOURCE(50627, 17)
cpIndex←v23252 = cpCount←v32832;
};
};
SOURCE(50646, 6)
return(cpIndex←v23252);
}
static word GetPath←P6780(seg←v23312)
word seg←v23312;
{
register ptr gf←c81556 = (ptr) &globalframe;
word path←v23356;
/* GetPath: */
SOURCE(50658, 239)
SOURCE(50658, 239)
path←v23356 = 0;
SOURCE(50723, 142)
{
word var←c77364;
word var←c77396;
var←c77364 = (* (( (ptr) seg←v23312)+24) );
if ((var←c77364 == 0)) {
goto lab←L100121;
};
var←c77396 = XR←GetReferentType(var←c77364);
if (((* (( (ptr) gf←c81556)+27) ) == var←c77396)) {
{
word type←v32876;
type←v32876 = var←c77364;
SOURCE(50769, 16)
path←v23356 = (* (( (ptr) type←v32876)+8) );
};
goto endif0701;
};
if (((* (( (ptr) gf←c81556)+22) ) == var←c77396)) {
{
word type←v32920;
type←v32920 = var←c77364;
SOURCE(50806, 16)
path←v23356 = (* (( (ptr) type←v32920)+7) );
};
goto endif0701;
};
if (((* (( (ptr) gf←c81556)+19) ) == var←c77396)) {
{
word type←v32964;
type←v32964 = var←c77364;
SOURCE(50849, 16)
path←v23356 = (* (( (ptr) type←v32964)+2) );
};
goto endif0701;
};
lab←L100121: ;
SOURCE(50878, 5)
(void) XR←RaiseUnnamedError();
goto endif0701;
endif0701: ;
};
SOURCE(50885, 12)
return(path←v23356);
}
static word PathFromConic←P6840(p0←v23416, p1←v23444, p2←v23472, r←v23500)
W2 p0←v23416;
W2 p1←v23444;
W2 p2←v23472;
word r←v23500;
{
W9 var←c81588;
register ptr gf←c81620 = (ptr) &globalframe;
word path←v23544;
/* declaration of var←c77428 skipped */
/* declaration of bList←v33008 skipped */
/* declaration of joint←v33036 skipped */
/* PathFromConic: */
SOURCE(50903, 386)
{
word tmpAddr702;
tmpAddr702 = (word) (( (ptr) &var←c81588)+4)/* var←c77428 */ ;
(* (ptr) tmpAddr702 ) = ( ((word) (fPt) bproc←P9360) );
(* (( (ptr) tmpAddr702) + 1) ) = 1;
};
SOURCE(50903, 386)
path←v23544 = 0;
SOURCE(50988, 7)
(* (( (ptr) &var←c81588)+6)/* bList←v33008 */ ) = 0;
SOURCE(51014, 24)
(* (( (ptr) &var←c81588)+7) ) = p0←v23416.f0;
(* (( (ptr) &var←c81588)+8) ) = p0←v23416.f1;
SOURCE(51174, 73)
{
W2 var←c77492;
W2 var←c77524;
W2 var←c77556;
var←c77492.f0 = p0←v23416.f0;
var←c77492.f1 = p0←v23416.f1;
var←c77524.f0 = p1←v23444.f0;
var←c77524.f1 = p1←v23444.f1;
var←c77556.f0 = p2←v23472.f0;
var←c77556.f1 = p2←v23472.f1;
{
word pd703;
pd703 = (* (( (ptr) (* (( (ptr) gf←c81620)+305)/* var←c77588 */ ))+4) );
(void) ( *( (fPt) ((* (ptr) pd703 ))))(var←c77492, var←c77524, var←c77556, r←v23500, (word) (( (bPt) &var←c81588)+16)/* var←c77428 */ , pd703)
;
};
};
SOURCE(51249, 26)
path←v23544 = (word) PathFromList←P6900((* ((( (ptr) &var←c81588)+6)/* bList←v33008 */ ) ));
SOURCE(51277, 12)
return(path←v23544);
}
static void bproc←P9360(p1←v60496, p2←v60524, p3←v60552, formal←c81684)
W2 p1←v60496;
W2 p2←v60524;
W2 p3←v60552;
word formal←c81684;
{
register ptr gf←c81652 = (ptr) &globalframe;
word new←v33192;
formal←c81684 = (formal←c81684 - 16);
/* bproc: */
SOURCE(51040, 129)
SOURCE(51074, 57)
new←v33192 = XR←NewObject(32, (* (( (ptr) gf←c81652)+26) ));
(* (W2Pt) new←v33192 ) = (* (W2Pt) (( (ptr) formal←c81684)+7) );
(* (W2Pt) (( (ptr) new←v33192)+2) ) = p1←v60496;
(* (W2Pt) (( (ptr) new←v33192)+4) ) = p2←v60524;
(* (W2Pt) (( (ptr) new←v33192)+6) ) = p3←v60552;
SOURCE(51133, 24)
{
word var←c77652;
var←c77652 = XR←NewObject(8, (* (( (ptr) gf←c81652)+17) ));
(* (ptr) var←c77652 ) = new←v33192;
(* (( (ptr) var←c77652)+1) ) = (* (( (ptr) formal←c81684)+6) );
(* (( (ptr) formal←c81684)+6) ) = var←c77652;
};
SOURCE(51159, 10)
(* (W2Pt) (( (ptr) formal←c81684)+7) ) = p3←v60552;
}
static word PathFromList←P6900(list←v23604)
word list←v23604;
{
register ptr gf←c81716 = (ptr) &globalframe;
word var←c23732;
word count←v33236 = 0;
word path←v33264;
/* PathFromList: */
SOURCE(51295, 479)
SOURCE(51386, 47)
path←v33264 = XR←NewObject(20, (* (( (ptr) gf←c81716)+28) ));
SOURCE(51435, 70)
{
register word l←v33308;
l←v33308 = list←v23604;
lab←L100125: ;
if ((l←v33308 != 0)) {
}
else {
goto lab←L100122;
};
SOURCE(51490, 15)
count←v33236 = (count←v33236 + 1);
l←v33308 = (* (( (ptr) l←v33308)+1) );
goto lab←L100125;
lab←L100122: ;
};
SOURCE(51516, 49)
{
word var←c77716;
{
word var←c77748;
word var←c77780;
word var←c77812;
var←c77748 = BCK(count←v33236, 8388607);
var←c77780 = ((word) var←c77748 << 5);
var←c77812 = XR←NewObject((4 + var←c77780), (* (( (ptr) gf←c81716)+29) ));
(* (ptr) var←c77812 ) = var←c77748;
var←c77716 = var←c77812;
};
(* (( (ptr) path←v33264)+4) ) = var←c77716;
};
SOURCE(51567, 153)
{
register word l←v33436;
l←v33436 = list←v23604;
lab←L100129: ;
if ((l←v33436 != 0)) {
}
else {
goto lab←L100126;
};
SOURCE(51622, 15)
count←v33236 = SGNCK((count←v33236 - 1));
SOURCE(51691, 29)
{
word var←c77844;
var←c77844 = (* (( (ptr) path←v33264)+4) );
{
word limit704;
(* (( (W8Pt) (( (ptr) var←c77844)+1))+(
limit704 = (* (ptr) var←c77844 ),
BCK(count←v33236, limit704)
)) ) = (* (W8Pt) (* (ptr) l←v33436 ) );
};
};
l←v33436 = (* (( (ptr) l←v33436)+1) );
goto lab←L100129;
lab←L100126: ;
};
SOURCE(51731, 29)
{
word pd705;
pd705 = (* (( (ptr) (* (( (ptr) gf←c81716)+291)/* var←c65492 */ ))+10) );
(void) ( *( (fPt) ((* (ptr) pd705 ))))(path←v33264, pd705);
};
SOURCE(51762, 12)
return(path←v33264);
}
static void Init←P6960()
{
register ptr gf←c81748 = (ptr) &globalframe;
word classDef←v33564;
/* Init: */
SOURCE(51780, 352)
SOURCE(51798, 82)
{
word var←c77876;
word var←c77908;
var←c77876 = (word) BuildBezierClass←P2700();
var←c77908 = XR←NewObject(8, (* (( (ptr) gf←c81748)+14) ));
(* (ptr) var←c77908 ) = (* (( (ptr) gf←c81748)+30) );
(* (( (ptr) var←c77908)+1) ) = var←c77876;
classDef←v33564 = var←c77908;
};
SOURCE(51882, 30)
(void) RegisterSegmentClass←P60(classDef←v33564);
SOURCE(51914, 82)
{
word var←c77940;
word var←c77972;
var←c77940 = (word) BuildCubicSplineClass←P4440();
var←c77972 = XR←NewObject(8, (* (( (ptr) gf←c81748)+14) ));
(* (ptr) var←c77972 ) = (* (( (ptr) gf←c81748)+47) );
(* (( (ptr) var←c77972)+1) ) = var←c77940;
classDef←v33564 = var←c77972;
};
SOURCE(51998, 30)
(void) RegisterSegmentClass←P60(classDef←v33564);
SOURCE(52030, 70)
{
word var←c78004;
word var←c78036;
var←c78004 = (word) BuildConicClass←P900();
var←c78036 = XR←NewObject(8, (* (( (ptr) gf←c81748)+14) ));
(* (ptr) var←c78036 ) = (* (( (ptr) gf←c81748)+44) );
(* (( (ptr) var←c78036)+1) ) = var←c78004;
classDef←v33564 = var←c78036;
};
SOURCE(52102, 30)
(void) RegisterSegmentClass←P60(classDef←v33564);
}
/* file: GGSegmentImplA, module: GGSegmentImplA, compiled at: February 5, 1993 2:05:50 pm PST */
extern void XR←install←GGSegmentImplA() {
NoName←Q9660();
}
extern void XR←run←GGSegmentImplA() { XR←Start(&globalframe); }