/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation. All rights reserved. */
/* time: February 5, 1993 2:09:43 pm PST */
/* C2C version: October 7, 1992 (native) */
/* ref-counting: off */
/* file: GGSegmentImplB, module: GGSegmentImplB */
/* switches: bcfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [1762994238,3792739274] GGSegmentImplB";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1;} W2;
typedef W2 *W2Pt;
typedef word (*fPt)();
typedef struct {word f0, f1, f2, f3;} W4;
typedef W4 *W4Pt;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef W6 *W6Pt;
typedef struct {word f0, f1, f2;} W3;
#define SOURCE(p, l) /* source p, l */
static float fc36 = 2.0;
static float fc37 = 0.0;
static float fc38 = -1.0;
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
static float fc41 = 3.0;
static float fc43 = 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 fc92 = 0.707106816;
#define FABS(f, t) ( ((t=(f)) >= (float) 0.0) ? (t) : (- (t)) )
static float fc155 = 90.0;
static float fc159 = 180.0;
static float fc164 = -90.0;
static float fc219 = 0.01745328;
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
static void NoName←Q4860();
static void GGSegmentImplB←P0();
static word NoOpSameShapeProc←P60();
static void NoOpControlPointMoved←P120();
static void NoOpControlPointGet←P180();
static word NoOpControlPointCount←P240();
static void NoOpControlPointFieldSet←P300();
static word NoOpControlPointFieldGet←P360();
static void NoOpClosestControlPoint←P420();
static void NoOpClosestPointAndTangent←P480();
static void NoOpLineIntersection←P540();
static void NoOpCircleIntersection←P600();
static word NoOpAsSimpleCurve←P660();
static word NoOpAsPolyline←P720();
static void NoOpJointNormal←P780();
static void NoOpCPNormal←P840();
static void NoOpAddJoint←P900();
static void NoOpFileOut←P960();
static word BuildCircleClass←P1020();
static word CircleBoundBox←P1080();
static word CircleFileIn←P1140();
static void CircleEndPointMoved←P1200();
static word BuildDiscClass←P1260();
static word DiscFileIn←P1320();
static word BuildLineClass←P1380();
static void LineSetStrokeWidth←P1440();
static word MakeLine←P1500();
static word LineBoundBox←P1560();
static word LineTightBox←P1620();
static void UpdateLineBoundBox←P1680();
static word LineCopyData←P1740();
static void LineReverse←P1800();
static void LineBuildPath←P1860();
static void LineBuildPathTransform←P1920();
static void LineTransform←P1980();
static void LineEndPointMoved←P2040();
static word LineDescribe←P2100();
static word LineFileIn←P2160();
static word PointIsInBox←P2220();
static void LineClosestPoint←P2280();
static void LineClosestPointAndTangent←P2340();
static void LineLineIntersection←P2400();
static void LineCircleIntersection←P2460();
static word LineAsSimpleCurve←P2520();
static void LineJointNormal←P2580();
static void LineAddJoint←P2640();
static word BuildArcClass←P2700();
static void ArcSetStrokeWidth←P2760();
static word MakeArc←P2820();
static void ArcGetParams←P2880();
static word ArcBoundBox←P2940();
static word ArcTightBox←P3000();
static void UpdateTightBoxOfArc←P3060();
static void UpdateBoundBoxOfEdge←P3120();
static void UpdateBoundBoxOfArc←P3180();
static word ArcCopyData←P3240();
static void ArcReverse←P3300();
static void ArcTransform←P3360();
static void ArcEndPointMoved←P3420();
static void ArcControlPointMoved←P3480();
static void TransformEndPoints←P3540();
static void ArcBuildPath←P3600();
static void ArcBuildPathTransform←P3660();
static word ArcDescribe←P3720();
static void ArcFileOut←P3780();
static word ArcFileIn←P3840();
static void ArcFieldSet←P3900();
static word ArcFieldGet←P3960();
static void ArcControlPointGet←P4020();
static word ArcControlPointCount←P4080();
static void ArcClosestPoint←P4140();
static void ArcClosestControlPoint←P4200();
static word ArcAsSimpleCurve←P4260();
static word ArcAsPolyline←P4320();
static void ArcCPNormal←P4380();
static void ArcJointNormal←P4440();
static void ArcAddJoint←P4500();
static void Init←P4560();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\254\073\314\103\300\064\024\167\046\102\220\000\000"};
static struct {unsigned f; char r[16];} string2 = {851984, "\257\300\254\073\314\103\300\064\024\167\046\100\244\000\000"};
static struct {unsigned f; char r[4];} string3 = {65537, "\001\000\000"};
static struct {unsigned f; char r[4];} string4 = {131076, "\216\251\000"};
static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\254\073\314\103\300\064\024\167\046\100\200\000\000"};
static struct {unsigned f; char r[28];} string6 = {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[16];} string7 = {851984, "\257\300\043\211\212\366\300\343\003\307\242\100\164\000\000"};
static struct {unsigned f; char r[4];} string8 = {131074, "\004\003\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\151\025\050\076\300\342\020\233\312\102\314\000\000"};
static struct {unsigned f; char r[4];} string10 = {131074, "\003\006\000"};
static struct {unsigned f; char r[16];} string11 = {851984, "\257\300\151\025\050\076\300\342\020\233\312\100\354\000\000"};
static struct {unsigned f; char r[16];} string12 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[44];} string13 = {2752556, "\260\006\005\146\151\162\163\164\257\300\247\031\224\326\300\123\162\224\023\100\164\005\004\162\145\163\164\214\257\300\247\031\224\326\300\123\162\224\023\100\164\261\000"};
static struct {unsigned f; char r[4];} string14 = {131074, "\003\002\000"};
static struct {unsigned f; char r[8];} string15 = {262152, "Line\000\000\000"};
static struct {unsigned f; char r[4];} string16 = {196612, "Arc"};
static struct {unsigned f; char r[16];} string17 = {786448, "Straight Arc\000\000\000"};
static struct {unsigned f; char r[8];} string18 = {262152, "Disc\000\000\000"};
static struct {unsigned f; char r[8];} string19 = {393224, "Circle\000"};
static struct {unsigned f; char r[16];} string20 = {851984, "\257\300\151\025\050\076\300\342\020\233\312\100\164\000\000"};
static struct {unsigned f; char r[8];} string21 = {458759, "\006\001@L\004@\177"};
static struct {unsigned f; char r[16];} string22 = {851984, "\257\300\121\216\014\136\300\111\163\224\167\100\150\000\000"};
static struct {unsigned f; char r[16];} string23 = {851984, "\257\300\265\217\206\011\300\172\271\371\033\100\150\000\000"};
static struct {unsigned f; char r[16];} string24 = {851984, "\257\300IKM\275\300Y\0222&@h\000\000"};
static struct {unsigned f; char r[16];} string25 = {851984, "\257\300\236\155\220\261\300\040\017\026\014\100\150\000\000"};
static struct {unsigned f; char r[16];} string26 = {851984, "\257\300\045\215\147\016\300\153\043\150\276\100\150\000\000"};
static struct {unsigned f; char r[8];} string27 = {1195856741, "gment"};
static struct {unsigned f; char r[16];} string28 = {851984, "\257\300\043\211\212\366\300\343\003\307\242\100\150\000\000"};
static struct {unsigned f; char r[16];} string29 = {851984, "\257\300\104\154\010\164\300\126\073\363\036\100\150\000\000"};
static struct {unsigned f; char r[16];} string30 = {851984, "\257\300\074\177\166\242\300\203\113\217\044\100\150\000\000"};
static struct {unsigned f; char r[16];} string31 = {851984, "\257\300\121\117\377\026\300\315\013\026\004\100\150\000\000"};
static struct {unsigned f; char r[16];} string32 = {851984, "\257\300\103\306\166\071\300\047\126\012\237\100\150\000\000"};
static struct {unsigned f; char r[16];} string33 = {851984, "\257\300\246\205\220\035\300\344\000\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string34 = {851984, "\257\300\245\247\302\156\300\052\156\325\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string35 = {851984, "\257\300\004\142\347\110\300\363\053\254\345\100\150\000\000"};
static struct {
word f0[26]; word f26; word f27; word f28;
word f29; word f30; word f31; word f32;
word f33; word f34; word f35; word f36;
word f37; word f38; word f39; word f40;
word f41; word f42; word f43; word f44;
word f45; word f46; word f47; word f48;
word f49; word f50; word f51; word f52;
word f53; word f54; word f55; word f56;
word f57; word f58; word f59; word f60;
word f61; word f62; word f63; 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[19];
} globalframe = {
{0}, (word) Init←P4560, 0, (word) ArcAddJoint←P4500,
0, (word) ArcJointNormal←P4440, 0, (word) ArcCPNormal←P4380,
0, (word) ArcAsPolyline←P4320, 0, (word) ArcAsSimpleCurve←P4260,
0, (word) ArcClosestControlPoint←P4200, 0, (word) ArcClosestPoint←P4140,
0, (word) ArcControlPointCount←P4080, 0, (word) ArcControlPointGet←P4020,
0, (word) ArcFieldGet←P3960, 0, (word) ArcFieldSet←P3900,
0, (word) ArcFileIn←P3840, 0, (word) ArcFileOut←P3780,
0, (word) ArcDescribe←P3720, 0, (word) ArcBuildPathTransform←P3660,
0, (word) ArcBuildPath←P3600, 0, (word) TransformEndPoints←P3540,
0, (word) ArcControlPointMoved←P3480, 0, (word) ArcEndPointMoved←P3420,
0, (word) ArcTransform←P3360, 0, (word) ArcReverse←P3300,
0, (word) ArcCopyData←P3240, 0, (word) UpdateBoundBoxOfArc←P3180,
0, (word) UpdateBoundBoxOfEdge←P3120, 0, (word) UpdateTightBoxOfArc←P3060,
0, (word) ArcTightBox←P3000, 0, (word) ArcBoundBox←P2940,
0, (word) ArcGetParams←P2880, 0, (word) MakeArc←P2820,
0, (word) ArcSetStrokeWidth←P2760, 0, (word) BuildArcClass←P2700,
0, (word) LineAddJoint←P2640, 0, (word) LineJointNormal←P2580,
0, (word) LineAsSimpleCurve←P2520, 0, (word) LineCircleIntersection←P2460,
0, (word) LineLineIntersection←P2400, 0, (word) LineClosestPointAndTangent←P2340,
0, (word) LineClosestPoint←P2280, 0, (word) PointIsInBox←P2220,
0, (word) LineFileIn←P2160, 0, (word) LineDescribe←P2100,
0, (word) LineEndPointMoved←P2040, 0, (word) LineTransform←P1980,
0, (word) LineBuildPathTransform←P1920, 0, (word) LineBuildPath←P1860,
0, (word) LineReverse←P1800, 0, (word) LineCopyData←P1740,
0, (word) UpdateLineBoundBox←P1680, 0, (word) LineTightBox←P1620,
0, (word) LineBoundBox←P1560, 0, (word) MakeLine←P1500,
0, (word) LineSetStrokeWidth←P1440, 0, (word) BuildLineClass←P1380,
0, (word) DiscFileIn←P1320, 0, (word) BuildDiscClass←P1260,
0, (word) CircleEndPointMoved←P1200, 0, (word) CircleFileIn←P1140,
0, (word) CircleBoundBox←P1080, 0, (word) BuildCircleClass←P1020,
0, (word) NoOpFileOut←P960, 0, (word) NoOpAddJoint←P900,
0, (word) NoOpCPNormal←P840, 0, (word) NoOpJointNormal←P780,
0, (word) NoOpAsPolyline←P720, 0, (word) NoOpAsSimpleCurve←P660,
0, (word) NoOpCircleIntersection←P600, 0, (word) NoOpLineIntersection←P540,
0, (word) NoOpClosestPointAndTangent←P480, 0, (word) NoOpClosestControlPoint←P420,
0, (word) NoOpControlPointFieldGet←P360, 0, (word) NoOpControlPointFieldSet←P300,
0, (word) NoOpControlPointCount←P240, 0, (word) NoOpControlPointGet←P180,
0, (word) NoOpControlPointMoved←P120, 0, (word) NoOpSameShapeProc←P60,
0, (word) GGSegmentImplB←P0, {0}
};
static void NoName←Q4860()
{
register ptr gf←c0616 = (ptr) &globalframe;
word var←c49212;
(* (( (ptr) gf←c0616)+7) ) = (word) XR←GetTypeIndexS((word) (&string1));
(* (( (ptr) gf←c0616)+8) ) = (word) XR←GetTypeIndex((word) &string2, 0, (word) &string3);
(* (( (ptr) gf←c0616)+9) ) = (word) XR←GetTypeIndex((word) &string4, 0, (word) &string3);
(* (( (ptr) gf←c0616)+12) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string6);
(* (( (ptr) gf←c0616)+13) ) = (word) XR←GetTypeIndex((word) &string7, 0, (word) &string8);
(* (( (ptr) gf←c0616)+14) ) = (word) XR←GetTypeIndex((word) &string9, 0, (word) &string10);
(* (( (ptr) gf←c0616)+15) ) = (word) XR←GetTypeIndex((word) &string11, 0, (word) &string3);
(* (( (ptr) gf←c0616)+17) ) = (word) XR←GetTypeIndex((word) &string12, 0, (word) &string3);
(* (( (ptr) gf←c0616)+18) ) = (word) XR←GetTypeIndex((word) &string13, 0, (word) &string14);
(* (ptr) (( (bPt) gf←c0616)+76) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0616)+17) ), (word) &string15);
(* (ptr) (( (bPt) gf←c0616)+80) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0616)+9) ), (word) &string16);
(* (ptr) (( (bPt) gf←c0616)+84) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0616)+9) ), (word) &string15);
(* (ptr) (( (bPt) gf←c0616)+88) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0616)+17) ), (word) &string17);
(* (ptr) (( (bPt) gf←c0616)+92) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0616)+17) ), (word) &string16);
(* (ptr) (( (bPt) gf←c0616)+96) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0616)+9) ), (word) &string18);
(* (ptr) (( (bPt) gf←c0616)+100) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0616)+9) ), (word) &string19);
(void) XR←DeclareGlobalFrame((word) "GGSegmentImplB", &globalframe, (word) XR←GetTypeIndex((word) &string20, 0, (word) &string21)
, (word) (( (bPt) gf←c0616)+712)/* var←c45596 */ );
var←c49212 = (word) XR←ImportInterface((word) "Angles2d", (word) XR←GetTypeIndexS((word) (&string22)), 11);
(* (( (ptr) gf←c0616)+191)/* var←c47548 */ ) = var←c49212;
(void) XR←ImportProcS(var←c49212, 67897603);
var←c49212 = (word) XR←ImportInterface((word) "GGBoundBox", (word) XR←GetTypeIndexS((word) (&string23)), 24);
(* (( (ptr) gf←c0616)+186)/* var←c46172 */ ) = var←c49212;
(void) XR←ImportProcS(var←c49212, 789250);
(void) XR←ImportProcS(var←c49212, 527618);
(void) XR←ImportProcS(var←c49212, 1314309);
(void) XR←ImportProcS(var←c49212, 68681990);
var←c49212 = (word) XR←ImportInterface((word) "GGCircles", (word) XR←GetTypeIndexS((word) (&string24)), 29);
(* (( (ptr) gf←c0616)+190)/* var←c47100 */ ) = var←c49212;
(void) XR←ImportProcS(var←c49212, 135010562);
(void) XR←ImportProcS(var←c49212, 1839876);
(void) XR←ImportProcS(var←c49212, 267521);
(void) XR←ImportProcS(var←c49212, 528898);
(void) XR←ImportProcS(var←c49212, 67113216);
(void) XR←ImportProcS(var←c49212, 68686851);
(void) XR←ImportProcS(var←c49212, 403179266);
var←c49212 = (word) XR←ImportInterface((word) "GGParseIn", (word) XR←GetTypeIndexS((word) (&string25)), 26);
(* (( (ptr) gf←c0616)+194)/* var←c48252 */ ) = var←c49212;
(void) XR←ImportProcS(var←c49212, 134483713);
var←c49212 = (word) XR←ImportInterface((word) "GGParseOut", (word) XR←GetTypeIndexS((word) (&string26)), 15);
(* (( (ptr) gf←c0616)+193)/* var←c48220 */ ) = var←c49212;
(void) XR←ImportProcS(var←c49212, 787714);
var←c49212 = (word) XR←ImportInterface((word) &string27, (word) XR←GetTypeIndexS((word) (&string28)), 47);
(* (( (ptr) gf←c0616)+185)/* var←c46108 */ ) = var←c49212;
(void) XR←ImportProcS(var←c49212, 267521);
(void) XR←ImportProcS(var←c49212, 266753);
(void) XR←ImportProcS(var←c49212, 134752258);
(void) XR←ImportProcS(var←c49212, 134752002);
(void) XR←ImportProcS(var←c49212, 336602627);
(void) XR←ImportProcS(var←c49212, 67374337);
(void) XR←ImportProcS(var←c49212, 135801860);
(void) XR←ImportProcS(var←c49212, 67643906);
(void) XR←ImportProcS(var←c49212, 403711235);
(void) XR←ImportProcS(var←c49212, 67379713);
(void) XR←ImportProcS(var←c49212, 134750466);
(void) XR←ImportProcS(var←c49212, 67904515);
(void) XR←ImportProcS(var←c49212, 1057540);
(void) XR←ImportProcS(var←c49212, 536066);
(void) XR←ImportProcS(var←c49212, 794627);
(void) XR←ImportProcS(var←c49212, 67641090);
(void) XR←ImportProcS(var←c49212, 67376129);
var←c49212 = (word) XR←ImportInterface((word) "GGTransform", (word) XR←GetTypeIndexS((word) (&string29)), 7);
(* (( (ptr) gf←c0616)+189)/* var←c46844 */ ) = var←c49212;
(void) XR←ImportProcS(var←c49212, 135004418);
var←c49212 = (word) XR←ImportInterface((word) "Imager", (word) XR←GetTypeIndexS((word) (&string30)), 84);
(* (( (ptr) gf←c0616)+187)/* var←c46268 */ ) = var←c49212;
var←c49212 = (word) XR←ImportInterface((word) "ImagerTransformation", (word) XR←GetTypeIndexS((word) (&string31)), 55);
(* (( (ptr) gf←c0616)+192)/* var←c47964 */ ) = var←c49212;
(void) XR←ImportProcS(var←c49212, 67372289);
(void) XR←ImportProcS(var←c49212, 135013122);
var←c49212 = (word) XR←ImportInterface((word) "Lines2d", (word) XR←GetTypeIndexS((word) (&string32)), 50);
(* (( (ptr) gf←c0616)+188)/* var←c46588 */ ) = var←c49212;
(void) XR←ImportProcS(var←c49212, 201858818);
(void) XR←ImportProcS(var←c49212, 134488321);
(void) XR←ImportProcS(var←c49212, 135014914);
(void) XR←ImportProcS(var←c49212, 1317123);
(void) XR←ImportProcS(var←c49212, 68163330);
var←c49212 = (word) XR←ImportInterface((word) "Real", (word) XR←GetTypeIndexS((word) (&string33)), 11);
(* (( (ptr) gf←c0616)+196)/* var←c48508 */ ) = var←c49212;
(void) XR←ImportProcS(var←c49212, 67371777);
var←c49212 = (word) XR←ImportInterface((word) "RealFns", (word) XR←GetTypeIndexS((word) (&string34)), 36);
(* (( (ptr) gf←c0616)+195)/* var←c48476 */ ) = var←c49212;
(void) XR←ImportProcS(var←c49212, 67373057);
(void) XR←ImportProcS(var←c49212, 67372545);
(void) XR←ImportProcS(var←c49212, 67372289);
(void) XR←ImportProcS(var←c49212, 67636226);
var←c49212 = (word) XR←ImportInterface((word) "Vectors2d", (word) XR←GetTypeIndexS((word) (&string35)), 21);
(* (( (ptr) gf←c0616)+184)/* var←c45788 */ ) = var←c49212;
(void) XR←ImportProcS(var←c49212, 68158210);
(void) XR←ImportProcS(var←c49212, 135004418);
(void) XR←ImportProcS(var←c49212, 134744321);
(void) XR←ImportProcS(var←c49212, 135268098);
(void) XR←ImportProcS(var←c49212, 67633665);
(void) XR←ImportProcS(var←c49212, 135267842);
(void) XR←ImportProcS(var←c49212, 68158722);
(void) XR←ImportProcS(var←c49212, 135270914);
(void) XR←ImportProcS(var←c49212, 134484993);
(void) XR←ImportProcS(var←c49212, 134484737);
(void) XR←ImportProcS(var←c49212, 68161282);
var←c49212 = (word) XR←ExportInterface((word) &string27, (word) XR←GetTypeIndexS((word) (&string28)), 47);
(* (( (ptr) gf←c0616)+197)/* var←c49244 */ ) = var←c49212;
(void) XR←ExportProcS(var←c49212, (word) (( (bPt) gf←c0616)+512)/* var←c44796 */ , 68419843);
(void) XR←ExportProcS(var←c49212, (word) (( (bPt) gf←c0616)+336)/* var←c44092 */ , 68944900);
(void) XR←ExportProcS(var←c49212, (word) (( (bPt) gf←c0616)+328)/* var←c44060 */ , 402917889);
(void) XR←ExportProcS(var←c49212, (word) (( (bPt) gf←c0616)+704)/* var←c45564 */ , 67641090);
(void) XR←ExportProcS(var←c49212, (word) (( (bPt) gf←c0616)+696)/* var←c45532 */ , 794627);
(void) XR←ExportProcS(var←c49212, (word) (( (bPt) gf←c0616)+688)/* var←c45500 */ , 134750466);
(void) XR←ExportProcS(var←c49212, (word) (( (bPt) gf←c0616)+680)/* var←c45468 */ , 67379713);
(void) XR←ExportProcS(var←c49212, (word) (( (bPt) gf←c0616)+672)/* var←c45436 */ , 1057540);
(void) XR←ExportProcS(var←c49212, (word) (( (bPt) gf←c0616)+664)/* var←c45404 */ , 67904515);
(void) XR←ExportProcS(var←c49212, (word) (( (bPt) gf←c0616)+656)/* var←c45372 */ , 403711235);
(void) XR←ExportProcS(var←c49212, (word) (( (bPt) gf←c0616)+648)/* var←c45340 */ , 336602627);
(void) XR←ExportProcS(var←c49212, (word) (( (bPt) gf←c0616)+640)/* var←c45308 */ , 134752002);
(void) XR←ExportProcS(var←c49212, (word) (( (bPt) gf←c0616)+632)/* var←c45276 */ , 134752258);
(void) XR←ExportProcS(var←c49212, (word) (( (bPt) gf←c0616)+624)/* var←c45244 */ , 67905794);
(void) XR←ExportProcS(var←c49212, (word) (( (bPt) gf←c0616)+616)/* var←c45212 */ , 67643906);
(void) XR←ExportProcS(var←c49212, (word) (( (bPt) gf←c0616)+608)/* var←c45180 */ , 270019332);
(void) XR←ExportProcS(var←c49212, (word) (( (bPt) gf←c0616)+600)/* var←c45148 */ , 135801860);
(void) XR←ExportProcS(var←c49212, (word) (( (bPt) gf←c0616)+592)/* var←c45116 */ , 135015682);
(void) XR←ExportProcS(var←c49212, (word) (( (bPt) gf←c0616)+584)/* var←c45084 */ , 536066);
}
static void GGSegmentImplB←P0(formal←c0100, formal←c099)
word formal←c0100;
word formal←c099;
{
register ptr gf←c49276 = (ptr) &globalframe;
/* GGSegmentImplB: */
SOURCE(274, 24356)
SOURCE(1523, 30)
(* (( (ptr) gf←c49276)+4)/* defaultStrokeWidth←v4092 */ ) = (* (ptr) &fc36 );
SOURCE(1555, 35)
(* (( (ptr) gf←c49276)+5)/* defaultStrokeEnd←v4120 */ ) = 2;
SOURCE(8941, 20)
(* (( (ptr) gf←c49276)+6)/* useBBox←v5240 */ ) = 1;
SOURCE(24624, 6)
(void) Init←P4560();
}
static word NoOpSameShapeProc←P60(seg1←v25068, seg2←v25096)
word seg1←v25068;
word seg2←v25096;
{
word var←c25140;
/* NoOpSameShapeProc: */
SOURCE(1593, 71)
SOURCE(1652, 12)
return(1);
}
static void NoOpControlPointMoved←P120(seg←v25200, transform←v25228, controlPointNum←v25256)
word seg←v25200;
word transform←v25228;
word controlPointNum←v25256;
{
/* NoOpControlPointMoved: */
}
static void NoOpControlPointGet←P180(formal←c0110, seg←v25316, controlPointNum←v25344)
word formal←c0110;
word seg←v25316;
word controlPointNum←v25344;
{
W2 point←v25388;
/* NoOpControlPointGet: */
SOURCE(1830, 86)
SOURCE(1896, 20)
point←v25388.f0 = (* (ptr) &fc37 );
point←v25388.f1 = (* (ptr) &fc37 );
/* removed tail goto */
(* (W2Pt) formal←c0110 ) = point←v25388;
return;
}
static word NoOpControlPointCount←P240(seg←v25448)
word seg←v25448;
{
word controlPointCount←v25492;
/* NoOpControlPointCount: */
SOURCE(1919, 91)
SOURCE(1989, 21)
controlPointCount←v25492 = 0;
SOURCE(1919, 91)
return(controlPointCount←v25492);
}
static void NoOpControlPointFieldSet←P300(seg←v25552, controlPointNum←v25580, selected←v25608, selectClass←v25636)
word seg←v25552;
word controlPointNum←v25580;
word selected←v25608;
word selectClass←v25636;
{
/* NoOpControlPointFieldSet: */
}
static word NoOpControlPointFieldGet←P360(seg←v25696, controlPointNum←v25724, selectClass←v25752)
word seg←v25696;
word controlPointNum←v25724;
word selectClass←v25752;
{
word selected←v25796;
/* NoOpControlPointFieldGet: */
SOURCE(2092, 75)
SOURCE(2169, 5)
(void) XR←RaiseUnnamedError();
}
static void NoOpClosestControlPoint←P420(formal←c0128, seg←v25856, testPoint←v25884, tolerance←v25912)
word formal←c0128;
word seg←v25856;
W2 testPoint←v25884;
word tolerance←v25912;
{
W2 point←v25956;
W2 normal←v25984;
word controlPointNum←v26012;
word success←v26040;
/* NoOpClosestControlPoint: */
SOURCE(2179, 148)
SOURCE(2254, 15)
normal←v25984.f0 = (* (ptr) &fc37 );
normal←v25984.f1 = (* (ptr) &fc38 );
SOURCE(2271, 18)
point←v25956.f0 = (* (ptr) &fc37 );
point←v25956.f1 = (* (ptr) &fc37 );
SOURCE(2291, 19)
controlPointNum←v26012 = 0;
SOURCE(2312, 15)
success←v26040 = 0;
/* removed tail goto */
(* (W2Pt) formal←c0128 ) = point←v25956;
(* (W2Pt) (( (ptr) formal←c0128)+2) ) = normal←v25984;
(* (( (ptr) formal←c0128)+4) ) = controlPointNum←v26012;
(* (( (ptr) formal←c0128)+5) ) = success←v26040;
return;
}
static void NoOpClosestPointAndTangent←P480(formal←c0135, seg←v26100, testPoint←v26128, tolerance←v26156)
word formal←c0135;
word seg←v26100;
W2 testPoint←v26128;
word tolerance←v26156;
{
W2 point←v26200;
W2 tangent←v26228;
word success←v26256;
/* NoOpClosestPointAndTangent: */
SOURCE(2332, 134)
SOURCE(2413, 18)
point←v26200.f0 = (* (ptr) &fc37 );
point←v26200.f1 = (* (ptr) &fc37 );
SOURCE(2433, 16)
tangent←v26228.f0 = (* (ptr) &fc37 );
tangent←v26228.f1 = (* (ptr) &fc38 );
SOURCE(2451, 15)
success←v26256 = 0;
/* removed tail goto */
(* (W2Pt) formal←c0135 ) = point←v26200;
(* (W2Pt) (( (ptr) formal←c0135)+2) ) = tangent←v26228;
(* (( (ptr) formal←c0135)+4) ) = success←v26256;
return;
}
static void NoOpLineIntersection←P540(formal←c0140, seg←v26316, line←v26344)
word formal←c0140;
word seg←v26316;
word line←v26344;
{
word points←v26388;
word pointCount←v26416;
/* NoOpLineIntersection: */
SOURCE(2471, 97)
SOURCE(2471, 97)
points←v26388 = 0;
SOURCE(2540, 12)
points←v26388 = 0;
SOURCE(2554, 14)
pointCount←v26416 = 0;
/* removed tail goto */
(* (ptr) formal←c0140 ) = points←v26388;
(* (( (ptr) formal←c0140)+1) ) = pointCount←v26416;
return;
}
static void NoOpCircleIntersection←P600(formal←c0145, seg←v26476, circle←v26504)
word formal←c0145;
word seg←v26476;
word circle←v26504;
{
word points←v26548;
word pointCount←v26576;
/* NoOpCircleIntersection: */
SOURCE(2573, 101)
SOURCE(2573, 101)
points←v26548 = 0;
SOURCE(2646, 12)
points←v26548 = 0;
SOURCE(2660, 14)
pointCount←v26576 = 0;
/* removed tail goto */
(* (ptr) formal←c0145 ) = points←v26548;
(* (( (ptr) formal←c0145)+1) ) = pointCount←v26576;
return;
}
static word NoOpAsSimpleCurve←P660(seg←v26636, point←v26664)
word seg←v26636;
W2 point←v26664;
{
word simpleCurve←v26708;
/* NoOpAsSimpleCurve: */
SOURCE(2679, 80)
SOURCE(2679, 80)
simpleCurve←v26708 = 0;
SOURCE(2742, 17)
simpleCurve←v26708 = 0;
SOURCE(2679, 80)
return(simpleCurve←v26708);
}
static word NoOpAsPolyline←P720(seg←v26768, tolerance←v26796)
word seg←v26768;
word tolerance←v26796;
{
register ptr gf←c49308 = (ptr) &globalframe;
word polyline←v26840;
/* NoOpAsPolyline: */
SOURCE(2764, 156)
SOURCE(2764, 156)
polyline←v26840 = 0;
SOURCE(2821, 34)
{
word var←c45724;
var←c45724 = XR←NewObject(24, (* (( (ptr) gf←c49308)+7) ));
(* (( (ptr) var←c45724)+1) ) = 2;
polyline←v26840 = var←c45724;
};
SOURCE(2857, 19)
(* (ptr) polyline←v26840 ) = 2;
SOURCE(2878, 20)
{
word limit39;
(* (( (W2Pt) (( (ptr) polyline←v26840)+2))+(
limit39 = (* (( (ptr) polyline←v26840)+1) ),
BCK(0, limit39)
)) ) = (* (W2Pt) (( (ptr) seg←v26768)+9) );
};
SOURCE(2900, 20)
{
word limit40;
(* (( (W2Pt) (( (ptr) polyline←v26840)+2))+(
limit40 = (* (( (ptr) polyline←v26840)+1) ),
BCK(1, limit40)
)) ) = (* (W2Pt) (( (ptr) seg←v26768)+11) );
};
SOURCE(2764, 156)
return(polyline←v26840);
}
static void NoOpJointNormal←P780(formal←c0159, seg←v26900, joint←v26928, point←v26956, hi←v26984)
word formal←c0159;
word seg←v26900;
W2 joint←v26928;
W2 point←v26956;
word hi←v26984;
{
W2 normal←v27028;
W2 tangent←v27056;
/* NoOpJointNormal: */
SOURCE(2925, 92)
SOURCE(2984, 15)
normal←v27028.f0 = (* (ptr) &fc37 );
normal←v27028.f1 = (* (ptr) &fc38 );
SOURCE(3001, 16)
tangent←v27056.f0 = (* (ptr) &fc37 );
tangent←v27056.f1 = (* (ptr) &fc38 );
/* removed tail goto */
(* (W2Pt) formal←c0159 ) = normal←v27028;
(* (W2Pt) (( (ptr) formal←c0159)+2) ) = tangent←v27056;
return;
}
static void NoOpCPNormal←P840(formal←c0165, seg←v27116, controlPointNum←v27144, cPoint←v27172, testPoint←v27200)
word formal←c0165;
word seg←v27116;
word controlPointNum←v27144;
W2 cPoint←v27172;
W2 testPoint←v27200;
{
W2 normal←v27244;
/* NoOpCPNormal: */
SOURCE(3022, 68)
SOURCE(3075, 15)
normal←v27244.f0 = (* (ptr) &fc37 );
normal←v27244.f1 = (* (ptr) &fc38 );
/* removed tail goto */
(* (W2Pt) formal←c0165 ) = normal←v27244;
return;
}
static void NoOpAddJoint←P900(formal←c0170, seg←v27304, pos←v27332)
word formal←c0170;
word seg←v27304;
W2 pos←v27332;
{
word seg1←v27376;
word seg2←v27404;
/* NoOpAddJoint: */
SOURCE(3095, 51)
SOURCE(3095, 51)
seg1←v27376 = 0;
SOURCE(3095, 51)
seg2←v27404 = 0;
SOURCE(3148, 5)
(void) XR←RaiseUnnamedError();
}
static void NoOpFileOut←P960(seg←v27464, f←v27492)
word seg←v27464;
word f←v27492;
{
/* NoOpFileOut: */
}
static word BuildCircleClass←P1020()
{
register ptr gf←c49340 = (ptr) &globalframe;
word circleClass←v6520;
/* BuildCircleClass: */
SOURCE(3212, 204)
SOURCE(3212, 204)
circleClass←v6520 = 0;
SOURCE(3278, 138)
{
word var←c45756;
var←c45756 = XR←NewObject(116, (* (( (ptr) gf←c49340)+8) ));
(* (ptr) var←c45756 ) = (* (( (ptr) gf←c49340)+25) );
(* (( (ptr) var←c45756)+1) ) = (word) (( (bPt) gf←c49340)+568)/* var←c45020 */ ;
(* (( (ptr) var←c45756)+9) ) = (word) (( (bPt) gf←c49340)+552)/* var←c44956 */ ;
(* (( (ptr) var←c45756)+13) ) = (word) (( (bPt) gf←c49340)+560)/* var←c44988 */ ;
circleClass←v6520 = var←c45756;
};
SOURCE(3212, 204)
return(circleClass←v6520);
}
static word CircleBoundBox←P1080(seg←v6580)
word seg←v6580;
{
register ptr gf←c49372 = (ptr) &globalframe;
word bBox←v6624;
word radius←v15020;
word cpHalf←v15048;
/* CircleBoundBox: */
SOURCE(3422, 326)
SOURCE(3422, 326)
bBox←v6624 = 0;
SOURCE(3501, 45)
{
word x42;
word x44;
*(float*)&cpHalf←v15048 = (
x42 = (* (ptr) &fc41 ), *(float*)&x42
) + (
x44 = (* (ptr) &fc43 ), *(float*)&x44
);
};
SOURCE(3548, 43)
{
word pd45;
pd45 = (* (( (ptr) (* (( (ptr) gf←c49372)+184)/* var←c45788 */ ))+19) );
radius←v15020 = (word) ( *( (fPt) ((* (ptr) pd45 ))))((* (W2Pt) (( (ptr) seg←v6580)+9) ), (* (W2Pt) (( (ptr) seg←v6580)+11)
), pd45);
};
SOURCE(3593, 138)
{
word var←c45820;
word var←c45884;
word var←c45948;
word var←c46012;
word var←c46044;
{
word x46;
word x47;
word x48;
*(float*)&var←c45820 = ((
x46 = (* (( (ptr) seg←v6580)+9) ), *(float*)&x46
) - (
x47 = radius←v15020, *(float*)&x47
)) - (
x48 = cpHalf←v15048, *(float*)&x48
);
};
{
word x49;
word x50;
word x51;
*(float*)&var←c45884 = ((
x49 = (* (( (ptr) seg←v6580)+10) ), *(float*)&x49
) - (
x50 = radius←v15020, *(float*)&x50
)) - (
x51 = cpHalf←v15048, *(float*)&x51
);
};
{
word x52;
word x53;
word x54;
*(float*)&var←c45948 = ((
x52 = (* (( (ptr) seg←v6580)+9) ), *(float*)&x52
) + (
x53 = radius←v15020, *(float*)&x53
)) + (
x54 = cpHalf←v15048, *(float*)&x54
);
};
{
word x55;
word x56;
word x57;
*(float*)&var←c46012 = ((
x55 = (* (( (ptr) seg←v6580)+10) ), *(float*)&x55
) + (
x56 = radius←v15020, *(float*)&x56
)) + (
x57 = cpHalf←v15048, *(float*)&x57
);
};
var←c46044 = (* (( (ptr) seg←v6580)+21) );
(* (ptr) var←c46044 ) = var←c45820;
(* (( (ptr) var←c46044)+1) ) = var←c45884;
(* (( (ptr) var←c46044)+2) ) = var←c45948;
(* (( (ptr) var←c46044)+3) ) = var←c46012;
(* (( (ptr) var←c46044)+4) ) = 0;
(* (( (ptr) var←c46044)+5) ) = 0;
};
SOURCE(3733, 15)
bBox←v6624 = (* (( (ptr) seg←v6580)+21) );
SOURCE(3422, 326)
return(bBox←v6624);
}
static word CircleFileIn←P1140(f←v6684, loPoint←v6712, hiPoint←v6740, version←v6768)
word f←v6684;
W2 loPoint←v6712;
W2 hiPoint←v6740;
word version←v6768;
{
register ptr gf←c49404 = (ptr) &globalframe;
word seg←v6812;
/* CircleFileIn: */
SOURCE(3754, 409)
SOURCE(3754, 409)
seg←v6812 = 0;
SOURCE(3855, 278)
{
word var←c46076;
word var←c46140;
word var←c46204;
word var←c46236;
{
word pd58;
pd58 = (* (( (ptr) (* (( (ptr) gf←c49404)+185)/* var←c46108 */ ))+24) );
var←c46076 = (word) ( *( (fPt) ((* (ptr) pd58 ))))((* ((( (ptr) gf←c49404)+25)) ), pd58);
};
{
word pd59;
pd59 = (* (( (ptr) (* (( (ptr) gf←c49404)+186)/* var←c46172 */ ))+5) );
var←c46140 = (word) ( *( (fPt) ((* (ptr) pd59 ))))((* (ptr) &fc37 ), (* (ptr) &fc37 ), (* (ptr) &fc37 ), (* (ptr) &fc37 ), 0, 0, pd59)
;
};
{
word pd60;
pd60 = (* (( (ptr) (* (( (ptr) gf←c49404)+186)/* var←c46172 */ ))+5) );
var←c46204 = (word) ( *( (fPt) ((* (ptr) pd60 ))))((* (ptr) &fc37 ), (* (ptr) &fc37 ), (* (ptr) &fc37 ), (* (ptr) &fc37 ), 0, 0, pd60)
;
};
var←c46236 = XR←NewObject(104, (* (( (ptr) gf←c49404)+12) ));
(* (ptr) var←c46236 ) = var←c46076;
(* (( (ptr) var←c46236)+2) ) = (* (ptr) &fc43 );
(* (( (ptr) var←c46236)+3) ) = 2;
(* (( (ptr) var←c46236)+6) ) = (* (ptr) &fc37 );
(* (( (ptr) var←c46236)+7) ) = (* (ptr) &fc38 );
(* (( (ptr) var←c46236)+8) ) = (* (ptr) (* (( (ptr) (* (( (ptr) gf←c49404)+187)/* var←c46268 */ ))+54) ) );
(* (W2Pt) (( (ptr) var←c46236)+9) ) = loPoint←v6712;
(* (W2Pt) (( (ptr) var←c46236)+11) ) = hiPoint←v6740;
(* (( (ptr) var←c46236)+13) ) = (* (ptr) &fc37 );
(* (( (ptr) var←c46236)+14) ) = (* (ptr) &fc37 );
(* (( (ptr) var←c46236)+15) ) = (* (ptr) &fc37 );
(* (( (ptr) var←c46236)+16) ) = (* (ptr) &fc37 );
(* (W4Pt) (( (ptr) var←c46236)+17) ) = (* (W4Pt) (( (ptr) gf←c49404)+180)/* var←c45660 */ );
(* (( (ptr) var←c46236)+21) ) = var←c46140;
(* (( (ptr) var←c46236)+22) ) = var←c46204;
seg←v6812 = var←c46236;
};
SOURCE(4135, 28)
{
word var←c46300;
word pd61;
pd61 = (* (( (ptr) (* (ptr) seg←v6812 ))+1) );
var←c46300 = (word) ( *( (fPt) ((* (ptr) pd61 ))))(seg←v6812, pd61);
};
SOURCE(3754, 409)
return(seg←v6812);
}
static void CircleEndPointMoved←P1200(seg←v6872, lo←v6900, newPoint←v6928)
word seg←v6872;
word lo←v6900;
W2 newPoint←v6928;
{
/* CircleEndPointMoved: */
}
static word BuildDiscClass←P1260()
{
register ptr gf←c49436 = (ptr) &globalframe;
word discClass←v6988;
/* BuildDiscClass: */
SOURCE(4245, 194)
SOURCE(4245, 194)
discClass←v6988 = 0;
SOURCE(4307, 132)
{
word var←c46332;
var←c46332 = XR←NewObject(116, (* (( (ptr) gf←c49436)+8) ));
(* (ptr) var←c46332 ) = (* (( (ptr) gf←c49436)+24) );
(* (( (ptr) var←c46332)+1) ) = (word) (( (bPt) gf←c49436)+568)/* var←c45020 */ ;
(* (( (ptr) var←c46332)+9) ) = (word) (( (bPt) gf←c49436)+552)/* var←c44956 */ ;
(* (( (ptr) var←c46332)+13) ) = (word) (( (bPt) gf←c49436)+536)/* var←c44892 */ ;
discClass←v6988 = var←c46332;
};
SOURCE(4245, 194)
return(discClass←v6988);
}
static word DiscFileIn←P1320(f←v7048, loPoint←v7076, hiPoint←v7104, version←v7132)
word f←v7048;
W2 loPoint←v7076;
W2 hiPoint←v7104;
word version←v7132;
{
register ptr gf←c49468 = (ptr) &globalframe;
word seg←v7176;
/* DiscFileIn: */
SOURCE(4445, 459)
SOURCE(4445, 459)
seg←v7176 = 0;
SOURCE(4544, 330)
{
word var←c46364;
word var←c46396;
word var←c46428;
word var←c46460;
{
word pd62;
pd62 = (* (( (ptr) (* (( (ptr) gf←c49468)+185)/* var←c46108 */ ))+24) );
var←c46364 = (word) ( *( (fPt) ((* (ptr) pd62 ))))((* ((( (ptr) gf←c49468)+24)) ), pd62);
};
{
word pd63;
pd63 = (* (( (ptr) (* (( (ptr) gf←c49468)+186)/* var←c46172 */ ))+5) );
var←c46396 = (word) ( *( (fPt) ((* (ptr) pd63 ))))((* (ptr) &fc37 ), (* (ptr) &fc37 ), (* (ptr) &fc37 ), (* (ptr) &fc37 ), 0, 0, pd63)
;
};
{
word pd64;
pd64 = (* (( (ptr) (* (( (ptr) gf←c49468)+186)/* var←c46172 */ ))+5) );
var←c46428 = (word) ( *( (fPt) ((* (ptr) pd64 ))))((* (ptr) &fc37 ), (* (ptr) &fc37 ), (* (ptr) &fc37 ), (* (ptr) &fc37 ), 0, 0, pd64)
;
};
var←c46460 = XR←NewObject(104, (* (( (ptr) gf←c49468)+12) ));
(* (ptr) var←c46460 ) = var←c46364;
(* (( (ptr) var←c46460)+2) ) = (* (ptr) &fc43 );
(* (( (ptr) var←c46460)+3) ) = 2;
(* (( (ptr) var←c46460)+6) ) = (* (ptr) &fc37 );
(* (( (ptr) var←c46460)+7) ) = (* (ptr) &fc38 );
(* (( (ptr) var←c46460)+8) ) = (* (ptr) (* (( (ptr) (* (( (ptr) gf←c49468)+187)/* var←c46268 */ ))+54) ) );
(* (W2Pt) (( (ptr) var←c46460)+9) ) = loPoint←v7076;
(* (W2Pt) (( (ptr) var←c46460)+11) ) = hiPoint←v7104;
(* (( (ptr) var←c46460)+13) ) = (* (ptr) &fc37 );
(* (( (ptr) var←c46460)+14) ) = (* (ptr) &fc37 );
(* (( (ptr) var←c46460)+15) ) = (* (ptr) &fc37 );
(* (( (ptr) var←c46460)+16) ) = (* (ptr) &fc37 );
(* (W4Pt) (( (ptr) var←c46460)+17) ) = (* (W4Pt) (( (ptr) gf←c49468)+180)/* var←c45660 */ );
(* (( (ptr) var←c46460)+21) ) = var←c46396;
(* (( (ptr) var←c46460)+22) ) = var←c46428;
seg←v7176 = var←c46460;
};
SOURCE(4876, 28)
{
word var←c46492;
word pd65;
pd65 = (* (( (ptr) (* (ptr) seg←v7176 ))+1) );
var←c46492 = (word) ( *( (fPt) ((* (ptr) pd65 ))))(seg←v7176, pd65);
};
SOURCE(4445, 459)
return(seg←v7176);
}
static word BuildLineClass←P1380()
{
register ptr gf←c49500 = (ptr) &globalframe;
word lineClass←v7292;
/* BuildLineClass: */
SOURCE(5040, 1066)
SOURCE(5040, 1066)
lineClass←v7292 = 0;
SOURCE(5118, 988)
{
word var←c46524;
var←c46524 = XR←NewObject(116, (* (( (ptr) gf←c49500)+8) ));
(* (ptr) var←c46524 ) = (* (( (ptr) gf←c49500)+21) );
(* (( (ptr) var←c46524)+1) ) = (word) (( (bPt) gf←c49500)+504)/* var←c44764 */ ;
(* (( (ptr) var←c46524)+2) ) = (word) (( (bPt) gf←c49500)+496)/* var←c44732 */ ;
(* (( (ptr) var←c46524)+3) ) = (word) (( (bPt) gf←c49500)+480)/* var←c44668 */ ;
(* (( (ptr) var←c46524)+4) ) = (word) (( (bPt) gf←c49500)+472)/* var←c44636 */ ;
(* (( (ptr) var←c46524)+5) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c49500)+185)/* var←c46108 */ ))+35) );
(* (( (ptr) var←c46524)+6) ) = (word) (( (bPt) gf←c49500)+464)/* var←c44604 */ ;
(* (( (ptr) var←c46524)+7) ) = (word) (( (bPt) gf←c49500)+456)/* var←c44572 */ ;
(* (( (ptr) var←c46524)+8) ) = (word) (( (bPt) gf←c49500)+448)/* var←c44540 */ ;
(* (( (ptr) var←c46524)+9) ) = (word) (( (bPt) gf←c49500)+440)/* var←c44508 */ ;
(* (( (ptr) var←c46524)+10) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c49500)+185)/* var←c46108 */ ))+36) );
(* (( (ptr) var←c46524)+11) ) = (word) (( (bPt) gf←c49500)+432)/* var←c44476 */ ;
(* (( (ptr) var←c46524)+12) ) = (* (( (ptr) (* (( (ptr) gf←c49500)+185)/* var←c46108 */ ))+50) );
(* (( (ptr) var←c46524)+13) ) = (word) (( (bPt) gf←c49500)+424)/* var←c44444 */ ;
(* (( (ptr) var←c46524)+14) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c49500)+185)/* var←c46108 */ ))+39) );
(* (( (ptr) var←c46524)+15) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c49500)+185)/* var←c46108 */ ))+40) );
(* (( (ptr) var←c46524)+16) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c49500)+185)/* var←c46108 */ ))+37) );
(* (( (ptr) var←c46524)+17) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c49500)+185)/* var←c46108 */ ))+38) );
(* (( (ptr) var←c46524)+18) ) = (word) (( (bPt) gf←c49500)+408)/* var←c44380 */ ;
(* (( (ptr) var←c46524)+19) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c49500)+185)/* var←c46108 */ ))+41) );
(* (( (ptr) var←c46524)+20) ) = (word) (( (bPt) gf←c49500)+400)/* var←c44348 */ ;
(* (( (ptr) var←c46524)+21) ) = (word) (( (bPt) gf←c49500)+392)/* var←c44316 */ ;
(* (( (ptr) var←c46524)+22) ) = (word) (( (bPt) gf←c49500)+384)/* var←c44284 */ ;
(* (( (ptr) var←c46524)+23) ) = (word) (( (bPt) gf←c49500)+376)/* var←c44252 */ ;
(* (( (ptr) var←c46524)+24) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c49500)+185)/* var←c46108 */ ))+46) );
(* (( (ptr) var←c46524)+25) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c49500)+185)/* var←c46108 */ ))+48) );
(* (( (ptr) var←c46524)+26) ) = (word) (( (bPt) gf←c49500)+368)/* var←c44220 */ ;
(* (( (ptr) var←c46524)+27) ) = (word) (( (bPt) gf←c49500)+360)/* var←c44188 */ ;
(* (( (ptr) var←c46524)+28) ) = (word) (( (bPt) gf←c49500)+520)/* var←c44828 */ ;
lineClass←v7292 = var←c46524;
};
SOURCE(5040, 1066)
return(lineClass←v7292);
}
static void LineSetStrokeWidth←P1440(seg←v7352, strokeWidth←v7380)
word seg←v7352;
word strokeWidth←v7380;
{
/* LineSetStrokeWidth: */
SOURCE(6112, 117)
SOURCE(6175, 29)
(* (( (ptr) seg←v7352)+2) ) = strokeWidth←v7380;
SOURCE(6206, 23)
(void) UpdateLineBoundBox←P1680(seg←v7352);
}
static word MakeLine←P1500(p0←v7440, p1←v7468, props←v7496)
W2 p0←v7440;
W2 p1←v7468;
word props←v7496;
{
register ptr gf←c49532 = (ptr) &globalframe;
word seg←v7640;
word lineSegment←v15092;
/* MakeLine: */
SOURCE(6235, 552)
SOURCE(6235, 552)
seg←v7640 = 0;
SOURCE(6324, 79)
{
word var←c46556;
word var←c46620;
{
word pd66;
pd66 = (* (( (ptr) (* (( (ptr) gf←c49532)+188)/* var←c46588 */ ))+27) );
var←c46556 = (word) ( *( (fPt) ((* (ptr) pd66 ))))(p0←v7440, p1←v7468, pd66);
};
var←c46620 = XR←NewObject(4, (* (( (ptr) gf←c49532)+15) ));
(* (ptr) var←c46620 ) = var←c46556;
lineSegment←v15092 = var←c46620;
};
SOURCE(6405, 357)
{
word var←c46652;
word var←c46684;
word var←c46716;
word var←c46748;
{
word pd67;
pd67 = (* (( (ptr) (* (( (ptr) gf←c49532)+185)/* var←c46108 */ ))+24) );
var←c46652 = (word) ( *( (fPt) ((* (ptr) pd67 ))))((* ((( (ptr) gf←c49532)+21)) ), pd67);
};
{
word pd68;
pd68 = (* (( (ptr) (* (( (ptr) gf←c49532)+186)/* var←c46172 */ ))+5) );
var←c46684 = (word) ( *( (fPt) ((* (ptr) pd68 ))))((* (ptr) &fc37 ), (* (ptr) &fc37 ), (* (ptr) &fc37 ), (* (ptr) &fc37 ), 0, 0, pd68)
;
};
{
word pd69;
pd69 = (* (( (ptr) (* (( (ptr) gf←c49532)+186)/* var←c46172 */ ))+5) );
var←c46716 = (word) ( *( (fPt) ((* (ptr) pd69 ))))((* (ptr) &fc37 ), (* (ptr) &fc37 ), (* (ptr) &fc37 ), (* (ptr) &fc37 ), 0, 0, pd69)
;
};
var←c46748 = XR←NewObject(104, (* (( (ptr) gf←c49532)+12) ));
(* (ptr) var←c46748 ) = var←c46652;
(* (( (ptr) var←c46748)+2) ) = (* (( (ptr) gf←c49532)+4)/* defaultStrokeWidth←v4092 */ );
(* (( (ptr) var←c46748)+3) ) = (* (( (ptr) gf←c49532)+5)/* defaultStrokeEnd←v4120 */ );
(* (( (ptr) var←c46748)+6) ) = (* (ptr) &fc37 );
(* (( (ptr) var←c46748)+7) ) = (* (ptr) &fc38 );
(* (( (ptr) var←c46748)+8) ) = (* (ptr) (* (( (ptr) (* (( (ptr) gf←c49532)+187)/* var←c46268 */ ))+54) ) );
(* (W2Pt) (( (ptr) var←c46748)+9) ) = p0←v7440;
(* (W2Pt) (( (ptr) var←c46748)+11) ) = p1←v7468;
(* (( (ptr) var←c46748)+13) ) = (* (ptr) &fc37 );
(* (( (ptr) var←c46748)+14) ) = (* (ptr) &fc37 );
(* (( (ptr) var←c46748)+15) ) = (* (ptr) &fc37 );
(* (( (ptr) var←c46748)+16) ) = (* (ptr) &fc37 );
(* (W4Pt) (( (ptr) var←c46748)+17) ) = (* (W4Pt) (( (ptr) gf←c49532)+180)/* var←c45660 */ );
(* (( (ptr) var←c46748)+21) ) = var←c46684;
(* (( (ptr) var←c46748)+22) ) = var←c46716;
(* (( (ptr) var←c46748)+24) ) = lineSegment←v15092;
(* (( (ptr) var←c46748)+25) ) = props←v7496;
seg←v7640 = var←c46748;
};
SOURCE(6764, 23)
(void) UpdateLineBoundBox←P1680(seg←v7640);
SOURCE(6235, 552)
return(seg←v7640);
}
static word LineBoundBox←P1560(seg←v7700)
word seg←v7700;
{
word bBox←v7744;
/* LineBoundBox: */
SOURCE(6793, 78)
SOURCE(6793, 78)
bBox←v7744 = 0;
SOURCE(6856, 15)
bBox←v7744 = (* (( (ptr) seg←v7700)+21) );
SOURCE(6793, 78)
return(bBox←v7744);
}
static word LineTightBox←P1620(seg←v7804)
word seg←v7804;
{
word bBox←v7848;
/* LineTightBox: */
SOURCE(6877, 82)
SOURCE(6877, 82)
bBox←v7848 = 0;
SOURCE(6940, 19)
bBox←v7848 = (* (( (ptr) seg←v7804)+22) );
SOURCE(6877, 82)
return(bBox←v7848);
}
static void UpdateLineBoundBox←P1680(seg←v7908)
word seg←v7908;
{
register ptr gf←c49564 = (ptr) &globalframe;
word loX←v15136;
word loY←v15164;
word hiX←v15192;
word hiY←v15220;
word pad←v15248;
/* UpdateLineBoundBox: */
SOURCE(6997, 442)
SOURCE(7078, 29)
{
word x70;
float tf71;
float tf72;
word x73;
float tf74;
loX←v15136 = (
tf74 = FMIN((
x70 = (* (( (ptr) seg←v7908)+9) ), *(float*)&x70
), (
x73 = (* (( (ptr) seg←v7908)+11) ), *(float*)&x73
), tf71, tf72), *(word*)&tf74
);
};
SOURCE(7109, 29)
{
word x75;
float tf76;
float tf77;
word x78;
float tf79;
hiX←v15192 = (
tf79 = FMAX((
x75 = (* (( (ptr) seg←v7908)+9) ), *(float*)&x75
), (
x78 = (* (( (ptr) seg←v7908)+11) ), *(float*)&x78
), tf76, tf77), *(word*)&tf79
);
};
SOURCE(7140, 29)
{
word x80;
float tf81;
float tf82;
word x83;
float tf84;
loY←v15164 = (
tf84 = FMIN((
x80 = (* (( (ptr) seg←v7908)+10) ), *(float*)&x80
), (
x83 = (* (( (ptr) seg←v7908)+12) ), *(float*)&x83
), tf81, tf82), *(word*)&tf84
);
};
SOURCE(7171, 29)
{
word x85;
float tf86;
float tf87;
word x88;
float tf89;
hiY←v15220 = (
tf89 = FMAX((
x85 = (* (( (ptr) seg←v7908)+10) ), *(float*)&x85
), (
x88 = (* (( (ptr) seg←v7908)+12) ), *(float*)&x88
), tf86, tf87), *(word*)&tf89
);
};
SOURCE(7202, 59)
{
word pd90;
pd90 = (* (( (ptr) (* (( (ptr) gf←c49564)+186)/* var←c46172 */ ))+18) );
(void) ( *( (fPt) ((* (ptr) pd90 ))))((* (( (ptr) seg←v7908)+22) ), loX←v15136, loY←v15164, hiX←v15192, hiY←v15220, pd90)
;
};
SOURCE(7263, 25)
(* (W6Pt) (* (( (ptr) seg←v7908)+21) ) ) = (* (W6Pt) (* (( (ptr) seg←v7908)+22) ) );
SOURCE(7290, 106)
if (((* (( (ptr) seg←v7908)+3) ) == 0)) {
SOURCE(7321, 44)
{
word x91;
word x93;
word x94;
*(float*)&pad←v15248 = ((
x91 = (* (( (ptr) seg←v7908)+2) ), *(float*)&x91
) * (
x93 = (* (ptr) &fc92 ), *(float*)&x93
)) + (
x94 = (* (ptr) &fc43 ), *(float*)&x94
);
};
}
else {
SOURCE(7365, 31)
{
word x95;
word x96;
word x97;
*(float*)&pad←v15248 = ((
x95 = (* (( (ptr) seg←v7908)+2) ), *(float*)&x95
) / (
x96 = (* (ptr) &fc36 ), *(float*)&x96
)) + (
x97 = (* (ptr) &fc43 ), *(float*)&x97
);
};
};
SOURCE(7398, 41)
{
word pd98;
pd98 = (* (( (ptr) (* (( (ptr) gf←c49564)+186)/* var←c46172 */ ))+17) );
(void) ( *( (fPt) ((* (ptr) pd98 ))))((* (( (ptr) seg←v7908)+21) ), pad←v15248, pd98);
};
}
static word LineCopyData←P1740(seg←v7968)
word seg←v7968;
{
register ptr gf←c49596 = (ptr) &globalframe;
word data←v8012;
word lineSegment←v15292;
/* LineCopyData: */
SOURCE(7445, 173)
SOURCE(7445, 173)
data←v8012 = 0;
SOURCE(7507, 40)
lineSegment←v15292 = XR←Narrow((* (( (ptr) seg←v7968)+24) ), (* (( (ptr) gf←c49596)+15) ));
SOURCE(7549, 69)
{
word var←c46780;
word var←c46812;
{
word pd99;
pd99 = (* (( (ptr) (* (( (ptr) gf←c49596)+188)/* var←c46588 */ ))+27) );
var←c46780 = (word) ( *( (fPt) ((* (ptr) pd99 ))))((* (W2Pt) (( (ptr) seg←v7968)+9) ), (* (W2Pt) (( (ptr) seg←v7968)+11)
), pd99);
};
var←c46812 = XR←NewObject(4, (* (( (ptr) gf←c49596)+15) ));
(* (ptr) var←c46812 ) = var←c46780;
data←v8012 = var←c46812;
};
SOURCE(7445, 173)
return(data←v8012);
}
static void LineReverse←P1800(seg←v8084)
word seg←v8084;
{
/* LineReverse: */
}
static void LineBuildPath←P1860(seg←v8144, lineTo←v8172, curveTo←v8200, conicTo←v8228, arcTo←v8256)
word seg←v8144;
word lineTo←v8172;
word curveTo←v8200;
word conicTo←v8228;
word arcTo←v8256;
{
/* LineBuildPath: */
SOURCE(7666, 179)
SOURCE(7831, 14)
(void) ( *( (fPt) ((* (ptr) lineTo←v8172 ))))((* (W2Pt) ((( (ptr) seg←v8144)+11)) ), lineTo←v8172);
}
static void LineBuildPathTransform←P1920(seg←v8316, transform←v8344, entire←v8372, lo←v8400, hi←v8428, controlPoints←v8456, lineTo←v8484, curveTo←v8512, conicTo←v8540, arcTo←v8568)
word seg←v8316;
word transform←v8344;
word entire←v8372;
word lo←v8400;
word hi←v8428;
word controlPoints←v8456;
word lineTo←v8484;
word curveTo←v8512;
word conicTo←v8540;
word arcTo←v8568;
{
register ptr gf←c49628 = (ptr) &globalframe;
W2 hiPoint←v15336;
/* LineBuildPathTransform: */
SOURCE(7851, 418)
SOURCE(8137, 98)
if (((0 != hi←v8428) || (0 != entire←v8372))) {
{
W2 var←c0256;
{
word pd100;
pd100 = (* (( (ptr) (* (( (ptr) gf←c49628)+189)/* var←c46844 */ ))+5) );
(void) ( *( (fPt) ((* (ptr) pd100 ))))((word) &var←c0256, transform←v8344, (* (W2Pt) (( (ptr) seg←v8316)+11) ), pd100);
};
hiPoint←v15336 = var←c0256;
};
}
else {
hiPoint←v15336.f0 = (* (( (ptr) seg←v8316)+11) );
hiPoint←v15336.f1 = (* (( (ptr) seg←v8316)+12) );
};
SOURCE(8237, 32)
{
W2 var←c46908;
var←c46908.f0 = hiPoint←v15336.f0;
var←c46908.f1 = hiPoint←v15336.f1;
(void) ( *( (fPt) ((* (ptr) lineTo←v8484 ))))(var←c46908, lineTo←v8484);
};
}
static void LineTransform←P1980(seg←v8628, transform←v8656)
word seg←v8628;
word transform←v8656;
{
register ptr gf←c49660 = (ptr) &globalframe;
word lineSegment←v15380;
/* LineTransform: */
SOURCE(8275, 204)
SOURCE(8362, 40)
lineSegment←v15380 = XR←Narrow((* (( (ptr) seg←v8628)+24) ), (* (( (ptr) gf←c49660)+15) ));
SOURCE(8404, 50)
{
word pd101;
pd101 = (* (( (ptr) (* (( (ptr) gf←c49660)+188)/* var←c46588 */ ))+29) );
(void) ( *( (fPt) ((* (ptr) pd101 ))))((* (W2Pt) (( (ptr) seg←v8628)+9) ), (* (W2Pt) (( (ptr) seg←v8628)+11) ), (* (ptr) lineSegment←v15380 ), pd101)
;
};
SOURCE(8456, 23)
(void) UpdateLineBoundBox←P1680(seg←v8628);
}
static void LineEndPointMoved←P2040(seg←v8716, lo←v8744, newPoint←v8772)
word seg←v8716;
word lo←v8744;
W2 newPoint←v8772;
{
register ptr gf←c49692 = (ptr) &globalframe;
word lineSegment←v15424;
/* LineEndPointMoved: */
SOURCE(8486, 187)
SOURCE(8556, 40)
lineSegment←v15424 = XR←Narrow((* (( (ptr) seg←v8716)+24) ), (* (( (ptr) gf←c49692)+15) ));
SOURCE(8598, 50)
{
word pd102;
pd102 = (* (( (ptr) (* (( (ptr) gf←c49692)+188)/* var←c46588 */ ))+29) );
(void) ( *( (fPt) ((* (ptr) pd102 ))))((* (W2Pt) (( (ptr) seg←v8716)+9) ), (* (W2Pt) (( (ptr) seg←v8716)+11) ), (* (ptr) lineSegment←v15424 ), pd102)
;
};
SOURCE(8650, 23)
(void) UpdateLineBoundBox←P1680(seg←v8716);
}
static word LineDescribe←P2100(seg←v8832, self←v8860, lo←v8888, hi←v8916, cps←v8944)
word seg←v8832;
word self←v8860;
word lo←v8888;
word hi←v8916;
word cps←v8944;
{
register ptr gf←c49724 = (ptr) &globalframe;
word rope←v8988;
/* LineDescribe: */
SOURCE(8680, 113)
SOURCE(8680, 113)
rope←v8988 = 0;
SOURCE(8780, 13)
rope←v8988 = (* (( (ptr) gf←c49724)+19) );
SOURCE(8680, 113)
return(rope←v8988);
}
static word LineFileIn←P2160(f←v9048, loPoint←v9076, hiPoint←v9104, version←v9132)
word f←v9048;
W2 loPoint←v9076;
W2 hiPoint←v9104;
word version←v9132;
{
word seg←v9176;
/* LineFileIn: */
SOURCE(8799, 136)
SOURCE(8799, 136)
seg←v9176 = 0;
SOURCE(8898, 37)
seg←v9176 = (word) MakeLine←P1500(loPoint←v9076, hiPoint←v9104, 0);
SOURCE(8799, 136)
return(seg←v9176);
}
static word PointIsInBox←P2220(test←v9236, box←v9264)
W2 test←v9236;
W6 box←v9264;
{
word var←c9308;
/* PointIsInBox: */
SOURCE(8964, 162)
SOURCE(9034, 92)
{
word tc103;
word x104;
word x105;
word x106;
word x107;
word x108;
word x109;
word x110;
word x111;
if ( ( ( ((
x104 = test←v9236.f0, *(float*)&x104
) >= (
x105 = box←v9264.f0, *(float*)&x105
)) ? ((
x106 = test←v9236.f0, *(float*)&x106
) <= (
x107 = box←v9264.f2, *(float*)&x107
)) : 0 ) ? ((
x108 = test←v9236.f1, *(float*)&x108
) >= (
x109 = box←v9264.f1, *(float*)&x109
)) : 0 ) ) {
tc103 = (word) ((
x110 = test←v9236.f1, *(float*)&x110
) <= (
x111 = box←v9264.f3, *(float*)&x111
));
}
else {
tc103 = (word) 0;
};
return(tc103);
};
}
static void LineClosestPoint←P2280(formal←c0288, seg←v9368, testPoint←v9396, tolerance←v9424)
word formal←c0288;
word seg←v9368;
W2 testPoint←v9396;
word tolerance←v9424;
{
register ptr gf←c49756 = (ptr) &globalframe;
W2 point←v9468;
word success←v9496;
word lineData←v15468;
/* LineClosestPoint: */
SOURCE(9132, 458)
SOURCE(9132, 458)
point←v9468.f0 = (* (ptr) &fc37 );
point←v9468.f1 = (* (ptr) &fc37 );
SOURCE(9132, 458)
success←v9496 = 0;
SOURCE(9268, 37)
lineData←v15468 = XR←Narrow((* (( (ptr) seg←v9368)+24) ), (* (( (ptr) gf←c49756)+15) ));
SOURCE(9307, 202)
if ((0 != (* (( (ptr) gf←c49756)+6)/* useBBox←v5240 */ ))) {
SOURCE(9323, 188)
{
W6 bigBox←v15512;
SOURCE(9325, 132)
{
word x112;
word x113;
*(float*)&bigBox←v15512.f0 = (
x112 = (* (ptr) (* (( (ptr) seg←v9368)+21) ) ), *(float*)&x112
) - (
x113 = tolerance←v9424, *(float*)&x113
);
};
{
word x114;
word x115;
*(float*)&bigBox←v15512.f1 = (
x114 = (* (( (ptr) (* (( (ptr) seg←v9368)+21) ))+1) ), *(float*)&x114
) - (
x115 = tolerance←v9424, *(float*)&x115
);
};
{
word x116;
word x117;
*(float*)&bigBox←v15512.f2 = (
x116 = (* (( (ptr) (* (( (ptr) seg←v9368)+21) ))+2) ), *(float*)&x116
) + (
x117 = tolerance←v9424, *(float*)&x117
);
};
{
word x118;
word x119;
*(float*)&bigBox←v15512.f3 = (
x118 = (* (( (ptr) (* (( (ptr) seg←v9368)+21) ))+3) ), *(float*)&x118
) + (
x119 = tolerance←v9424, *(float*)&x119
);
};
bigBox←v15512.f4 = 0;
bigBox←v15512.f5 = 0;
SOURCE(9459, 50)
if ((0 == (word) PointIsInBox←P2220(testPoint←v9396, bigBox←v15512))) {
SOURCE(9503, 6)
goto lab←L100008;
};
};
};
SOURCE(9514, 60)
{
word pd120;
pd120 = (* (( (ptr) (* (( (ptr) gf←c49756)+188)/* var←c46588 */ ))+46) );
(void) ( *( (fPt) ((* (ptr) pd120 ))))((word) &point←v9468, testPoint←v9396, (* (ptr) lineData←v15468 ), pd120);
};
SOURCE(9576, 14)
success←v9496 = 1;
/* removed tail goto */
lab←L100008: ;
(* (W2Pt) formal←c0288 ) = point←v9468;
(* (( (ptr) formal←c0288)+2) ) = success←v9496;
return;
}
static void LineClosestPointAndTangent←P2340(formal←c0299, seg←v9556, testPoint←v9584, tolerance←v9612)
word formal←c0299;
word seg←v9556;
W2 testPoint←v9584;
word tolerance←v9612;
{
register ptr gf←c49788 = (ptr) &globalframe;
W2 point←v9656;
W2 tangent←v9684;
word success←v9712;
word lineData←v15556;
/* LineClosestPointAndTangent: */
SOURCE(9596, 549)
SOURCE(9596, 549)
point←v9656.f0 = (* (ptr) &fc37 );
point←v9656.f1 = (* (ptr) &fc37 );
SOURCE(9596, 549)
tangent←v9684.f0 = (* (ptr) &fc37 );
tangent←v9684.f1 = (* (ptr) &fc38 );
SOURCE(9596, 549)
success←v9712 = 0;
SOURCE(9768, 37)
lineData←v15556 = XR←Narrow((* (( (ptr) seg←v9556)+24) ), (* (( (ptr) gf←c49788)+15) ));
SOURCE(9807, 202)
if ((0 != (* (( (ptr) gf←c49788)+6)/* useBBox←v5240 */ ))) {
SOURCE(9823, 188)
{
W6 bigBox←v15600;
SOURCE(9825, 132)
{
word x121;
word x122;
*(float*)&bigBox←v15600.f0 = (
x121 = (* (ptr) (* (( (ptr) seg←v9556)+21) ) ), *(float*)&x121
) - (
x122 = tolerance←v9612, *(float*)&x122
);
};
{
word x123;
word x124;
*(float*)&bigBox←v15600.f1 = (
x123 = (* (( (ptr) (* (( (ptr) seg←v9556)+21) ))+1) ), *(float*)&x123
) - (
x124 = tolerance←v9612, *(float*)&x124
);
};
{
word x125;
word x126;
*(float*)&bigBox←v15600.f2 = (
x125 = (* (( (ptr) (* (( (ptr) seg←v9556)+21) ))+2) ), *(float*)&x125
) + (
x126 = tolerance←v9612, *(float*)&x126
);
};
{
word x127;
word x128;
*(float*)&bigBox←v15600.f3 = (
x127 = (* (( (ptr) (* (( (ptr) seg←v9556)+21) ))+3) ), *(float*)&x127
) + (
x128 = tolerance←v9612, *(float*)&x128
);
};
bigBox←v15600.f4 = 0;
bigBox←v15600.f5 = 0;
SOURCE(9959, 50)
if ((0 == (word) PointIsInBox←P2220(testPoint←v9584, bigBox←v15600))) {
SOURCE(10003, 6)
goto lab←L100009;
};
};
};
SOURCE(10014, 60)
{
word pd129;
pd129 = (* (( (ptr) (* (( (ptr) gf←c49788)+188)/* var←c46588 */ ))+46) );
(void) ( *( (fPt) ((* (ptr) pd129 ))))((word) &point←v9656, testPoint←v9584, (* (ptr) lineData←v15556 ), pd129);
};
SOURCE(10076, 53)
{
word pd130;
pd130 = (* (( (ptr) (* (( (ptr) gf←c49788)+188)/* var←c46588 */ ))+37) );
(void) ( *( (fPt) ((* (ptr) pd130 ))))((word) &tangent←v9684, (* (ptr) (* (ptr) lineData←v15556 ) ), pd130);
};
SOURCE(10131, 14)
success←v9712 = 1;
/* removed tail goto */
lab←L100009: ;
(* (W2Pt) formal←c0299 ) = point←v9656;
(* (W2Pt) (( (ptr) formal←c0299)+2) ) = tangent←v9684;
(* (( (ptr) formal←c0299)+4) ) = success←v9712;
return;
}
static void LineLineIntersection←P2400(formal←c0311, seg←v9772, line←v9800)
word formal←c0311;
word seg←v9772;
word line←v9800;
{
register ptr gf←c49820 = (ptr) &globalframe;
word points←v9844;
word pointCount←v9872;
word lineData←v15644;
word failure←v15672;
W2 ipoint←v15700;
/* LineLineIntersection: */
SOURCE(10151, 322)
SOURCE(10151, 322)
points←v9844 = 0;
SOURCE(10258, 37)
lineData←v15644 = XR←Narrow((* (( (ptr) seg←v9772)+24) ), (* (( (ptr) gf←c49820)+15) ));
SOURCE(10327, 62)
{
W3 var←c47004;
{
word pd131;
pd131 = (* (( (ptr) (* (( (ptr) gf←c49820)+188)/* var←c46588 */ ))+35) );
(void) ( *( (fPt) ((* (ptr) pd131 ))))((word) &var←c47004, line←v9800, (* (ptr) lineData←v15644 ), pd131);
};
failure←v15672 = var←c47004.f2;
ipoint←v15700 = (* (W2Pt) &var←c47004 );
};
SOURCE(10391, 40)
if ((0 != failure←v15672)) {
SOURCE(10409, 14)
pointCount←v9872 = 0;
SOURCE(10425, 6)
goto lab←L100010;
};
SOURCE(10436, 21)
{
word var←c47036;
word var←c47068;
var←c47036 = XR←NewObject(12, (* (( (ptr) gf←c49820)+18) ));
var←c47068 = var←c47036;
(* (W2Pt) var←c47068 ) = ipoint←v15700;
points←v9844 = var←c47036;
};
SOURCE(10459, 14)
pointCount←v9872 = 1;
/* removed tail goto */
lab←L100010: ;
(* (ptr) formal←c0311 ) = points←v9844;
(* (( (ptr) formal←c0311)+1) ) = pointCount←v9872;
return;
}
static void LineCircleIntersection←P2460(formal←c0323, seg←v10016, circle←v10044)
word formal←c0323;
word seg←v10016;
word circle←v10044;
{
register ptr gf←c49852 = (ptr) &globalframe;
word points←v10088;
word pointCount←v10116;
word lineData←v15744;
W4 hitPoints←v15772;
/* LineCircleIntersection: */
SOURCE(10479, 343)
SOURCE(10479, 343)
points←v10088 = 0;
SOURCE(10592, 37)
lineData←v15744 = XR←Narrow((* (( (ptr) seg←v10016)+24) ), (* (( (ptr) gf←c49852)+15) ));
SOURCE(10664, 74)
{
W6 var←c47132;
{
word pd132;
pd132 = (* (( (ptr) (* (( (ptr) gf←c49852)+190)/* var←c47100 */ ))+11) );
(void) ( *( (fPt) ((* (ptr) pd132 ))))((word) &var←c47132, circle←v10044, (* (ptr) lineData←v15744 ), pd132);
};
pointCount←v10116 = var←c47132.f4;
hitPoints←v15772 = (* (W4Pt) &var←c47132 );
};
SOURCE(10740, 12)
points←v10088 = 0;
SOURCE(10754, 68)
{
register word i←v15852 = 1;
register word noName←c47164;
noName←c47164 = pointCount←v10116;
if ((i←v15852 > noName←c47164)) {
goto lab←L100012;
};
lab←L100015: ;
SOURCE(10787, 35)
{
word var←c47196;
var←c47196 = XR←NewObject(12, (* (( (ptr) gf←c49852)+18) ));
(* (W2Pt) var←c47196 ) = (* (( (W2Pt) &hitPoints←v15772)+BCK((i←v15852 - 1), 2)) );
(* (( (ptr) var←c47196)+2) ) = points←v10088;
points←v10088 = var←c47196;
};
if ((i←v15852 >= noName←c47164)) {
goto lab←L100012;
};
i←v15852 = (i←v15852 + 1);
goto lab←L100015;
lab←L100012: ;
};
/* removed tail goto */
(* (ptr) formal←c0323 ) = points←v10088;
(* (( (ptr) formal←c0323)+1) ) = pointCount←v10116;
return;
}
static word LineAsSimpleCurve←P2520(seg←v10260, point←v10288)
word seg←v10260;
W2 point←v10288;
{
register ptr gf←c49884 = (ptr) &globalframe;
word simpleCurve←v10332;
word lineData←v15896;
word edge←v15924;
/* LineAsSimpleCurve: */
SOURCE(10837, 173)
SOURCE(10837, 173)
simpleCurve←v10332 = 0;
SOURCE(10925, 37)
lineData←v15896 = XR←Narrow((* (( (ptr) seg←v10260)+24) ), (* (( (ptr) gf←c49884)+15) ));
SOURCE(10964, 26)
edge←v15924 = (* (ptr) lineData←v15896 );
SOURCE(10992, 18)
simpleCurve←v10332 = edge←v15924;
SOURCE(10837, 173)
return(simpleCurve←v10332);
}
static void LineJointNormal←P2580(formal←c0346, seg←v10404, joint←v10432, point←v10460, hi←v10488)
word formal←c0346;
word seg←v10404;
W2 joint←v10432;
W2 point←v10460;
word hi←v10488;
{
register ptr gf←c49916 = (ptr) &globalframe;
W2 normal←v10532;
W2 tangent←v10560;
W2 normal1←v15968;
W2 normal2←v15996;
W2 direction←v16024;
W2 p0←v16052;
W2 p1←v16080;
word lineData←v16108;
/* LineJointNormal: */
SOURCE(11016, 800)
SOURCE(11174, 37)
lineData←v16108 = XR←Narrow((* (( (ptr) seg←v10404)+24) ), (* (( (ptr) gf←c49916)+15) ));
SOURCE(11213, 52)
{
word pd133;
pd133 = (* (( (ptr) (* (( (ptr) gf←c49916)+184)/* var←c45788 */ ))+23) );
(void) ( *( (fPt) ((* (ptr) pd133 ))))((word) &normal1←v15968, (* (ptr) lineData←v16108 ), pd133);
};
SOURCE(11267, 51)
{
word pd134;
pd134 = (* (( (ptr) (* (( (ptr) gf←c49916)+184)/* var←c45788 */ ))+24) );
(void) ( *( (fPt) ((* (ptr) pd134 ))))((word) &normal2←v15996, (* (ptr) lineData←v16108 ), pd134);
};
SOURCE(11320, 52)
{
word pd135;
pd135 = (* (( (ptr) (* (( (ptr) gf←c49916)+184)/* var←c45788 */ ))+22) );
(void) ( *( (fPt) ((* (ptr) pd135 ))))((word) &direction←v16024, joint←v10432, point←v10460, pd135);
};
SOURCE(11374, 181)
{
float tf136;
word pd137;
word x138;
float tf139;
word pd140;
word x141;
pd137 = (* (( (ptr) (* (( (ptr) gf←c49916)+184)/* var←c45788 */ ))+9) );
pd140 = (* (( (ptr) (* (( (ptr) gf←c49916)+184)/* var←c45788 */ ))+9) );
if ((FABS((
x138 = (word) ( *( (fPt) ((* (ptr) pd137 ))))(normal1←v15968, direction←v16024, pd137), *(float*)&x138
), tf136) < FABS((
x141 = (word) ( *( (fPt) ((* (ptr) pd140 ))))(normal2←v15996, direction←v16024, pd140), *(float*)&x141
), tf139))) {
SOURCE(11512, 17)
normal←v10532 = normal1←v15968;
}
else {
SOURCE(11539, 16)
normal←v10532 = normal2←v15996;
};
};
SOURCE(11559, 144)
if ((0 != (* (( (ptr) (* (ptr) lineData←v16108 ))+1) ))) {
SOURCE(11596, 24)
p0←v16052 = (* (W2Pt) (( (ptr) (* (ptr) lineData←v16108 ))+2) );
SOURCE(11622, 22)
p1←v16080 = (* (W2Pt) (( (ptr) (* (ptr) lineData←v16108 ))+4) );
}
else {
SOURCE(11655, 22)
p0←v16052 = (* (W2Pt) (( (ptr) (* (ptr) lineData←v16108 ))+4) );
SOURCE(11679, 24)
p1←v16080 = (* (W2Pt) (( (ptr) (* (ptr) lineData←v16108 ))+2) );
};
SOURCE(11708, 108)
if ((0 != hi←v10488)) {
SOURCE(11720, 43)
{
word pd142;
pd142 = (* (( (ptr) (* (( (ptr) gf←c49916)+184)/* var←c45788 */ ))+22) );
(void) ( *( (fPt) ((* (ptr) pd142 ))))((word) &tangent←v10560, p1←v16080, p0←v16052, pd142);
};
}
else {
SOURCE(11773, 43)
{
word pd143;
pd143 = (* (( (ptr) (* (( (ptr) gf←c49916)+184)/* var←c45788 */ ))+22) );
(void) ( *( (fPt) ((* (ptr) pd143 ))))((word) &tangent←v10560, p0←v16052, p1←v16080, pd143);
};
};
/* removed tail goto */
(* (W2Pt) formal←c0346 ) = normal←v10532;
(* (W2Pt) (( (ptr) formal←c0346)+2) ) = tangent←v10560;
return;
}
static void LineAddJoint←P2640(formal←c0351, seg←v10620, pos←v10648)
word formal←c0351;
word seg←v10620;
W2 pos←v10648;
{
register ptr gf←c49948 = (ptr) &globalframe;
word seg1←v10692;
word seg2←v10720;
/* LineAddJoint: */
SOURCE(11825, 231)
SOURCE(11825, 231)
seg1←v10692 = 0;
SOURCE(11825, 231)
seg2←v10720 = 0;
SOURCE(11906, 33)
{
word pd144;
pd144 = (* (( (ptr) (* (( (ptr) gf←c49948)+185)/* var←c46108 */ ))+17) );
seg1←v10692 = (word) ( *( (fPt) ((* (ptr) pd144 ))))(seg←v10620, pd144);
};
SOURCE(11941, 13)
(* (W2Pt) (( (ptr) seg1←v10692)+11) ) = pos←v10648;
SOURCE(11956, 24)
(void) UpdateLineBoundBox←P1680(seg1←v10692);
SOURCE(11982, 33)
{
word pd145;
pd145 = (* (( (ptr) (* (( (ptr) gf←c49948)+185)/* var←c46108 */ ))+17) );
seg2←v10720 = (word) ( *( (fPt) ((* (ptr) pd145 ))))(seg←v10620, pd145);
};
SOURCE(12017, 13)
(* (W2Pt) (( (ptr) seg2←v10720)+9) ) = pos←v10648;
SOURCE(12032, 24)
(void) UpdateLineBoundBox←P1680(seg2←v10720);
/* removed tail goto */
(* (ptr) formal←c0351 ) = seg1←v10692;
(* (( (ptr) formal←c0351)+1) ) = seg2←v10720;
return;
}
static word BuildArcClass←P2700()
{
register ptr gf←c49980 = (ptr) &globalframe;
word class←v10892;
/* BuildArcClass: */
SOURCE(12175, 998)
SOURCE(12175, 998)
class←v10892 = 0;
SOURCE(12248, 925)
{
word var←c47228;
var←c47228 = XR←NewObject(116, (* (( (ptr) gf←c49980)+8) ));
(* (ptr) var←c47228 ) = (* (( (ptr) gf←c49980)+20) );
(* (( (ptr) var←c47228)+1) ) = (word) (( (bPt) gf←c49980)+320)/* var←c44028 */ ;
(* (( (ptr) var←c47228)+2) ) = (word) (( (bPt) gf←c49980)+312)/* var←c43996 */ ;
(* (( (ptr) var←c47228)+3) ) = (word) (( (bPt) gf←c49980)+280)/* var←c43868 */ ;
(* (( (ptr) var←c47228)+4) ) = (word) (( (bPt) gf←c49980)+272)/* var←c43836 */ ;
(* (( (ptr) var←c47228)+5) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c49980)+185)/* var←c46108 */ ))+35) );
(* (( (ptr) var←c47228)+6) ) = (word) (( (bPt) gf←c49980)+232)/* var←c43676 */ ;
(* (( (ptr) var←c47228)+7) ) = (word) (( (bPt) gf←c49980)+224)/* var←c43644 */ ;
(* (( (ptr) var←c47228)+8) ) = (word) (( (bPt) gf←c49980)+264)/* var←c43804 */ ;
(* (( (ptr) var←c47228)+9) ) = (word) (( (bPt) gf←c49980)+256)/* var←c43772 */ ;
(* (( (ptr) var←c47228)+10) ) = (word) (( (bPt) gf←c49980)+248)/* var←c43740 */ ;
(* (( (ptr) var←c47228)+11) ) = (word) (( (bPt) gf←c49980)+216)/* var←c43612 */ ;
(* (( (ptr) var←c47228)+12) ) = (word) (( (bPt) gf←c49980)+208)/* var←c43580 */ ;
(* (( (ptr) var←c47228)+13) ) = (word) (( (bPt) gf←c49980)+200)/* var←c43548 */ ;
(* (( (ptr) var←c47228)+14) ) = (word) (( (bPt) gf←c49980)+192)/* var←c43516 */ ;
(* (( (ptr) var←c47228)+15) ) = (word) (( (bPt) gf←c49980)+184)/* var←c43484 */ ;
(* (( (ptr) var←c47228)+16) ) = (word) (( (bPt) gf←c49980)+176)/* var←c43452 */ ;
(* (( (ptr) var←c47228)+17) ) = (word) (( (bPt) gf←c49980)+168)/* var←c43420 */ ;
(* (( (ptr) var←c47228)+18) ) = (word) (( (bPt) gf←c49980)+160)/* var←c43388 */ ;
(* (( (ptr) var←c47228)+19) ) = (word) (( (bPt) gf←c49980)+152)/* var←c43356 */ ;
(* (( (ptr) var←c47228)+20) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c49980)+185)/* var←c46108 */ ))+42) );
(* (( (ptr) var←c47228)+21) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c49980)+185)/* var←c46108 */ ))+43) );
(* (( (ptr) var←c47228)+22) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c49980)+185)/* var←c46108 */ ))+44) );
(* (( (ptr) var←c47228)+23) ) = (word) (( (bPt) gf←c49980)+144)/* var←c43324 */ ;
(* (( (ptr) var←c47228)+24) ) = (word) (( (bPt) gf←c49980)+136)/* var←c43292 */ ;
(* (( (ptr) var←c47228)+25) ) = (word) (( (bPt) gf←c49980)+128)/* var←c43260 */ ;
(* (( (ptr) var←c47228)+26) ) = (word) (( (bPt) gf←c49980)+120)/* var←c43228 */ ;
(* (( (ptr) var←c47228)+27) ) = (word) (( (bPt) gf←c49980)+112)/* var←c43196 */ ;
(* (( (ptr) var←c47228)+28) ) = (word) (( (bPt) gf←c49980)+344)/* var←c44124 */ ;
class←v10892 = var←c47228;
};
SOURCE(12175, 998)
return(class←v10892);
}
static void ArcSetStrokeWidth←P2760(seg←v10952, strokeWidth←v10980)
word seg←v10952;
word strokeWidth←v10980;
{
/* ArcSetStrokeWidth: */
SOURCE(13179, 117)
SOURCE(13241, 29)
(* (( (ptr) seg←v10952)+2) ) = strokeWidth←v10980;
SOURCE(13272, 24)
(void) UpdateBoundBoxOfArc←P3180(seg←v10952);
}
static word MakeArc←P2820(p0←v11040, p1←v11068, p2←v11096, props←v11124)
W2 p0←v11040;
W2 p1←v11068;
W2 p2←v11096;
word props←v11124;
{
register ptr gf←c50012 = (ptr) &globalframe;
word seg←v11264;
word data←v16152;
/* MakeArc: */
SOURCE(13302, 601)
SOURCE(13302, 601)
seg←v11264 = 0;
SOURCE(13394, 126)
{
word var←c47260;
word var←c47292;
{
word pd146;
pd146 = (* (( (ptr) (* (( (ptr) gf←c50012)+190)/* var←c47100 */ ))+24) );
var←c47260 = (word) ( *( (fPt) ((* (ptr) pd146 ))))(p0←v11040, p1←v11068, p2←v11096, pd146);
};
var←c47292 = XR←NewObject(28, (* (( (ptr) gf←c50012)+14) ));
(* (ptr) var←c47292 ) = p1←v11068.f0;
(* (( (ptr) var←c47292)+1) ) = p1←v11068.f1;
(* (W4Pt) (( (ptr) var←c47292)+2) ) = (* (W4Pt) (( (ptr) gf←c50012)+180)/* var←c45660 */ );
(* (( (ptr) var←c47292)+6) ) = var←c47260;
data←v16152 = var←c47292;
};
SOURCE(13522, 355)
{
word var←c47324;
word var←c47356;
word var←c47388;
word var←c47420;
{
word pd147;
pd147 = (* (( (ptr) (* (( (ptr) gf←c50012)+185)/* var←c46108 */ ))+24) );
var←c47324 = (word) ( *( (fPt) ((* (ptr) pd147 ))))((* ((( (ptr) gf←c50012)+20)) ), pd147);
};
{
word pd148;
pd148 = (* (( (ptr) (* (( (ptr) gf←c50012)+186)/* var←c46172 */ ))+5) );
var←c47356 = (word) ( *( (fPt) ((* (ptr) pd148 ))))((* (ptr) &fc37 ), (* (ptr) &fc37 ), (* (ptr) &fc37 ), (* (ptr) &fc37 ), 0, 0, pd148)
;
};
{
word pd149;
pd149 = (* (( (ptr) (* (( (ptr) gf←c50012)+186)/* var←c46172 */ ))+5) );
var←c47388 = (word) ( *( (fPt) ((* (ptr) pd149 ))))((* (ptr) &fc37 ), (* (ptr) &fc37 ), (* (ptr) &fc37 ), (* (ptr) &fc37 ), 0, 0, pd149)
;
};
var←c47420 = XR←NewObject(104, (* (( (ptr) gf←c50012)+12) ));
(* (ptr) var←c47420 ) = var←c47324;
(* (( (ptr) var←c47420)+2) ) = (* (( (ptr) gf←c50012)+4)/* defaultStrokeWidth←v4092 */ );
(* (( (ptr) var←c47420)+3) ) = (* (( (ptr) gf←c50012)+5)/* defaultStrokeEnd←v4120 */ );
(* (( (ptr) var←c47420)+6) ) = (* (ptr) &fc37 );
(* (( (ptr) var←c47420)+7) ) = (* (ptr) &fc38 );
(* (( (ptr) var←c47420)+8) ) = (* (ptr) (* (( (ptr) (* (( (ptr) gf←c50012)+187)/* var←c46268 */ ))+54) ) );
(* (W2Pt) (( (ptr) var←c47420)+9) ) = p0←v11040;
(* (W2Pt) (( (ptr) var←c47420)+11) ) = p2←v11096;
(* (( (ptr) var←c47420)+13) ) = (* (ptr) &fc37 );
(* (( (ptr) var←c47420)+14) ) = (* (ptr) &fc37 );
(* (( (ptr) var←c47420)+15) ) = (* (ptr) &fc37 );
(* (( (ptr) var←c47420)+16) ) = (* (ptr) &fc37 );
(* (W4Pt) (( (ptr) var←c47420)+17) ) = (* (W4Pt) (( (ptr) gf←c50012)+180)/* var←c45660 */ );
(* (( (ptr) var←c47420)+21) ) = var←c47356;
(* (( (ptr) var←c47420)+22) ) = var←c47388;
(* (( (ptr) var←c47420)+24) ) = data←v16152;
(* (( (ptr) var←c47420)+25) ) = props←v11124;
seg←v11264 = var←c47420;
};
SOURCE(13879, 24)
(void) UpdateBoundBoxOfArc←P3180(seg←v11264);
SOURCE(13302, 601)
return(seg←v11264);
}
static void ArcGetParams←P2880(formal←c0373, seg←v11324)
word formal←c0373;
word seg←v11324;
{
register ptr gf←c50044 = (ptr) &globalframe;
W2 p0←v11368;
W2 p1←v11396;
W2 p2←v11424;
word data←v16196;
/* ArcGetParams: */
SOURCE(13909, 145)
SOURCE(13982, 32)
data←v16196 = XR←Narrow((* (( (ptr) seg←v11324)+24) ), (* (( (ptr) gf←c50044)+14) ));
SOURCE(14016, 11)
p0←v11368 = (* (W2Pt) (( (ptr) seg←v11324)+9) );
SOURCE(14029, 11)
p2←v11424 = (* (W2Pt) (( (ptr) seg←v11324)+11) );
SOURCE(14042, 12)
p1←v11396 = (* (W2Pt) data←v16196 );
/* removed tail goto */
(* (W2Pt) formal←c0373 ) = p0←v11368;
(* (W2Pt) (( (ptr) formal←c0373)+2) ) = p1←v11396;
(* (W2Pt) (( (ptr) formal←c0373)+4) ) = p2←v11424;
return;
}
static word ArcBoundBox←P2940(seg←v11484)
word seg←v11484;
{
word bBox←v11528;
/* ArcBoundBox: */
SOURCE(14060, 77)
SOURCE(14060, 77)
bBox←v11528 = 0;
SOURCE(14122, 15)
bBox←v11528 = (* (( (ptr) seg←v11484)+21) );
SOURCE(14060, 77)
return(bBox←v11528);
}
static word ArcTightBox←P3000(seg←v11588)
word seg←v11588;
{
word bBox←v11632;
/* ArcTightBox: */
SOURCE(14143, 81)
SOURCE(14143, 81)
bBox←v11632 = 0;
SOURCE(14205, 19)
bBox←v11632 = (* (( (ptr) seg←v11588)+22) );
SOURCE(14143, 81)
return(bBox←v11632);
}
static void UpdateTightBoxOfArc←P3060(seg←v11692, boundBox←v11720)
word seg←v11692;
word boundBox←v11720;
{
register ptr gf←c50076 = (ptr) &globalframe;
word data←v16240;
word arc←v16268;
/* UpdateTightBoxOfArc: */
SOURCE(14230, 1001)
SOURCE(14295, 32)
data←v16240 = XR←Narrow((* (( (ptr) seg←v11692)+24) ), (* (( (ptr) gf←c50076)+14) ));
SOURCE(14329, 19)
arc←v16268 = (* (( (ptr) data←v16240)+6) );
SOURCE(14350, 881)
if (((* (( (ptr) arc←v16268)+8) ) != 0)) {
SOURCE(14373, 46)
(void) UpdateBoundBoxOfEdge←P3120((* (( (ptr) arc←v16268)+8) ), boundBox←v11720);
}
else {
SOURCE(14421, 102)
(* (( (ptr) boundBox←v11720)+1) ) = (* (( (ptr) arc←v16268)+3) );
(* (( (ptr) boundBox←v11720)+2) ) = (* (( (ptr) arc←v16268)+2) );
(* (( (ptr) boundBox←v11720)+3) ) = (* (( (ptr) arc←v16268)+3) );
(* (ptr) boundBox←v11720 ) = (* (( (ptr) arc←v16268)+2) );
(* (( (ptr) boundBox←v11720)+4) ) = 0;
(* (( (ptr) boundBox←v11720)+5) ) = 0;
SOURCE(14525, 43)
{
word pd150;
pd150 = (* (( (ptr) (* (( (ptr) gf←c50076)+186)/* var←c46172 */ ))+15) );
(void) ( *( (fPt) ((* (ptr) pd150 ))))(boundBox←v11720, (* (W2Pt) (( (ptr) arc←v16268)+4) ), pd150);
};
SOURCE(14570, 162)
{
word pd151;
pd151 = (* (( (ptr) (* (( (ptr) gf←c50076)+191)/* var←c47548 */ ))+13) );
if ((0 != (word) ( *( (fPt) ((* (ptr) pd151 ))))((* (ptr) &fc37 ), (* (( (ptr) arc←v16268)+6) ), (* (( (ptr) arc←v16268)+7)
), pd151))) {
SOURCE(14637, 95)
{
W2 var←c47580;
{
W2 var←c0387;
{
W2 var←c47612;
var←c47612.f0 = (* (( (ptr) (* (ptr) arc←v16268 ))+2) );
var←c47612.f1 = (* (ptr) &fc37 );
{
word pd152;
pd152 = (* (( (ptr) (* (( (ptr) gf←c50076)+184)/* var←c45788 */ ))+10) );
(void) ( *( (fPt) ((* (ptr) pd152 ))))((word) &var←c0387, (* (W2Pt) (* (ptr) arc←v16268 ) ), var←c47612, pd152);
};
};
var←c47580 = var←c0387;
};
{
word pd153;
pd153 = (* (( (ptr) (* (( (ptr) gf←c50076)+186)/* var←c46172 */ ))+15) );
(void) ( *( (fPt) ((* (ptr) pd153 ))))(boundBox←v11720, var←c47580, pd153);
};
};
};
};
SOURCE(14734, 163)
{
word pd154;
pd154 = (* (( (ptr) (* (( (ptr) gf←c50076)+191)/* var←c47548 */ ))+13) );
if ((0 != (word) ( *( (fPt) ((* (ptr) pd154 ))))((* (ptr) &fc155 ), (* (( (ptr) arc←v16268)+6) ), (* (( (ptr) arc←v16268)+7)
), pd154))) {
SOURCE(14802, 95)
{
W2 var←c47644;
{
W2 var←c0390;
{
W2 var←c47676;
var←c47676.f0 = (* (ptr) &fc37 );
var←c47676.f1 = (* (( (ptr) (* (ptr) arc←v16268 ))+2) );
{
word pd156;
pd156 = (* (( (ptr) (* (( (ptr) gf←c50076)+184)/* var←c45788 */ ))+10) );
(void) ( *( (fPt) ((* (ptr) pd156 ))))((word) &var←c0390, (* (W2Pt) (* (ptr) arc←v16268 ) ), var←c47676, pd156);
};
};
var←c47644 = var←c0390;
};
{
word pd157;
pd157 = (* (( (ptr) (* (( (ptr) gf←c50076)+186)/* var←c46172 */ ))+15) );
(void) ( *( (fPt) ((* (ptr) pd157 ))))(boundBox←v11720, var←c47644, pd157);
};
};
};
};
SOURCE(14899, 165)
{
word pd158;
pd158 = (* (( (ptr) (* (( (ptr) gf←c50076)+191)/* var←c47548 */ ))+13) );
if ((0 != (word) ( *( (fPt) ((* (ptr) pd158 ))))((* (ptr) &fc159 ), (* (( (ptr) arc←v16268)+6) ), (* (( (ptr) arc←v16268)+7)
), pd158))) {
SOURCE(14968, 96)
{
W2 var←c47708;
{
W2 var←c0393;
{
W2 var←c47740;
{
word x160;
*(float*)&var←c47740.f0 = - (
x160 = (* (( (ptr) (* (ptr) arc←v16268 ))+2) ), *(float*)&x160
);
};
var←c47740.f1 = (* (ptr) &fc37 );
{
word pd161;
pd161 = (* (( (ptr) (* (( (ptr) gf←c50076)+184)/* var←c45788 */ ))+10) );
(void) ( *( (fPt) ((* (ptr) pd161 ))))((word) &var←c0393, (* (W2Pt) (* (ptr) arc←v16268 ) ), var←c47740, pd161);
};
};
var←c47708 = var←c0393;
};
{
word pd162;
pd162 = (* (( (ptr) (* (( (ptr) gf←c50076)+186)/* var←c46172 */ ))+15) );
(void) ( *( (fPt) ((* (ptr) pd162 ))))(boundBox←v11720, var←c47708, pd162);
};
};
};
};
SOURCE(15066, 165)
{
word pd163;
pd163 = (* (( (ptr) (* (( (ptr) gf←c50076)+191)/* var←c47548 */ ))+13) );
if ((0 != (word) ( *( (fPt) ((* (ptr) pd163 ))))((* (ptr) &fc164 ), (* (( (ptr) arc←v16268)+6) ), (* (( (ptr) arc←v16268)+7)
), pd163))) {
SOURCE(15135, 96)
{
W2 var←c47772;
{
W2 var←c0396;
{
W2 var←c47804;
var←c47804.f0 = (* (ptr) &fc37 );
{
word x165;
*(float*)&var←c47804.f1 = - (
x165 = (* (( (ptr) (* (ptr) arc←v16268 ))+2) ), *(float*)&x165
);
};
{
word pd166;
pd166 = (* (( (ptr) (* (( (ptr) gf←c50076)+184)/* var←c45788 */ ))+10) );
(void) ( *( (fPt) ((* (ptr) pd166 ))))((word) &var←c0396, (* (W2Pt) (* (ptr) arc←v16268 ) ), var←c47804, pd166);
};
};
var←c47772 = var←c0396;
};
{
word pd167;
pd167 = (* (( (ptr) (* (( (ptr) gf←c50076)+186)/* var←c46172 */ ))+15) );
(void) ( *( (fPt) ((* (ptr) pd167 ))))(boundBox←v11720, var←c47772, pd167);
};
};
};
};
};
}
static void UpdateBoundBoxOfEdge←P3120(edge←v11780, boundBox←v11808)
word edge←v11780;
word boundBox←v11808;
{
/* UpdateBoundBoxOfEdge: */
SOURCE(15240, 251)
SOURCE(15304, 187)
{
word x168;
float tf169;
float tf170;
word x171;
float tf172;
(* (( (ptr) boundBox←v11808)+1) ) = (
tf172 = FMIN((
x168 = (* (( (ptr) edge←v11780)+3) ), *(float*)&x168
), (
x171 = (* (( (ptr) edge←v11780)+5) ), *(float*)&x171
), tf169, tf170), *(word*)&tf172
);
};
{
word x173;
float tf174;
float tf175;
word x176;
float tf177;
(* (( (ptr) boundBox←v11808)+2) ) = (
tf177 = FMAX((
x173 = (* (( (ptr) edge←v11780)+2) ), *(float*)&x173
), (
x176 = (* (( (ptr) edge←v11780)+4) ), *(float*)&x176
), tf174, tf175), *(word*)&tf177
);
};
{
word x178;
float tf179;
float tf180;
word x181;
float tf182;
(* (( (ptr) boundBox←v11808)+3) ) = (
tf182 = FMAX((
x178 = (* (( (ptr) edge←v11780)+3) ), *(float*)&x178
), (
x181 = (* (( (ptr) edge←v11780)+5) ), *(float*)&x181
), tf179, tf180), *(word*)&tf182
);
};
{
word x183;
float tf184;
float tf185;
word x186;
float tf187;
(* (ptr) boundBox←v11808 ) = (
tf187 = FMIN((
x183 = (* (( (ptr) edge←v11780)+2) ), *(float*)&x183
), (
x186 = (* (( (ptr) edge←v11780)+4) ), *(float*)&x186
), tf184, tf185), *(word*)&tf187
);
};
(* (( (ptr) boundBox←v11808)+4) ) = 0;
(* (( (ptr) boundBox←v11808)+5) ) = 0;
}
static void UpdateBoundBoxOfArc←P3180(seg←v11868)
word seg←v11868;
{
register ptr gf←c50108 = (ptr) &globalframe;
word pad←v16312;
/* UpdateBoundBoxOfArc: */
SOURCE(15497, 272)
SOURCE(15553, 38)
(void) UpdateTightBoxOfArc←P3060(seg←v11868, (* (( (ptr) seg←v11868)+22) ));
SOURCE(15593, 25)
(* (W6Pt) (* (( (ptr) seg←v11868)+21) ) ) = (* (W6Pt) (* (( (ptr) seg←v11868)+22) ) );
SOURCE(15620, 106)
if (((* (( (ptr) seg←v11868)+3) ) == 0)) {
SOURCE(15651, 44)
{
word x188;
word x189;
word x190;
*(float*)&pad←v16312 = ((
x188 = (* (( (ptr) seg←v11868)+2) ), *(float*)&x188
) * (
x189 = (* (ptr) &fc92 ), *(float*)&x189
)) + (
x190 = (* (ptr) &fc43 ), *(float*)&x190
);
};
}
else {
SOURCE(15695, 31)
{
word x191;
word x192;
word x193;
*(float*)&pad←v16312 = ((
x191 = (* (( (ptr) seg←v11868)+2) ), *(float*)&x191
) / (
x192 = (* (ptr) &fc36 ), *(float*)&x192
)) + (
x193 = (* (ptr) &fc43 ), *(float*)&x193
);
};
};
SOURCE(15728, 41)
{
word pd194;
pd194 = (* (( (ptr) (* (( (ptr) gf←c50108)+186)/* var←c46172 */ ))+17) );
(void) ( *( (fPt) ((* (ptr) pd194 ))))((* (( (ptr) seg←v11868)+21) ), pad←v16312, pd194);
};
}
static word ArcCopyData←P3240(seg←v27616)
word seg←v27616;
{
register ptr gf←c50140 = (ptr) &globalframe;
word data←v27660;
word arcData←v16356;
word new←v16384;
/* ArcCopyData: */
SOURCE(15775, 272)
SOURCE(15775, 272)
data←v27660 = 0;
SOURCE(15820, 35)
arcData←v16356 = XR←Narrow((* (( (ptr) seg←v27616)+24) ), (* (( (ptr) gf←c50140)+14) ));
SOURCE(15857, 30)
new←v16384 = XR←NewObject(28, (* (( (ptr) gf←c50140)+14) ));
SOURCE(15889, 19)
(* (W2Pt) new←v16384 ) = (* (W2Pt) arcData←v16356 );
SOURCE(15910, 35)
(* (W4Pt) (( (ptr) new←v16384)+2) ) = (* (W4Pt) (( (ptr) arcData←v16356)+2) );
SOURCE(15947, 36)
{
word pd195;
pd195 = (* (( (ptr) (* (( (ptr) gf←c50140)+190)/* var←c47100 */ ))+21) );
(* (( (ptr) new←v16384)+6) ) = (word) ( *( (fPt) ((* (ptr) pd195 ))))(pd195);
};
SOURCE(15985, 49)
{
word pd196;
pd196 = (* (( (ptr) (* (( (ptr) gf←c50140)+190)/* var←c47100 */ ))+22) );
(void) ( *( (fPt) ((* (ptr) pd196 ))))((* (( (ptr) arcData←v16356)+6) ), (* (( (ptr) new←v16384)+6) ), pd196);
};
SOURCE(16036, 11)
return(new←v16384);
}
static void ArcReverse←P3300(seg←v11928)
word seg←v11928;
{
register ptr gf←c50172 = (ptr) &globalframe;
word arcData←v16428;
/* ArcReverse: */
SOURCE(16053, 106)
SOURCE(16089, 35)
arcData←v16428 = XR←Narrow((* (( (ptr) seg←v11928)+24) ), (* (( (ptr) gf←c50172)+14) ));
SOURCE(16126, 33)
{
word pd197;
pd197 = (* (( (ptr) (* (( (ptr) gf←c50172)+190)/* var←c47100 */ ))+25) );
(void) ( *( (fPt) ((* (ptr) pd197 ))))((* ((( (ptr) arcData←v16428)+6)) ), pd197);
};
}
static void ArcTransform←P3360(seg←v11988, transform←v12016)
word seg←v11988;
word transform←v12016;
{
register ptr gf←c50204 = (ptr) &globalframe;
word data←v16472;
/* ArcTransform: */
SOURCE(16165, 260)
SOURCE(16251, 32)
data←v16472 = XR←Narrow((* (( (ptr) seg←v11988)+24) ), (* (( (ptr) gf←c50204)+14) ));
SOURCE(16285, 60)
{
word pd198;
pd198 = (* (( (ptr) (* (( (ptr) gf←c50204)+192)/* var←c47964 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd198 ))))((word) data←v16472, transform←v12016, (* (W2Pt) data←v16472 ), pd198);
};
SOURCE(16347, 52)
{
word pd199;
pd199 = (* (( (ptr) (* (( (ptr) gf←c50204)+190)/* var←c47100 */ ))+23) );
(void) ( *( (fPt) ((* (ptr) pd199 ))))((* (W2Pt) (( (ptr) seg←v11988)+9) ), (* (W2Pt) data←v16472 ), (* (W2Pt) (( (ptr) seg←v11988)+11)
), (* (( (ptr) data←v16472)+6) ), pd199);
};
SOURCE(16401, 24)
(void) UpdateBoundBoxOfArc←P3180(seg←v11988);
}
static void ArcEndPointMoved←P3420(seg←v12076, lo←v12104, newPoint←v12132)
word seg←v12076;
word lo←v12104;
W2 newPoint←v12132;
{
register ptr gf←c50236 = (ptr) &globalframe;
word data←v16516;
W2 p0←v16544;
W2 p1←v16572;
W2 p2←v16600;
/* ArcEndPointMoved: */
SOURCE(16431, 307)
SOURCE(16500, 32)
data←v16516 = XR←Narrow((* (( (ptr) seg←v12076)+24) ), (* (( (ptr) gf←c50236)+14) ));
SOURCE(16534, 43)
{
word tcp200;
if ((0 != lo←v12104)) {
tcp200 = (word) &newPoint←v12132;
}
else {
tcp200 = (word) (( (ptr) seg←v12076)+9);
};
p0←v16544 = (* (W2Pt) tcp200 );
};
SOURCE(16579, 34)
p1←v16572.f0 = (* (ptr) data←v16516 );
p1←v16572.f1 = (* (( (ptr) data←v16516)+1) );
SOURCE(16615, 43)
{
word tcp201;
if ((0 != lo←v12104)) {
tcp201 = (word) (( (ptr) seg←v12076)+11);
}
else {
tcp201 = (word) &newPoint←v12132;
};
p2←v16600 = (* (W2Pt) tcp201 );
};
SOURCE(16660, 52)
{
word pd202;
pd202 = (* (( (ptr) (* (( (ptr) gf←c50236)+190)/* var←c47100 */ ))+23) );
(void) ( *( (fPt) ((* (ptr) pd202 ))))((* (W2Pt) (( (ptr) seg←v12076)+9) ), (* (W2Pt) data←v16516 ), (* (W2Pt) (( (ptr) seg←v12076)+11)
), (* (( (ptr) data←v16516)+6) ), pd202);
};
SOURCE(16714, 24)
(void) UpdateBoundBoxOfArc←P3180(seg←v12076);
}
static void ArcControlPointMoved←P3480(seg←v12192, transform←v12220, controlPointNum←v12248)
word seg←v12192;
word transform←v12220;
word controlPointNum←v12248;
{
register ptr gf←c50268 = (ptr) &globalframe;
W2 p1Vec←v16644;
W2 p1←v16672;
word data←v16700;
/* ArcControlPointMoved: */
SOURCE(16744, 386)
SOURCE(16883, 32)
data←v16700 = XR←Narrow((* (( (ptr) seg←v12192)+24) ), (* (( (ptr) gf←c50268)+14) ));
SOURCE(16917, 26)
if ((controlPointNum←v12248 != 0)) {
SOURCE(16943, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(16950, 58)
{
word pd203;
pd203 = (* (( (ptr) (* (( (ptr) gf←c50268)+192)/* var←c47964 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd203 ))))((word) &p1Vec←v16644, transform←v12220, (* (W2Pt) data←v16700 ), pd203);
};
SOURCE(17010, 23)
p1←v16672.f0 = p1Vec←v16644.f0;
p1←v16672.f1 = p1Vec←v16644.f1;
SOURCE(17035, 15)
(* (W2Pt) data←v16700 ) = p1Vec←v16644;
SOURCE(17052, 52)
{
word pd204;
pd204 = (* (( (ptr) (* (( (ptr) gf←c50268)+190)/* var←c47100 */ ))+23) );
(void) ( *( (fPt) ((* (ptr) pd204 ))))((* (W2Pt) (( (ptr) seg←v12192)+9) ), (* (W2Pt) data←v16700 ), (* (W2Pt) (( (ptr) seg←v12192)+11)
), (* (( (ptr) data←v16700)+6) ), pd204);
};
SOURCE(17106, 24)
(void) UpdateBoundBoxOfArc←P3180(seg←v12192);
}
static void TransformEndPoints←P3540(formal←c0439, loPt←v12308, hiPt←v12336, lo←v12364, hi←v12392, transform←v12420)
word formal←c0439;
W2 loPt←v12308;
W2 hiPt←v12336;
word lo←v12364;
word hi←v12392;
word transform←v12420;
{
register ptr gf←c50300 = (ptr) &globalframe;
W2 newLo←v12464;
W2 newHi←v12492;
/* TransformEndPoints: */
SOURCE(17136, 353)
SOURCE(17275, 106)
if ((0 != lo←v12364)) {
SOURCE(17286, 72)
{
W2 var←c0436;
{
W2 var←c48028;
var←c48028.f0 = loPt←v12308.f0;
var←c48028.f1 = loPt←v12308.f1;
{
word pd205;
pd205 = (* (( (ptr) (* (( (ptr) gf←c50300)+192)/* var←c47964 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd205 ))))((word) &var←c0436, transform←v12420, var←c48028, pd205);
};
};
newLo←v12464 = var←c0436;
};
}
else {
SOURCE(17358, 23)
newLo←v12464.f0 = loPt←v12308.f0;
newLo←v12464.f1 = loPt←v12308.f1;
};
SOURCE(17383, 106)
if ((0 != hi←v12392)) {
SOURCE(17394, 72)
{
W2 var←c0438;
{
W2 var←c48060;
var←c48060.f0 = hiPt←v12336.f0;
var←c48060.f1 = hiPt←v12336.f1;
{
word pd206;
pd206 = (* (( (ptr) (* (( (ptr) gf←c50300)+192)/* var←c47964 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd206 ))))((word) &var←c0438, transform←v12420, var←c48060, pd206);
};
};
newHi←v12492 = var←c0438;
};
}
else {
SOURCE(17466, 23)
newHi←v12492.f0 = hiPt←v12336.f0;
newHi←v12492.f1 = hiPt←v12336.f1;
};
/* removed tail goto */
(* (W2Pt) formal←c0439 ) = newLo←v12464;
(* (W2Pt) (( (ptr) formal←c0439)+2) ) = newHi←v12492;
return;
}
static void ArcBuildPath←P3600(seg←v12552, lineTo←v12580, curveTo←v12608, conicTo←v12636, arcTo←v12664)
word seg←v12552;
word lineTo←v12580;
word curveTo←v12608;
word conicTo←v12636;
word arcTo←v12664;
{
register ptr gf←c50332 = (ptr) &globalframe;
word data←v16744;
/* ArcBuildPath: */
SOURCE(17494, 234)
SOURCE(17658, 32)
data←v16744 = XR←Narrow((* (( (ptr) seg←v12552)+24) ), (* (( (ptr) gf←c50332)+14) ));
SOURCE(17692, 36)
{
W2 var←c48092;
var←c48092.f0 = (* (( (ptr) seg←v12552)+11) );
var←c48092.f1 = (* (( (ptr) seg←v12552)+12) );
(void) ( *( (fPt) ((* (ptr) arcTo←v12664 ))))((* (W2Pt) data←v16744 ), var←c48092, arcTo←v12664);
};
}
static void ArcBuildPathTransform←P3660(seg←v12724, transform←v12752, entire←v12780, lo←v12808, hi←v12836, controlPoints←v12864, lineTo←v12892, curveTo←v12920, conicTo←v12948, arcTo←v12976)
word seg←v12724;
word transform←v12752;
word entire←v12780;
word lo←v12808;
word hi←v12836;
word controlPoints←v12864;
word lineTo←v12892;
word curveTo←v12920;
word conicTo←v12948;
word arcTo←v12976;
{
register ptr gf←c50364 = (ptr) &globalframe;
word data←v16788;
W2 p0←v16816;
W2 p1←v16844;
W2 p2←v16872;
/* ArcBuildPathTransform: */
SOURCE(17734, 670)
SOURCE(18003, 32)
data←v16788 = XR←Narrow((* (( (ptr) seg←v12724)+24) ), (* (( (ptr) gf←c50364)+14) ));
SOURCE(18054, 333)
if ((0 != entire←v12780)) {
SOURCE(18071, 68)
{
W4 var←c48124;
(void) TransformEndPoints←P3540((word) &var←c48124, (* (W2Pt) (( (ptr) seg←v12724)+9) ), (* (W2Pt) (( (ptr) seg←v12724)+11)
), 1, 1, transform←v12752);
p2←v16872 = (* (W2Pt) (( (ptr) &var←c48124)+2) );
p0←v16816 = (* (W2Pt) &var←c48124 );
};
SOURCE(18141, 55)
{
word pd207;
pd207 = (* (( (ptr) (* (( (ptr) gf←c50364)+192)/* var←c47964 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd207 ))))((word) &p1←v16844, transform←v12752, (* (W2Pt) data←v16788 ), pd207);
};
}
else {
SOURCE(18207, 64)
{
W4 var←c48156;
(void) TransformEndPoints←P3540((word) &var←c48156, (* (W2Pt) (( (ptr) seg←v12724)+9) ), (* (W2Pt) (( (ptr) seg←v12724)+11)
), lo←v12808, hi←v12836, transform←v12752);
p2←v16872 = (* (W2Pt) (( (ptr) &var←c48156)+2) );
p0←v16816 = (* (W2Pt) &var←c48156 );
};
SOURCE(18273, 114)
{
word limit209;
if ((controlPoints←v12864 == 0)) { goto then0208;};
if (XR←ExtractField(controlPoints←v12864, 32 + (word) (
limit209 = (* (ptr) controlPoints←v12864 ),
BCK(0, limit209)
), 1)) {
then0208: ;
{
W2 var←c0466;
{
word pd210;
pd210 = (* (( (ptr) (* (( (ptr) gf←c50364)+192)/* var←c47964 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd210 ))))((word) &var←c0466, transform←v12752, (* (W2Pt) data←v16788 ), pd210);
};
p1←v16844 = var←c0466;
};
}
else {
p1←v16844 = (* (W2Pt) data←v16788 );
};
};
};
SOURCE(18392, 12)
(void) ( *( (fPt) ((* (ptr) arcTo←v12976 ))))(p1←v16844, p2←v16872, arcTo←v12976);
}
static word ArcDescribe←P3720(seg←v13036, self←v13064, lo←v13092, hi←v13120, cps←v13148)
word seg←v13036;
word self←v13064;
word lo←v13092;
word hi←v13120;
word cps←v13148;
{
register ptr gf←c50396 = (ptr) &globalframe;
word rope←v13192;
word data←v16916;
word arc←v16944;
/* ArcDescribe: */
SOURCE(18410, 216)
SOURCE(18410, 216)
rope←v13192 = 0;
SOURCE(18509, 32)
data←v16916 = XR←Narrow((* (( (ptr) seg←v13036)+24) ), (* (( (ptr) gf←c50396)+14) ));
SOURCE(18543, 19)
arc←v16944 = (* (( (ptr) data←v16916)+6) );
SOURCE(18564, 62)
if (((* (( (ptr) arc←v16944)+8) ) != 0)) {
SOURCE(18587, 27)
rope←v13192 = (* (( (ptr) gf←c50396)+22) );
}
else {
SOURCE(18614, 12)
rope←v13192 = (* (( (ptr) gf←c50396)+23) );
};
SOURCE(18410, 216)
return(rope←v13192);
}
static void ArcFileOut←P3780(seg←v13252, f←v13280)
word seg←v13252;
word f←v13280;
{
register ptr gf←c50428 = (ptr) &globalframe;
word data←v16988;
W2 p1←v17016;
/* ArcFileOut: */
SOURCE(18632, 148)
SOURCE(18682, 32)
data←v16988 = XR←Narrow((* (( (ptr) seg←v13252)+24) ), (* (( (ptr) gf←c50428)+14) ));
SOURCE(18716, 34)
p1←v17016.f0 = (* (ptr) data←v16988 );
p1←v17016.f1 = (* (( (ptr) data←v16988)+1) );
SOURCE(18752, 28)
{
word pd211;
pd211 = (* (( (ptr) (* (( (ptr) gf←c50428)+193)/* var←c48220 */ ))+9) );
(void) ( *( (fPt) ((* (ptr) pd211 ))))(f←v13280, p1←v17016, pd211);
};
}
static word ArcFileIn←P3840(f←v13340, loPoint←v13368, hiPoint←v13396, version←v13424)
word f←v13340;
W2 loPoint←v13368;
W2 hiPoint←v13396;
word version←v13424;
{
register ptr gf←c50460 = (ptr) &globalframe;
word seg←v13468;
W2 p1←v17060;
/* ArcFileIn: */
SOURCE(18786, 178)
SOURCE(18786, 178)
seg←v13468 = 0;
SOURCE(18895, 27)
{
word pd212;
pd212 = (* (( (ptr) (* (( (ptr) gf←c50460)+194)/* var←c48252 */ ))+19) );
(void) ( *( (fPt) ((* (ptr) pd212 ))))((word) &p1←v17060, f←v13340, pd212);
};
SOURCE(18924, 40)
seg←v13468 = (word) MakeArc←P2820(loPoint←v13368, p1←v17060, hiPoint←v13396, 0);
SOURCE(18786, 178)
return(seg←v13468);
}
static void ArcFieldSet←P3900(seg←v27720, controlPointNum←v27748, selected←v27776, selectClass←v27804)
word seg←v27720;
word controlPointNum←v27748;
word selected←v27776;
word selectClass←v27804;
{
register ptr gf←c50492 = (ptr) &globalframe;
word data←v17104;
/* ArcFieldSet: */
SOURCE(18970, 320)
SOURCE(19027, 32)
data←v17104 = XR←Narrow((* (( (ptr) seg←v27720)+24) ), (* (( (ptr) gf←c50492)+14) ));
SOURCE(19061, 28)
if ((controlPointNum←v27748 != 0)) {
SOURCE(19089, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(19096, 194)
{
word var←c48284;
var←c48284 = selectClass←v27804;
switch (var←c48284) {
case 0:
SOURCE(19130, 33)
(* (( (ptr) data←v17104)+2) ) = selected←v27776;
break;
case 1:
SOURCE(19172, 30)
(* (( (ptr) data←v17104)+3) ) = selected←v27776;
break;
case 2:
SOURCE(19214, 33)
(* (( (ptr) data←v17104)+4) ) = selected←v27776;
break;
case 3:
SOURCE(19258, 32)
(* (( (ptr) data←v17104)+5) ) = selected←v27776;
break;
default:
SOURCE(19303, 5)
(void) XR←RaiseUnnamedError();
break;
};
};
}
static word ArcFieldGet←P3960(seg←v27864, controlPointNum←v27892, selectClass←v27920)
word seg←v27864;
word controlPointNum←v27892;
word selectClass←v27920;
{
register ptr gf←c50524 = (ptr) &globalframe;
word selected←v27964;
word data←v17148;
/* ArcFieldGet: */
SOURCE(19314, 320)
SOURCE(19371, 32)
data←v17148 = XR←Narrow((* (( (ptr) seg←v27864)+24) ), (* (( (ptr) gf←c50524)+14) ));
SOURCE(19405, 28)
if ((controlPointNum←v27892 != 0)) {
SOURCE(19433, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(19440, 194)
{
word var←c48316;
var←c48316 = selectClass←v27920;
switch (var←c48316) {
case 0:
SOURCE(19474, 33)
selected←v27964 = (* (( (ptr) data←v17148)+2) );
break;
case 1:
SOURCE(19516, 30)
selected←v27964 = (* (( (ptr) data←v17148)+3) );
break;
case 2:
SOURCE(19558, 33)
selected←v27964 = (* (( (ptr) data←v17148)+4) );
break;
case 3:
SOURCE(19602, 32)
selected←v27964 = (* (( (ptr) data←v17148)+5) );
break;
default:
SOURCE(19647, 5)
(void) XR←RaiseUnnamedError();
break;
};
};
SOURCE(19314, 320)
return(selected←v27964);
}
static void ArcControlPointGet←P4020(formal←c0504, seg←v13528, controlPointNum←v13556)
word formal←c0504;
word seg←v13528;
word controlPointNum←v13556;
{
register ptr gf←c50556 = (ptr) &globalframe;
W2 point←v13600;
word data←v17192;
/* ArcControlPointGet: */
SOURCE(19658, 188)
SOURCE(19747, 32)
data←v17192 = XR←Narrow((* (( (ptr) seg←v13528)+24) ), (* (( (ptr) gf←c50556)+14) ));
SOURCE(19781, 26)
if ((controlPointNum←v13556 != 0)) {
SOURCE(19807, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(19814, 32)
point←v13600.f0 = (* (ptr) data←v17192 );
point←v13600.f1 = (* (( (ptr) data←v17192)+1) );
/* removed tail goto */
(* (W2Pt) formal←c0504 ) = point←v13600;
return;
}
static word ArcControlPointCount←P4080(seg←v13660)
word seg←v13660;
{
register ptr gf←c50588 = (ptr) &globalframe;
word controlPointCount←v13704;
word data←v17236;
/* ArcControlPointCount: */
SOURCE(19852, 122)
SOURCE(19931, 32)
data←v17236 = XR←Narrow((* (( (ptr) seg←v13660)+24) ), (* (( (ptr) gf←c50588)+14) ));
SOURCE(19965, 9)
return(1);
}
static void ArcClosestPoint←P4140(formal←c0515, seg←v13764, testPoint←v13792, tolerance←v13820)
word formal←c0515;
word seg←v13764;
W2 testPoint←v13792;
word tolerance←v13820;
{
register ptr gf←c50620 = (ptr) &globalframe;
W2 point←v13864;
word success←v13892;
word data←v17280;
/* ArcClosestPoint: */
SOURCE(19980, 220)
SOURCE(20094, 32)
data←v17280 = XR←Narrow((* (( (ptr) seg←v13764)+24) ), (* (( (ptr) gf←c50620)+14) ));
SOURCE(20128, 56)
{
word pd213;
pd213 = (* (( (ptr) (* (( (ptr) gf←c50620)+190)/* var←c47100 */ ))+29) );
(void) ( *( (fPt) ((* (ptr) pd213 ))))((word) &point←v13864, testPoint←v13792, (* (( (ptr) data←v17280)+6) ), pd213);
};
SOURCE(20186, 14)
success←v13892 = 1;
/* removed tail goto */
(* (W2Pt) formal←c0515 ) = point←v13864;
(* (( (ptr) formal←c0515)+2) ) = success←v13892;
return;
}
static void ArcClosestControlPoint←P4200(formal←c0524, seg←v13952, testPoint←v13980, tolerance←v14008)
word formal←c0524;
word seg←v13952;
W2 testPoint←v13980;
word tolerance←v14008;
{
register ptr gf←c50652 = (ptr) &globalframe;
W2 point←v14052;
W2 normal←v14080;
word controlPointNum←v14108;
word success←v14136;
word data←v17324;
/* ArcClosestControlPoint: */
SOURCE(20206, 269)
SOURCE(20206, 269)
normal←v14080.f0 = (* (ptr) &fc37 );
normal←v14080.f1 = (* (ptr) &fc38 );
SOURCE(20374, 32)
data←v17324 = XR←Narrow((* (( (ptr) seg←v13952)+24) ), (* (( (ptr) gf←c50652)+14) ));
SOURCE(20408, 14)
success←v14136 = 1;
SOURCE(20424, 19)
controlPointNum←v14108 = 0;
SOURCE(20445, 30)
point←v14052.f0 = (* (ptr) data←v17324 );
point←v14052.f1 = (* (( (ptr) data←v17324)+1) );
/* removed tail goto */
(* (W2Pt) formal←c0524 ) = point←v14052;
(* (W2Pt) (( (ptr) formal←c0524)+2) ) = normal←v14080;
(* (( (ptr) formal←c0524)+4) ) = controlPointNum←v14108;
(* (( (ptr) formal←c0524)+5) ) = success←v14136;
return;
}
static word ArcAsSimpleCurve←P4260(seg←v14196, point←v14224)
word seg←v14196;
W2 point←v14224;
{
register ptr gf←c50684 = (ptr) &globalframe;
word simpleCurve←v14268;
word arcData←v17368;
word arc←v17396;
/* ArcAsSimpleCurve: */
SOURCE(20481, 165)
SOURCE(20481, 165)
simpleCurve←v14268 = 0;
SOURCE(20568, 35)
arcData←v17368 = XR←Narrow((* (( (ptr) seg←v14196)+24) ), (* (( (ptr) gf←c50684)+14) ));
SOURCE(20605, 22)
arc←v17396 = (* (( (ptr) arcData←v17368)+6) );
SOURCE(20629, 17)
simpleCurve←v14268 = arc←v17396;
SOURCE(20481, 165)
return(simpleCurve←v14268);
}
static word ArcAsPolyline←P4320(seg←v14340, tolerance←v14368)
word seg←v14340;
word tolerance←v14368;
{
register ptr gf←c50716 = (ptr) &globalframe;
word polyline←v14412;
word arcData←v17440;
word arc←v17468;
/* ArcAsPolyline: */
SOURCE(20652, 1240)
SOURCE(20652, 1240)
polyline←v14412 = 0;
SOURCE(20756, 35)
arcData←v17440 = XR←Narrow((* (( (ptr) seg←v14340)+24) ), (* (( (ptr) gf←c50716)+14) ));
SOURCE(20793, 22)
arc←v17468 = (* (( (ptr) arcData←v17440)+6) );
SOURCE(20818, 1074)
{
word x214;
word x215;
word x216;
if (((* (( (ptr) arc←v17468)+8) ) != 0) || ((
x214 = (* (ptr) &fc36 ), *(float*)&x214
) * (
x215 = (* (( (ptr) (* (ptr) arc←v17468 ))+2) ), *(float*)&x215
) <= (
x216 = tolerance←v14368, *(float*)&x216
))) {
SOURCE(20974, 49)
{
word var←c48412;
var←c48412 = XR←NewObject(24, (* (( (ptr) gf←c50716)+7) ));
(* (( (ptr) var←c48412)+1) ) = 2;
polyline←v14412 = var←c48412;
};
SOURCE(21025, 19)
(* (ptr) polyline←v14412 ) = 2;
SOURCE(21046, 20)
{
word limit217;
(* (( (W2Pt) (( (ptr) polyline←v14412)+2))+(
limit217 = (* (( (ptr) polyline←v14412)+1) ),
BCK(0, limit217)
)) ) = (* (W2Pt) (( (ptr) seg←v14340)+9) );
};
SOURCE(21068, 20)
{
word limit218;
(* (( (W2Pt) (( (ptr) polyline←v14412)+2))+(
limit218 = (* (( (ptr) polyline←v14412)+1) ),
BCK(1, limit218)
)) ) = (* (W2Pt) (( (ptr) seg←v14340)+11) );
};
}
else {
SOURCE(21097, 797)
{
word r←v17512;
word minSides←v17540;
word n←v17568;
word phi←v17596;
word sin←v17624;
word cos←v17652;
word deltaTheta←v17680;
word startAngle←v17708;
SOURCE(21099, 27)
r←v17512 = (* (( (ptr) (* (ptr) arc←v17468 ))+2) );
SOURCE(21204, 40)
{
word x220;
word x221;
*(float*)&deltaTheta←v17680 = (
x220 = (* (ptr) &fc219 ), *(float*)&x220
) * (
x221 = (* (( (ptr) arc←v17468)+7) ), *(float*)&x221
);
};
SOURCE(21268, 107)
{
word var←c48444;
word var←c0667;
{
word pd222;
word x223;
word x224;
word x225;
word x226;
float tf227;
pd222 = (* (( (ptr) (* (( (ptr) gf←c50716)+195)/* var←c48476 */ ))+9) );
var←c48444 = (word) ( *( (fPt) ((* (ptr) pd222 ))))((
tf227 = (((
x223 = (* (ptr) &fc36 ), *(float*)&x223
) * (
x224 = r←v17512, *(float*)&x224
)) - (
x225 = tolerance←v14368, *(float*)&x225
)) * (
x226 = tolerance←v14368, *(float*)&x226
), *(word*)&tf227
), pd222);
};
{
word x228;
word pd229;
word x230;
word x231;
float tf232;
word x233;
pd229 = (* (( (ptr) (* (( (ptr) gf←c50716)+195)/* var←c48476 */ ))+16) );
*(float*)&var←c0667 = (
x228 = (* (ptr) &fc36 ), *(float*)&x228
) * (
x233 = (word) ( *( (fPt) ((* (ptr) pd229 ))))(var←c48444, (
tf232 = (
/*1*/ x230 = r←v17512, *(float*)&x230
/*1*/ ) - (
/*1*/ x231 = tolerance←v14368, *(float*)&x231
/*1*/ ), *(word*)&tf232
), pd229), *(float*)&x233
);
};
{
word x234;
word x235;
*(float*)&minSides←v17540 = (
x234 = deltaTheta←v17680, *(float*)&x234
) / (
x235 = var←c0667, *(float*)&x235
);
};
};
SOURCE(21377, 26)
{
word pd236;
word idx237;
pd236 = (* (( (ptr) (* (( (ptr) gf←c50716)+196)/* var←c48508 */ ))+7) );
n←v17568 = (
idx237 = (word) ( *( (fPt) ((* (ptr) pd236 ))))(minSides←v17540, pd236),
SGNCK(idx237)
);
};
SOURCE(21405, 24)
{
word x238;
*(float*)&phi←v17596 = (
x238 = deltaTheta←v17680, *(float*)&x238
) / (float)(unsigned)n←v17568;
};
SOURCE(21432, 166)
if ((0 != (* (( (ptr) arc←v17468)+1) ))) {
SOURCE(21450, 34)
{
word x239;
word x240;
*(float*)&startAngle←v17708 = (
x239 = (* (ptr) &fc219 ), *(float*)&x239
) * (
x240 = (* (( (ptr) arc←v17468)+6) ), *(float*)&x240
);
};
}
else {
SOURCE(21495, 10)
{
word x241;
*(float*)&phi←v17596 = - (
x241 = phi←v17596, *(float*)&x241
);
};
SOURCE(21507, 91)
{
W2 var←c48540;
{
word pd242;
pd242 = (* (( (ptr) (* (( (ptr) gf←c50716)+184)/* var←c45788 */ ))+11) );
(void) ( *( (fPt) ((* (ptr) pd242 ))))((word) &var←c48540, (* (W2Pt) (( (ptr) seg←v14340)+9) ), (* (W2Pt) (* (ptr) arc←v17468 ) ), pd242)
;
};
{
word x243;
word pd244;
word x245;
pd244 = (* (( (ptr) (* (( (ptr) gf←c50716)+184)/* var←c45788 */ ))+6) );
*(float*)&startAngle←v17708 = (
x243 = (* (ptr) &fc219 ), *(float*)&x243
) * (
x245 = (word) ( *( (fPt) ((* (ptr) pd244 ))))(var←c48540, pd244), *(float*)&x245
);
};
};
};
SOURCE(21603, 51)
{
word var←c48572;
word var←c48604;
word var←c48636;
var←c48572 = (n←v17568 + 1);
var←c48604 = ((word) var←c48572 << 3);
var←c48636 = XR←NewObject((8 + var←c48604), (* (( (ptr) gf←c50716)+7) ));
(* (( (ptr) var←c48636)+1) ) = var←c48572;
polyline←v14412 = var←c48636;
};
SOURCE(21656, 21)
(* (ptr) polyline←v14412 ) = (n←v17568 + 1);
SOURCE(21679, 20)
{
word limit246;
(* (( (W2Pt) (( (ptr) polyline←v14412)+2))+(
limit246 = (* (( (ptr) polyline←v14412)+1) ),
BCK(0, limit246)
)) ) = (* (W2Pt) (( (ptr) seg←v14340)+9) );
};
SOURCE(21701, 160)
{
register word i←v17752 = 1;
register word noName←c48668;
noName←c48668 = n←v17568;
if ((i←v17752 >= noName←c48668)) {
goto lab←L100023;
};
lab←L100026: ;
SOURCE(21725, 35)
{
word pd247;
word x248;
word x249;
float tf250;
pd247 = (* (( (ptr) (* (( (ptr) gf←c50716)+195)/* var←c48476 */ ))+10) );
sin←v17624 = (word) ( *( (fPt) ((* (ptr) pd247 ))))((
tf250 = (
x248 = startAngle←v17708, *(float*)&x248
) + ((
x249 = phi←v17596, *(float*)&x249
) * (float)(unsigned)i←v17752), *(word*)&tf250
), pd247);
};
SOURCE(21762, 35)
{
word pd251;
word x252;
word x253;
float tf254;
pd251 = (* (( (ptr) (* (( (ptr) gf←c50716)+195)/* var←c48476 */ ))+12) );
cos←v17652 = (word) ( *( (fPt) ((* (ptr) pd251 ))))((
tf254 = (
x252 = startAngle←v17708, *(float*)&x252
) + ((
x253 = phi←v17596, *(float*)&x253
) * (float)(unsigned)i←v17752), *(word*)&tf254
), pd251);
};
SOURCE(21799, 62)
{
W2 var←c48700;
{
W2 var←c0554;
{
W2 var←c48732;
{
word x255;
word x256;
*(float*)&var←c48732.f0 = (
/*1*/ x255 = cos←v17652, *(float*)&x255
/*1*/ ) * (
/*1*/ x256 = r←v17512, *(float*)&x256
/*1*/ );
};
{
word x257;
word x258;
*(float*)&var←c48732.f1 = (
/*1*/ x257 = sin←v17624, *(float*)&x257
/*1*/ ) * (
/*1*/ x258 = r←v17512, *(float*)&x258
/*1*/ );
};
{
word pd259;
pd259 = (* (( (ptr) (* (( (ptr) gf←c50716)+184)/* var←c45788 */ ))+10) );
(void) ( *( (fPt) ((* (ptr) pd259 ))))((word) &var←c0554, (* (W2Pt) (* (ptr) arc←v17468 ) ), var←c48732, pd259);
};
};
var←c48700 = var←c0554;
};
{
word limit260;
(* (( (W2Pt) (( (ptr) polyline←v14412)+2))+(
limit260 = (* (( (ptr) polyline←v14412)+1) ),
BCK(i←v17752, limit260)
)) ) = var←c48700;
};
};
i←v17752 = (i←v17752 + 1);
if ((i←v17752 < noName←c48668)) {
goto lab←L100026;
};
lab←L100023: ;
};
SOURCE(21872, 20)
{
word limit261;
(* (( (W2Pt) (( (ptr) polyline←v14412)+2))+(
limit261 = (* (( (ptr) polyline←v14412)+1) ),
BCK(n←v17568, limit261)
)) ) = (* (W2Pt) (( (ptr) seg←v14340)+11) );
};
};
};
};
SOURCE(20652, 1240)
return(polyline←v14412);
}
static void ArcCPNormal←P4380(formal←c0565, seg←v14472, controlPointNum←v14500, cPoint←v14528, testPoint←v14556)
word formal←c0565;
word seg←v14472;
word controlPointNum←v14500;
W2 cPoint←v14528;
W2 testPoint←v14556;
{
register ptr gf←c50748 = (ptr) &globalframe;
W2 normal←v14600;
word arcData←v17796;
W2 origin←v17824;
/* ArcCPNormal: */
SOURCE(21901, 249)
SOURCE(22011, 35)
arcData←v17796 = XR←Narrow((* (( (ptr) seg←v14472)+24) ), (* (( (ptr) gf←c50748)+14) ));
SOURCE(22048, 41)
origin←v17824 = (* (W2Pt) (* (ptr) (* (( (ptr) arcData←v17796)+6) ) ) );
SOURCE(22091, 59)
{
W2 var←c48764;
{
word pd262;
pd262 = (* (( (ptr) (* (( (ptr) gf←c50748)+184)/* var←c45788 */ ))+11) );
(void) ( *( (fPt) ((* (ptr) pd262 ))))((word) &var←c48764, cPoint←v14528, origin←v17824, pd262);
};
{
W2 var←c0564;
{
word pd263;
pd263 = (* (( (ptr) (* (( (ptr) gf←c50748)+184)/* var←c45788 */ ))+13) );
(void) ( *( (fPt) ((* (ptr) pd263 ))))((word) &var←c0564, var←c48764, pd263);
};
normal←v14600 = var←c0564;
};
};
/* removed tail goto */
(* (W2Pt) formal←c0565 ) = normal←v14600;
return;
}
static void ArcJointNormal←P4440(formal←c0580, seg←v14660, joint←v14688, point←v14716, hi←v14744)
word formal←c0580;
word seg←v14660;
W2 joint←v14688;
W2 point←v14716;
word hi←v14744;
{
register ptr gf←c50780 = (ptr) &globalframe;
W2 normal←v14788;
W2 tangent←v14816;
word arcData←v17868;
W2 origin←v17896;
/* ArcJointNormal: */
SOURCE(22156, 313)
SOURCE(22261, 35)
arcData←v17868 = XR←Narrow((* (( (ptr) seg←v14660)+24) ), (* (( (ptr) gf←c50780)+14) ));
SOURCE(22298, 41)
origin←v17896 = (* (W2Pt) (* (ptr) (* (( (ptr) arcData←v17868)+6) ) ) );
SOURCE(22341, 58)
{
W2 var←c48796;
{
word pd264;
pd264 = (* (( (ptr) (* (( (ptr) gf←c50780)+184)/* var←c45788 */ ))+11) );
(void) ( *( (fPt) ((* (ptr) pd264 ))))((word) &var←c48796, joint←v14688, origin←v17896, pd264);
};
{
W2 var←c0576;
{
word pd265;
pd265 = (* (( (ptr) (* (( (ptr) gf←c50780)+184)/* var←c45788 */ ))+13) );
(void) ( *( (fPt) ((* (ptr) pd265 ))))((word) &var←c0576, var←c48796, pd265);
};
normal←v14788 = var←c0576;
};
};
SOURCE(22401, 68)
{
W2 var←c48828;
{
word pd266;
pd266 = (* (( (ptr) (* (( (ptr) gf←c50780)+184)/* var←c45788 */ ))+5) );
(void) ( *( (fPt) ((* (ptr) pd266 ))))((word) &var←c48828, normal←v14788, (* (ptr) &fc155 ), pd266);
};
{
W2 var←c0579;
{
word pd267;
pd267 = (* (( (ptr) (* (( (ptr) gf←c50780)+184)/* var←c45788 */ ))+13) );
(void) ( *( (fPt) ((* (ptr) pd267 ))))((word) &var←c0579, var←c48828, pd267);
};
tangent←v14816 = var←c0579;
};
};
/* removed tail goto */
(* (W2Pt) formal←c0580 ) = normal←v14788;
(* (W2Pt) (( (ptr) formal←c0580)+2) ) = tangent←v14816;
return;
}
static void ArcAddJoint←P4500(formal←c0606, seg←v14876, pos←v14904)
word formal←c0606;
word seg←v14876;
W2 pos←v14904;
{
register ptr gf←c50812 = (ptr) &globalframe;
word seg1←v14948;
word seg2←v14976;
word data←v17940;
word data1←v17968 = 0;
word data2←v17996 = 0;
W2 p0Rel←v18024;
W2 p1Rel←v18052;
W2 p2Rel←v18080;
W2 caretRel←v18108;
word cpAngle←v18136;
word caretAngle←v18164;
W2 rotVec←v18192;
/* ArcAddJoint: */
SOURCE(22474, 1648)
SOURCE(22474, 1648)
seg1←v14948 = 0;
SOURCE(22474, 1648)
seg2←v14976 = 0;
SOURCE(22554, 32)
data←v17940 = XR←Narrow((* (( (ptr) seg←v14876)+24) ), (* (( (ptr) gf←c50812)+14) ));
SOURCE(22611, 65)
{
word pd268;
pd268 = (* (( (ptr) (* (( (ptr) gf←c50812)+184)/* var←c45788 */ ))+11) );
(void) ( *( (fPt) ((* (ptr) pd268 ))))((word) &p0Rel←v18024, (* (W2Pt) (( (ptr) (* (( (ptr) data←v17940)+6) ))+2) ), (* (W2Pt) (* (ptr) (* (
( (ptr) data←v17940)+6) ) ) ), pd268);
};
SOURCE(22678, 61)
{
word pd269;
pd269 = (* (( (ptr) (* (( (ptr) gf←c50812)+184)/* var←c45788 */ ))+11) );
(void) ( *( (fPt) ((* (ptr) pd269 ))))((word) &p1Rel←v18052, (* (W2Pt) data←v17940 ), (* (W2Pt) (* (ptr) (* (( (ptr) data←v17940)+6)
) ) ), pd269);
};
SOURCE(22741, 65)
{
word pd270;
pd270 = (* (( (ptr) (* (( (ptr) gf←c50812)+184)/* var←c45788 */ ))+11) );
(void) ( *( (fPt) ((* (ptr) pd270 ))))((word) &p2Rel←v18080, (* (W2Pt) (( (ptr) (* (( (ptr) data←v17940)+6) ))+4) ), (* (W2Pt) (* (ptr) (* (
( (ptr) data←v17940)+6) ) ) ), pd270);
};
SOURCE(22808, 60)
{
word pd271;
pd271 = (* (( (ptr) (* (( (ptr) gf←c50812)+184)/* var←c45788 */ ))+11) );
(void) ( *( (fPt) ((* (ptr) pd271 ))))((word) &caretRel←v18108, pos←v14904, (* (W2Pt) (* (ptr) (* (( (ptr) data←v17940)+6)
) ) ), pd271);
};
SOURCE(22870, 62)
{
word pd272;
pd272 = (* (( (ptr) (* (( (ptr) gf←c50812)+184)/* var←c45788 */ ))+7) );
cpAngle←v18136 = (word) ( *( (fPt) ((* (ptr) pd272 ))))(p0Rel←v18024, p1Rel←v18052, pd272);
};
SOURCE(22934, 68)
{
word pd273;
pd273 = (* (( (ptr) (* (( (ptr) gf←c50812)+184)/* var←c45788 */ ))+7) );
caretAngle←v18164 = (word) ( *( (fPt) ((* (ptr) pd273 ))))(p0Rel←v18024, caretRel←v18108, pd273);
};
SOURCE(23019, 33)
{
word pd274;
pd274 = (* (( (ptr) (* (( (ptr) gf←c50812)+185)/* var←c46108 */ ))+17) );
seg1←v14948 = (word) ( *( (fPt) ((* (ptr) pd274 ))))(seg←v14876, pd274);
};
SOURCE(23054, 33)
{
word pd275;
pd275 = (* (( (ptr) (* (( (ptr) gf←c50812)+185)/* var←c46108 */ ))+17) );
seg2←v14976 = (word) ( *( (fPt) ((* (ptr) pd275 ))))(seg←v14876, pd275);
};
SOURCE(23089, 25)
data1←v17968 = XR←Narrow((* (( (ptr) seg1←v14948)+24) ), (* (( (ptr) gf←c50812)+14) ));
SOURCE(23116, 25)
data2←v17996 = XR←Narrow((* (( (ptr) seg2←v14976)+24) ), (* (( (ptr) gf←c50812)+14) ));
SOURCE(23143, 23)
(* (W2Pt) (( (ptr) seg2←v14976)+9) ) = pos←v14904;
(* (W2Pt) (( (ptr) seg1←v14948)+11) ) = pos←v14904;
SOURCE(23168, 21)
(* (W2Pt) (( (ptr) seg1←v14948)+9) ) = (* (W2Pt) (( (ptr) (* (( (ptr) data←v17940)+6) ))+2) );
SOURCE(23191, 21)
(* (W2Pt) (( (ptr) seg2←v14976)+11) ) = (* (W2Pt) (( (ptr) (* (( (ptr) data←v17940)+6) ))+4) );
SOURCE(23214, 551)
{
word x276;
word x277;
if (((
x276 = caretAngle←v18164, *(float*)&x276
) < (
x277 = cpAngle←v18136, *(float*)&x277
))) {
SOURCE(23296, 95)
{
word var←c48892;
{
word pd278;
word x279;
word x280;
float tf281;
pd278 = (* (( (ptr) (* (( (ptr) gf←c50812)+192)/* var←c47964 */ ))+9) );
var←c48892 = (word) ( *( (fPt) ((* (ptr) pd278 ))))((
tf281 = ( - (
x279 = caretAngle←v18164, *(float*)&x279
)) / (
x280 = (* (ptr) &fc36 ), *(float*)&x280
), *(word*)&tf281
), pd278);
};
{
word pd282;
pd282 = (* (( (ptr) (* (( (ptr) gf←c50812)+192)/* var←c47964 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd282 ))))((word) &rotVec←v18192, var←c48892, caretRel←v18108, pd282);
};
};
SOURCE(23393, 56)
{
word pd283;
pd283 = (* (( (ptr) (* (( (ptr) gf←c50812)+184)/* var←c45788 */ ))+10) );
(void) ( *( (fPt) ((* (ptr) pd283 ))))((word) data1←v17968, rotVec←v18192, (* (W2Pt) (* (ptr) (* (( (ptr) data←v17940)+6)
) ) ), pd283);
};
}
else {
SOURCE(23511, 62)
{
word pd284;
pd284 = (* (( (ptr) (* (( (ptr) gf←c50812)+184)/* var←c45788 */ ))+7) );
caretAngle←v18164 = (word) ( *( (fPt) ((* (ptr) pd284 ))))(caretRel←v18108, p2Rel←v18080, pd284);
};
SOURCE(23613, 94)
{
word var←c48924;
{
word pd285;
word x286;
word x287;
float tf288;
pd285 = (* (( (ptr) (* (( (ptr) gf←c50812)+192)/* var←c47964 */ ))+9) );
var←c48924 = (word) ( *( (fPt) ((* (ptr) pd285 ))))((
tf288 = (
x286 = caretAngle←v18164, *(float*)&x286
) / (
x287 = (* (ptr) &fc36 ), *(float*)&x287
), *(word*)&tf288
), pd285);
};
{
word pd289;
pd289 = (* (( (ptr) (* (( (ptr) gf←c50812)+192)/* var←c47964 */ ))+39) );
(void) ( *( (fPt) ((* (ptr) pd289 ))))((word) &rotVec←v18192, var←c48924, caretRel←v18108, pd289);
};
};
SOURCE(23709, 56)
{
word pd290;
pd290 = (* (( (ptr) (* (( (ptr) gf←c50812)+184)/* var←c45788 */ ))+10) );
(void) ( *( (fPt) ((* (ptr) pd290 ))))((word) data2←v17996, rotVec←v18192, (* (W2Pt) (* (ptr) (* (( (ptr) data←v17940)+6)
) ) ), pd290);
};
};
};
SOURCE(23770, 59)
{
word pd291;
pd291 = (* (( (ptr) (* (( (ptr) gf←c50812)+190)/* var←c47100 */ ))+24) );
(* (( (ptr) data1←v17968)+6) ) = (word) ( *( (fPt) ((* (ptr) pd291 ))))((* (W2Pt) (( (ptr) seg1←v14948)+9) ), (* (W2Pt) data1←v17968 ), (* (W2Pt) (
( (ptr) seg1←v14948)+11) ), pd291);
};
SOURCE(23831, 59)
{
word pd292;
pd292 = (* (( (ptr) (* (( (ptr) gf←c50812)+190)/* var←c47100 */ ))+24) );
(* (( (ptr) data2←v17996)+6) ) = (word) ( *( (fPt) ((* (ptr) pd292 ))))((* (W2Pt) (( (ptr) seg2←v14976)+9) ), (* (W2Pt) data2←v17996 ), (* (W2Pt) (
( (ptr) seg2←v14976)+11) ), pd292);
};
SOURCE(23892, 25)
(void) UpdateBoundBoxOfArc←P3180(seg1←v14948);
SOURCE(23919, 25)
(void) UpdateBoundBoxOfArc←P3180(seg2←v14976);
SOURCE(23946, 176)
if ((0 == (* (( (ptr) (* (( (ptr) data←v17940)+6) ))+1) ))) {
SOURCE(24039, 30)
{
word pd293;
pd293 = (* (( (ptr) (* (( (ptr) gf←c50812)+185)/* var←c46108 */ ))+22) );
(void) ( *( (fPt) ((* (ptr) pd293 ))))(seg1←v14948, pd293);
};
SOURCE(24071, 30)
{
word pd294;
pd294 = (* (( (ptr) (* (( (ptr) gf←c50812)+185)/* var←c46108 */ ))+22) );
(void) ( *( (fPt) ((* (ptr) pd294 ))))(seg2←v14976, pd294);
};
SOURCE(24103, 19)
seg1←v14948 = seg2←v14976;
/* removed bogus assignment */
goto lab←L100029;
};
/* removed tail goto */
lab←L100029: ;
(* (ptr) formal←c0606 ) = seg1←v14948;
(* (( (ptr) formal←c0606)+1) ) = seg2←v14976;
return;
}
static void Init←P4560()
{
register ptr gf←c50844 = (ptr) &globalframe;
word classDef←v18236;
/* Init: */
SOURCE(24131, 487)
SOURCE(24149, 78)
{
word var←c48956;
word var←c48988;
var←c48956 = (word) BuildLineClass←P1380();
var←c48988 = XR←NewObject(8, (* (( (ptr) gf←c50844)+13) ));
(* (ptr) var←c48988 ) = (* (( (ptr) gf←c50844)+21) );
(* (( (ptr) var←c48988)+1) ) = var←c48956;
classDef←v18236 = var←c48988;
};
SOURCE(24229, 40)
{
word pd295;
pd295 = (* (( (ptr) (* (( (ptr) gf←c50844)+185)/* var←c46108 */ ))+25) );
(void) ( *( (fPt) ((* (ptr) pd295 ))))(classDef←v18236, pd295);
};
SOURCE(24271, 76)
{
word var←c49020;
word var←c49052;
var←c49020 = (word) BuildArcClass←P2700();
var←c49052 = XR←NewObject(8, (* (( (ptr) gf←c50844)+13) ));
(* (ptr) var←c49052 ) = (* (( (ptr) gf←c50844)+20) );
(* (( (ptr) var←c49052)+1) ) = var←c49020;
classDef←v18236 = var←c49052;
};
SOURCE(24349, 40)
{
word pd296;
pd296 = (* (( (ptr) (* (( (ptr) gf←c50844)+185)/* var←c46108 */ ))+25) );
(void) ( *( (fPt) ((* (ptr) pd296 ))))(classDef←v18236, pd296);
};
SOURCE(24392, 72)
{
word var←c49084;
word var←c49116;
var←c49084 = (word) BuildCircleClass←P1020();
var←c49116 = XR←NewObject(8, (* (( (ptr) gf←c50844)+13) ));
(* (ptr) var←c49116 ) = (* (( (ptr) gf←c50844)+25) );
(* (( (ptr) var←c49116)+1) ) = var←c49084;
classDef←v18236 = var←c49116;
};
SOURCE(24466, 40)
{
word pd297;
pd297 = (* (( (ptr) (* (( (ptr) gf←c50844)+185)/* var←c46108 */ ))+25) );
(void) ( *( (fPt) ((* (ptr) pd297 ))))(classDef←v18236, pd297);
};
SOURCE(24508, 68)
{
word var←c49148;
word var←c49180;
var←c49148 = (word) BuildDiscClass←P1260();
var←c49180 = XR←NewObject(8, (* (( (ptr) gf←c50844)+13) ));
(* (ptr) var←c49180 ) = (* (( (ptr) gf←c50844)+24) );
(* (( (ptr) var←c49180)+1) ) = var←c49148;
classDef←v18236 = var←c49180;
};
SOURCE(24578, 40)
{
word pd298;
pd298 = (* (( (ptr) (* (( (ptr) gf←c50844)+185)/* var←c46108 */ ))+25) );
(void) ( *( (fPt) ((* (ptr) pd298 ))))(classDef←v18236, pd298);
};
}
/* file: GGSegmentImplB, module: GGSegmentImplB, compiled at: February 5, 1993 2:09:42 pm PST */
extern void XR←install←GGSegmentImplB() {
NoName←Q4860();
}
extern void XR←run←GGSegmentImplB() { XR←Start(&globalframe); }