/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation. All rights reserved. */
/* time: July 11, 1993 8:18:36 pm PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: GGSliceImplE, module: GGSliceImplE */
/* switches: bcfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [2898489908,327952352] GGSliceImplE";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1;} W2;
typedef struct {word f0, f1, f2;} W3;
typedef struct {word f0, f1, f2, f3, f4;} W5;
typedef W2 *W2Pt;
typedef W3 *W3Pt;
typedef W5 *W5Pt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef struct {W8 f; W8 r;} W16;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef struct {word f0, f1, f2, f3;} W4;
typedef struct {W8 f; word r;} W9;
typedef struct {W8 f; W2 r;} W10;
typedef struct {W8 f; W3 r;} W11;
#define SOURCE(p, l) /* source p, l */
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
static float fc90 = -1.0;
static float fc95 = 0.0;
static float fc187 = 8802.04;
static float fc197 = 8607.22;
static float fc202 = 8702.26;
static float fc210 = 8701.135;
static float fc221 = 8701.23;
static float fc238 = 8607.30;
static float fc249 = 8610.29;
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
static float fc319 = 1E16;
static float fc332 = 9999.0;
#define FABS(f, t) ( ((t=(f)) >= (float) 0.0) ? (t) : (- (t)) )
static void NoName←Q5760();
static void GGSliceImplE←P0();
static void BuildMoreTrajSliceClass←P60();
static void AllStrokeEndsEqual←P120();
static word AllStrokeWidthsEqual←P180();
static void AllStrokeColorsEqual←P240();
static void AllDashesEqual←P300();
static word TrajDescribe←P360();
static word TrajDescribeHit←P420();
static void TrajFileout←P480();
static word TrajFilein←P540();
static word RoleFromRope←P600();
static word RoleToRope←P660();
static word TrajPointsInDescriptor←P720();
static void TrajWalkPointsInDescriptor←P780();
static word TrajPointPairsInDescriptor←P840();
static word TrajSegmentsInDescriptor←P900();
static word TrajWalkSegments←P960();
static void TrajNextPoint←P1020();
static void TrajNextPointPair←P1080();
static void TrajNextSegment←P1140();
static void TrajClosestPoint←P1200();
static void TrajClosestJointToHitData←P1260();
static void FindJointNormal←P4044();
static word NearestJointToHitData←P4296();
static void TrajClosestPointAndTangent←P1320();
static void TrajClosestSegment←P1380();
static word InsideContour←P1440();
static word HanrahanInsideContour←P1500();
static void PolylineOfTraj←P1560();
static word GetPolyline←P4500();
static void TrajFilledPathsUnderPoint←P1620();
static void TrajLineIntersection←P1680();
static void TrajCircleIntersection←P1740();
static word TrajHitDataAsSimpleCurve←P1800();
static void TrajSetDefaults←P1860();
static word TrajSetStrokeWidth←P1920();
static void TrajGetStrokeWidth←P1980();
static word DoCheckWidth←P5040();
static void TrajSetStrokeEnd←P2040();
static void TrajGetStrokeEnd←P2100();
static word DoCheckEnd←P5196();
static void TrajSetStrokeJoint←P2160();
static void TrajGetStrokeJoint←P2220();
static void TrajSetStrokeColor←P2280();
static void TrajGetStrokeColor←P2340();
static word DoCheckColor←P5400();
static void TrajSetArrows←P2400();
static void TrajGetArrows←P2460();
static void TrajSetDashed←P2520();
static void TrajGetDashed←P2580();
static word DoCheckDashes←P5604();
static word TrajSetOrientation←P2640();
static void TrajGetOrientation←P2700();
static word FetchSliceClass←P2760();
static void RegisterSliceClass←P2820();
static word DescriptorFromParts←P2880();
static void UnlinkAllSliceDescriptors←P2940();
static void UnlinkSlice←P3000();
static word EntitiesInSlice←P3060();
static void Init←P3120();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\106\354\000\000"};
static struct {unsigned f; char r[8];} string2 = {262148, "\004\200@\034\000\000\000"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\107\050\000\000"};
static struct {unsigned f; char r[4];} string4 = {131074, "\004\007\000"};
static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\050\310\006\072\300\004\273\314\121\100\214\000\000"};
static struct {unsigned f; char r[16];} string6 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[4];} string7 = {65537, "\001\000\000"};
static struct {unsigned f; char r[48];} string8 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\247\365\203\234\300\047\265\225\046\100\310\005\004\162\145\163\164\214\216\257\300\247\365\203\234\300\047\265\225\046\100\310\261\000\000\000"};
static struct {unsigned f; char r[4];} string9 = {131074, "\004\003\000"};
static struct {unsigned f; char r[16];} string10 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\100\310\000\000"};
static struct {unsigned f; char r[48];} string11 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\254\303\162\064\300\023\214\047\340\100\200\005\004\162\145\163\164\214\216\257\300\254\303\162\064\300\023\214\047\340\100\200\261\000\000\000"};
static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\254\303\162\064\300\023\214\047\340\100\200\000\000"};
static struct {unsigned f; char r[48];} string13 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\371\314\343\307\300\031\056\017\130\100\324\005\004\162\145\163\164\214\216\257\300\371\314\343\307\300\031\056\017\130\100\324\261\000\000\000"};
static struct {unsigned f; char r[44];} string14 = {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];} string15 = {131074, "\003\002\000"};
static struct {unsigned f; char r[48];} string16 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\254\073\314\103\300\064\024\167\046\102\220\005\004\162\145\163\164\214\216\257\300\254\073\314\103\300\064\024\167\046\102\220\261\000\000\000"};
static struct {unsigned f; char r[16];} string17 = {851984, "\257\300\254\073\314\103\300\064\024\167\046\102\220\000\000"};
static struct {unsigned f; char r[16];} string18 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\107\224\000\000"};
static struct {unsigned f; char r[4];} string19 = {131074, "\004\011\000"};
static struct {unsigned f; char r[16];} string20 = {851984, "\257\300\254\303\162\064\300\023\214\047\340\101\224\000\000"};
static struct {unsigned f; char r[16];} string21 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\107\210\000\000"};
static struct {unsigned f; char r[16];} string22 = {851984, "\257\300\254\303\162\064\300\023\214\047\340\101\210\000\000"};
static struct {unsigned f; char r[4];} string23 = {131074, "\004\006\000"};
static struct {unsigned f; char r[4];} string24 = {131076, "\216\251\000"};
static struct {unsigned f; char r[20];} string25 = {1179668, "\260\006\005\146\151\162\163\164\217\005\004\162\145\163\164\214\217\261\000"};
static struct {unsigned f; char r[4];} string26 = {131076, "j:\000"};
static struct {unsigned f; char r[4];} string27 = {131076, "e:\000"};
static struct {unsigned f; char r[4];} string28 = {131076, "w:\000"};
static struct {unsigned f; char r[4];} string29 = {131076, "c:\000"};
static struct {unsigned f; char r[4];} string30 = {131076, "d:\000"};
static struct {unsigned f; char r[8];} string31 = {458760, "arrows:"};
static struct {unsigned f; char r[8];} string32 = {262152, "Traj\000\000\000"};
static struct {unsigned f; char r[8];} string33 = {393224, "Circle\000"};
static struct {unsigned f; char r[8];} string34 = {393224, " fwd: \000"};
static struct {unsigned f; char r[8];} string35 = {262152, "Disc\000\000\000"};
static struct {unsigned f; char r[8];} string36 = {262152, "fwd:\000\000\000"};
static struct {unsigned f; char r[8];} string37 = {327688, "fence\000\000"};
static struct {unsigned f; char r[8];} string38 = {262152, "hole\000\000\000"};
static struct {unsigned f; char r[8];} string39 = {262152, "open\000\000\000"};
static struct {unsigned f; char r[4];} string40 = {65540, ")\000\000"};
static struct {unsigned f; char r[4];} string41 = {131076, ") \000"};
static struct {unsigned f; char r[8];} string42 = {458760, " %g %g "};
static struct {unsigned f; char r[12];} string43 = {524300, " (%g %g \000\000\000"};
static struct {unsigned f; char r[8];} string44 = {327688, " (%g \000\000"};
static struct {unsigned f; char r[8];} string45 = {393224, " %g %g\000"};
static struct {unsigned f; char r[4];} string46 = {196612, "d: "};
static struct {unsigned f; char r[4];} string47 = {196612, "Set"};
static struct {unsigned f; char r[4];} string48 = {196612, "c: "};
static struct {unsigned f; char r[12];} string49 = {589836, "ChangeHue\000\000"};
static struct {unsigned f; char r[24];} string50 = {1441816, "Slice class not found.\000"};
static struct {unsigned f; char r[8];} string51 = {393224, "w: %g \000"};
static struct {unsigned f; char r[8];} string52 = {262152, " e: \000\000\000"};
static struct {unsigned f; char r[4];} string53 = {196612, "j: "};
static struct {unsigned f; char r[24];} string54 = {1441816, " (%g) [%g] arrows: %g \000"};
static struct {unsigned f; char r[28];} string55 = {1769500, "GGSlice.EntitiesInSlice NYI"};
static struct {unsigned f; char r[8];} string56 = {262152, "Text\000\000\000"};
static struct {unsigned f; char r[4];} string57 = {131076, "IP\000"};
static struct {unsigned f; char r[4];} string58 = {196612, "Box"};
static struct {unsigned f; char r[8];} string59 = {458760, "Outline"};
static struct {unsigned f; char r[8];} string60 = {458760, "Cluster"};
static struct {unsigned f; char r[20];} string61 = {1114132, "xerox/pressfonts/\000\000"};
static struct {unsigned f; char r[20];} string62 = {1114132, "xerox/tiogafonts/\000\000"};
static struct {unsigned f; char r[16];} string63 = {851984, "\257\300\254\303\162\064\300\023\214\047\340\100\164\000\000"};
static struct {unsigned f; char r[20];} string64 = {1114129, "\006\005\030\001\034\001\040\001\044\001\100\174\010\000\004\046\001\000\000"};
static struct {unsigned f; char r[16];} string65 = {851984, "\257\300\055\153\222\376\300\327\164\352\142\100\150\000\000"};
static struct {unsigned f; char r[16];} string66 = {851984, "\257\300\322\334\347\304\300\124\107\000\027\100\150\000\000"};
static struct {unsigned f; char r[16];} string67 = {851984, "\257\300\265\217\206\011\300\172\271\371\033\100\150\000\000"};
static struct {unsigned f; char r[16];} string68 = {851984, "\257\300\231\005\151\136\300\275\231\323\274\100\150\000\000"};
static struct {unsigned f; char r[16];} string69 = {851984, "\257\300\236\155\220\261\300\040\017\026\014\100\150\000\000"};
static struct {unsigned f; char r[16];} string70 = {851984, "\257\300\045\215\147\016\300\153\043\150\276\100\150\000\000"};
static struct {unsigned f; char r[16];} string71 = {851984, "\257\300\043\211\212\366\300\343\003\307\242\100\150\000\000"};
static struct {unsigned f; char r[16];} string72 = {851984, "\257\300\261\002\056\176\300\055\321\222\125\100\150\000\000"};
static struct {unsigned f; char r[4];} string73 = {1195856748, "ice"};
static struct {unsigned f; char r[16];} string74 = {851984, "\257\300U$)\337\300Xo9\243@t\000\000"};
static struct {unsigned f; char r[16];} string75 = {851984, "\257\300\336\025\013\356\300\216\115\352\271\100\150\000\000"};
static struct {unsigned f; char r[16];} string76 = {851984, "\257\300\050\310\006\072\300\004\273\314\121\100\150\000\000"};
static struct {unsigned f; char r[16];} string77 = {851984, "\257\300\370\132\042\205\300\045\133\011\125\100\150\000\000"};
static struct {unsigned f; char r[16];} string78 = {851984, "\257\300\074\177\166\242\300\203\113\217\044\100\150\000\000"};
static struct {unsigned f; char r[16];} string79 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\100\164\000\000"};
static struct {unsigned f; char r[16];} string80 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string81 = {851984, "\257\300\004\142\347\110\300\363\053\254\345\100\150\000\000"};
static struct {
word f0[69]; 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[18];
} globalframe = {
{0}, (word) Init←P3120, 0, (word) EntitiesInSlice←P3060,
0, (word) UnlinkSlice←P3000, 0, (word) UnlinkAllSliceDescriptors←P2940,
0, (word) DescriptorFromParts←P2880, 0, (word) RegisterSliceClass←P2820,
0, (word) FetchSliceClass←P2760, 0, (word) TrajGetOrientation←P2700,
0, (word) TrajSetOrientation←P2640, 0, (word) TrajGetDashed←P2580,
0, (word) TrajSetDashed←P2520, 0, (word) TrajGetArrows←P2460,
0, (word) TrajSetArrows←P2400, 0, (word) TrajGetStrokeColor←P2340,
0, (word) TrajSetStrokeColor←P2280, 0, (word) TrajGetStrokeJoint←P2220,
0, (word) TrajSetStrokeJoint←P2160, 0, (word) TrajGetStrokeEnd←P2100,
0, (word) TrajSetStrokeEnd←P2040, 0, (word) TrajGetStrokeWidth←P1980,
0, (word) TrajSetStrokeWidth←P1920, 0, (word) TrajSetDefaults←P1860,
0, (word) TrajHitDataAsSimpleCurve←P1800, 0, (word) TrajCircleIntersection←P1740,
0, (word) TrajLineIntersection←P1680, 0, (word) TrajFilledPathsUnderPoint←P1620,
0, (word) PolylineOfTraj←P1560, 0, (word) HanrahanInsideContour←P1500,
0, (word) InsideContour←P1440, 0, (word) TrajClosestSegment←P1380,
0, (word) TrajClosestPointAndTangent←P1320, 0, (word) TrajClosestJointToHitData←P1260,
0, (word) TrajClosestPoint←P1200, 0, (word) TrajNextSegment←P1140,
0, (word) TrajNextPointPair←P1080, 0, (word) TrajNextPoint←P1020,
0, (word) TrajWalkSegments←P960, 0, (word) TrajSegmentsInDescriptor←P900,
0, (word) TrajPointPairsInDescriptor←P840, 0, (word) TrajWalkPointsInDescriptor←P780,
0, (word) TrajPointsInDescriptor←P720, 0, (word) RoleToRope←P660,
0, (word) RoleFromRope←P600, 0, (word) TrajFilein←P540,
0, (word) TrajFileout←P480, 0, (word) TrajDescribeHit←P420,
0, (word) TrajDescribe←P360, 0, (word) AllDashesEqual←P300,
0, (word) AllStrokeColorsEqual←P240, 0, (word) AllStrokeWidthsEqual←P180,
0, (word) AllStrokeEndsEqual←P120, 0, (word) BuildMoreTrajSliceClass←P60,
0, (word) GGSliceImplE←P0, {0}
};
static void NoName←Q5760()
{
register ptr gf←c0720 = (ptr) &globalframe;
word var←c75316;
(* (( (ptr) gf←c0720)+11) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
(* (( (ptr) gf←c0720)+12) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
(* (( (ptr) gf←c0720)+13) ) = (word) XR←GetTypeIndexS((word) (&string5));
(* (( (ptr) gf←c0720)+15) ) = (word) XR←GetTypeIndex((word) &string6, 0, (word) &string7);
(* (( (ptr) gf←c0720)+16) ) = (word) XR←GetTypeIndex((word) &string8, 0, (word) &string9);
(* (( (ptr) gf←c0720)+17) ) = (word) XR←GetTypeIndex((word) &string10, 0, (word) &string9);
(* (( (ptr) gf←c0720)+18) ) = (word) XR←GetTypeIndex((word) &string11, 0, (word) &string9);
(* (( (ptr) gf←c0720)+19) ) = (word) XR←GetTypeIndex((word) &string12, 0, (word) &string9);
(* (( (ptr) gf←c0720)+20) ) = (word) XR←GetTypeIndex((word) &string13, 0, (word) &string9);
(* (( (ptr) gf←c0720)+21) ) = (word) XR←GetTypeIndex((word) &string14, 0, (word) &string15);
(* (( (ptr) gf←c0720)+22) ) = (word) XR←GetTypeIndex((word) &string16, 0, (word) &string9);
(* (( (ptr) gf←c0720)+23) ) = (word) XR←GetTypeIndexS((word) (&string17));
(* (( (ptr) gf←c0720)+24) ) = (word) XR←GetTypeIndex((word) &string18, 0, (word) &string19);
(* (( (ptr) gf←c0720)+25) ) = (word) XR←GetTypeIndex((word) &string20, 0, (word) &string7);
(* (( (ptr) gf←c0720)+26) ) = (word) XR←GetTypeIndex((word) &string21, 0, (word) &string19);
(* (( (ptr) gf←c0720)+27) ) = (word) XR←GetTypeIndex((word) &string22, 0, (word) &string23);
(* (( (ptr) gf←c0720)+29) ) = (word) XR←GetTypeIndex((word) &string24, 0, (word) &string7);
(* (( (ptr) gf←c0720)+30) ) = (word) XR←GetTypeIndex((word) &string25, 0, (word) &string9);
(* (ptr) (( (bPt) gf←c0720)+124) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+15) ), (word) &string26);
(* (ptr) (( (bPt) gf←c0720)+128) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+15) ), (word) &string27);
(* (ptr) (( (bPt) gf←c0720)+132) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+15) ), (word) &string28);
(* (ptr) (( (bPt) gf←c0720)+136) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+15) ), (word) &string29);
(* (ptr) (( (bPt) gf←c0720)+140) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+15) ), (word) &string30);
(* (ptr) (( (bPt) gf←c0720)+144) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+15) ), (word) &string31);
(* (ptr) (( (bPt) gf←c0720)+148) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+15) ), (word) &string32);
(* (ptr) (( (bPt) gf←c0720)+152) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+29) ), (word) &string33);
(* (ptr) (( (bPt) gf←c0720)+156) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+15) ), (word) &string34);
(* (ptr) (( (bPt) gf←c0720)+160) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+29) ), (word) &string35);
(* (ptr) (( (bPt) gf←c0720)+164) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+15) ), (word) &string36);
(* (ptr) (( (bPt) gf←c0720)+168) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+15) ), (word) &string37);
(* (ptr) (( (bPt) gf←c0720)+172) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+15) ), (word) &string38);
(* (ptr) (( (bPt) gf←c0720)+176) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+15) ), (word) &string39);
(* (ptr) (( (bPt) gf←c0720)+180) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+15) ), (word) &string40);
(* (ptr) (( (bPt) gf←c0720)+184) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+15) ), (word) &string41);
(* (ptr) (( (bPt) gf←c0720)+188) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+15) ), (word) &string42);
(* (ptr) (( (bPt) gf←c0720)+192) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+15) ), (word) &string43);
(* (ptr) (( (bPt) gf←c0720)+196) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+15) ), (word) &string44);
(* (ptr) (( (bPt) gf←c0720)+200) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+15) ), (word) &string45);
(* (ptr) (( (bPt) gf←c0720)+204) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+15) ), (word) &string46);
(* (ptr) (( (bPt) gf←c0720)+208) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+29) ), (word) &string47);
(* (ptr) (( (bPt) gf←c0720)+212) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+15) ), (word) &string48);
(* (ptr) (( (bPt) gf←c0720)+216) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+29) ), (word) &string49);
(* (ptr) (( (bPt) gf←c0720)+220) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+15) ), (word) &string50);
(* (ptr) (( (bPt) gf←c0720)+224) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+15) ), (word) &string51);
(* (ptr) (( (bPt) gf←c0720)+228) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+15) ), (word) &string52);
(* (ptr) (( (bPt) gf←c0720)+232) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+15) ), (word) &string53);
(* (ptr) (( (bPt) gf←c0720)+236) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+15) ), (word) &string54);
(* (ptr) (( (bPt) gf←c0720)+240) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+15) ), (word) &string55);
(* (ptr) (( (bPt) gf←c0720)+244) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+29) ), (word) &string56);
(* (ptr) (( (bPt) gf←c0720)+248) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+29) ), (word) &string57);
(* (ptr) (( (bPt) gf←c0720)+252) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+29) ), (word) &string58);
(* (ptr) (( (bPt) gf←c0720)+256) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+29) ), (word) &string59);
(* (ptr) (( (bPt) gf←c0720)+260) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+29) ), (word) &string60);
(* (ptr) (( (bPt) gf←c0720)+264) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+29) ), (word) &string32);
(* (ptr) (( (bPt) gf←c0720)+268) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+15) ), (word) &string61);
(* (ptr) (( (bPt) gf←c0720)+272) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0720)+15) ), (word) &string62);
(void) XR←DeclareGlobalFrame((word) "GGSliceImplE", &globalframe, (word) XR←GetTypeIndex((word) &string63, 0, (word) &string64)
, (word) (( (bPt) gf←c0720)+692)/* var←c70580 */ );
var←c75316 = (word) XR←ImportInterface((word) "Atom", (word) XR←GetTypeIndexS((word) (&string65)), 16);
(* (( (ptr) gf←c0720)+183)/* var←c71476 */ ) = var←c75316;
(void) XR←ImportProcS(var←c75316, 67895555);
(void) XR←ImportProcS(var←c75316, 67372289);
var←c75316 = (word) XR←ImportInterface((word) "Feedback", (word) XR←GetTypeIndexS((word) (&string66)), 25);
(* (( (ptr) gf←c0720)+175)/* var←c70612 */ ) = var←c75316;
var←c75316 = (word) XR←ImportInterface((word) "GGBoundBox", (word) XR←GetTypeIndexS((word) (&string67)), 24);
(* (( (ptr) gf←c0720)+190)/* var←c72852 */ ) = var←c75316;
(void) XR←ImportProcS(var←c75316, 67372033);
(void) XR←ImportProcS(var←c75316, 68162051);
var←c75316 = (word) XR←ImportInterface((word) "GGCoreOps", (word) XR←GetTypeIndexS((word) (&string68)), 37);
(* (( (ptr) gf←c0720)+178)/* var←c70804 */ ) = var←c75316;
(void) XR←ImportProcS(var←c75316, 67641090);
var←c75316 = (word) XR←ImportInterface((word) "GGParseIn", (word) XR←GetTypeIndexS((word) (&string69)), 26);
(* (( (ptr) gf←c0720)+184)/* var←c71956 */ ) = var←c75316;
(void) XR←ImportProcS(var←c75316, 67373313);
(void) XR←ImportProcS(var←c75316, 134483713);
(void) XR←ImportProcS(var←c75316, 67375873);
(void) XR←ImportProcS(var←c75316, 67636226);
(void) XR←ImportProcS(var←c75316, 67376897);
(void) XR←ImportProcS(var←c75316, 67373569);
(void) XR←ImportProcS(var←c75316, 67376129);
(void) XR←ImportProcS(var←c75316, 67373825);
(void) XR←ImportProcS(var←c75316, 67376385);
(void) XR←ImportProcS(var←c75316, 67372033);
(void) XR←ImportProcS(var←c75316, 525826);
(void) XR←ImportProcS(var←c75316, 525570);
var←c75316 = (word) XR←ImportInterface((word) "GGParseOut", (word) XR←GetTypeIndexS((word) (&string70)), 15);
(* (( (ptr) gf←c0720)+182)/* var←c71188 */ ) = var←c75316;
(void) XR←ImportProcS(var←c75316, 526594);
(void) XR←ImportProcS(var←c75316, 787714);
(void) XR←ImportProcS(var←c75316, 526850);
(void) XR←ImportProcS(var←c75316, 524802);
(void) XR←ImportProcS(var←c75316, 524290);
(void) XR←ImportProcS(var←c75316, 527106);
(void) XR←ImportProcS(var←c75316, 524546);
var←c75316 = (word) XR←ImportInterface((word) "GGSegment", (word) XR←GetTypeIndexS((word) (&string71)), 47);
(* (( (ptr) gf←c0720)+186)/* var←c72116 */ ) = var←c75316;
(void) XR←ImportProcS(var←c75316, 68944900);
(void) XR←ImportProcS(var←c75316, 67376129);
var←c75316 = (word) XR←ImportInterface((word) "GGSequence", (word) XR←GetTypeIndexS((word) (&string72)), 58);
(* (( (ptr) gf←c0720)+180)/* var←c70900 */ ) = var←c75316;
(void) XR←ImportProcS(var←c75316, 671621122);
(void) XR←ImportProcS(var←c75316, 67905283);
(void) XR←ImportProcS(var←c75316, 67643394);
(void) XR←ImportProcS(var←c75316, 67642626);
(void) XR←ImportProcS(var←c75316, 67634178);
(void) XR←ImportProcS(var←c75316, 67897091);
(void) XR←ImportProcS(var←c75316, 67381761);
(void) XR←ImportProcS(var←c75316, 201600513);
(void) XR←ImportProcS(var←c75316, 264961);
(void) XR←ImportProcS(var←c75316, 264705);
(void) XR←ImportProcS(var←c75316, 67380225);
(void) XR←ImportProcS(var←c75316, 67371521);
(void) XR←ImportProcS(var←c75316, 797955);
(void) XR←ImportProcS(var←c75316, 799235);
(void) XR←ImportProcS(var←c75316, 67385601);
(void) XR←ImportProcS(var←c75316, 67383553);
(void) XR←ImportProcS(var←c75316, 201600769);
(void) XR←ImportProcS(var←c75316, 67644418);
(void) XR←ImportProcS(var←c75316, 134490881);
(void) XR←ImportProcS(var←c75316, 67642882);
var←c75316 = (word) XR←ImportInterface((word) &string73, (word) XR←GetTypeIndexS((word) (&string74)), 128);
(* (( (ptr) gf←c0720)+176)/* var←c70644 */ ) = var←c75316;
(void) XR←ImportProcS(var←c75316, 67123712);
(void) XR←ImportProcS(var←c75316, 67112192);
(void) XR←ImportProcS(var←c75316, 67124224);
(void) XR←ImportProcS(var←c75316, 67120896);
(void) XR←ImportProcS(var←c75316, 67118848);
(void) XR←ImportProcS(var←c75316, 67121664);
(void) XR←ImportProcS(var←c75316, 67112704);
(void) XR←ImportProcS(var←c75316, 279297);
(void) XR←ImportProcS(var←c75316, 278785);
(void) XR←ImportProcS(var←c75316, 67634178);
(void) XR←ImportProcS(var←c75316, 134772738);
(void) XR←ImportProcS(var←c75316, 1341189);
var←c75316 = (word) XR←ImportInterface((word) "GGSliceOps", (word) XR←GetTypeIndexS((word) (&string75)), 73);
(* (( (ptr) gf←c0720)+189)/* var←c72628 */ ) = var←c75316;
(void) XR←ImportProcS(var←c75316, 1324805);
(void) XR←ImportProcS(var←c75316, 1850631);
(void) XR←ImportProcS(var←c75316, 1061636);
(void) XR←ImportProcS(var←c75316, 1062148);
(void) XR←ImportProcS(var←c75316, 68169988);
(void) XR←ImportProcS(var←c75316, 67634434);
(void) XR←ImportProcS(var←c75316, 134752002);
var←c75316 = (word) XR←ImportInterface((word) "GGTraj", (word) XR←GetTypeIndexS((word) (&string76)), 55);
(* (( (ptr) gf←c0720)+177)/* var←c70676 */ ) = var←c75316;
(void) XR←ImportProcS(var←c75316, 266497);
(void) XR←ImportProcS(var←c75316, 67375617);
(void) XR←ImportProcS(var←c75316, 67639810);
(void) XR←ImportProcS(var←c75316, 67379713);
(void) XR←ImportProcS(var←c75316, 470823427);
(void) XR←ImportProcS(var←c75316, 67642626);
(void) XR←ImportProcS(var←c75316, 67643394);
(void) XR←ImportProcS(var←c75316, 402927873);
(void) XR←ImportProcS(var←c75316, 470823683);
(void) XR←ImportProcS(var←c75316, 537932803);
(void) XR←ImportProcS(var←c75316, 787203);
(void) XR←ImportProcS(var←c75316, 525314);
(void) XR←ImportProcS(var←c75316, 68157956);
(void) XR←ImportProcS(var←c75316, 67633153);
(void) XR←ImportProcS(var←c75316, 134749186);
(void) XR←ImportProcS(var←c75316, 67379969);
(void) XR←ImportProcS(var←c75316, 67379457);
(void) XR←ImportProcS(var←c75316, 67639554);
var←c75316 = (word) XR←ImportInterface((word) "GGUtility", (word) XR←GetTypeIndexS((word) (&string77)), 42);
(* (( (ptr) gf←c0720)+179)/* var←c70868 */ ) = var←c75316;
(void) XR←ImportProcS(var←c75316, 67641346);
(void) XR←ImportProcS(var←c75316, 67379457);
(void) XR←ImportProcS(var←c75316, 67381505);
(void) XR←ImportProcS(var←c75316, 67380481);
(void) XR←ImportProcS(var←c75316, 67643138);
(void) XR←ImportProcS(var←c75316, 67905027);
(void) XR←ImportProcS(var←c75316, 67643394);
(void) XR←ImportProcS(var←c75316, 67641858);
var←c75316 = (word) XR←ImportInterface((word) "Imager", (word) XR←GetTypeIndexS((word) (&string78)), 84);
(* (( (ptr) gf←c0720)+185)/* var←c72052 */ ) = var←c75316;
var←c75316 = (word) XR←ImportInterface((word) "IO", (word) XR←GetTypeIndexS((word) (&string79)), 103);
(* (( (ptr) gf←c0720)+181)/* var←c71156 */ ) = var←c75316;
(void) XR←ImportProcS(var←c75316, 1063171);
(void) XR←ImportProcS(var←c75316, 528642);
(void) XR←ImportProcS(var←c75316, 1071364);
(void) XR←ImportProcS(var←c75316, 2111493);
var←c75316 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string80)), 43);
(* (( (ptr) gf←c0720)+188)/* var←c72404 */ ) = var←c75316;
(void) XR←ImportProcS(var←c75316, 67896323);
var←c75316 = (word) XR←ImportInterface((word) "Vectors2d", (word) XR←GetTypeIndexS((word) (&string81)), 21);
(* (( (ptr) gf←c0720)+187)/* var←c72212 */ ) = var←c75316;
(void) XR←ImportProcS(var←c75316, 68158722);
(void) XR←ImportProcS(var←c75316, 135270914);
(void) XR←ImportProcS(var←c75316, 68161794);
(void) XR←ImportProcS(var←c75316, 135268098);
var←c75316 = (word) XR←ExportInterface((word) &string73, (word) XR←GetTypeIndexS((word) (&string74)), 128);
(* (( (ptr) gf←c0720)+191)/* var←c75348 */ ) = var←c75316;
(void) XR←ExportProcS(var←c75316, (word) (( (bPt) gf←c0720)+316)/* var←c69076 */ , 262657, (word) "RegisterSliceClass");
(void) XR←ExportProcS(var←c75316, (word) (( (bPt) gf←c0720)+324)/* var←c69108 */ , 67371777, (word) "FetchSliceClass");
(void) XR←ExportProcS(var←c75316, (word) (( (bPt) gf←c0720)+308)/* var←c69044 */ , 67634178, (word) "DescriptorFromParts")
;
(void) XR←ExportProcS(var←c75316, (word) (( (bPt) gf←c0720)+284)/* var←c68948 */ , 67372289, (word) "EntitiesInSlice");
(void) XR←ExportProcS(var←c75316, (word) (( (bPt) gf←c0720)+684)/* var←c70548 */ , 277249, (word) "BuildMoreTrajSliceClass")
;
(void) XR←ExportProcS(var←c75316, (word) (( (bPt) gf←c0720)+292)/* var←c68980 */ , 279297, (word) "UnlinkSlice");
}
static void GGSliceImplE←P0(formal←c081, formal←c080)
word formal←c081;
word formal←c080;
{
register ptr gf←c75380 = (ptr) &globalframe;
/* GGSliceImplE: */
SOURCE(293, 43462)
SOURCE(3743, 24)
(* (( (ptr) gf←c75380)+4)/* Problem←v5464 */ ) = (* (ptr) (* (( (ptr) (* (( (ptr) gf←c75380)+175)/* var←c70612 */ ))+28)
) );
SOURCE(43749, 6)
(void) Init←P3120();
}
static void BuildMoreTrajSliceClass←P60(class←v7424)
word class←v7424;
{
register ptr gf←c75412 = (ptr) &globalframe;
/* BuildMoreTrajSliceClass: */
SOURCE(3804, 1650)
SOURCE(3865, 29)
(* (( (ptr) class←v7424)+17) ) = (word) (( (bPt) gf←c75412)+644)/* var←c70388 */ ;
SOURCE(3896, 35)
(* (( (ptr) class←v7424)+18) ) = (word) (( (bPt) gf←c75412)+636)/* var←c70356 */ ;
SOURCE(3933, 27)
(* (( (ptr) class←v7424)+19) ) = (word) (( (bPt) gf←c75412)+628)/* var←c70324 */ ;
SOURCE(3962, 25)
(* (( (ptr) class←v7424)+20) ) = (word) (( (bPt) gf←c75412)+620)/* var←c70292 */ ;
SOURCE(3989, 49)
(* (( (ptr) class←v7424)+30) ) = (word) (( (bPt) gf←c75412)+596)/* var←c70196 */ ;
SOURCE(4040, 57)
(* (( (ptr) class←v7424)+31) ) = (word) (( (bPt) gf←c75412)+588)/* var←c70164 */ ;
SOURCE(4099, 57)
(* (( (ptr) class←v7424)+32) ) = (word) (( (bPt) gf←c75412)+580)/* var←c70132 */ ;
SOURCE(4158, 53)
(* (( (ptr) class←v7424)+33) ) = (word) (( (bPt) gf←c75412)+572)/* var←c70100 */ ;
SOURCE(4213, 37)
(* (( (ptr) class←v7424)+34) ) = (word) (( (bPt) gf←c75412)+564)/* var←c70068 */ ;
SOURCE(4252, 31)
(* (( (ptr) class←v7424)+35) ) = (word) (( (bPt) gf←c75412)+556)/* var←c70036 */ ;
SOURCE(4285, 39)
(* (( (ptr) class←v7424)+36) ) = (word) (( (bPt) gf←c75412)+548)/* var←c70004 */ ;
SOURCE(4326, 35)
(* (( (ptr) class←v7424)+37) ) = (word) (( (bPt) gf←c75412)+540)/* var←c69972 */ ;
SOURCE(4363, 37)
(* (( (ptr) class←v7424)+38) ) = (word) (( (bPt) gf←c75412)+532)/* var←c69940 */ ;
SOURCE(4402, 55)
(* (( (ptr) class←v7424)+39) ) = (word) (( (bPt) gf←c75412)+524)/* var←c69908 */ ;
SOURCE(4459, 57)
(* (( (ptr) class←v7424)+40) ) = (word) (( (bPt) gf←c75412)+516)/* var←c69876 */ ;
SOURCE(4518, 41)
(* (( (ptr) class←v7424)+41) ) = (word) (( (bPt) gf←c75412)+508)/* var←c69844 */ ;
SOURCE(4561, 55)
(* (( (ptr) class←v7424)+42) ) = (word) (( (bPt) gf←c75412)+476)/* var←c69716 */ ;
SOURCE(4618, 45)
(* (( (ptr) class←v7424)+43) ) = (word) (( (bPt) gf←c75412)+468)/* var←c69684 */ ;
SOURCE(4665, 49)
(* (( (ptr) class←v7424)+44) ) = (word) (( (bPt) gf←c75412)+460)/* var←c69652 */ ;
SOURCE(4716, 53)
(* (( (ptr) class←v7424)+45) ) = (word) (( (bPt) gf←c75412)+452)/* var←c69620 */ ;
SOURCE(4771, 35)
(* (( (ptr) class←v7424)+46) ) = (word) (( (bPt) gf←c75412)+444)/* var←c69588 */ ;
SOURCE(4808, 41)
(* (( (ptr) class←v7424)+47) ) = (word) (( (bPt) gf←c75412)+436)/* var←c69556 */ ;
SOURCE(4851, 41)
(* (( (ptr) class←v7424)+48) ) = (word) (( (bPt) gf←c75412)+428)/* var←c69524 */ ;
SOURCE(4894, 37)
(* (( (ptr) class←v7424)+49) ) = (word) (( (bPt) gf←c75412)+420)/* var←c69492 */ ;
SOURCE(4933, 37)
(* (( (ptr) class←v7424)+50) ) = (word) (( (bPt) gf←c75412)+412)/* var←c69460 */ ;
SOURCE(4972, 41)
(* (( (ptr) class←v7424)+51) ) = (word) (( (bPt) gf←c75412)+404)/* var←c69428 */ ;
SOURCE(5015, 41)
(* (( (ptr) class←v7424)+52) ) = (word) (( (bPt) gf←c75412)+396)/* var←c69396 */ ;
SOURCE(5058, 41)
(* (( (ptr) class←v7424)+53) ) = (word) (( (bPt) gf←c75412)+388)/* var←c69364 */ ;
SOURCE(5101, 41)
(* (( (ptr) class←v7424)+54) ) = (word) (( (bPt) gf←c75412)+380)/* var←c69332 */ ;
SOURCE(5144, 45)
(* (( (ptr) class←v7424)+55) ) = (* (( (ptr) (* (( (ptr) gf←c75412)+176)/* var←c70644 */ ))+123) );
SOURCE(5191, 45)
(* (( (ptr) class←v7424)+56) ) = (* (( (ptr) (* (( (ptr) gf←c75412)+176)/* var←c70644 */ ))+124) );
SOURCE(5238, 31)
(* (( (ptr) class←v7424)+57) ) = (word) (( (bPt) gf←c75412)+372)/* var←c69300 */ ;
SOURCE(5271, 31)
(* (( (ptr) class←v7424)+58) ) = (word) (( (bPt) gf←c75412)+364)/* var←c69268 */ ;
SOURCE(5304, 31)
(* (( (ptr) class←v7424)+59) ) = (word) (( (bPt) gf←c75412)+356)/* var←c69236 */ ;
SOURCE(5337, 31)
(* (( (ptr) class←v7424)+60) ) = (word) (( (bPt) gf←c75412)+348)/* var←c69204 */ ;
SOURCE(5370, 41)
(* (( (ptr) class←v7424)+61) ) = (word) (( (bPt) gf←c75412)+340)/* var←c69172 */ ;
SOURCE(5413, 41)
(* (( (ptr) class←v7424)+62) ) = (word) (( (bPt) gf←c75412)+332)/* var←c69140 */ ;
}
static void AllStrokeEndsEqual←P120(formal←c091, slice←v7484)
word formal←c091;
word slice←v7484;
{
register ptr gf←c75444 = (ptr) &globalframe;
word allEqual←v7528;
word end←v7556;
word seg←v15812 = 0;
word firstSeg←v15840;
word hiSegment←v15868;
/* AllStrokeEndsEqual: */
SOURCE(5460, 369)
SOURCE(5460, 369)
allEqual←v7528 = 0;
SOURCE(5567, 49)
{
word pd82;
pd82 = (* (( (ptr) (* (( (ptr) gf←c75444)+177)/* var←c70676 */ ))+29) );
firstSeg←v15840 = (word) ( *( (fPt) ((* (ptr) pd82 ))))(slice←v7484, 0, pd82);
};
SOURCE(5618, 40)
{
word pd83;
pd83 = (* (( (ptr) (* (( (ptr) gf←c75444)+177)/* var←c70676 */ ))+37) );
hiSegment←v15868 = (word) ( *( (fPt) ((* (ptr) pd83 ))))(slice←v7484, pd83);
};
SOURCE(5660, 24)
end←v7556 = (* (( (ptr) firstSeg←v15840)+3) );
SOURCE(5686, 117)
{
register word i←v15912 = 1;
register word noName←c70708;
noName←c70708 = hiSegment←v15868;
if (( (int)i←v15912 > (int)noName←c70708)) {
goto lab←L100001;
};
lab←L100004: ;
SOURCE(5718, 35)
{
word pd84;
pd84 = (* (( (ptr) (* (( (ptr) gf←c75444)+177)/* var←c70676 */ ))+29) );
seg←v15812 = (word) ( *( (fPt) ((* (ptr) pd84 ))))(slice←v7484, SGNCK(i←v15912), pd84);
};
SOURCE(5755, 48)
if (((* (( (ptr) seg←v15812)+3) ) != end←v7556)) {
SOURCE(5783, 20)
allEqual←v7528 = 0;
end←v7556 = 2;
goto lab←L100000;
};
if (( (int)i←v15912 >= (int)noName←c70708)) {
goto lab←L100001;
};
i←v15912 = (i←v15912 + 1);
goto lab←L100004;
lab←L100001: ;
};
SOURCE(5814, 15)
allEqual←v7528 = 1;
/* removed tail goto */
lab←L100000: ;
(* (ptr) formal←c091 ) = allEqual←v7528;
(* (( (ptr) formal←c091)+1) ) = end←v7556;
return;
}
static word AllStrokeWidthsEqual←P180(slice←v7616)
word slice←v7616;
{
register ptr gf←c75476 = (ptr) &globalframe;
word width←v7660;
word seg←v15956 = 0;
word firstSeg←v15984;
word hiSegment←v16012;
/* AllStrokeWidthsEqual: */
SOURCE(5835, 318)
SOURCE(5917, 49)
{
word pd85;
pd85 = (* (( (ptr) (* (( (ptr) gf←c75476)+177)/* var←c70676 */ ))+29) );
firstSeg←v15984 = (word) ( *( (fPt) ((* (ptr) pd85 ))))(slice←v7616, 0, pd85);
};
SOURCE(5968, 40)
{
word pd86;
pd86 = (* (( (ptr) (* (( (ptr) gf←c75476)+177)/* var←c70676 */ ))+37) );
hiSegment←v16012 = (word) ( *( (fPt) ((* (ptr) pd86 ))))(slice←v7616, pd86);
};
SOURCE(6010, 28)
width←v7660 = (* (( (ptr) firstSeg←v15984)+2) );
SOURCE(6040, 113)
{
register word i←v16056 = 1;
register word noName←c70740;
noName←c70740 = hiSegment←v16012;
if (( (int)i←v16056 > (int)noName←c70740)) {
goto lab←L100005;
};
lab←L100008: ;
SOURCE(6072, 35)
{
word pd87;
pd87 = (* (( (ptr) (* (( (ptr) gf←c75476)+177)/* var←c70676 */ ))+29) );
seg←v15956 = (word) ( *( (fPt) ((* (ptr) pd87 ))))(slice←v7616, SGNCK(i←v16056), pd87);
};
SOURCE(6109, 44)
{
word x88;
word x89;
if (((
x88 = (* (( (ptr) seg←v15956)+2) ), *(float*)&x88
) != (
x89 = width←v7660, *(float*)&x89
))) {
SOURCE(6141, 12)
return((* (ptr) &fc90 ));
};
};
if (( (int)i←v16056 >= (int)noName←c70740)) {
goto lab←L100005;
};
i←v16056 = (i←v16056 + 1);
goto lab←L100008;
lab←L100005: ;
};
SOURCE(5835, 318)
return(width←v7660);
}
static void AllStrokeColorsEqual←P240(formal←c0107, slice←v7720)
word formal←c0107;
word slice←v7720;
{
register ptr gf←c75508 = (ptr) &globalframe;
word allEqual←v7764;
word color←v7792;
word seg←v16100 = 0;
word firstSeg←v16128;
word hiSegment←v16156;
/* AllStrokeColorsEqual: */
SOURCE(6168, 394)
SOURCE(6168, 394)
allEqual←v7764 = 0;
SOURCE(6168, 394)
color←v7792 = 0;
SOURCE(6275, 49)
{
word pd91;
pd91 = (* (( (ptr) (* (( (ptr) gf←c75508)+177)/* var←c70676 */ ))+29) );
firstSeg←v16128 = (word) ( *( (fPt) ((* (ptr) pd91 ))))(slice←v7720, 0, pd91);
};
SOURCE(6326, 40)
{
word pd92;
pd92 = (* (( (ptr) (* (( (ptr) gf←c75508)+177)/* var←c70676 */ ))+37) );
hiSegment←v16156 = (word) ( *( (fPt) ((* (ptr) pd92 ))))(slice←v7720, pd92);
};
SOURCE(6368, 22)
color←v7792 = (* (( (ptr) firstSeg←v16128)+8) );
SOURCE(6392, 144)
{
register word i←v16200 = 1;
register word noName←c70772;
noName←c70772 = hiSegment←v16156;
if (( (int)i←v16200 > (int)noName←c70772)) {
goto lab←L100010;
};
lab←L100013: ;
SOURCE(6424, 35)
{
word pd93;
pd93 = (* (( (ptr) (* (( (ptr) gf←c75508)+177)/* var←c70676 */ ))+29) );
seg←v16100 = (word) ( *( (fPt) ((* (ptr) pd93 ))))(slice←v7720, SGNCK(i←v16200), pd93);
};
SOURCE(6461, 75)
{
word pd94;
pd94 = (* (( (ptr) (* (( (ptr) gf←c75508)+178)/* var←c70804 */ ))+35) );
if ((0 == (word) ( *( (fPt) ((* (ptr) pd94 ))))(color←v7792, (* (( (ptr) seg←v16100)+8) ), pd94))) {
SOURCE(6518, 18)
allEqual←v7764 = 0;
color←v7792 = 0;
goto lab←L100009;
};
};
if (( (int)i←v16200 >= (int)noName←c70772)) {
goto lab←L100010;
};
i←v16200 = (i←v16200 + 1);
goto lab←L100013;
lab←L100010: ;
};
SOURCE(6547, 15)
allEqual←v7764 = 1;
/* removed tail goto */
lab←L100009: ;
(* (ptr) formal←c0107 ) = allEqual←v7764;
(* (( (ptr) formal←c0107)+1) ) = color←v7792;
return;
}
static void AllDashesEqual←P300(formal←c0119, slice←v7852)
word formal←c0119;
word slice←v7852;
{
register ptr gf←c75540 = (ptr) &globalframe;
word allEqual←v7896;
word dashed←v7924;
word pattern←v7952;
word offset←v7980;
word length←v8008;
word seg←v16244 = 0;
word firstSeg←v16272;
word hiSegment←v16300;
/* AllDashesEqual: */
SOURCE(6568, 692)
SOURCE(6568, 692)
allEqual←v7896 = 0;
SOURCE(6568, 692)
dashed←v7924 = 0;
SOURCE(6568, 692)
pattern←v7952 = 0;
SOURCE(6568, 692)
offset←v7980 = (* (ptr) &fc95 );
SOURCE(6568, 692)
length←v8008 = (* (ptr) &fc95 );
SOURCE(6736, 49)
{
word pd96;
pd96 = (* (( (ptr) (* (( (ptr) gf←c75540)+177)/* var←c70676 */ ))+29) );
firstSeg←v16272 = (word) ( *( (fPt) ((* (ptr) pd96 ))))(slice←v7852, 0, pd96);
};
SOURCE(6787, 40)
{
word pd97;
pd97 = (* (( (ptr) (* (( (ptr) gf←c75540)+177)/* var←c70676 */ ))+37) );
hiSegment←v16300 = (word) ( *( (fPt) ((* (ptr) pd97 ))))(slice←v7852, pd97);
};
SOURCE(6829, 24)
dashed←v7924 = (* (( (ptr) firstSeg←v16272)+4) );
SOURCE(6855, 26)
pattern←v7952 = (* (( (ptr) firstSeg←v16272)+5) );
SOURCE(6883, 24)
offset←v7980 = (* (( (ptr) firstSeg←v16272)+6) );
SOURCE(6909, 24)
length←v8008 = (* (( (ptr) firstSeg←v16272)+7) );
SOURCE(6935, 299)
{
register word i←v16344 = 1;
register word noName←c70836;
noName←c70836 = hiSegment←v16300;
if (( (int)i←v16344 > (int)noName←c70836)) {
goto lab←L100015;
};
lab←L100018: ;
SOURCE(6967, 35)
{
word pd98;
pd98 = (* (( (ptr) (* (( (ptr) gf←c75540)+177)/* var←c70676 */ ))+29) );
seg←v16244 = (word) ( *( (fPt) ((* (ptr) pd98 ))))(slice←v7852, SGNCK(i←v16344), pd98);
};
SOURCE(7004, 41)
if (((* (( (ptr) seg←v16244)+4) ) != dashed←v7924)) {
SOURCE(7032, 13)
allEqual←v7896 = 0;
dashed←v7924 = 0;
pattern←v7952 = 0;
offset←v7980 = (* (ptr) &fc95 );
length←v8008 = (* (ptr) &fc95 );
goto lab←L100014;
};
SOURCE(7047, 19)
if ((0 == dashed←v7924)) {
SOURCE(7066, 4)
goto lab←L100017;
};
SOURCE(7072, 76)
{
word pd99;
pd99 = (* (( (ptr) (* (( (ptr) gf←c75540)+179)/* var←c70868 */ ))+38) );
if ((0 == (word) ( *( (fPt) ((* (ptr) pd99 ))))((* (( (ptr) seg←v16244)+5) ), pattern←v7952, pd99))) {
SOURCE(7135, 13)
allEqual←v7896 = 0;
dashed←v7924 = 0;
pattern←v7952 = 0;
offset←v7980 = (* (ptr) &fc95 );
length←v8008 = (* (ptr) &fc95 );
goto lab←L100014;
};
};
SOURCE(7150, 41)
{
word x100;
word x101;
if (((
x100 = (* (( (ptr) seg←v16244)+6) ), *(float*)&x100
) != (
x101 = offset←v7980, *(float*)&x101
))) {
SOURCE(7178, 13)
allEqual←v7896 = 0;
dashed←v7924 = 0;
pattern←v7952 = 0;
offset←v7980 = (* (ptr) &fc95 );
length←v8008 = (* (ptr) &fc95 );
goto lab←L100014;
};
};
SOURCE(7193, 41)
{
word x102;
word x103;
if (((
x102 = (* (( (ptr) seg←v16244)+7) ), *(float*)&x102
) != (
x103 = length←v8008, *(float*)&x103
))) {
SOURCE(7221, 13)
allEqual←v7896 = 0;
dashed←v7924 = 0;
pattern←v7952 = 0;
offset←v7980 = (* (ptr) &fc95 );
length←v8008 = (* (ptr) &fc95 );
goto lab←L100014;
};
};
lab←L100017: ;
if (( (int)i←v16344 >= (int)noName←c70836)) {
goto lab←L100015;
};
i←v16344 = (i←v16344 + 1);
goto lab←L100018;
lab←L100015: ;
};
SOURCE(7245, 15)
allEqual←v7896 = 1;
/* removed tail goto */
lab←L100014: ;
(* (ptr) formal←c0119 ) = allEqual←v7896;
(* (( (ptr) formal←c0119)+1) ) = dashed←v7924;
(* (( (ptr) formal←c0119)+2) ) = pattern←v7952;
(* (( (ptr) formal←c0119)+3) ) = offset←v7980;
(* (( (ptr) formal←c0119)+4) ) = length←v8008;
return;
}
static word TrajDescribe←P360(sliceD←v8068)
word sliceD←v8068;
{
register ptr gf←c75572 = (ptr) &globalframe;
word rope←v8112;
word trajData←v16388;
word trajParts←v16416;
/* TrajDescribe: */
SOURCE(7266, 1163)
SOURCE(7266, 1163)
rope←v8112 = 0;
SOURCE(7341, 46)
trajData←v16388 = XR←Narrow((* (( (ptr) (* (ptr) sliceD←v8068 ))+1) ), (* (( (ptr) gf←c75572)+11) ));
SOURCE(7389, 43)
trajParts←v16416 = XR←Narrow((* (( (ptr) sliceD←v8068)+1) ), (* (( (ptr) gf←c75572)+12) ));
SOURCE(7434, 995)
if ((trajParts←v16416 == 0)) {
SOURCE(7456, 17)
return(0);
}
else {
SOURCE(7473, 958)
{
word segNum←v16460;
word cpNum←v16488;
word segCount←v16516;
word jointCount←v16544;
word cpCount←v16572;
SOURCE(7495, 34)
segCount←v16516 = (* (( (ptr) trajParts←v16416)+3) );
SOURCE(7531, 38)
jointCount←v16544 = (* (( (ptr) trajParts←v16416)+4) );
SOURCE(7571, 42)
cpCount←v16572 = (* (( (ptr) trajParts←v16416)+5) );
if ((segCount←v16516 == 1)) {
SOURCE(7646, 215)
{
word segGen←v16616;
SOURCE(7688, 77)
{
word pd104;
pd104 = (* (( (ptr) (* (( (ptr) gf←c75572)+180)/* var←c70900 */ ))+42) );
segGen←v16616 = (word) ( *( (fPt) ((* (ptr) pd104 ))))(trajData←v16388, trajParts←v16416, pd104);
};
SOURCE(7767, 92)
{
W2 var←c0131;
word var←c70932;
{
word pd105;
pd105 = (* (( (ptr) (* (( (ptr) gf←c75572)+180)/* var←c70900 */ ))+47) );
(void) ( *( (fPt) ((* (ptr) pd105 ))))((word) &var←c0131, segGen←v16616, pd105);
};
var←c70932 = var←c0131.f1;
{
word pd106;
pd106 = (* (( (ptr) (* (( (ptr) gf←c75572)+179)/* var←c70868 */ ))+44) );
rope←v8112 = (word) ( *( (fPt) ((* (ptr) pd106 ))))((* (ptr) sliceD←v8068 ), var←c70932, pd106);
};
};
};
}
else {
if ( ( (segCount←v16516 == 0) ? (cpCount←v16572 == 1) : 0 ) ) {
SOURCE(7892, 249)
{
word cpGen←v16660;
SOURCE(7929, 86)
{
word pd107;
pd107 = (* (( (ptr) (* (( (ptr) gf←c75572)+180)/* var←c70900 */ ))+48) );
cpGen←v16660 = (word) ( *( (fPt) ((* (ptr) pd107 ))))(trajData←v16388, trajParts←v16416, pd107);
};
SOURCE(8017, 54)
{
W3 var←c70964;
{
word pd108;
pd108 = (* (( (ptr) (* (( (ptr) gf←c75572)+180)/* var←c70900 */ ))+51) );
(void) ( *( (fPt) ((* (ptr) pd108 ))))((word) &var←c70964, cpGen←v16660, pd108);
};
cpNum←v16488 = var←c70964.f1;
segNum←v16460 = var←c70964.f0;
};
SOURCE(8073, 66)
{
word pd109;
pd109 = (* (( (ptr) (* (( (ptr) gf←c75572)+179)/* var←c70868 */ ))+42) );
rope←v8112 = (word) ( *( (fPt) ((* (ptr) pd109 ))))((* (ptr) sliceD←v8068 ), segNum←v16460, cpNum←v16488, pd109);
};
};
}
else {
if ( ( ( (segCount←v16516 == 0) ? (cpCount←v16572 == 0) : 0 ) ? (jointCount←v16544 == 1) : 0 ) ) {
SOURCE(8189, 185)
{
word jointGen←v16704;
SOURCE(8229, 65)
{
word pd110;
pd110 = (* (( (ptr) (* (( (ptr) gf←c75572)+180)/* var←c70900 */ ))+53) );
jointGen←v16704 = (word) ( *( (fPt) ((* (ptr) pd110 ))))(trajParts←v16416, pd110);
};
SOURCE(8296, 76)
{
word var←c70996;
{
word pd111;
word idx112;
pd111 = (* (( (ptr) (* (( (ptr) gf←c75572)+180)/* var←c70900 */ ))+61) );
var←c70996 = (
/*1*/ idx112 = (word) ( *( (fPt) ((* (ptr) pd111 ))))(jointGen←v16704, pd111),
/*1*/ SGNCK(idx112)
/*1*/ );
};
{
word pd113;
pd113 = (* (( (ptr) (* (( (ptr) gf←c75572)+179)/* var←c70868 */ ))+43) );
rope←v8112 = (word) ( *( (fPt) ((* (ptr) pd113 ))))((* (ptr) sliceD←v8068 ), var←c70996, pd113);
};
};
};
}
else {
SOURCE(8388, 41)
{
word pd114;
pd114 = (* (( (ptr) (* (( (ptr) gf←c75572)+179)/* var←c70868 */ ))+41) );
rope←v8112 = (word) ( *( (fPt) ((* (ptr) pd114 ))))(sliceD←v8068, pd114);
};
};
};
};
};
};
SOURCE(7266, 1163)
return(rope←v8112);
}
static word TrajDescribeHit←P420(slice←v8172, hitData←v8200)
word slice←v8172;
word hitData←v8200;
{
register ptr gf←c75604 = (ptr) &globalframe;
word rope←v8260;
word trajHitData←v16748;
/* TrajDescribeHit: */
SOURCE(8438, 456)
SOURCE(8438, 456)
rope←v8260 = 0;
SOURCE(8523, 42)
trajHitData←v16748 = XR←Narrow(hitData←v8200, (* (( (ptr) gf←c75604)+13) ));
SOURCE(8567, 327)
{
word var←c71028;
var←c71028 = (* (ptr) trajHitData←v16748 );
switch (var←c71028) {
case 1:
SOURCE(8608, 59)
{
word pd115;
word idx116;
pd115 = (* (( (ptr) (* (( (ptr) gf←c75604)+179)/* var←c70868 */ ))+43) );
rope←v8260 = (word) ( *( (fPt) ((* (ptr) pd115 ))))(slice←v8172, (
idx116 = (* (( (ptr) trajHitData←v16748)+3) ),
SGNCK(idx116)
), pd115);
};
break;
case 2:
SOURCE(8685, 83)
{
word pd117;
word idx118;
word idx119;
pd117 = (* (( (ptr) (* (( (ptr) gf←c75604)+179)/* var←c70868 */ ))+42) );
rope←v8260 = (word) ( *( (fPt) ((* (ptr) pd117 ))))(slice←v8172, (
idx118 = (* (( (ptr) trajHitData←v16748)+1) ),
SGNCK(idx118)
), (
idx119 = (* (( (ptr) trajHitData←v16748)+2) ),
SGNCK(idx119)
), pd117);
};
break;
case 3:
SOURCE(8781, 59)
{
word pd120;
word idx121;
pd120 = (* (( (ptr) (* (( (ptr) gf←c75604)+179)/* var←c70868 */ ))+44) );
rope←v8260 = (word) ( *( (fPt) ((* (ptr) pd120 ))))(slice←v8172, (
idx121 = (* (( (ptr) trajHitData←v16748)+1) ),
SGNCK(idx121)
), pd120);
};
break;
case 4:
SOURCE(8854, 40)
{
word pd122;
pd122 = (* (( (ptr) (* (( (ptr) gf←c75604)+179)/* var←c70868 */ ))+45) );
rope←v8260 = (word) ( *( (fPt) ((* (ptr) pd122 ))))(slice←v8172, pd122);
};
break;
default:
SOURCE(8907, 5)
(void) XR←RaiseUnnamedError();
break;
};
};
SOURCE(8438, 456)
return(rope←v8260);
}
static void TrajFileout←P480(slice←v8320, f←v8348)
word slice←v8320;
word f←v8348;
{
register ptr gf←c75636 = (ptr) &globalframe;
word trajData←v16792;
word roleRope←v16820;
word strokeWidth←v16848;
word offset←v16876;
word length←v16904;
word strokeOK←v16932;
word endsOK←v16960;
word colorOK←v16988;
word dashOK←v17016;
word dashed←v17044;
word pattern←v17072 = 0;
word color←v17100 = 0;
W2 point←v17128;
word end←v17156;
word className←v17184 = 0;
word seg←v17212 = 0;
word arrowCode←v17240;
word hiJoint←v17268;
/* TrajFileout: */
SOURCE(8918, 3197)
SOURCE(8969, 39)
trajData←v16792 = XR←Narrow((* (( (ptr) slice←v8320)+1) ), (* (( (ptr) gf←c75636)+11) ));
SOURCE(9010, 47)
roleRope←v16820 = (word) RoleToRope←P660((* (ptr) (trajData←v16792) ));
SOURCE(9264, 36)
{
word pd123;
pd123 = (* (( (ptr) (* (( (ptr) gf←c75636)+177)/* var←c70676 */ ))+39) );
hiJoint←v17268 = (word) ( *( (fPt) ((* (ptr) pd123 ))))(slice←v8320, pd123);
};
SOURCE(9302, 166)
if ((0 != (* (( (ptr) trajData←v16792)+8) ))) {
if ((0 != (* (( (ptr) trajData←v16792)+7) ))) {
arrowCode←v17240 = 3;
}
else {
arrowCode←v17240 = 2;
};
}
else {
if ((0 != (* (( (ptr) trajData←v16792)+7) ))) {
arrowCode←v17240 = 1;
}
else {
arrowCode←v17240 = 0;
};
};
SOURCE(9470, 92)
{
W2 var←c71060;
W2 var←c71092;
W2 var←c71124;
var←c71060.f0 = 11;
var←c71060.f1 = roleRope←v16820;
var←c71092.f0 = 5;
var←c71092.f1 = hiJoint←v17268;
var←c71124.f0 = 5;
var←c71124.f1 = arrowCode←v17240;
{
word pd124;
pd124 = (* (( (ptr) (* (( (ptr) gf←c75636)+181)/* var←c71156 */ ))+60) );
(void) ( *( (fPt) ((* (ptr) pd124 ))))(f←v8348, (* (( (ptr) gf←c75636)+59) ), var←c71060, var←c71092, var←c71124, pd124)
;
};
};
SOURCE(9564, 16)
{
word pd125;
pd125 = (* (( (ptr) (* (( (ptr) gf←c75636)+181)/* var←c71156 */ ))+93) );
(void) ( *( (fPt) ((* (ptr) pd125 ))))(f←v8348, (* (( (ptr) gf←c75636)+58) ), 0, 2147483647, pd125);
};
SOURCE(9597, 52)
{
word pd126;
pd126 = (* (( (ptr) (* (( (ptr) gf←c75636)+182)/* var←c71188 */ ))+5) );
(void) ( *( (fPt) ((* (ptr) pd126 ))))(f←v8348, (* (( (ptr) trajData←v16792)+6) ), pd126);
};
SOURCE(9651, 41)
{
W2 var←c71220;
(void) AllStrokeEndsEqual←P120((word) &var←c71220, slice←v8320);
end←v17156 = var←c71220.f1;
endsOK←v16960 = var←c71220.f0;
};
SOURCE(9694, 17)
{
word pd127;
pd127 = (* (( (ptr) (* (( (ptr) gf←c75636)+181)/* var←c71156 */ ))+93) );
(void) ( *( (fPt) ((* (ptr) pd127 ))))(f←v8348, (* (( (ptr) gf←c75636)+57) ), 0, 2147483647, pd127);
};
SOURCE(9713, 31)
{
word pd128;
pd128 = (* (( (ptr) (* (( (ptr) gf←c75636)+182)/* var←c71188 */ ))+15) );
(void) ( *( (fPt) ((* (ptr) pd128 ))))(f←v8348, endsOK←v16960, pd128);
};
SOURCE(9746, 16)
{
word pd129;
pd129 = (* (( (ptr) (* (( (ptr) gf←c75636)+181)/* var←c71156 */ ))+21) );
(void) ( *( (fPt) ((* (ptr) pd129 ))))(f←v8348, 32, pd129);
};
SOURCE(9764, 33)
{
word pd130;
pd130 = (* (( (ptr) (* (( (ptr) gf←c75636)+182)/* var←c71188 */ ))+4) );
(void) ( *( (fPt) ((* (ptr) pd130 ))))(f←v8348, end←v17156, pd130);
};
SOURCE(9799, 16)
{
word pd131;
pd131 = (* (( (ptr) (* (( (ptr) gf←c75636)+181)/* var←c71156 */ ))+21) );
(void) ( *( (fPt) ((* (ptr) pd131 ))))(f←v8348, 32, pd131);
};
SOURCE(9817, 41)
strokeWidth←v16848 = (word) AllStrokeWidthsEqual←P180(slice←v8320);
SOURCE(9860, 29)
{
word x132;
word x133;
strokeOK←v16932 = (unsigned) ((
x132 = strokeWidth←v16848, *(float*)&x132
) >= (
x133 = (* (ptr) &fc95 ), *(float*)&x133
));
};
SOURCE(9891, 38)
{
W2 var←c71252;
var←c71252.f0 = 8;
var←c71252.f1 = strokeWidth←v16848;
{
word pd134;
pd134 = (* (( (ptr) (* (( (ptr) gf←c75636)+181)/* var←c71156 */ ))+61) );
(void) ( *( (fPt) ((* (ptr) pd134 ))))(f←v8348, (* (( (ptr) gf←c75636)+56) ), var←c71252, pd134);
};
};
SOURCE(9931, 46)
{
W2 var←c71284;
(void) AllStrokeColorsEqual←P240((word) &var←c71284, slice←v8320);
color←v17100 = var←c71284.f1;
colorOK←v16988 = var←c71284.f0;
};
SOURCE(9979, 16)
{
word pd135;
pd135 = (* (( (ptr) (* (( (ptr) gf←c75636)+181)/* var←c71156 */ ))+93) );
(void) ( *( (fPt) ((* (ptr) pd135 ))))(f←v8348, (* (( (ptr) gf←c75636)+53) ), 0, 2147483647, pd135);
};
SOURCE(9997, 32)
{
word pd136;
pd136 = (* (( (ptr) (* (( (ptr) gf←c75636)+182)/* var←c71188 */ ))+15) );
(void) ( *( (fPt) ((* (ptr) pd136 ))))(f←v8348, colorOK←v16988, pd136);
};
SOURCE(10031, 16)
{
word pd137;
pd137 = (* (( (ptr) (* (( (ptr) gf←c75636)+181)/* var←c71156 */ ))+21) );
(void) ( *( (fPt) ((* (ptr) pd137 ))))(f←v8348, 32, pd137);
};
SOURCE(10049, 31)
{
word pd138;
pd138 = (* (( (ptr) (* (( (ptr) gf←c75636)+182)/* var←c71188 */ ))+6) );
(void) ( *( (fPt) ((* (ptr) pd138 ))))(f←v8348, color←v17100, pd138);
};
SOURCE(10082, 16)
{
word pd139;
pd139 = (* (( (ptr) (* (( (ptr) gf←c75636)+181)/* var←c71156 */ ))+21) );
(void) ( *( (fPt) ((* (ptr) pd139 ))))(f←v8348, 32, pd139);
};
SOURCE(10100, 65)
{
W5 var←c71316;
(void) AllDashesEqual←P300((word) &var←c71316, slice←v8320);
length←v16904 = var←c71316.f4;
offset←v16876 = var←c71316.f3;
pattern←v17072 = var←c71316.f2;
dashed←v17044 = var←c71316.f1;
dashOK←v17016 = var←c71316.f0;
};
SOURCE(10167, 16)
{
word pd140;
pd140 = (* (( (ptr) (* (( (ptr) gf←c75636)+181)/* var←c71156 */ ))+93) );
(void) ( *( (fPt) ((* (ptr) pd140 ))))(f←v8348, (* (( (ptr) gf←c75636)+51) ), 0, 2147483647, pd140);
};
SOURCE(10185, 31)
{
word pd141;
pd141 = (* (( (ptr) (* (( (ptr) gf←c75636)+182)/* var←c71188 */ ))+15) );
(void) ( *( (fPt) ((* (ptr) pd141 ))))(f←v8348, dashOK←v17016, pd141);
};
SOURCE(10218, 192)
if ((0 != dashOK←v17016)) {
SOURCE(10235, 16)
{
word pd142;
pd142 = (* (( (ptr) (* (( (ptr) gf←c75636)+181)/* var←c71156 */ ))+21) );
(void) ( *( (fPt) ((* (ptr) pd142 ))))(f←v8348, 32, pd142);
};
SOURCE(10253, 31)
{
word pd143;
pd143 = (* (( (ptr) (* (( (ptr) gf←c75636)+182)/* var←c71188 */ ))+15) );
(void) ( *( (fPt) ((* (ptr) pd143 ))))(f←v8348, dashed←v17044, pd143);
};
SOURCE(10286, 16)
{
word pd144;
pd144 = (* (( (ptr) (* (( (ptr) gf←c75636)+181)/* var←c71156 */ ))+21) );
(void) ( *( (fPt) ((* (ptr) pd144 ))))(f←v8348, 32, pd144);
};
SOURCE(10304, 106)
if ((0 != dashed←v17044)) {
SOURCE(10321, 39)
{
word pd145;
pd145 = (* (( (ptr) (* (( (ptr) gf←c75636)+182)/* var←c71188 */ ))+14) );
(void) ( *( (fPt) ((* (ptr) pd145 ))))(f←v8348, pattern←v17072, pd145);
};
SOURCE(10362, 48)
{
W2 var←c71348;
W2 var←c71380;
W2 var←c0782;
var←c71348.f0 = 8;
var←c71348.f1 = offset←v16876;
var←c71380.f0 = 8;
var←c71380.f1 = length←v16904;
(* (ptr) (word) &var←c0782 ) = 0;
(* (( (ptr) (word) &var←c0782) + 1) ) = 0;
{
word pd146;
pd146 = (* (( (ptr) (* (( (ptr) gf←c75636)+181)/* var←c71156 */ ))+60) );
(void) ( *( (fPt) ((* (ptr) pd146 ))))(f←v8348, (* (( (ptr) gf←c75636)+50) ), var←c71348, var←c71380, var←c0782, pd146);
};
};
};
};
SOURCE(10418, 16)
{
word pd147;
pd147 = (* (( (ptr) (* (( (ptr) gf←c75636)+181)/* var←c71156 */ ))+21) );
(void) ( *( (fPt) ((* (ptr) pd147 ))))(f←v8348, 10, pd147);
};
SOURCE(10436, 38)
{
word pd148;
pd148 = (* (( (ptr) (* (( (ptr) gf←c75636)+177)/* var←c70676 */ ))+32) );
(void) ( *( (fPt) ((* (ptr) pd148 ))))((word) &point←v17128, slice←v8320, 0, pd148);
};
SOURCE(10476, 31)
{
word pd149;
pd149 = (* (( (ptr) (* (( (ptr) gf←c75636)+182)/* var←c71188 */ ))+9) );
(void) ( *( (fPt) ((* (ptr) pd149 ))))(f←v8348, point←v17128, pd149);
};
SOURCE(10509, 792)
{
register word index←v17312 = 1;
register word noName←c71444;
noName←c71444 = hiJoint←v17268;
if ((index←v17312 > noName←c71444)) {
goto lab←L100019;
};
lab←L100022: ;
SOURCE(10543, 43)
{
word pd150;
pd150 = (* (( (ptr) (* (( (ptr) gf←c75636)+177)/* var←c70676 */ ))+29) );
seg←v17212 = (word) ( *( (fPt) ((* (ptr) pd150 ))))(slice←v8320, SGNCK((index←v17312 - 1)), pd150);
};
SOURCE(10588, 41)
{
word pd151;
pd151 = (* (( (ptr) (* (( (ptr) gf←c75636)+183)/* var←c71476 */ ))+9) );
className←v17184 = (word) ( *( (fPt) ((* (ptr) pd151 ))))((* (ptr) ((* (ptr) seg←v17212 )) ), pd151);
};
SOURCE(10631, 120)
if ((0 != strokeOK←v16932)) {
SOURCE(10648, 41)
{
W2 var←c71508;
var←c71508.f0 = 11;
var←c71508.f1 = className←v17184;
{
word pd152;
pd152 = (* (( (ptr) (* (( (ptr) gf←c75636)+181)/* var←c71156 */ ))+61) );
(void) ( *( (fPt) ((* (ptr) pd152 ))))(f←v8348, (* (( (ptr) gf←c75636)+49) ), var←c71508, pd152);
};
};
}
else {
SOURCE(10689, 62)
{
W2 var←c71540;
W2 var←c71572;
W2 var←c0783;
var←c71540.f0 = 11;
var←c71540.f1 = className←v17184;
var←c71572.f0 = 8;
var←c71572.f1 = (* (( (ptr) seg←v17212)+2) );
(* (ptr) (word) &var←c0783 ) = 0;
(* (( (ptr) (word) &var←c0783) + 1) ) = 0;
{
word pd153;
pd153 = (* (( (ptr) (* (( (ptr) gf←c75636)+181)/* var←c71156 */ ))+60) );
(void) ( *( (fPt) ((* (ptr) pd153 ))))(f←v8348, (* (( (ptr) gf←c75636)+48) ), var←c71540, var←c71572, var←c0783, pd153);
};
};
};
SOURCE(10753, 82)
if ((0 == endsOK←v16960)) {
SOURCE(10774, 43)
{
word pd154;
pd154 = (* (( (ptr) (* (( (ptr) gf←c75636)+182)/* var←c71188 */ ))+4) );
(void) ( *( (fPt) ((* (ptr) pd154 ))))(f←v8348, (* (( (ptr) seg←v17212)+3) ), pd154);
};
SOURCE(10819, 16)
{
word pd155;
pd155 = (* (( (ptr) (* (( (ptr) gf←c75636)+181)/* var←c71156 */ ))+21) );
(void) ( *( (fPt) ((* (ptr) pd155 ))))(f←v8348, 32, pd155);
};
};
SOURCE(10840, 75)
if ((0 == colorOK←v16988)) {
SOURCE(10862, 35)
{
word pd156;
pd156 = (* (( (ptr) (* (( (ptr) gf←c75636)+182)/* var←c71188 */ ))+6) );
(void) ( *( (fPt) ((* (ptr) pd156 ))))(f←v8348, (* (( (ptr) seg←v17212)+8) ), pd156);
};
SOURCE(10899, 16)
{
word pd157;
pd157 = (* (( (ptr) (* (( (ptr) gf←c75636)+181)/* var←c71156 */ ))+21) );
(void) ( *( (fPt) ((* (ptr) pd157 ))))(f←v8348, 32, pd157);
};
};
SOURCE(10920, 217)
if ((0 == dashOK←v17016)) {
SOURCE(10941, 35)
{
word pd158;
pd158 = (* (( (ptr) (* (( (ptr) gf←c75636)+182)/* var←c71188 */ ))+15) );
(void) ( *( (fPt) ((* (ptr) pd158 ))))(f←v8348, (* (( (ptr) seg←v17212)+4) ), pd158);
};
SOURCE(10978, 16)
{
word pd159;
pd159 = (* (( (ptr) (* (( (ptr) gf←c75636)+181)/* var←c71156 */ ))+21) );
(void) ( *( (fPt) ((* (ptr) pd159 ))))(f←v8348, 32, pd159);
};
SOURCE(10996, 141)
if ((0 != (* (( (ptr) seg←v17212)+4) ))) {
SOURCE(11017, 43)
{
word pd160;
pd160 = (* (( (ptr) (* (( (ptr) gf←c75636)+182)/* var←c71188 */ ))+14) );
(void) ( *( (fPt) ((* (ptr) pd160 ))))(f←v8348, (* (( (ptr) seg←v17212)+5) ), pd160);
};
SOURCE(11062, 16)
{
word pd161;
pd161 = (* (( (ptr) (* (( (ptr) gf←c75636)+181)/* var←c71156 */ ))+21) );
(void) ( *( (fPt) ((* (ptr) pd161 ))))(f←v8348, 32, pd161);
};
SOURCE(11080, 57)
{
W2 var←c71636;
W2 var←c71668;
W2 var←c0784;
var←c71636.f0 = 8;
var←c71636.f1 = (* (( (ptr) seg←v17212)+6) );
var←c71668.f0 = 8;
var←c71668.f1 = (* (( (ptr) seg←v17212)+7) );
(* (ptr) (word) &var←c0784 ) = 0;
(* (( (ptr) (word) &var←c0784) + 1) ) = 0;
{
word pd162;
pd162 = (* (( (ptr) (* (( (ptr) gf←c75636)+181)/* var←c71156 */ ))+60) );
(void) ( *( (fPt) ((* (ptr) pd162 ))))(f←v8348, (* (( (ptr) gf←c75636)+47) ), var←c71636, var←c71668, var←c0784, pd162);
};
};
};
};
SOURCE(11145, 25)
{
word pd163;
pd163 = (* (( (ptr) (* (ptr) seg←v17212 ))+12) );
(void) ( *( (fPt) ((* (ptr) pd163 ))))(seg←v17212, f←v8348, pd163);
};
SOURCE(11172, 35)
{
word pd164;
pd164 = (* (( (ptr) (* (( (ptr) gf←c75636)+182)/* var←c71188 */ ))+13) );
(void) ( *( (fPt) ((* (ptr) pd164 ))))(f←v8348, (* (( (ptr) seg←v17212)+25) ), pd164);
};
SOURCE(11209, 15)
{
word pd165;
pd165 = (* (( (ptr) (* (( (ptr) gf←c75636)+181)/* var←c71156 */ ))+93) );
(void) ( *( (fPt) ((* (ptr) pd165 ))))(f←v8348, (* (( (ptr) gf←c75636)+46) ), 0, 2147483647, pd165);
};
SOURCE(11226, 42)
{
word pd166;
pd166 = (* (( (ptr) (* (( (ptr) gf←c75636)+177)/* var←c70676 */ ))+32) );
(void) ( *( (fPt) ((* (ptr) pd166 ))))((word) &point←v17128, slice←v8320, index←v17312, pd166);
};
SOURCE(11270, 31)
{
word pd167;
pd167 = (* (( (ptr) (* (( (ptr) gf←c75636)+182)/* var←c71188 */ ))+9) );
(void) ( *( (fPt) ((* (ptr) pd167 ))))(f←v8348, point←v17128, pd167);
};
if ((index←v17312 >= noName←c71444)) {
goto lab←L100019;
};
index←v17312 = (index←v17312 + 1);
goto lab←L100022;
lab←L100019: ;
};
SOURCE(11312, 736)
if (((* (ptr) trajData←v16792 ) == 0) || ((* (ptr) trajData←v16792 ) == 1)) {
SOURCE(11370, 41)
{
word pd168;
pd168 = (* (( (ptr) (* (( (ptr) gf←c75636)+177)/* var←c70676 */ ))+29) );
seg←v17212 = (word) ( *( (fPt) ((* (ptr) pd168 ))))(slice←v8320, hiJoint←v17268, pd168);
};
SOURCE(11413, 41)
{
word pd169;
pd169 = (* (( (ptr) (* (( (ptr) gf←c75636)+183)/* var←c71476 */ ))+9) );
className←v17184 = (word) ( *( (fPt) ((* (ptr) pd169 ))))((* (ptr) ((* (ptr) seg←v17212 )) ), pd169);
};
SOURCE(11456, 120)
if ((0 != strokeOK←v16932)) {
SOURCE(11473, 41)
{
W2 var←c71732;
var←c71732.f0 = 11;
var←c71732.f1 = className←v17184;
{
word pd170;
pd170 = (* (( (ptr) (* (( (ptr) gf←c75636)+181)/* var←c71156 */ ))+61) );
(void) ( *( (fPt) ((* (ptr) pd170 ))))(f←v8348, (* (( (ptr) gf←c75636)+49) ), var←c71732, pd170);
};
};
}
else {
SOURCE(11514, 62)
{
W2 var←c71764;
W2 var←c71796;
W2 var←c0785;
var←c71764.f0 = 11;
var←c71764.f1 = className←v17184;
var←c71796.f0 = 8;
var←c71796.f1 = (* (( (ptr) seg←v17212)+2) );
(* (ptr) (word) &var←c0785 ) = 0;
(* (( (ptr) (word) &var←c0785) + 1) ) = 0;
{
word pd171;
pd171 = (* (( (ptr) (* (( (ptr) gf←c75636)+181)/* var←c71156 */ ))+60) );
(void) ( *( (fPt) ((* (ptr) pd171 ))))(f←v8348, (* (( (ptr) gf←c75636)+48) ), var←c71764, var←c71796, var←c0785, pd171);
};
};
};
SOURCE(11578, 82)
if ((0 == endsOK←v16960)) {
SOURCE(11599, 43)
{
word pd172;
pd172 = (* (( (ptr) (* (( (ptr) gf←c75636)+182)/* var←c71188 */ ))+4) );
(void) ( *( (fPt) ((* (ptr) pd172 ))))(f←v8348, (* (( (ptr) seg←v17212)+3) ), pd172);
};
SOURCE(11644, 16)
{
word pd173;
pd173 = (* (( (ptr) (* (( (ptr) gf←c75636)+181)/* var←c71156 */ ))+21) );
(void) ( *( (fPt) ((* (ptr) pd173 ))))(f←v8348, 32, pd173);
};
};
SOURCE(11665, 75)
if ((0 == colorOK←v16988)) {
SOURCE(11687, 35)
{
word pd174;
pd174 = (* (( (ptr) (* (( (ptr) gf←c75636)+182)/* var←c71188 */ ))+6) );
(void) ( *( (fPt) ((* (ptr) pd174 ))))(f←v8348, (* (( (ptr) seg←v17212)+8) ), pd174);
};
SOURCE(11724, 16)
{
word pd175;
pd175 = (* (( (ptr) (* (( (ptr) gf←c75636)+181)/* var←c71156 */ ))+21) );
(void) ( *( (fPt) ((* (ptr) pd175 ))))(f←v8348, 32, pd175);
};
};
SOURCE(11745, 217)
if ((0 == dashOK←v17016)) {
SOURCE(11766, 35)
{
word pd176;
pd176 = (* (( (ptr) (* (( (ptr) gf←c75636)+182)/* var←c71188 */ ))+15) );
(void) ( *( (fPt) ((* (ptr) pd176 ))))(f←v8348, (* (( (ptr) seg←v17212)+4) ), pd176);
};
SOURCE(11803, 16)
{
word pd177;
pd177 = (* (( (ptr) (* (( (ptr) gf←c75636)+181)/* var←c71156 */ ))+21) );
(void) ( *( (fPt) ((* (ptr) pd177 ))))(f←v8348, 32, pd177);
};
SOURCE(11821, 141)
if ((0 != (* (( (ptr) seg←v17212)+4) ))) {
SOURCE(11842, 43)
{
word pd178;
pd178 = (* (( (ptr) (* (( (ptr) gf←c75636)+182)/* var←c71188 */ ))+14) );
(void) ( *( (fPt) ((* (ptr) pd178 ))))(f←v8348, (* (( (ptr) seg←v17212)+5) ), pd178);
};
SOURCE(11887, 16)
{
word pd179;
pd179 = (* (( (ptr) (* (( (ptr) gf←c75636)+181)/* var←c71156 */ ))+21) );
(void) ( *( (fPt) ((* (ptr) pd179 ))))(f←v8348, 32, pd179);
};
SOURCE(11905, 57)
{
W2 var←c71860;
W2 var←c71892;
W2 var←c0786;
var←c71860.f0 = 8;
var←c71860.f1 = (* (( (ptr) seg←v17212)+6) );
var←c71892.f0 = 8;
var←c71892.f1 = (* (( (ptr) seg←v17212)+7) );
(* (ptr) (word) &var←c0786 ) = 0;
(* (( (ptr) (word) &var←c0786) + 1) ) = 0;
{
word pd180;
pd180 = (* (( (ptr) (* (( (ptr) gf←c75636)+181)/* var←c71156 */ ))+60) );
(void) ( *( (fPt) ((* (ptr) pd180 ))))(f←v8348, (* (( (ptr) gf←c75636)+47) ), var←c71860, var←c71892, var←c0786, pd180);
};
};
};
};
SOURCE(11970, 25)
{
word pd181;
pd181 = (* (( (ptr) (* (ptr) seg←v17212 ))+12) );
(void) ( *( (fPt) ((* (ptr) pd181 ))))(seg←v17212, f←v8348, pd181);
};
SOURCE(11997, 35)
{
word pd182;
pd182 = (* (( (ptr) (* (( (ptr) gf←c75636)+182)/* var←c71188 */ ))+13) );
(void) ( *( (fPt) ((* (ptr) pd182 ))))(f←v8348, (* (( (ptr) seg←v17212)+25) ), pd182);
};
SOURCE(12034, 14)
{
word pd183;
pd183 = (* (( (ptr) (* (( (ptr) gf←c75636)+181)/* var←c71156 */ ))+93) );
(void) ( *( (fPt) ((* (ptr) pd183 ))))(f←v8348, (* (( (ptr) gf←c75636)+45) ), 0, 2147483647, pd183);
};
};
SOURCE(12053, 19)
{
word pd184;
pd184 = (* (( (ptr) (* (( (ptr) gf←c75636)+181)/* var←c71156 */ ))+93) );
(void) ( *( (fPt) ((* (ptr) pd184 ))))(f←v8348, (* (( (ptr) gf←c75636)+39) ), 0, 2147483647, pd184);
};
SOURCE(12074, 41)
{
word pd185;
pd185 = (* (( (ptr) (* (( (ptr) gf←c75636)+182)/* var←c71188 */ ))+15) );
(void) ( *( (fPt) ((* (ptr) pd185 ))))(f←v8348, (* (( (ptr) trajData←v16792)+9) ), pd185);
};
}
static word TrajFilein←P540(f←v8408, version←v8436, router←v8464, camera←v8492)
word f←v8408;
word version←v8436;
word router←v8464;
word camera←v8492;
{
register ptr gf←c75668 = (ptr) &globalframe;
word slice←v8536;
word hasCircle←v17356 = 0;
word hiJoint←v17384;
word arrowCode←v17412;
word role←v17440;
word roleName←v17468 = 0;
word className←v17496 = 0;
W2 pFirst←v17524;
W2 p0←v17552;
W2 p1←v17580;
word trajData←v17608 = 0;
word seg←v17636 = 0;
word class←v17664 = 0;
word strokeWidth←v17692;
word offset←v17720;
word length←v17748;
word pattern←v17776 = 0;
word strokeColor←v17804 = 0;
word strokeEnd←v17832;
word strokeJoint←v17860;
word success←v17888;
word colorOK←v17916;
word widthOK←v17944;
word endsOK←v17972;
word dashOK←v18000;
word dashed←v18028;
word fwd←v18056;
/* TrajFilein: */
SOURCE(12120, 5215)
SOURCE(12120, 5215)
slice←v8536 = 0;
SOURCE(12600, 55)
{
word x186;
word x188;
if (((
x186 = version←v8436, *(float*)&x186
) < (
x188 = (* (ptr) &fc187 ), *(float*)&x188
))) {
SOURCE(12626, 29)
{
word pd189;
pd189 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+9) );
(void) ( *( (fPt) ((* (ptr) pd189 ))))(f←v8408, (* (( (ptr) gf←c75668)+37) ), pd189);
};
};
};
SOURCE(12687, 25)
{
word pd190;
pd190 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+10) );
(void) ( *( (fPt) ((* (ptr) pd190 ))))(f←v8408, 40, pd190);
};
SOURCE(12714, 32)
{
word pd191;
pd191 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+8) );
roleName←v17468 = (word) ( *( (fPt) ((* (ptr) pd191 ))))(f←v8408, pd191);
};
SOURCE(12748, 29)
role←v17440 = (word) RoleFromRope←P600(roleName←v17468);
SOURCE(12779, 25)
{
word pd192;
pd192 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+10) );
(void) ( *( (fPt) ((* (ptr) pd192 ))))(f←v8408, 41, pd192);
};
SOURCE(12806, 25)
{
word pd193;
pd193 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+10) );
(void) ( *( (fPt) ((* (ptr) pd193 ))))(f←v8408, 91, pd193);
};
SOURCE(12833, 30)
{
word pd194;
pd194 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+25) );
hiJoint←v17384 = (word) ( *( (fPt) ((* (ptr) pd194 ))))(f←v8408, pd194);
};
SOURCE(12865, 25)
{
word pd195;
pd195 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+10) );
(void) ( *( (fPt) ((* (ptr) pd195 ))))(f←v8408, 93, pd195);
};
SOURCE(12892, 117)
{
word x196;
word x198;
if (((
x196 = version←v8436, *(float*)&x196
) >= (
x198 = (* (ptr) &fc197 ), *(float*)&x198
))) {
SOURCE(12921, 32)
{
word pd199;
pd199 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+9) );
(void) ( *( (fPt) ((* (ptr) pd199 ))))(f←v8408, (* (( (ptr) gf←c75668)+36) ), pd199);
};
SOURCE(12955, 32)
{
word pd200;
pd200 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+25) );
arrowCode←v17412 = (word) ( *( (fPt) ((* (ptr) pd200 ))))(f←v8408, pd200);
};
}
else {
SOURCE(12996, 13)
arrowCode←v17412 = 0;
};
};
SOURCE(13011, 247)
{
word x201;
word x203;
if (((
x201 = version←v8436, *(float*)&x201
) >= (
x203 = (* (ptr) &fc202 ), *(float*)&x203
))) {
SOURCE(13040, 27)
{
word pd204;
pd204 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+9) );
(void) ( *( (fPt) ((* (ptr) pd204 ))))(f←v8408, (* (( (ptr) gf←c75668)+31) ), pd204);
};
SOURCE(13069, 42)
{
word pd205;
pd205 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+15) );
strokeJoint←v17860 = (word) ( *( (fPt) ((* (ptr) pd205 ))))(f←v8408, pd205);
};
SOURCE(13113, 27)
{
word pd206;
pd206 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+9) );
(void) ( *( (fPt) ((* (ptr) pd206 ))))(f←v8408, (* (( (ptr) gf←c75668)+32) ), pd206);
};
SOURCE(13142, 30)
{
word pd207;
pd207 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+24) );
endsOK←v17972 = (word) ( *( (fPt) ((* (ptr) pd207 ))))(f←v8408, pd207);
};
SOURCE(13174, 38)
{
word pd208;
pd208 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+14) );
strokeEnd←v17832 = (word) ( *( (fPt) ((* (ptr) pd208 ))))(f←v8408, pd208);
};
}
else {
SOURCE(13223, 19)
strokeJoint←v17860 = 2;
SOURCE(13244, 14)
endsOK←v17972 = 0;
};
};
SOURCE(13263, 302)
{
word x209;
word x211;
if (((
x209 = version←v8436, *(float*)&x209
) >= (
x211 = (* (ptr) &fc210 ), *(float*)&x211
))) {
SOURCE(13293, 27)
{
word pd212;
pd212 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+9) );
(void) ( *( (fPt) ((* (ptr) pd212 ))))(f←v8408, (* (( (ptr) gf←c75668)+33) ), pd212);
};
SOURCE(13322, 35)
{
word pd213;
pd213 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+27) );
strokeWidth←v17692 = (word) ( *( (fPt) ((* (ptr) pd213 ))))(f←v8408, pd213);
};
SOURCE(13359, 27)
{
word x214;
word x215;
widthOK←v17944 = (unsigned) ((
x214 = strokeWidth←v17692, *(float*)&x214
) >= (
x215 = (* (ptr) &fc95 ), *(float*)&x215
));
};
SOURCE(13388, 27)
{
word pd216;
pd216 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+9) );
(void) ( *( (fPt) ((* (ptr) pd216 ))))(f←v8408, (* (( (ptr) gf←c75668)+34) ), pd216);
};
SOURCE(13417, 31)
{
word pd217;
pd217 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+24) );
colorOK←v17916 = (word) ( *( (fPt) ((* (ptr) pd217 ))))(f←v8408, pd217);
};
SOURCE(13450, 45)
{
word pd218;
pd218 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+16) );
strokeColor←v17804 = (word) ( *( (fPt) ((* (ptr) pd218 ))))(f←v8408, version←v8436, pd218);
};
}
else {
SOURCE(13506, 25)
{
word pd219;
pd219 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+10) );
(void) ( *( (fPt) ((* (ptr) pd219 ))))(f←v8408, 58, pd219);
};
SOURCE(13533, 15)
widthOK←v17944 = 0;
SOURCE(13550, 15)
colorOK←v17916 = 0;
};
};
SOURCE(13570, 304)
{
word x220;
word x222;
if (((
x220 = version←v8436, *(float*)&x220
) >= (
x222 = (* (ptr) &fc221 ), *(float*)&x222
))) {
SOURCE(13599, 27)
{
word pd223;
pd223 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+9) );
(void) ( *( (fPt) ((* (ptr) pd223 ))))(f←v8408, (* (( (ptr) gf←c75668)+35) ), pd223);
};
SOURCE(13628, 30)
{
word pd224;
pd224 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+24) );
dashOK←v18000 = (word) ( *( (fPt) ((* (ptr) pd224 ))))(f←v8408, pd224);
};
SOURCE(13660, 168)
if ((0 != dashOK←v18000)) {
SOURCE(13677, 30)
{
word pd225;
pd225 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+24) );
dashed←v18028 = (word) ( *( (fPt) ((* (ptr) pd225 ))))(f←v8408, pd225);
};
SOURCE(13709, 119)
if ((0 != dashed←v18028)) {
SOURCE(13726, 38)
{
word pd226;
pd226 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+23) );
pattern←v17776 = (word) ( *( (fPt) ((* (ptr) pd226 ))))(f←v8408, pd226);
};
SOURCE(13766, 30)
{
word pd227;
pd227 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+27) );
offset←v17720 = (word) ( *( (fPt) ((* (ptr) pd227 ))))(f←v8408, pd227);
};
SOURCE(13798, 30)
{
word pd228;
pd228 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+27) );
length←v17748 = (word) ( *( (fPt) ((* (ptr) pd228 ))))(f←v8408, pd228);
};
};
};
}
else {
SOURCE(13845, 13)
dashOK←v18000 = 1;
SOURCE(13860, 14)
dashed←v18028 = 0;
};
};
SOURCE(13880, 36)
{
W2 var←c71988;
{
word pd229;
pd229 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+19) );
(void) ( *( (fPt) ((* (ptr) pd229 ))))((word) &var←c71988, f←v8408, pd229);
};
p0←v17552 = var←c71988;
pFirst←v17524 = var←c71988;
};
SOURCE(13918, 29)
{
word pd230;
pd230 = (* (( (ptr) (* (( (ptr) gf←c75668)+177)/* var←c70676 */ ))+4) );
slice←v8536 = (word) ( *( (fPt) ((* (ptr) pd230 ))))(p0←v17552, pd230);
};
SOURCE(13949, 29)
trajData←v17608 = XR←Narrow((* (( (ptr) slice←v8536)+1) ), (* (( (ptr) gf←c75668)+11) ));
SOURCE(13980, 34)
(* (( (ptr) trajData←v17608)+6) ) = strokeJoint←v17860;
SOURCE(14016, 1662)
{
register word index←v18100 = 1;
register word noName←c72020;
noName←c72020 = hiJoint←v17384;
if ((index←v18100 > noName←c72020)) {
goto lab←L100023;
};
lab←L100026: ;
SOURCE(14050, 25)
{
word pd231;
pd231 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+10) );
(void) ( *( (fPt) ((* (ptr) pd231 ))))(f←v8408, 40, pd231);
};
SOURCE(14077, 33)
{
word pd232;
pd232 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+8) );
className←v17496 = (word) ( *( (fPt) ((* (ptr) pd232 ))))(f←v8408, pd232);
};
SOURCE(14112, 55)
if ((0 == widthOK←v17944)) {
SOURCE(14132, 35)
{
word pd233;
pd233 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+27) );
strokeWidth←v17692 = (word) ( *( (fPt) ((* (ptr) pd233 ))))(f←v8408, pd233);
};
};
SOURCE(14169, 112)
{
word x234;
word x235;
if (((
x234 = version←v8436, *(float*)&x234
) >= (
x235 = (* (ptr) &fc202 ), *(float*)&x235
))) {
SOURCE(14198, 57)
if ((0 == endsOK←v17972)) {
SOURCE(14217, 38)
{
word pd236;
pd236 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+14) );
strokeEnd←v17832 = (word) ( *( (fPt) ((* (ptr) pd236 ))))(f←v8408, pd236);
};
};
}
else {
SOURCE(14264, 17)
strokeEnd←v17832 = 2;
};
};
SOURCE(14283, 129)
{
word x237;
word x239;
if (((
x237 = version←v8436, *(float*)&x237
) >= (
x239 = (* (ptr) &fc238 ), *(float*)&x239
))) {
SOURCE(14312, 65)
if ((0 == colorOK←v17916)) {
SOURCE(14332, 45)
{
word pd240;
pd240 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+16) );
strokeColor←v17804 = (word) ( *( (fPt) ((* (ptr) pd240 ))))(f←v8408, version←v8436, pd240);
};
};
}
else {
SOURCE(14386, 26)
strokeColor←v17804 = (* (ptr) (* (( (ptr) (* (( (ptr) gf←c75668)+185)/* var←c72052 */ ))+54) ) );
};
};
SOURCE(14414, 172)
if ((0 == dashOK←v18000)) {
SOURCE(14435, 30)
{
word pd241;
pd241 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+24) );
dashed←v18028 = (word) ( *( (fPt) ((* (ptr) pd241 ))))(f←v8408, pd241);
};
SOURCE(14467, 119)
if ((0 != dashed←v18028)) {
SOURCE(14484, 38)
{
word pd242;
pd242 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+23) );
pattern←v17776 = (word) ( *( (fPt) ((* (ptr) pd242 ))))(f←v8408, pd242);
};
SOURCE(14524, 30)
{
word pd243;
pd243 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+27) );
offset←v17720 = (word) ( *( (fPt) ((* (ptr) pd243 ))))(f←v8408, pd243);
};
SOURCE(14556, 30)
{
word pd244;
pd244 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+27) );
length←v17748 = (word) ( *( (fPt) ((* (ptr) pd244 ))))(f←v8408, pd244);
};
};
};
SOURCE(14594, 61)
{
word var←c72084;
{
word pd245;
pd245 = (* (( (ptr) (* (( (ptr) gf←c75668)+183)/* var←c71476 */ ))+5) );
var←c72084 = (word) ( *( (fPt) ((* (ptr) pd245 ))))(className←v17496, 0, 2147483647, pd245);
};
{
word pd246;
pd246 = (* (( (ptr) (* (( (ptr) gf←c75668)+186)/* var←c72116 */ ))+24) );
class←v17664 = (word) ( *( (fPt) ((* (ptr) pd246 ))))(var←c72084, pd246);
};
};
SOURCE(14657, 46)
{
W2 var←c72148;
var←c72148.f0 = (* (ptr) &fc95 );
var←c72148.f1 = (* (ptr) &fc95 );
{
word pd247;
pd247 = (* (( (ptr) class←v17664)+13) );
seg←v17636 = (word) ( *( (fPt) ((* (ptr) pd247 ))))(f←v8408, p0←v17552, var←c72148, version←v8436, pd247);
};
};
SOURCE(14705, 256)
{
word x248;
word x250;
if (((
x248 = version←v8436, *(float*)&x248
) >= (
x250 = (* (ptr) &fc249 ), *(float*)&x250
))) {
SOURCE(14732, 240)
{
word lor←v18144 = 0;
SOURCE(14758, 33)
{
word pd251;
pd251 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+13) );
lor←v18144 = (word) ( *( (fPt) ((* (ptr) pd251 ))))(f←v8408, pd251);
};
SOURCE(14859, 102)
{
register word next←v18272;
next←v18272 = lor←v18144;
lab←L100030: ;
if ((next←v18272 != 0)) {
}
else {
goto lab←L100027;
};
SOURCE(14922, 39)
{
word var←c72180;
var←c72180 = XR←NewObject(8, (* (( (ptr) gf←c75668)+30) ));
(* (ptr) var←c72180 ) = (* (ptr) next←v18272 );
(* (( (ptr) var←c72180)+1) ) = (* (( (ptr) seg←v17636)+25) );
(* (( (ptr) seg←v17636)+25) ) = var←c72180;
};
next←v18272 = (* (( (ptr) next←v18272)+1) );
goto lab←L100030;
lab←L100027: ;
};
};
};
};
SOURCE(14975, 25)
{
word pd252;
pd252 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+10) );
(void) ( *( (fPt) ((* (ptr) pd252 ))))(f←v8408, 41, pd252);
};
SOURCE(15002, 27)
{
word pd253;
pd253 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+19) );
(void) ( *( (fPt) ((* (ptr) pd253 ))))((word) &p1←v17580, f←v8408, pd253);
};
SOURCE(15031, 11)
(* (W2Pt) (( (ptr) seg←v17636)+11) ) = p1←v17580;
SOURCE(15044, 39)
{
word pd254;
pd254 = (* (( (ptr) (* (ptr) seg←v17636 ))+9) );
(void) ( *( (fPt) ((* (ptr) pd254 ))))(seg←v17636, 0, p1←v17580, pd254);
};
SOURCE(15085, 29)
(* (( (ptr) seg←v17636)+2) ) = strokeWidth←v17692;
SOURCE(15116, 25)
(* (( (ptr) seg←v17636)+3) ) = strokeEnd←v17832;
SOURCE(15143, 23)
(* (( (ptr) seg←v17636)+8) ) = strokeColor←v17804;
SOURCE(15168, 19)
(* (( (ptr) seg←v17636)+4) ) = dashed←v18028;
SOURCE(15189, 21)
(* (( (ptr) seg←v17636)+5) ) = pattern←v17776;
SOURCE(15212, 19)
(* (( (ptr) seg←v17636)+6) ) = offset←v17720;
SOURCE(15233, 19)
(* (( (ptr) seg←v17636)+7) ) = length←v17748;
SOURCE(15254, 388)
if (((* (ptr) class←v17664 ) == (* (( (ptr) gf←c75668)+38) )) || ((* (ptr) class←v17664 ) == (* (( (ptr) gf←c75668)+40)
))) {
SOURCE(15301, 287)
{
W2 p←v18400;
W2 newJoint←v18428;
W2 newCp←v18456;
SOURCE(15303, 40)
{
word pd255;
pd255 = (* (( (ptr) (* (( (ptr) gf←c75668)+187)/* var←c72212 */ ))+11) );
(void) ( *( (fPt) ((* (ptr) pd255 ))))((word) &p←v18400, (* (W2Pt) (( (ptr) seg←v17636)+11) ), (* (W2Pt) (( (ptr) seg←v17636)+9)
), pd255);
};
SOURCE(15345, 46)
{
word x256;
word x257;
*(float*)&newJoint←v18428.f0 = (
x256 = (* (( (ptr) seg←v17636)+9) ), *(float*)&x256
) - (
x257 = p←v18400.f0, *(float*)&x257
);
};
{
word x258;
word x259;
*(float*)&newJoint←v18428.f1 = (
x258 = (* (( (ptr) seg←v17636)+10) ), *(float*)&x258
) - (
x259 = p←v18400.f1, *(float*)&x259
);
};
SOURCE(15393, 43)
{
word x260;
word x261;
*(float*)&newCp←v18456.f0 = (
x260 = (* (( (ptr) seg←v17636)+9) ), *(float*)&x260
) + (
x261 = p←v18400.f0, *(float*)&x261
);
};
{
word x262;
word x263;
*(float*)&newCp←v18456.f1 = (
x262 = (* (( (ptr) seg←v17636)+10) ), *(float*)&x262
) + (
x263 = p←v18400.f1, *(float*)&x263
);
};
SOURCE(15438, 93)
{
word var←c72308;
{
word pd264;
pd264 = (* (( (ptr) (* (( (ptr) gf←c75668)+186)/* var←c72116 */ ))+8) );
var←c72308 = (word) ( *( (fPt) ((* (ptr) pd264 ))))(newJoint←v18428, newCp←v18456, newJoint←v18428, 0, pd264);
};
{
word pd265;
pd265 = (* (( (ptr) (* (( (ptr) gf←c75668)+177)/* var←c70676 */ ))+6) );
success←v17888 = (word) ( *( (fPt) ((* (ptr) pd265 ))))(slice←v8536, 1, var←c72308, 0, pd265);
};
};
SOURCE(15533, 35)
{
word pd266;
pd266 = (* (( (ptr) (* (( (ptr) gf←c75668)+177)/* var←c70676 */ ))+8) );
(void) ( *( (fPt) ((* (ptr) pd266 ))))(slice←v8536, 0, pd266);
};
SOURCE(15570, 16)
hasCircle←v17356 = 1;
};
}
else {
SOURCE(15595, 47)
{
word pd267;
pd267 = (* (( (ptr) (* (( (ptr) gf←c75668)+177)/* var←c70676 */ ))+6) );
success←v17888 = (word) ( *( (fPt) ((* (ptr) pd267 ))))(slice←v8536, 1, seg←v17636, 0, pd267);
};
};
SOURCE(15644, 20)
if ((0 == success←v17888)) {
SOURCE(15664, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(15671, 7)
p0←v17552 = p1←v17580;
if ((index←v18100 >= noName←c72020)) {
goto lab←L100023;
};
index←v18100 = (index←v18100 + 1);
goto lab←L100026;
lab←L100023: ;
};
SOURCE(15689, 1398)
if ((role←v17440 == 0) || (role←v17440 == 1)) {
SOURCE(15729, 25)
{
word pd268;
pd268 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+10) );
(void) ( *( (fPt) ((* (ptr) pd268 ))))(f←v8408, 40, pd268);
};
SOURCE(15756, 33)
{
word pd269;
pd269 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+8) );
className←v17496 = (word) ( *( (fPt) ((* (ptr) pd269 ))))(f←v8408, pd269);
};
SOURCE(15791, 55)
if ((0 == widthOK←v17944)) {
SOURCE(15811, 35)
{
word pd270;
pd270 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+27) );
strokeWidth←v17692 = (word) ( *( (fPt) ((* (ptr) pd270 ))))(f←v8408, pd270);
};
};
SOURCE(15848, 112)
{
word x271;
word x272;
if (((
x271 = version←v8436, *(float*)&x271
) >= (
x272 = (* (ptr) &fc202 ), *(float*)&x272
))) {
SOURCE(15877, 57)
if ((0 == endsOK←v17972)) {
SOURCE(15896, 38)
{
word pd273;
pd273 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+14) );
strokeEnd←v17832 = (word) ( *( (fPt) ((* (ptr) pd273 ))))(f←v8408, pd273);
};
};
}
else {
SOURCE(15943, 17)
strokeEnd←v17832 = 2;
};
};
SOURCE(15962, 129)
{
word x274;
word x275;
if (((
x274 = version←v8436, *(float*)&x274
) >= (
x275 = (* (ptr) &fc238 ), *(float*)&x275
))) {
SOURCE(15991, 65)
if ((0 == colorOK←v17916)) {
SOURCE(16011, 45)
{
word pd276;
pd276 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+16) );
strokeColor←v17804 = (word) ( *( (fPt) ((* (ptr) pd276 ))))(f←v8408, version←v8436, pd276);
};
};
}
else {
SOURCE(16065, 26)
strokeColor←v17804 = (* (ptr) (* (( (ptr) (* (( (ptr) gf←c75668)+185)/* var←c72052 */ ))+54) ) );
};
};
SOURCE(16093, 172)
if ((0 == dashOK←v18000)) {
SOURCE(16114, 30)
{
word pd277;
pd277 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+24) );
dashed←v18028 = (word) ( *( (fPt) ((* (ptr) pd277 ))))(f←v8408, pd277);
};
SOURCE(16146, 119)
if ((0 != dashed←v18028)) {
SOURCE(16163, 38)
{
word pd278;
pd278 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+23) );
pattern←v17776 = (word) ( *( (fPt) ((* (ptr) pd278 ))))(f←v8408, pd278);
};
SOURCE(16203, 30)
{
word pd279;
pd279 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+27) );
offset←v17720 = (word) ( *( (fPt) ((* (ptr) pd279 ))))(f←v8408, pd279);
};
SOURCE(16235, 30)
{
word pd280;
pd280 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+27) );
length←v17748 = (word) ( *( (fPt) ((* (ptr) pd280 ))))(f←v8408, pd280);
};
};
};
SOURCE(16273, 61)
{
word var←c72340;
{
word pd281;
pd281 = (* (( (ptr) (* (( (ptr) gf←c75668)+183)/* var←c71476 */ ))+5) );
var←c72340 = (word) ( *( (fPt) ((* (ptr) pd281 ))))(className←v17496, 0, 2147483647, pd281);
};
{
word pd282;
pd282 = (* (( (ptr) (* (( (ptr) gf←c75668)+186)/* var←c72116 */ ))+24) );
class←v17664 = (word) ( *( (fPt) ((* (ptr) pd282 ))))(var←c72340, pd282);
};
};
SOURCE(16336, 42)
{
word pd283;
pd283 = (* (( (ptr) class←v17664)+13) );
seg←v17636 = (word) ( *( (fPt) ((* (ptr) pd283 ))))(f←v8408, p0←v17552, pFirst←v17524, version←v8436, pd283);
};
SOURCE(16380, 256)
{
word x284;
word x285;
if (((
x284 = version←v8436, *(float*)&x284
) >= (
x285 = (* (ptr) &fc249 ), *(float*)&x285
))) {
SOURCE(16407, 240)
{
word lor←v18500 = 0;
SOURCE(16433, 33)
{
word pd286;
pd286 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+13) );
lor←v18500 = (word) ( *( (fPt) ((* (ptr) pd286 ))))(f←v8408, pd286);
};
SOURCE(16534, 102)
{
register word next←v18628;
next←v18628 = lor←v18500;
lab←L100034: ;
if ((next←v18628 != 0)) {
}
else {
goto lab←L100031;
};
SOURCE(16597, 39)
{
word var←c72372;
var←c72372 = XR←NewObject(8, (* (( (ptr) gf←c75668)+30) ));
(* (ptr) var←c72372 ) = (* (ptr) next←v18628 );
(* (( (ptr) var←c72372)+1) ) = (* (( (ptr) seg←v17636)+25) );
(* (( (ptr) seg←v17636)+25) ) = var←c72372;
};
next←v18628 = (* (( (ptr) next←v18628)+1) );
goto lab←L100034;
lab←L100031: ;
};
};
};
};
SOURCE(16650, 25)
{
word pd287;
pd287 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+10) );
(void) ( *( (fPt) ((* (ptr) pd287 ))))(f←v8408, 41, pd287);
};
SOURCE(16677, 29)
(* (( (ptr) seg←v17636)+2) ) = strokeWidth←v17692;
SOURCE(16708, 23)
(* (( (ptr) seg←v17636)+8) ) = strokeColor←v17804;
SOURCE(16733, 25)
(* (( (ptr) seg←v17636)+3) ) = strokeEnd←v17832;
SOURCE(16760, 19)
(* (( (ptr) seg←v17636)+4) ) = dashed←v18028;
SOURCE(16781, 21)
(* (( (ptr) seg←v17636)+5) ) = pattern←v17776;
SOURCE(16804, 19)
(* (( (ptr) seg←v17636)+6) ) = offset←v17720;
SOURCE(16825, 19)
(* (( (ptr) seg←v17636)+7) ) = length←v17748;
SOURCE(16846, 241)
if (((* (( (ptr) trajData←v17608)+1) ) == 0)) {
SOURCE(16928, 47)
{
word pd288;
pd288 = (* (( (ptr) (* (( (ptr) gf←c75668)+177)/* var←c70676 */ ))+6) );
success←v17888 = (word) ( *( (fPt) ((* (ptr) pd288 ))))(slice←v8536, 1, seg←v17636, 0, pd288);
};
SOURCE(16977, 20)
if ((0 == success←v17888)) {
SOURCE(16997, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(17004, 35)
{
word pd289;
pd289 = (* (( (ptr) (* (( (ptr) gf←c75668)+177)/* var←c70676 */ ))+8) );
(void) ( *( (fPt) ((* (ptr) pd289 ))))(slice←v8536, 0, pd289);
};
}
else {
SOURCE(17048, 39)
{
word pd290;
pd290 = (* (( (ptr) (* (( (ptr) gf←c75668)+177)/* var←c70676 */ ))+7) );
(void) ( *( (fPt) ((* (ptr) pd290 ))))(slice←v8536, seg←v17636, 0, pd290);
};
};
};
SOURCE(17092, 167)
{
word x291;
word x292;
if (((
x291 = version←v8436, *(float*)&x291
) >= (
x292 = (* (ptr) &fc187 ), *(float*)&x292
))) {
SOURCE(17182, 29)
{
word pd293;
pd293 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+9) );
(void) ( *( (fPt) ((* (ptr) pd293 ))))(f←v8408, (* (( (ptr) gf←c75668)+41) ), pd293);
};
SOURCE(17213, 27)
{
word pd294;
pd294 = (* (( (ptr) (* (( (ptr) gf←c75668)+184)/* var←c71956 */ ))+24) );
fwd←v18056 = (word) ( *( (fPt) ((* (ptr) pd294 ))))(f←v8408, pd294);
};
}
else {
SOURCE(17249, 10)
fwd←v18056 = 1;
};
};
SOURCE(17261, 22)
(* (( (ptr) trajData←v17608)+9) ) = fwd←v18056;
SOURCE(17285, 50)
if ((0 != hasCircle←v17356)) {
(* (ptr) trajData←v17608 ) = 3;
}
else {
(* (ptr) trajData←v17608 ) = role←v17440;
};
SOURCE(12120, 5215)
return(slice←v8536);
}
static word RoleFromRope←P600(roleName←v8596)
word roleName←v8596;
{
register ptr gf←c75700 = (ptr) &globalframe;
word role←v8640;
/* RoleFromRope: */
SOURCE(17372, 227)
{
word pd295;
pd295 = (* (( (ptr) (* (( (ptr) gf←c75700)+188)/* var←c72404 */ ))+8) );
if ((0 != (word) ( *( (fPt) ((* (ptr) pd295 ))))(roleName←v8596, (* (( (ptr) gf←c75700)+42) ), 1, pd295))) {
SOURCE(17497, 12)
role←v8640 = 0;
}
else {
{
word pd296;
pd296 = (* (( (ptr) (* (( (ptr) gf←c75700)+188)/* var←c72404 */ ))+8) );
if ((0 != (word) ( *( (fPt) ((* (ptr) pd296 ))))(roleName←v8596, (* (( (ptr) gf←c75700)+43) ), 1, pd296))) {
SOURCE(17543, 11)
role←v8640 = 1;
}
else {
{
word pd297;
pd297 = (* (( (ptr) (* (( (ptr) gf←c75700)+188)/* var←c72404 */ ))+8) );
if ((0 != (word) ( *( (fPt) ((* (ptr) pd297 ))))(roleName←v8596, (* (( (ptr) gf←c75700)+44) ), 1, pd297))) {
SOURCE(17588, 11)
role←v8640 = 2;
}
else {
SOURCE(17612, 5)
(void) XR←RaiseUnnamedError();
};
};
};
};
};
};
SOURCE(17372, 227)
return(role←v8640);
}
static word RoleToRope←P660(role←v8700)
word role←v8700;
{
register ptr gf←c75732 = (ptr) &globalframe;
word roleName←v8744;
/* RoleToRope: */
SOURCE(17623, 171)
SOURCE(17623, 171)
roleName←v8744 = 0;
SOURCE(17696, 98)
{
word var←c72436;
var←c72436 = role←v8700;
switch (var←c72436) {
case 0:
SOURCE(17722, 18)
roleName←v8744 = (* (( (ptr) gf←c75732)+42) );
break;
case 1:
SOURCE(17750, 17)
roleName←v8744 = (* (( (ptr) gf←c75732)+43) );
break;
case 2:
SOURCE(17777, 17)
roleName←v8744 = (* (( (ptr) gf←c75732)+44) );
break;
default:
SOURCE(17807, 5)
(void) XR←RaiseUnnamedError();
break;
};
};
SOURCE(17623, 171)
return(roleName←v8744);
}
static word TrajPointsInDescriptor←P720(sliceD←v8972)
word sliceD←v8972;
{
register ptr gf←c75764 = (ptr) &globalframe;
word pointGen←v9016;
word trajData←v18756;
word trajParts←v18784;
word pgd←v18812 = 0;
word jointGen←v18840 = 0;
word cpGen←v18868 = 0;
/* TrajPointsInDescriptor: */
SOURCE(18158, 508)
SOURCE(18158, 508)
pointGen←v9016 = 0;
SOURCE(18252, 46)
trajData←v18756 = XR←Narrow((* (( (ptr) (* (ptr) sliceD←v8972 ))+1) ), (* (( (ptr) gf←c75764)+11) ));
SOURCE(18300, 43)
trajParts←v18784 = XR←Narrow((* (( (ptr) sliceD←v8972)+1) ), (* (( (ptr) gf←c75764)+12) ));
SOURCE(18430, 49)
{
word pd298;
pd298 = (* (( (ptr) (* (( (ptr) gf←c75764)+180)/* var←c70900 */ ))+53) );
jointGen←v18840 = (word) ( *( (fPt) ((* (ptr) pd298 ))))(trajParts←v18784, pd298);
};
SOURCE(18481, 63)
{
word pd299;
pd299 = (* (( (ptr) (* (( (ptr) gf←c75764)+180)/* var←c70900 */ ))+48) );
cpGen←v18868 = (word) ( *( (fPt) ((* (ptr) pd299 ))))(trajData←v18756, trajParts←v18784, pd299);
};
SOURCE(18546, 63)
{
word var←c72468;
var←c72468 = XR←NewObject(12, (* (( (ptr) gf←c75764)+27) ));
(* (( (ptr) var←c72468)+1) ) = jointGen←v18840;
(* (( (ptr) var←c72468)+2) ) = cpGen←v18868;
pgd←v18812 = var←c72468;
};
SOURCE(18611, 55)
{
word var←c72500;
var←c72500 = XR←NewObject(16, (* (( (ptr) gf←c75764)+26) ));
(* (ptr) var←c72500 ) = sliceD←v8972;
(* (( (ptr) var←c72500)+3) ) = pgd←v18812;
pointGen←v9016 = var←c72500;
};
SOURCE(18158, 508)
return(pointGen←v9016);
}
static void TrajWalkPointsInDescriptor←P780(sliceD←v9076, walkProc←v9104)
word sliceD←v9076;
word walkProc←v9104;
{
register ptr gf←c75796 = (ptr) &globalframe;
word trajParts←v18912;
word trajData←v18940;
/* TrajWalkPointsInDescriptor: */
SOURCE(18672, 314)
SOURCE(18760, 43)
trajParts←v18912 = XR←Narrow((* (( (ptr) sliceD←v9076)+1) ), (* (( (ptr) gf←c75796)+12) ));
SOURCE(18805, 46)
trajData←v18940 = XR←Narrow((* (( (ptr) (* (ptr) sliceD←v9076 ))+1) ), (* (( (ptr) gf←c75796)+11) ));
SOURCE(18853, 62)
{
word pd300;
pd300 = (* (( (ptr) (* (( (ptr) gf←c75796)+180)/* var←c70900 */ ))+54) );
(void) ( *( (fPt) ((* (ptr) pd300 ))))(trajData←v18940, trajParts←v18912, walkProc←v9104, pd300);
};
SOURCE(18917, 69)
{
word pd301;
pd301 = (* (( (ptr) (* (( (ptr) gf←c75796)+180)/* var←c70900 */ ))+49) );
(void) ( *( (fPt) ((* (ptr) pd301 ))))(trajData←v18940, trajParts←v18912, walkProc←v9104, pd301);
};
}
static word TrajPointPairsInDescriptor←P840(sliceD←v9164)
word sliceD←v9164;
{
register ptr gf←c75828 = (ptr) &globalframe;
word pointPairGen←v9208;
word trajData←v18984;
word trajParts←v19012;
word pgd←v19040 = 0;
word segGen←v19068 = 0;
/* TrajPointPairsInDescriptor: */
SOURCE(18992, 435)
SOURCE(18992, 435)
pointPairGen←v9208 = 0;
SOURCE(19098, 46)
trajData←v18984 = XR←Narrow((* (( (ptr) (* (ptr) sliceD←v9164 ))+1) ), (* (( (ptr) gf←c75828)+11) ));
SOURCE(19146, 43)
trajParts←v19012 = XR←Narrow((* (( (ptr) sliceD←v9164)+1) ), (* (( (ptr) gf←c75828)+12) ));
SOURCE(19250, 59)
{
word pd302;
pd302 = (* (( (ptr) (* (( (ptr) gf←c75828)+180)/* var←c70900 */ ))+42) );
segGen←v19068 = (word) ( *( (fPt) ((* (ptr) pd302 ))))(trajData←v18984, trajParts←v19012, pd302);
};
SOURCE(19311, 51)
{
word var←c72532;
var←c72532 = XR←NewObject(4, (* (( (ptr) gf←c75828)+25) ));
(* (ptr) var←c72532 ) = segGen←v19068;
pgd←v19040 = var←c72532;
};
SOURCE(19364, 63)
{
word var←c72564;
var←c72564 = XR←NewObject(16, (* (( (ptr) gf←c75828)+24) ));
(* (ptr) var←c72564 ) = sliceD←v9164;
(* (( (ptr) var←c72564)+3) ) = pgd←v19040;
pointPairGen←v9208 = var←c72564;
};
SOURCE(18992, 435)
return(pointPairGen←v9208);
}
static word TrajSegmentsInDescriptor←P900(sliceD←v9268)
word sliceD←v9268;
{
register ptr gf←c75860 = (ptr) &globalframe;
word segGen←v9312;
word trajData←v19112;
word trajParts←v19140;
/* TrajSegmentsInDescriptor: */
SOURCE(19433, 248)
SOURCE(19433, 248)
segGen←v9312 = 0;
SOURCE(19529, 46)
trajData←v19112 = XR←Narrow((* (( (ptr) (* (ptr) sliceD←v9268 ))+1) ), (* (( (ptr) gf←c75860)+11) ));
SOURCE(19577, 43)
trajParts←v19140 = XR←Narrow((* (( (ptr) sliceD←v9268)+1) ), (* (( (ptr) gf←c75860)+12) ));
SOURCE(19622, 59)
{
word pd303;
pd303 = (* (( (ptr) (* (( (ptr) gf←c75860)+180)/* var←c70900 */ ))+42) );
segGen←v9312 = (word) ( *( (fPt) ((* (ptr) pd303 ))))(trajData←v19112, trajParts←v19140, pd303);
};
SOURCE(19433, 248)
return(segGen←v9312);
}
static word TrajWalkSegments←P960(slice←v9372, walkProc←v9400)
word slice←v9372;
word walkProc←v9400;
{
register ptr gf←c75892 = (ptr) &globalframe;
word sliceD←v9444;
word trajData←v19184;
word trajParts←v19212;
word segGen←v19240;
/* TrajWalkSegments: */
SOURCE(19687, 663)
SOURCE(19687, 663)
sliceD←v9444 = 0;
SOURCE(19783, 39)
trajData←v19184 = XR←Narrow((* (( (ptr) slice←v9372)+1) ), (* (( (ptr) gf←c75892)+11) ));
SOURCE(19824, 55)
{
word pd304;
pd304 = (* (( (ptr) (* (( (ptr) gf←c75892)+180)/* var←c70900 */ ))+6) );
trajParts←v19212 = (word) ( *( (fPt) ((* (ptr) pd304 ))))(trajData←v19184, pd304);
};
SOURCE(19881, 62)
{
word pd305;
pd305 = (* (( (ptr) (* (( (ptr) gf←c75892)+180)/* var←c70900 */ ))+40) );
segGen←v19240 = (word) ( *( (fPt) ((* (ptr) pd305 ))))(trajData←v19184, pd305);
};
SOURCE(19945, 258)
{
W2 next←v19284;
{
word pd306;
pd306 = (* (( (ptr) (* (( (ptr) gf←c75892)+180)/* var←c70900 */ ))+47) );
(void) ( *( (fPt) ((* (ptr) pd306 ))))((word) &next←v19284, segGen←v19240, pd306);
};
lab←L100038: ;
if ((next←v19284.f0 != 0)) {
}
else {
goto lab←L100035;
};
{
word keep←v19328;
SOURCE(20070, 36)
keep←v19328 = (word) ( *( (fPt) ((* (ptr) walkProc←v9400 ))))(next←v19284.f0, 0, walkProc←v9400);
SOURCE(20108, 95)
if ((0 != keep←v19328)) {
SOURCE(20123, 37)
{
word var←c72596;
var←c72596 = (* (ptr) trajParts←v19212 );
{
word idx307;
word limit308;
word xs309;
xs309 = (word) (
idx307 = (word) next←v19284.f1,
limit308 = (* (ptr) var←c72596 ),
BCK(idx307, limit308)
);
(* (bPt) ((( (bPt) var←c72596)+4) + ((word) xs309 >> 3)) ) |= ((unsigned) 1 << 8 - ((word) (xs309 & 7)+1));
};
};
SOURCE(20162, 41)
(* (( (ptr) trajParts←v19212)+3) ) = ((* (( (ptr) trajParts←v19212)+3) ) + 1);
};
};
{
word pd310;
pd310 = (* (( (ptr) (* (( (ptr) gf←c75892)+180)/* var←c70900 */ ))+47) );
(void) ( *( (fPt) ((* (ptr) pd310 ))))((word) &next←v19284, segGen←v19240, pd310);
};
goto lab←L100038;
lab←L100035: ;
};
SOURCE(20217, 34)
{
word pd311;
pd311 = (* (( (ptr) (* (( (ptr) gf←c75892)+180)/* var←c70900 */ ))+14) );
(void) ( *( (fPt) ((* (ptr) pd311 ))))(trajParts←v19212, pd311);
};
SOURCE(20253, 41)
{
word pd312;
pd312 = (* (( (ptr) (* (( (ptr) gf←c75892)+180)/* var←c70900 */ ))+15) );
(void) ( *( (fPt) ((* (ptr) pd312 ))))(trajParts←v19212, pd312);
};
SOURCE(20296, 54)
{
word pd313;
pd313 = (* (( (ptr) (* (( (ptr) gf←c75892)+176)/* var←c70644 */ ))+8) );
sliceD←v9444 = (word) ( *( (fPt) ((* (ptr) pd313 ))))(slice←v9372, trajParts←v19212, pd313);
};
SOURCE(19687, 663)
return(sliceD←v9444);
}
static void TrajNextPoint←P1020(formal←c0286, slice←v9504, pointGen←v9532)
word formal←c0286;
word slice←v9504;
word pointGen←v9532;
{
register ptr gf←c75924 = (ptr) &globalframe;
W3 pointAndDone←v9576;
word pgd←v19372;
/* TrajNextPoint: */
SOURCE(20356, 501)
SOURCE(20458, 60)
pgd←v19372 = XR←Narrow((* (( (ptr) pointGen←v9532)+3) ), (* (( (ptr) gf←c75924)+27) ));
SOURCE(20520, 276)
if ((0 == (* (ptr) pgd←v19372 ))) {
SOURCE(20547, 254)
{
word nextJoint←v19416;
SOURCE(20549, 51)
{
word pd314;
pd314 = (* (( (ptr) (* (( (ptr) gf←c75924)+180)/* var←c70900 */ ))+61) );
nextJoint←v19416 = (word) ( *( (fPt) ((* (ptr) pd314 ))))((* ((( (ptr) pgd←v19372)+1)) ), pd314);
};
SOURCE(20602, 194)
if (( (int)nextJoint←v19416 == (int) (word) -1)) {
SOURCE(20627, 21)
(* (ptr) pgd←v19372 ) = 1;
}
else {
SOURCE(20659, 36)
if (((* (ptr) (* (ptr) pointGen←v9532 ) ) != slice←v9504)) {
SOURCE(20695, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(20702, 59)
{
word pd315;
pd315 = (* (( (ptr) (* (( (ptr) gf←c75924)+177)/* var←c70676 */ ))+32) );
(void) ( *( (fPt) ((* (ptr) pd315 ))))((word) &pointAndDone←v9576, slice←v9504, SGNCK(nextJoint←v19416), pd315);
};
SOURCE(20763, 25)
pointAndDone←v9576.f2 = 0;
SOURCE(20790, 6)
goto lab←L100039;
};
};
};
SOURCE(20804, 53)
{
word pd316;
pd316 = (* (( (ptr) (* (( (ptr) gf←c75924)+180)/* var←c70900 */ ))+50) );
(void) ( *( (fPt) ((* (ptr) pd316 ))))((word) &pointAndDone←v9576, (* (( (ptr) pgd←v19372)+2) ), pd316);
};
/* removed tail goto */
lab←L100039: ;
(* (W3Pt) formal←c0286 ) = pointAndDone←v9576;
return;
}
static void TrajNextPointPair←P1080(formal←c0295, slice←v9636, pointPairGen←v9664)
word formal←c0295;
word slice←v9636;
word pointPairGen←v9664;
{
register ptr gf←c75956 = (ptr) &globalframe;
W5 pointPairAndDone←v9708;
word pgd←v19460;
word seg←v19488;
W2 var←c0292;
/* TrajNextPointPair: */
SOURCE(20863, 337)
SOURCE(20985, 68)
pgd←v19460 = XR←Narrow((* (( (ptr) pointPairGen←v9664)+3) ), (* (( (ptr) gf←c75956)+25) ));
SOURCE(21055, 60)
{
word pd317;
pd317 = (* (( (ptr) (* (( (ptr) gf←c75956)+189)/* var←c72628 */ ))+43) );
(void) ( *( (fPt) ((* (ptr) pd317 ))))((word) &var←c0292, slice←v9636, (* (ptr) pgd←v19460 ), pd317);
};
seg←v19488 = var←c0292.f0;
SOURCE(21117, 83)
if ((seg←v19488 == 0)) {
SOURCE(21135, 34)
pointPairAndDone←v9708.f0 = (* (ptr) &fc95 );
pointPairAndDone←v9708.f1 = (* (ptr) &fc95 );
pointPairAndDone←v9708.f2 = (* (ptr) &fc95 );
pointPairAndDone←v9708.f3 = (* (ptr) &fc95 );
pointPairAndDone←v9708.f4 = 1;
/* removed tail goto */
}
else {
SOURCE(21169, 31)
(* (W2Pt) &pointPairAndDone←v9708 ) = (* (W2Pt) (( (ptr) seg←v19488)+9) );
(* (W2Pt) (( (ptr) &pointPairAndDone←v9708)+2) ) = (* (W2Pt) (( (ptr) seg←v19488)+11) );
pointPairAndDone←v9708.f4 = 0;
/* removed tail goto */
};
(* (W5Pt) formal←c0295 ) = pointPairAndDone←v9708;
return;
}
static void TrajNextSegment←P1140(formal←c0301, slice←v9768, segGen←v9796)
word formal←c0301;
word slice←v9768;
word segGen←v9796;
{
register ptr gf←c75988 = (ptr) &globalframe;
word seg←v9840;
word transform←v9868;
/* TrajNextSegment: */
SOURCE(21206, 160)
SOURCE(21206, 160)
seg←v9840 = 0;
SOURCE(21206, 160)
transform←v9868 = 0;
SOURCE(21323, 43)
{
word var←c72788;
{
word pd318;
pd318 = (* (( (ptr) (* (( (ptr) gf←c75988)+180)/* var←c70900 */ ))+46) );
var←c72788 = (word) ( *( (fPt) ((* (ptr) pd318 ))))(segGen←v9796, pd318);
};
seg←v9840 = var←c72788;
transform←v9868 = 0;
/* removed tail goto */
};
(* (ptr) formal←c0301 ) = seg←v9840;
(* (( (ptr) formal←c0301)+1) ) = transform←v9868;
return;
}
static void TrajClosestPoint←P1200(formal←c0333, sliceD←v9928, testPoint←v9956, tolerance←v9984)
word formal←c0333;
word sliceD←v9928;
W2 testPoint←v9956;
word tolerance←v9984;
{
register ptr gf←c76020 = (ptr) &globalframe;
W2 bestPoint←v10028;
word bestDist←v10056;
W2 bestNormal←v10084;
word hitData←v10112;
word success←v10140;
word trajParts←v19532;
word thisDist←v19560;
word thisSegNum←v19588;
word bestSegNum←v19616;
word thisCP←v19644;
word bestCP←v19672;
word thisJointNum←v19700;
word bestJointNum←v19728;
W2 thisPoint←v19756;
W2 thisNormal←v19784;
word thisSuccess←v19812;
word bestType←v19840 = 0;
word trajHitData←v19868 = 0;
/* TrajClosestPoint: */
SOURCE(21372, 1509)
SOURCE(21372, 1509)
bestPoint←v10028.f0 = (* (ptr) &fc95 );
bestPoint←v10028.f1 = (* (ptr) &fc95 );
SOURCE(21372, 1509)
bestNormal←v10084.f0 = (* (ptr) &fc95 );
bestNormal←v10084.f1 = (* (ptr) &fc90 );
SOURCE(21372, 1509)
hitData←v10112 = 0;
SOURCE(21372, 1509)
success←v10140 = 0;
SOURCE(21582, 43)
trajParts←v19532 = XR←Narrow((* (( (ptr) sliceD←v9928)+1) ), (* (( (ptr) gf←c76020)+12) ));
{
word var←c72820;
SOURCE(21831, 33)
bestDist←v10056 = (* (ptr) &fc319 );
SOURCE(21866, 107)
{
word pd321;
{
word pd320;
pd320 = (* (( (ptr) (* (( (ptr) gf←c76020)+189)/* var←c72628 */ ))+9) );
var←c72820 = (word) ( *( (fPt) ((* (ptr) pd320 ))))((* (ptr) sliceD←v9928 ), 0, pd320);
};
pd321 = (* (( (ptr) (* (( (ptr) gf←c76020)+190)/* var←c72852 */ ))+22) );
if ((0 == (word) ( *( (fPt) ((* (ptr) pd321 ))))(testPoint←v9956, var←c72820, tolerance←v9984, pd321))) {
SOURCE(21967, 6)
goto lab←L100042;
};
};
SOURCE(22002, 125)
{
W8 var←c72884;
{
word pd322;
pd322 = (* (( (ptr) (* (( (ptr) gf←c76020)+177)/* var←c70676 */ ))+56) );
(void) ( *( (fPt) ((* (ptr) pd322 ))))((word) &var←c72884, testPoint←v9956, sliceD←v9928, tolerance←v9984, pd322);
};
thisSuccess←v19812 = var←c72884.f7;
thisNormal←v19784 = (* (W2Pt) (( (ptr) &var←c72884)+5) );
thisPoint←v19756 = (* (W2Pt) (( (ptr) &var←c72884)+3) );
thisCP←v19644 = var←c72884.f2;
thisSegNum←v19588 = var←c72884.f1;
thisDist←v19560 = var←c72884.f0;
};
SOURCE(22129, 196)
{
word x323;
word x324;
if ( ( (0 != thisSuccess←v19812) ? ((
x323 = thisDist←v19560, *(float*)&x323
) < (
x324 = bestDist←v10056, *(float*)&x324
)) : 0 ) ) {
SOURCE(22175, 23)
bestType←v19840 = 2;
SOURCE(22200, 21)
bestPoint←v10028 = thisPoint←v19756;
SOURCE(22223, 23)
bestNormal←v10084 = thisNormal←v19784;
SOURCE(22248, 19)
bestDist←v10056 = thisDist←v19560;
SOURCE(22269, 23)
bestSegNum←v19616 = thisSegNum←v19588;
SOURCE(22294, 15)
bestCP←v19672 = thisCP←v19644;
SOURCE(22311, 14)
success←v10140 = 1;
};
};
SOURCE(22330, 112)
{
W7 var←c72916;
{
word pd325;
pd325 = (* (( (ptr) (* (( (ptr) gf←c76020)+177)/* var←c70676 */ ))+55) );
(void) ( *( (fPt) ((* (ptr) pd325 ))))((word) &var←c72916, testPoint←v9956, sliceD←v9928, tolerance←v9984, pd325);
};
thisSuccess←v19812 = var←c72916.f6;
thisNormal←v19784 = (* (W2Pt) (( (ptr) &var←c72916)+4) );
thisPoint←v19756 = (* (W2Pt) (( (ptr) &var←c72916)+2) );
thisJointNum←v19700 = var←c72916.f1;
thisDist←v19560 = var←c72916.f0;
};
SOURCE(22444, 176)
{
word x326;
word x327;
if ( ( (0 != thisSuccess←v19812) ? ((
x326 = thisDist←v19560, *(float*)&x326
) < (
x327 = bestDist←v10056, *(float*)&x327
)) : 0 ) ) {
SOURCE(22490, 16)
bestType←v19840 = 1;
SOURCE(22508, 21)
bestPoint←v10028 = thisPoint←v19756;
SOURCE(22531, 23)
bestNormal←v10084 = thisNormal←v19784;
SOURCE(22556, 19)
bestDist←v10056 = thisDist←v19560;
SOURCE(22577, 27)
bestJointNum←v19728 = thisJointNum←v19700;
SOURCE(22606, 14)
success←v10140 = 1;
};
};
SOURCE(22625, 256)
if ((0 != success←v10140)) {
SOURCE(22643, 238)
{
word var←c72948;
var←c72948 = bestType←v19840;
if ((var←c72948 == 2)) {
SOURCE(22682, 96)
{
word var←c72980;
{
word var←c73012;
var←c73012 = XR←NewObject(24, (* (( (ptr) gf←c76020)+13) ));
(* (ptr) var←c73012 ) = 2;
(* (( (ptr) var←c73012)+1) ) = bestSegNum←v19616;
(* (( (ptr) var←c73012)+2) ) = bestCP←v19672;
(* (( (ptr) var←c73012)+3) ) = (word) -1;
(* (W2Pt) (( (ptr) var←c73012)+4) ) = bestPoint←v10028;
var←c72980 = var←c73012;
};
trajHitData←v19868 = var←c72980;
hitData←v10112 = var←c72980;
};
}
else {
if ((var←c72948 == 1)) {
SOURCE(22794, 87)
{
word var←c73044;
{
word var←c73076;
var←c73076 = XR←NewObject(24, (* (( (ptr) gf←c76020)+13) ));
(* (ptr) var←c73076 ) = 1;
(* (( (ptr) var←c73076)+1) ) = (word) -1;
(* (( (ptr) var←c73076)+2) ) = (word) -1;
(* (( (ptr) var←c73076)+3) ) = bestJointNum←v19728;
(* (W2Pt) (( (ptr) var←c73076)+4) ) = bestPoint←v10028;
var←c73044 = var←c73076;
};
trajHitData←v19868 = var←c73044;
hitData←v10112 = var←c73044;
};
}
else {
SOURCE(22897, 5)
(void) XR←RaiseUnnamedError();
};
};
};
};
};
/* removed tail goto */
lab←L100042: ;
(* (W2Pt) formal←c0333 ) = bestPoint←v10028;
(* (( (ptr) formal←c0333)+2) ) = bestDist←v10056;
(* (W2Pt) (( (ptr) formal←c0333)+3) ) = bestNormal←v10084;
(* (( (ptr) formal←c0333)+5) ) = hitData←v10112;
(* (( (ptr) formal←c0333)+6) ) = success←v10140;
return;
}
static void TrajClosestJointToHitData←P1260(formal←c0387, sliceD←v10212, mapPoint←v10240, formal←c0801, formal←c0802)
word formal←c0387;
word sliceD←v10212;
W2 mapPoint←v10240;
W2 formal←c0801;
word formal←c0802;
{
W16 var←c76052;
/* declaration of testPoint←v10268 skipped */
/* declaration of hitData←v10296 skipped */
register ptr gf←c76084 = (ptr) &globalframe;
word jointD←v10352;
/* declaration of point←v10380 skipped */
W2 normal←v10408;
/* declaration of var←c73108 skipped */
/* declaration of var←c73140 skipped */
word hitType←v19940;
word segNum←v19968;
word cpNum←v19996;
/* declaration of jointNum←v20024 skipped */
W2 hitPoint←v20052;
word jointParts←v20080 = 0;
/* declaration of traj←v20108 skipped */
/* declaration of trajData←v20136 skipped */
(* (W2Pt) (( (ptr) &var←c76052)+4)/* testPoint←v10268 */ ) = formal←c0801;
(* (( (ptr) &var←c76052)+6)/* hitData←v10296 */ ) = formal←c0802;
/* TrajClosestJointToHitData: */
SOURCE(22911, 4402)
{
word tmpAddr328;
tmpAddr328 = (word) (( (ptr) &var←c76052)+9)/* var←c73108 */ ;
(* (ptr) tmpAddr328 ) = ( ((word) (fPt) NearestJointToHitData←P4296) );
(* (( (ptr) tmpAddr328) + 1) ) = 1;
};
{
word tmpAddr329;
tmpAddr329 = (word) (( (ptr) &var←c76052)+11)/* var←c73140 */ ;
(* (ptr) tmpAddr329 ) = ( ((word) (fPt) FindJointNormal←P4044) );
(* (( (ptr) tmpAddr329) + 1) ) = 1;
};
SOURCE(22911, 4402)
jointD←v10352 = 0;
SOURCE(22911, 4402)
normal←v10408.f0 = (* (ptr) &fc95 );
normal←v10408.f1 = (* (ptr) &fc90 );
SOURCE(24139, 26)
(* (( (ptr) &var←c76052)+14)/* traj←v20108 */ ) = (* (ptr) sliceD←v10212 );
SOURCE(24167, 38)
(* (( (ptr) &var←c76052)+15)/* trajData←v20136 */ ) = XR←Narrow((* (( (ptr) (* (( (ptr) &var←c76052)+14)/* traj←v20108 */ ))+1)
), (* (( (ptr) gf←c76084)+11) ));
SOURCE(24207, 76)
{
W6 var←c73172;
{
word pd330;
pd330 = (* (( (ptr) (* (( (ptr) gf←c76084)+177)/* var←c70676 */ ))+53) );
(void) ( *( (fPt) ((* (ptr) pd330 ))))((word) &var←c73172, (* (( (ptr) &var←c76052)+6)/* hitData←v10296 */ ), pd330);
};
hitPoint←v20052 = (* (W2Pt) (( (ptr) &var←c73172)+4) );
(* (( (ptr) &var←c76052)+13)/* jointNum←v20024 */ ) = var←c73172.f3;
cpNum←v19996 = var←c73172.f2;
segNum←v19968 = var←c73172.f1;
hitType←v19940 = var←c73172.f0;
};
SOURCE(24285, 2945)
{
word var←c73204;
var←c73204 = hitType←v19940;
switch (var←c73204) {
case 4:
SOURCE(24317, 984)
{
word jointDist←v20240;
word cpDist←v20268;
word bestControlPoint←v20296;
word bestSeg←v20324;
W2 bestPoint←v20352;
W2 bestCPPoint←v20380;
W2 bestNormal←v20408;
word jointSuccess←v20436 = 0;
word cpSuccess←v20464 = 0;
SOURCE(24466, 106)
{
W7 var←c73236;
{
word pd331;
pd331 = (* (( (ptr) (* (( (ptr) gf←c76084)+177)/* var←c70676 */ ))+55) );
(void) ( *( (fPt) ((* (ptr) pd331 ))))((word) &var←c73236, mapPoint←v10240, sliceD←v10212, (* (ptr) &fc332 ), pd331);
};
jointSuccess←v20436 = var←c73236.f6;
bestNormal←v20408 = (* (W2Pt) (( (ptr) &var←c73236)+4) );
bestPoint←v20352 = (* (W2Pt) (( (ptr) &var←c73236)+2) );
(* (( (ptr) &var←c76052)+13)/* jointNum←v20024 */ ) = var←c73236.f1;
jointDist←v20240 = var←c73236.f0;
};
SOURCE(24574, 126)
{
W8 var←c73268;
{
word pd333;
pd333 = (* (( (ptr) (* (( (ptr) gf←c76084)+177)/* var←c70676 */ ))+56) );
(void) ( *( (fPt) ((* (ptr) pd333 ))))((word) &var←c73268, mapPoint←v10240, sliceD←v10212, (* (ptr) &fc332 ), pd333);
};
cpSuccess←v20464 = var←c73268.f7;
bestNormal←v20408 = (* (W2Pt) (( (ptr) &var←c73268)+5) );
bestCPPoint←v20380 = (* (W2Pt) (( (ptr) &var←c73268)+3) );
bestControlPoint←v20296 = var←c73268.f2;
bestSeg←v20324 = var←c73268.f1;
cpDist←v20268 = var←c73268.f0;
};
SOURCE(24702, 545)
if ((0 != jointSuccess←v20436)) {
SOURCE(24725, 522)
if ((0 != cpSuccess←v20464)) {
SOURCE(24745, 382)
{
word x334;
word x335;
if (((
x334 = cpDist←v20268, *(float*)&x334
) < (
x335 = jointDist←v20240, *(float*)&x335
))) {
SOURCE(24772, 240)
{
/*1*/ word seg←v20508 = 0;
SOURCE(24788, 83)
/*1*/ {
/*1*/ word pd336;
/*1*/ pd336 = (* (( (ptr) (* (( (ptr) gf←c76084)+180)/* var←c70900 */ ))+11) );
/*1*/ jointParts←v20080 = (word) ( *( (fPt) ((* (ptr) pd336 ))))((* (( (ptr) &var←c76052)+15)/* trajData←v20136 */ ), bestSeg←v20324, bestControlPoint←v20296, pd336)
/*1*/ ;
/*1*/ };
SOURCE(24873, 19)
/*1*/ (* (W2Pt) (( (ptr) &var←c76052)+7)/* point←v10380 */ ) = bestCPPoint←v20380;
SOURCE(24894, 40)
/*1*/ {
/*1*/ word pd337;
/*1*/ pd337 = (* (( (ptr) (* (( (ptr) gf←c76084)+177)/* var←c70676 */ ))+29) );
/*1*/ seg←v20508 = (word) ( *( (fPt) ((* (ptr) pd337 ))))((* (( (ptr) &var←c76052)+14)/* traj←v20108 */ ), bestSeg←v20324, pd337)
/*1*/ ;
/*1*/ };
SOURCE(24936, 74)
/*1*/ {
/*1*/ word pd338;
/*1*/ pd338 = (* (( (ptr) (* (ptr) seg←v20508 ))+25) );
/*1*/ (void) ( *( (fPt) ((* (ptr) pd338 ))))((word) &normal←v10408, seg←v20508, bestControlPoint←v20296, bestCPPoint←v20380, (* (W2Pt) (
/*1*/ ( (ptr) &var←c76052)+4)/* testPoint←v10268 */ ), pd338);
/*1*/ };
/*1*/ };
}
else {
SOURCE(25021, 59)
{
/*1*/ word pd339;
/*1*/ word idx340;
/*1*/ pd339 = (* (( (ptr) (* (( (ptr) gf←c76084)+180)/* var←c70900 */ ))+8) );
/*1*/ jointParts←v20080 = (word) ( *( (fPt) ((* (ptr) pd339 ))))((* (( (ptr) &var←c76052)+15)/* trajData←v20136 */ ), (
/*1*/ idx340 = (* (( (ptr) &var←c76052)+13)/* jointNum←v20024 */ ),
/*1*/ SGNCK(idx340)
/*1*/ ), pd339);
/*1*/ };
SOURCE(25082, 17)
(* (W2Pt) (( (ptr) &var←c76052)+7)/* point←v10380 */ ) = bestPoint←v20352;
SOURCE(25101, 26)
(void) FindJointNormal←P4044((word) &normal←v10408, (word) (( (bPt) &var←c76052)+44)/* var←c73140 */ );
};
};
}
else {
SOURCE(25141, 59)
{
word pd341;
word idx342;
pd341 = (* (( (ptr) (* (( (ptr) gf←c76084)+180)/* var←c70900 */ ))+8) );
jointParts←v20080 = (word) ( *( (fPt) ((* (ptr) pd341 ))))((* (( (ptr) &var←c76052)+15)/* trajData←v20136 */ ), (
/*1*/ idx342 = (* (( (ptr) &var←c76052)+13)/* jointNum←v20024 */ ),
/*1*/ SGNCK(idx342)
/*1*/ ), pd341);
};
SOURCE(25202, 17)
(* (W2Pt) (( (ptr) &var←c76052)+7)/* point←v10380 */ ) = bestPoint←v20352;
SOURCE(25221, 26)
(void) FindJointNormal←P4044((word) &normal←v10408, (word) (( (bPt) &var←c76052)+44)/* var←c73140 */ );
};
}
else {
SOURCE(25259, 5)
(void) XR←RaiseUnnamedError();
};
};
break;
case 1:
SOURCE(25315, 59)
{
word pd343;
word idx344;
pd343 = (* (( (ptr) (* (( (ptr) gf←c76084)+180)/* var←c70900 */ ))+8) );
jointParts←v20080 = (word) ( *( (fPt) ((* (ptr) pd343 ))))((* (( (ptr) &var←c76052)+15)/* trajData←v20136 */ ), (
idx344 = (* (( (ptr) &var←c76052)+13)/* jointNum←v20024 */ ),
SGNCK(idx344)
), pd343);
};
SOURCE(25376, 16)
(* (W2Pt) (( (ptr) &var←c76052)+7)/* point←v10380 */ ) = mapPoint←v10240;
SOURCE(25394, 26)
(void) FindJointNormal←P4044((word) &normal←v10408, (word) (( (bPt) &var←c76052)+44)/* var←c73140 */ );
break;
case 2:
SOURCE(25441, 207)
{
word seg←v20552 = 0;
SOURCE(25457, 71)
{
word pd345;
pd345 = (* (( (ptr) (* (( (ptr) gf←c76084)+180)/* var←c70900 */ ))+11) );
jointParts←v20080 = (word) ( *( (fPt) ((* (ptr) pd345 ))))((* (( (ptr) &var←c76052)+15)/* trajData←v20136 */ ), SGNCK(segNum←v19968)
, SGNCK(cpNum←v19996), pd345);
};
SOURCE(25530, 16)
(* (W2Pt) (( (ptr) &var←c76052)+7)/* point←v10380 */ ) = mapPoint←v10240;
SOURCE(25548, 39)
{
word pd346;
pd346 = (* (( (ptr) (* (( (ptr) gf←c76084)+177)/* var←c70676 */ ))+29) );
seg←v20552 = (word) ( *( (fPt) ((* (ptr) pd346 ))))((* (( (ptr) &var←c76052)+14)/* traj←v20108 */ ), SGNCK(segNum←v19968)
, pd346);
};
SOURCE(25589, 57)
{
word pd347;
pd347 = (* (( (ptr) (* (ptr) seg←v20552 ))+25) );
(void) ( *( (fPt) ((* (ptr) pd347 ))))((word) &normal←v10408, seg←v20552, SGNCK(cpNum←v19996), (* (W2Pt) (( (ptr) &var←c76052)+7)
/* point←v10380 */ ), (* (W2Pt) (( (ptr) &var←c76052)+4)/* testPoint←v10268 */ ), pd347);
};
};
break;
case 3:
SOURCE(25662, 1576)
{
word success←v20624 = 0;
W2 jointPoint←v20652;
W2 cpPoint←v20680;
W2 cpNormal←v20708;
word seg←v20736 = 0;
SOURCE(26365, 39)
{
word pd348;
pd348 = (* (( (ptr) (* (( (ptr) gf←c76084)+177)/* var←c70676 */ ))+29) );
seg←v20736 = (word) ( *( (fPt) ((* (ptr) pd348 ))))((* (( (ptr) &var←c76052)+14)/* traj←v20108 */ ), SGNCK(segNum←v19968)
, pd348);
};
SOURCE(26406, 34)
(* (( (ptr) &var←c76052)+13)/* jointNum←v20024 */ ) = (word) NearestJointToHitData←P4296((word) ((( (bPt) &var←c76052)+36)
/* var←c73108 */ ));
SOURCE(26442, 49)
{
word pd349;
word idx350;
pd349 = (* (( (ptr) (* (( (ptr) gf←c76084)+177)/* var←c70676 */ ))+32) );
(void) ( *( (fPt) ((* (ptr) pd349 ))))((word) &jointPoint←v20652, (* (( (ptr) &var←c76052)+14)/* traj←v20108 */ ), (
idx350 = (* (( (ptr) &var←c76052)+13)/* jointNum←v20024 */ ),
SGNCK(idx350)
), pd349);
};
SOURCE(26493, 106)
{
W6 var←c73300;
{
word pd351;
pd351 = (* (( (ptr) (* (ptr) seg←v20736 ))+19) );
(void) ( *( (fPt) ((* (ptr) pd351 ))))((word) &var←c73300, seg←v20736, mapPoint←v10240, (* (ptr) &fc319 ), pd351);
};
success←v20624 = var←c73300.f5;
cpNum←v19996 = var←c73300.f4;
cpNormal←v20708 = (* (W2Pt) (( (ptr) &var←c73300)+2) );
cpPoint←v20680 = (* (W2Pt) &var←c73300 );
};
SOURCE(26601, 629)
if ((0 == success←v20624)) {
SOURCE(26664, 59)
{
word pd352;
word idx353;
pd352 = (* (( (ptr) (* (( (ptr) gf←c76084)+180)/* var←c70900 */ ))+8) );
jointParts←v20080 = (word) ( *( (fPt) ((* (ptr) pd352 ))))((* (( (ptr) &var←c76052)+15)/* trajData←v20136 */ ), (
idx353 = (* (( (ptr) &var←c76052)+13)/* jointNum←v20024 */ ),
SGNCK(idx353)
), pd352);
};
SOURCE(26725, 18)
(* (W2Pt) (( (ptr) &var←c76052)+7)/* point←v10380 */ ) = jointPoint←v20652;
SOURCE(26745, 26)
(void) FindJointNormal←P4044((word) &normal←v10408, (word) (( (bPt) &var←c76052)+44)/* var←c73140 */ );
}
else {
SOURCE(26780, 455)
{
word cpDist←v20840;
word jointDist←v20868;
word tisAJoint←v20896;
SOURCE(26818, 59)
{
word pd354;
pd354 = (* (( (ptr) (* (( (ptr) gf←c76084)+187)/* var←c72212 */ ))+21) );
cpDist←v20840 = (word) ( *( (fPt) ((* (ptr) pd354 ))))(cpPoint←v20680, mapPoint←v10240, pd354);
};
SOURCE(26879, 65)
{
word pd355;
pd355 = (* (( (ptr) (* (( (ptr) gf←c76084)+187)/* var←c72212 */ ))+21) );
jointDist←v20868 = (word) ( *( (fPt) ((* (ptr) pd355 ))))(jointPoint←v20652, mapPoint←v10240, pd355);
};
SOURCE(26946, 37)
{
word x356;
word x357;
tisAJoint←v20896 = (unsigned) ((
x356 = jointDist←v20868, *(float*)&x356
) <= (
x357 = cpDist←v20840, *(float*)&x357
));
};
SOURCE(26985, 245)
if ((0 != tisAJoint←v20896)) {
SOURCE(27005, 59)
{
word pd358;
word idx359;
pd358 = (* (( (ptr) (* (( (ptr) gf←c76084)+180)/* var←c70900 */ ))+8) );
jointParts←v20080 = (word) ( *( (fPt) ((* (ptr) pd358 ))))((* (( (ptr) &var←c76052)+15)/* trajData←v20136 */ ), (
/*1*/ idx359 = (* (( (ptr) &var←c76052)+13)/* jointNum←v20024 */ ),
/*1*/ SGNCK(idx359)
/*1*/ ), pd358);
};
SOURCE(27066, 18)
(* (W2Pt) (( (ptr) &var←c76052)+7)/* point←v10380 */ ) = jointPoint←v20652;
SOURCE(27086, 26)
(void) FindJointNormal←P4044((word) &normal←v10408, (word) (( (bPt) &var←c76052)+44)/* var←c73140 */ );
}
else {
SOURCE(27123, 71)
{
word pd360;
pd360 = (* (( (ptr) (* (( (ptr) gf←c76084)+180)/* var←c70900 */ ))+11) );
jointParts←v20080 = (word) ( *( (fPt) ((* (ptr) pd360 ))))((* (( (ptr) &var←c76052)+15)/* trajData←v20136 */ ), SGNCK(segNum←v19968)
/*1*/ , SGNCK(cpNum←v19996), pd360);
};
SOURCE(27196, 15)
(* (W2Pt) (( (ptr) &var←c76052)+7)/* point←v10380 */ ) = cpPoint←v20680;
SOURCE(27213, 17)
normal←v10408 = cpNormal←v20708;
};
};
};
};
break;
default:
SOURCE(27252, 5)
(void) XR←RaiseUnnamedError();
break;
};
};
SOURCE(27259, 54)
{
word pd361;
pd361 = (* (( (ptr) (* (( (ptr) gf←c76084)+176)/* var←c70644 */ ))+8) );
jointD←v10352 = (word) ( *( (fPt) ((* (ptr) pd361 ))))((* (( (ptr) &var←c76052)+14)/* traj←v20108 */ ), jointParts←v20080, pd361)
;
};
/* removed tail goto */
(* (ptr) formal←c0387 ) = jointD←v10352;
(* (W2Pt) (( (ptr) formal←c0387)+1) ) = (* (W2Pt) (( (ptr) &var←c76052)+7)/* point←v10380 */ );
(* (W2Pt) (( (ptr) formal←c0387)+3) ) = normal←v10408;
return;
}
static void FindJointNormal←P4044(formal←c0405, formal←c76148)
word formal←c0405;
word formal←c76148;
{
register ptr gf←c76116 = (ptr) &globalframe;
W2 normal←v20212;
word seg1←v21124 = 0;
word seg2←v21152 = 0;
W2 normal1←v21180;
W2 normal2←v21208;
W2 tangent1←v21236;
W2 tangent2←v21264;
W2 direction←v21292;
formal←c76148 = (formal←c76148 - 44);
/* FindJointNormal: */
SOURCE(23092, 950)
SOURCE(23224, 164)
{
word pd362;
pd362 = (* (( (ptr) (* (( (ptr) gf←c76116)+177)/* var←c70676 */ ))+37) );
if (( (int)(word) ( *( (fPt) ((* (ptr) pd362 ))))((* ((( (ptr) formal←c76148)+14)) ), pd362) < (int)(* (( (ptr) formal←c76148)+13)
))) {
SOURCE(23266, 80)
{
word pd363;
if (((* (ptr) (* (( (ptr) formal←c76148)+15) ) ) == 2)) {
seg2←v21152 = 0;
}
else {
pd363 = (* (( (ptr) (* (( (ptr) gf←c76116)+177)/* var←c70676 */ ))+29) );
seg2←v21152 = (word) ( *( (fPt) ((* (ptr) pd363 ))))((* (( (ptr) formal←c76148)+14) ), 0, pd363);
};
};
}
else {
SOURCE(23346, 42)
{
word pd364;
word idx365;
pd364 = (* (( (ptr) (* (( (ptr) gf←c76116)+177)/* var←c70676 */ ))+29) );
seg2←v21152 = (word) ( *( (fPt) ((* (ptr) pd364 ))))((* (( (ptr) formal←c76148)+14) ), (
idx365 = (* (( (ptr) formal←c76148)+13) ),
SGNCK(idx365)
), pd364);
};
};
};
SOURCE(23390, 45)
{
word pd366;
word idx367;
pd366 = (* (( (ptr) (* (( (ptr) gf←c76116)+177)/* var←c70676 */ ))+41) );
seg1←v21124 = (word) ( *( (fPt) ((* (ptr) pd366 ))))((* (( (ptr) formal←c76148)+14) ), (
idx367 = (* (( (ptr) formal←c76148)+13) ),
SGNCK(idx367)
), pd366);
};
SOURCE(23437, 605)
if ( ( (seg1←v21124 != 0) ? (seg2←v21152 != 0) : 0 ) ) {
SOURCE(23473, 75)
{
W4 var←c73332;
{
word pd368;
pd368 = (* (( (ptr) (* (ptr) seg2←v21152 ))+26) );
(void) ( *( (fPt) ((* (ptr) pd368 ))))((word) &var←c73332, seg2←v21152, (* (W2Pt) (( (ptr) formal←c76148)+7) ), (* (W2Pt) (
( (ptr) formal←c76148)+4) ), 0, pd368);
};
tangent2←v21264 = (* (W2Pt) (( (ptr) &var←c73332)+2) );
normal2←v21208 = (* (W2Pt) &var←c73332 );
};
SOURCE(23550, 74)
{
W4 var←c73364;
{
word pd369;
pd369 = (* (( (ptr) (* (ptr) seg1←v21124 ))+26) );
(void) ( *( (fPt) ((* (ptr) pd369 ))))((word) &var←c73364, seg1←v21124, (* (W2Pt) (( (ptr) formal←c76148)+7) ), (* (W2Pt) (
( (ptr) formal←c76148)+4) ), 1, pd369);
};
tangent1←v21236 = (* (W2Pt) (( (ptr) &var←c73364)+2) );
normal1←v21180 = (* (W2Pt) &var←c73364 );
};
SOURCE(23626, 56)
{
word pd370;
pd370 = (* (( (ptr) (* (( (ptr) gf←c76116)+187)/* var←c72212 */ ))+22) );
(void) ( *( (fPt) ((* (ptr) pd370 ))))((word) &direction←v21292, (* (W2Pt) (( (ptr) formal←c76148)+7) ), (* (W2Pt) (( (ptr) formal←c76148)+4)
), pd370);
};
SOURCE(23684, 168)
{
float tf371;
word pd372;
word x373;
float tf374;
word pd375;
word x376;
pd372 = (* (( (ptr) (* (( (ptr) gf←c76116)+187)/* var←c72212 */ ))+9) );
pd375 = (* (( (ptr) (* (( (ptr) gf←c76116)+187)/* var←c72212 */ ))+9) );
if ((FABS((
x373 = (word) ( *( (fPt) ((* (ptr) pd372 ))))(tangent1←v21236, direction←v21292, pd372), *(float*)&x373
), tf371) < FABS((
x376 = (word) ( *( (fPt) ((* (ptr) pd375 ))))(tangent2←v21264, direction←v21292, pd375), *(float*)&x376
), tf374))) {
normal←v20212 = normal1←v21180;
}
else {
normal←v20212 = normal2←v21208;
};
};
}
else {
SOURCE(23863, 88)
if ((seg1←v21124 != 0)) {
SOURCE(23882, 69)
{
W4 var←c73396;
{
word pd377;
pd377 = (* (( (ptr) (* (ptr) seg1←v21124 ))+26) );
(void) ( *( (fPt) ((* (ptr) pd377 ))))((word) &var←c73396, seg1←v21124, (* (W2Pt) (( (ptr) formal←c76148)+7) ), (* (W2Pt) (
( (ptr) formal←c76148)+4) ), 1, pd377);
};
normal←v20212 = (* (W2Pt) &var←c73396 );
};
};
SOURCE(23953, 89)
if ((seg2←v21152 != 0)) {
SOURCE(23972, 70)
{
W4 var←c73428;
{
word pd378;
pd378 = (* (( (ptr) (* (ptr) seg2←v21152 ))+26) );
(void) ( *( (fPt) ((* (ptr) pd378 ))))((word) &var←c73428, seg2←v21152, (* (W2Pt) (( (ptr) formal←c76148)+7) ), (* (W2Pt) (
( (ptr) formal←c76148)+4) ), 0, pd378);
};
normal←v20212 = (* (W2Pt) &var←c73428 );
};
};
};
/* removed tail goto */
(* (W2Pt) formal←c0405 ) = normal←v20212;
return;
}
static word NearestJointToHitData←P4296(formal←c76212)
word formal←c76212;
{
register ptr gf←c76180 = (ptr) &globalframe;
word jointNum←v20812;
word nextNum←v20940;
W2 p1←v20968;
W2 p2←v20996;
word d1←v21024;
word d2←v21052;
word trajHitData←v21080;
formal←c76212 = (formal←c76212 - 36);
/* NearestJointToHitData: */
SOURCE(25664, 40)
SOURCE(25766, 42)
trajHitData←v21080 = XR←Narrow((* (( (ptr) formal←c76212)+6) ), (* (( (ptr) gf←c76180)+13) ));
SOURCE(25810, 446)
{
word var←c73460;
var←c73460 = (* (ptr) trajHitData←v21080 );
switch (var←c73460) {
case 1:
SOURCE(25853, 31)
{
word idx379;
jointNum←v20812 = (
idx379 = (* (( (ptr) trajHitData←v21080)+3) ),
SGNCK(idx379)
);
};
break;
case 3: case 2:
SOURCE(25916, 57)
{
word pd380;
word idx381;
word idx382;
pd380 = (* (( (ptr) (* (( (ptr) gf←c76180)+177)/* var←c70676 */ ))+44) );
nextNum←v20940 = (
idx382 = (word) ( *( (fPt) ((* (ptr) pd380 ))))((* (( (ptr) formal←c76212)+14) ), (
idx381 = (* (( (ptr) trajHitData←v21080)+1) ),
SGNCK(idx381)
), pd380),
SGNCK(idx382)
);
};
SOURCE(25975, 51)
{
word pd383;
word idx384;
pd383 = (* (( (ptr) (* (( (ptr) gf←c76180)+177)/* var←c70676 */ ))+32) );
(void) ( *( (fPt) ((* (ptr) pd383 ))))((word) &p1←v20968, (* (( (ptr) formal←c76212)+14) ), (
idx384 = (* (( (ptr) trajHitData←v21080)+1) ),
SGNCK(idx384)
), pd383);
};
SOURCE(26028, 40)
{
word pd385;
pd385 = (* (( (ptr) (* (( (ptr) gf←c76180)+177)/* var←c70676 */ ))+32) );
(void) ( *( (fPt) ((* (ptr) pd385 ))))((word) &p2←v20996, (* (( (ptr) formal←c76212)+14) ), nextNum←v20940, pd385);
};
SOURCE(26070, 56)
{
word pd386;
pd386 = (* (( (ptr) (* (( (ptr) gf←c76180)+187)/* var←c72212 */ ))+21) );
d1←v21024 = (word) ( *( (fPt) ((* (ptr) pd386 ))))(p1←v20968, (* (W2Pt) (( (ptr) trajHitData←v21080)+4) ), pd386);
};
SOURCE(26128, 56)
{
word pd387;
pd387 = (* (( (ptr) (* (( (ptr) gf←c76180)+187)/* var←c72212 */ ))+21) );
d2←v21052 = (word) ( *( (fPt) ((* (ptr) pd387 ))))(p2←v20996, (* (W2Pt) (( (ptr) trajHitData←v21080)+4) ), pd387);
};
SOURCE(26186, 70)
{
word x388;
word x389;
if (((
x388 = d1←v21024, *(float*)&x388
) <= (
x389 = d2←v21052, *(float*)&x389
))) {
SOURCE(26203, 35)
{
word idx390;
jointNum←v20812 = (
idx390 = (* (( (ptr) trajHitData←v21080)+1) ),
SGNCK(idx390)
);
};
}
else {
SOURCE(26238, 18)
jointNum←v20812 = nextNum←v20940;
};
};
break;
default:
SOURCE(26272, 5)
(void) XR←RaiseUnnamedError();
break;
};
};
SOURCE(25664, 40)
return(jointNum←v20812);
}
static void TrajClosestPointAndTangent←P1320(formal←c0424, sliceD←v10468, testPoint←v10496, tolerance←v10524)
word formal←c0424;
word sliceD←v10468;
W2 testPoint←v10496;
word tolerance←v10524;
{
W2 bestPoint←v10568;
word bestDist←v10596;
W2 tangent←v10624;
word hitData←v10652;
word success←v10680;
/* TrajClosestPointAndTangent: */
SOURCE(27318, 34)
SOURCE(27318, 34)
bestPoint←v10568.f0 = (* (ptr) &fc95 );
bestPoint←v10568.f1 = (* (ptr) &fc95 );
SOURCE(27318, 34)
bestDist←v10596 = (* (ptr) &fc95 );
SOURCE(27318, 34)
tangent←v10624.f0 = (* (ptr) &fc95 );
tangent←v10624.f1 = (* (ptr) &fc90 );
SOURCE(27318, 34)
hitData←v10652 = 0;
SOURCE(27318, 34)
success←v10680 = 0;
/* removed tail goto */
(* (W2Pt) formal←c0424 ) = bestPoint←v10568;
(* (( (ptr) formal←c0424)+2) ) = bestDist←v10596;
(* (W2Pt) (( (ptr) formal←c0424)+3) ) = tangent←v10624;
(* (( (ptr) formal←c0424)+5) ) = hitData←v10652;
(* (( (ptr) formal←c0424)+6) ) = success←v10680;
return;
}
static void TrajClosestSegment←P1380(formal←c0439, sliceD←v10752, testPoint←v10780, tolerance←v10808)
word formal←c0439;
word sliceD←v10752;
W2 testPoint←v10780;
word tolerance←v10808;
{
register ptr gf←c76244 = (ptr) &globalframe;
W2 bestPoint←v10852;
word bestDist←v10880;
W2 bestNormal←v10908;
word hitData←v10936;
word success←v10964;
word bestSegNum←v21336;
word trajHitData←v21364 = 0;
/* TrajClosestSegment: */
SOURCE(27549, 461)
SOURCE(27549, 461)
bestNormal←v10908.f0 = (* (ptr) &fc95 );
bestNormal←v10908.f1 = (* (ptr) &fc90 );
SOURCE(27549, 461)
hitData←v10936 = 0;
SOURCE(27549, 461)
success←v10964 = 0;
SOURCE(27795, 108)
{
W7 var←c73492;
{
word pd391;
pd391 = (* (( (ptr) (* (( (ptr) gf←c76244)+177)/* var←c70676 */ ))+54) );
(void) ( *( (fPt) ((* (ptr) pd391 ))))((word) &var←c73492, testPoint←v10780, sliceD←v10752, tolerance←v10808, pd391);
};
success←v10964 = var←c73492.f6;
bestNormal←v10908 = (* (W2Pt) (( (ptr) &var←c73492)+4) );
bestPoint←v10852 = (* (W2Pt) (( (ptr) &var←c73492)+2) );
bestSegNum←v21336 = var←c73492.f1;
bestDist←v10880 = var←c73492.f0;
};
SOURCE(27905, 105)
if ((0 != success←v10964)) {
SOURCE(27923, 87)
{
word var←c73524;
{
word var←c73556;
var←c73556 = XR←NewObject(24, (* (( (ptr) gf←c76244)+13) ));
(* (ptr) var←c73556 ) = 3;
(* (( (ptr) var←c73556)+1) ) = bestSegNum←v21336;
(* (( (ptr) var←c73556)+2) ) = (word) -1;
(* (( (ptr) var←c73556)+3) ) = (word) -1;
(* (W2Pt) (( (ptr) var←c73556)+4) ) = bestPoint←v10852;
var←c73524 = var←c73556;
};
trajHitData←v21364 = var←c73524;
hitData←v10936 = var←c73524;
};
};
/* removed tail goto */
(* (W2Pt) formal←c0439 ) = bestPoint←v10852;
(* (( (ptr) formal←c0439)+2) ) = bestDist←v10880;
(* (W2Pt) (( (ptr) formal←c0439)+3) ) = bestNormal←v10908;
(* (( (ptr) formal←c0439)+5) ) = hitData←v10936;
(* (( (ptr) formal←c0439)+6) ) = success←v10964;
return;
}
static word InsideContour←P1440(p←v11136, pairs←v11164)
W2 p←v11136;
word pairs←v11164;
{
word var←c11208;
/* InsideContour: */
SOURCE(28050, 132)
SOURCE(28136, 46)
return( (unsigned) ((word) HanrahanInsideContour←P1500(p←v11136, pairs←v11164) != 1));
}
static word HanrahanInsideContour←P1500(p←v11268, pairs←v11296)
W2 p←v11268;
word pairs←v11296;
{
word var←c11340;
word zcross←v21408;
word odd←v21436 = 0;
W2 d2←v21464;
/* HanrahanInsideContour: */
SOURCE(28186, 600)
SOURCE(28316, 70)
{
word var←c73652;
word var←c0787;
{
word limit392;
var←c73652 = ((* (ptr) pairs←v11296 ) - 1);
var←c0787 = (* (( (W2Pt) (( (ptr) pairs←v11296)+2))+(
limit392 = (* (( (ptr) pairs←v11296)+1) ),
BCK(var←c73652, limit392)
)) ).f0;
};
{
word x393;
word x394;
*(float*)&d2←v21464.f0 = (
x393 = var←c0787, *(float*)&x393
) - (
x394 = p←v11268.f0, *(float*)&x394
);
};
};
{
word var←c73684;
word var←c0788;
{
word limit395;
var←c73684 = ((* (ptr) pairs←v11296 ) - 1);
var←c0788 = (* (( (W2Pt) (( (ptr) pairs←v11296)+2))+(
limit395 = (* (( (ptr) pairs←v11296)+1) ),
BCK(var←c73684, limit395)
)) ).f1;
};
{
word x396;
word x397;
*(float*)&d2←v21464.f1 = (
x396 = var←c0788, *(float*)&x396
) - (
x397 = p←v11268.f1, *(float*)&x397
);
};
};
SOURCE(28388, 356)
{
register word n←v21508 = 0;
register word noName←c73716;
noName←c73716 = (* (ptr) pairs←v11296 );
if ((n←v21508 >= noName←c73716)) {
goto lab←L100047;
};
lab←L100050: ;
{
W2 d1←v21552;
SOURCE(28423, 14)
d1←v21552 = d2←v21464;
SOURCE(28439, 37)
{
word limit398;
word x399;
word x400;
*(float*)&d2←v21464.f0 = (
x399 = (* (( (W2Pt) (( (ptr) pairs←v11296)+2))+(
limit398 = (* (( (ptr) pairs←v11296)+1) ),
BCK(n←v21508, limit398)
)) ).f0, *(float*)&x399
) - (
x400 = p←v11268.f0, *(float*)&x400
);
};
{
word limit401;
word x402;
word x403;
*(float*)&d2←v21464.f1 = (
x402 = (* (( (W2Pt) (( (ptr) pairs←v11296)+2))+(
limit401 = (* (( (ptr) pairs←v11296)+1) ),
BCK(n←v21508, limit401)
)) ).f1, *(float*)&x402
) - (
x403 = p←v11268.f1, *(float*)&x403
);
};
SOURCE(28478, 86)
{
word x404;
word x405;
word x406;
word x407;
word x408;
word x409;
word x410;
word x411;
word x412;
word x413;
word x414;
word x415;
if (( ( ((
x404 = d1←v21552.f1, *(float*)&x404
) > (
x405 = (* (ptr) &fc95 ), *(float*)&x405
)) ? ((
x406 = d2←v21464.f1, *(float*)&x406
) > (
x407 = (* (ptr) &fc95 ), *(float*)&x407
)) : 0 ) || ( ((
x408 = d1←v21552.f1, *(float*)&x408
) < (
x409 = (* (ptr) &fc95 ), *(float*)&x409
)) ? ((
x410 = d2←v21464.f1, *(float*)&x410
) < (
x411 = (* (ptr) &fc95 ), *(float*)&x411
)) : 0 ) ) || ( ((
x412 = d1←v21552.f0, *(float*)&x412
) < (
x413 = (* (ptr) &fc95 ), *(float*)&x413
)) ? ((
x414 = d2←v21464.f0, *(float*)&x414
) < (
x415 = (* (ptr) &fc95 ), *(float*)&x415
)) : 0 ) ) {
SOURCE(28564, 4)
goto lab←L100049;
};
};
SOURCE(28593, 55)
{
word x420;
word x421;
{
word x416;
word x417;
word x418;
word x419;
*(float*)&zcross←v21408 = ((
x416 = d2←v21464.f1, *(float*)&x416
) * (
x417 = d1←v21552.f0, *(float*)&x417
)) - ((
x418 = d1←v21552.f1, *(float*)&x418
) * (
x419 = d2←v21464.f0, *(float*)&x419
));
};
if (((
x420 = zcross←v21408, *(float*)&x420
) == (
x421 = (* (ptr) &fc95 ), *(float*)&x421
))) {
SOURCE(28638, 10)
return(2);
};
};
SOURCE(28665, 79)
{
word tc422;
word x423;
word x424;
word x425;
word x426;
word x427;
word x428;
word x429;
word x430;
word x431;
if (((
x423 = d1←v21552.f1, *(float*)&x423
) > (
x424 = (* (ptr) &fc95 ), *(float*)&x424
)) || ((
x425 = d2←v21464.f1, *(float*)&x425
) > (
x426 = (* (ptr) &fc95 ), *(float*)&x426
))) {
tc422 = (word) ( (unsigned) ((
x427 = zcross←v21408, *(float*)&x427
) < (
x428 = (* (ptr) &fc95 ), *(float*)&x428
)) != (unsigned) ((
x429 = d1←v21552.f1, *(float*)&x429
) - (
x430 = d2←v21464.f1, *(float*)&x430
) < (
x431 = (* (ptr) &fc95 ), *(float*)&x431
)));
}
else {
tc422 = (word) 0;
};
if (tc422) {
SOURCE(28731, 13)
odd←v21436 = (unsigned) (0 == odd←v21436);
};
};
};
lab←L100049: ;
n←v21508 = (n←v21508 + 1);
if ((n←v21508 < noName←c73716)) {
goto lab←L100050;
};
lab←L100047: ;
};
SOURCE(28755, 31)
if ((0 != odd←v21436)) {
return(0);
}
else {
return(1);
};
}
static void PolylineOfTraj←P1560(formal←c0468, trajData←v11400, formal←c0803)
word formal←c0468;
word trajData←v11400;
word formal←c0803;
{
W9 var←c76276;
/* declaration of tolerance←v11428 skipped */
register ptr gf←c76308 = (ptr) &globalframe;
word wholePolyline←v11472;
word success←v11500;
/* declaration of var←c73748 skipped */
/* declaration of polyList←v21596 skipped */
/* declaration of segCount←v21624 skipped */
(* (( (ptr) &var←c76276)+4)/* tolerance←v11428 */ ) = formal←c0803;
/* PolylineOfTraj: */
SOURCE(28792, 899)
{
word tmpAddr432;
tmpAddr432 = (word) (( (ptr) &var←c76276)+5)/* var←c73748 */ ;
(* (ptr) tmpAddr432 ) = ( ((word) (fPt) GetPolyline←P4500) );
(* (( (ptr) tmpAddr432) + 1) ) = 1;
};
SOURCE(28792, 899)
wholePolyline←v11472 = 0;
SOURCE(28792, 899)
success←v11500 = 1;
SOURCE(28930, 10)
(* (( (ptr) &var←c76276)+7)/* polyList←v21596 */ ) = 0;
SOURCE(28977, 17)
(* (( (ptr) &var←c76276)+8)/* segCount←v21624 */ ) = 0;
SOURCE(29261, 57)
{
word var←c73780;
word pd433;
pd433 = (* (( (ptr) (* (( (ptr) gf←c76308)+180)/* var←c70900 */ ))+41) );
var←c73780 = (word) ( *( (fPt) ((* (ptr) pd433 ))))(trajData←v11400, (word) (( (bPt) &var←c76276)+20)/* var←c73748 */ , pd433)
;
};
SOURCE(29320, 371)
if (((* (( (ptr) &var←c76276)+7)/* polyList←v21596 */ ) == 0)) {
SOURCE(29343, 24)
wholePolyline←v11472 = 0;
success←v11500 = 0;
goto lab←L100051;
}
else {
SOURCE(29367, 344)
{
word index←v21940 = 0;
SOURCE(29385, 14)
success←v11500 = 1;
SOURCE(29401, 61)
{
word var←c73812;
word var←c73844;
var←c73812 = ((* (( (ptr) &var←c76276)+8)/* segCount←v21624 */ ) << 3);
var←c73844 = XR←NewObject((8 + var←c73812), (* (( (ptr) gf←c76308)+23) ));
(* (( (ptr) var←c73844)+1) ) = (* (( (ptr) &var←c76276)+8)/* segCount←v21624 */ );
wholePolyline←v11472 = var←c73844;
};
SOURCE(29464, 31)
(* (ptr) wholePolyline←v11472 ) = (* (( (ptr) &var←c76276)+8)/* segCount←v21624 */ );
SOURCE(29497, 194)
{
register word list←v21984;
list←v21984 = (* (( (ptr) &var←c76276)+7)/* polyList←v21596 */ );
lab←L100055: ;
if ((list←v21984 != 0)) {
}
else {
goto lab←L100052;
};
SOURCE(29585, 106)
{
register word j←v22112;
j←v22112 = (* (ptr) (* (ptr) list←v21984 ) );
if ((1 >= j←v22112)) {
goto lab←L100056;
};
j←v22112 = (j←v22112 - 1);
lab←L100059: ;
SOURCE(29636, 36)
{
word var←c73876;
var←c73876 = (* (ptr) list←v21984 );
{
word limit434;
word limit435;
(* (( (W2Pt) (( (ptr) wholePolyline←v11472)+2))+(
limit434 = (* (( (ptr) wholePolyline←v11472)+1) ),
BCK(index←v21940, limit434)
)) ) = (* (( (W2Pt) (( (ptr) var←c73876)+2))+(
limit435 = (* (( (ptr) var←c73876)+1) ),
BCK(j←v22112, limit435)
)) );
};
};
SOURCE(29674, 17)
index←v21940 = (index←v21940 + 1);
if ((1 >= j←v22112)) {
goto lab←L100056;
};
j←v22112 = (j←v22112 - 1);
goto lab←L100059;
lab←L100056: ;
};
list←v21984 = (* (( (ptr) list←v21984)+1) );
goto lab←L100055;
lab←L100052: ;
};
};
};
/* removed tail goto */
lab←L100051: ;
(* (ptr) formal←c0468 ) = wholePolyline←v11472;
(* (( (ptr) formal←c0468)+1) ) = success←v11500;
return;
}
static word GetPolyline←P4500(traj←v21812, seg←v21840, index←v21868, formal←c76372)
word traj←v21812;
word seg←v21840;
word index←v21868;
word formal←c76372;
{
register ptr gf←c76340 = (ptr) &globalframe;
word done←v21912;
word thisPolyline←v22156;
formal←c76372 = (formal←c76372 - 20);
/* GetPolyline: */
SOURCE(28996, 260)
SOURCE(28996, 260)
done←v21912 = 0;
SOURCE(29090, 80)
{
word pd436;
pd436 = (* (( (ptr) (* (ptr) seg←v21840 ))+24) );
thisPolyline←v22156 = (word) ( *( (fPt) ((* (ptr) pd436 ))))(seg←v21840, (* (( (ptr) formal←c76372)+4) ), pd436);
};
SOURCE(29172, 43)
{
word idx437;
(* (( (ptr) formal←c76372)+8) ) = (
idx437 = (word) ((* (( (ptr) formal←c76372)+8) ) + ((* (ptr) thisPolyline←v22156 ) - 1)),
SGNCK(idx437)
);
};
SOURCE(29217, 39)
{
word var←c73908;
var←c73908 = XR←NewObject(8, (* (( (ptr) gf←c76340)+22) ));
(* (ptr) var←c73908 ) = thisPolyline←v22156;
(* (( (ptr) var←c73908)+1) ) = (* (( (ptr) formal←c76372)+7) );
(* (( (ptr) formal←c76372)+7) ) = var←c73908;
};
SOURCE(28996, 260)
return(done←v21912);
}
static void TrajFilledPathsUnderPoint←P1620(formal←c0487, slice←v11560, point←v11588, tolerance←v11616)
word formal←c0487;
word slice←v11560;
W2 point←v11588;
word tolerance←v11616;
{
register ptr gf←c76404 = (ptr) &globalframe;
word hitData←v11660;
word moreHitDatas←v11688;
word trajData←v22200;
word wholePolyline←v22228 = 0;
word success←v22256 = 1;
/* TrajFilledPathsUnderPoint: */
SOURCE(29718, 836)
SOURCE(29718, 836)
hitData←v11660 = 0;
SOURCE(29718, 836)
moreHitDatas←v11688 = 0;
SOURCE(29870, 39)
trajData←v22200 = XR←Narrow((* (( (ptr) slice←v11560)+1) ), (* (( (ptr) gf←c76404)+11) ));
{
word var←c73940;
SOURCE(29978, 96)
{
word pd439;
{
word pd438;
pd438 = (* (( (ptr) (* (( (ptr) gf←c76404)+189)/* var←c72628 */ ))+9) );
var←c73940 = (word) ( *( (fPt) ((* (ptr) pd438 ))))(slice←v11560, 0, pd438);
};
pd439 = (* (( (ptr) (* (( (ptr) gf←c76404)+190)/* var←c72852 */ ))+22) );
if ((0 == (word) ( *( (fPt) ((* (ptr) pd439 ))))(point←v11588, var←c73940, tolerance←v11616, pd439))) {
SOURCE(30068, 6)
goto lab←L100060;
};
};
SOURCE(30076, 35)
if (((* (ptr) trajData←v22200 ) == 2)) {
SOURCE(30105, 6)
goto lab←L100060;
};
SOURCE(30114, 328)
{
word x440;
word x441;
if ( ( ((* (( (ptr) trajData←v22200)+14) ) != 0) ? ((
x440 = (* (( (ptr) trajData←v22200)+15) ), *(float*)&x440
) <= (
x441 = tolerance←v11616, *(float*)&x441
)) : 0 ) ) {
SOURCE(30190, 39)
wholePolyline←v22228 = (* (( (ptr) trajData←v22200)+14) );
}
else {
SOURCE(30231, 62)
{
W2 var←c73972;
(void) PolylineOfTraj←P1560((word) &var←c73972, trajData←v22200, tolerance←v11616);
success←v22256 = var←c73972.f1;
wholePolyline←v22228 = var←c73972.f0;
};
SOURCE(30295, 36)
if ((0 == success←v22256)) {
SOURCE(30315, 16)
hitData←v11660 = 0;
moreHitDatas←v11688 = 0;
goto lab←L100060;
};
SOURCE(30333, 33)
(* (( (ptr) trajData←v22200)+14) ) = wholePolyline←v22228;
SOURCE(30404, 38)
(* (( (ptr) trajData←v22200)+15) ) = tolerance←v11616;
};
};
SOURCE(30447, 107)
if ((0 != (word) InsideContour←P1440(point←v11588, wholePolyline←v22228))) {
SOURCE(30493, 61)
{
word var←c74004;
var←c74004 = XR←NewObject(24, (* (( (ptr) gf←c76404)+13) ));
(* (ptr) var←c74004 ) = 4;
(* (( (ptr) var←c74004)+1) ) = (word) -1;
(* (( (ptr) var←c74004)+2) ) = (word) -1;
(* (( (ptr) var←c74004)+3) ) = (word) -1;
(* (W2Pt) (( (ptr) var←c74004)+4) ) = point←v11588;
hitData←v11660 = var←c74004;
};
};
};
/* removed tail goto */
lab←L100060: ;
(* (ptr) formal←c0487 ) = hitData←v11660;
(* (( (ptr) formal←c0487)+1) ) = moreHitDatas←v11688;
return;
}
static void TrajLineIntersection←P1680(formal←c0502, sliceD←v11856, line←v11884)
word formal←c0502;
word sliceD←v11856;
word line←v11884;
{
register ptr gf←c76436 = (ptr) &globalframe;
word points←v11928;
word pointCount←v11956;
word segGen←v22300 = 0;
word thesePoints←v22328 = 0;
word thisCount←v22356 = 0;
word trajParts←v22384;
word trajData←v22412;
/* TrajLineIntersection: */
SOURCE(30563, 666)
SOURCE(30563, 666)
points←v11928 = 0;
SOURCE(30563, 666)
pointCount←v11956 = 0;
SOURCE(30760, 43)
trajParts←v22384 = XR←Narrow((* (( (ptr) sliceD←v11856)+1) ), (* (( (ptr) gf←c76436)+12) ));
SOURCE(30805, 46)
trajData←v22412 = XR←Narrow((* (( (ptr) (* (ptr) sliceD←v11856 ))+1) ), (* (( (ptr) gf←c76436)+11) ));
SOURCE(30853, 59)
{
word pd442;
pd442 = (* (( (ptr) (* (( (ptr) gf←c76436)+180)/* var←c70900 */ ))+42) );
segGen←v22300 = (word) ( *( (fPt) ((* (ptr) pd442 ))))(trajData←v22412, trajParts←v22384, pd442);
};
SOURCE(30914, 315)
{
register word seg←v22540;
{
word pd443;
pd443 = (* (( (ptr) (* (( (ptr) gf←c76436)+180)/* var←c70900 */ ))+46) );
seg←v22540 = (word) ( *( (fPt) ((* (ptr) pd443 ))))(segGen←v22300, pd443);
};
lab←L100065: ;
if ((seg←v22540 != 0)) {
}
else {
goto lab←L100062;
};
SOURCE(31015, 64)
{
W2 var←c74036;
{
word pd444;
pd444 = (* (( (ptr) (* (ptr) seg←v22540 ))+21) );
(void) ( *( (fPt) ((* (ptr) pd444 ))))((word) &var←c74036, seg←v22540, line←v11884, pd444);
};
thisCount←v22356 = var←c74036.f1;
thesePoints←v22328 = var←c74036.f0;
};
SOURCE(31081, 102)
{
register word list←v22584;
list←v22584 = thesePoints←v22328;
lab←L100069: ;
if ((list←v22584 != 0)) {
}
else {
goto lab←L100066;
};
SOURCE(31150, 33)
{
word var←c74068;
var←c74068 = XR←NewObject(12, (* (( (ptr) gf←c76436)+21) ));
(* (W2Pt) var←c74068 ) = (* (W2Pt) list←v22584 );
(* (( (ptr) var←c74068)+2) ) = points←v11928;
points←v11928 = var←c74068;
};
list←v22584 = (* (( (ptr) list←v22584)+2) );
goto lab←L100069;
lab←L100066: ;
};
SOURCE(31194, 35)
pointCount←v11956 = SGNCK((pointCount←v11956 + thisCount←v22356));
{
word pd445;
pd445 = (* (( (ptr) (* (( (ptr) gf←c76436)+180)/* var←c70900 */ ))+46) );
seg←v22540 = (word) ( *( (fPt) ((* (ptr) pd445 ))))(segGen←v22300, pd445);
};
goto lab←L100065;
lab←L100062: ;
};
/* removed tail goto */
(* (ptr) formal←c0502 ) = points←v11928;
(* (( (ptr) formal←c0502)+1) ) = pointCount←v11956;
return;
}
static void TrajCircleIntersection←P1740(formal←c0517, sliceD←v12100, circle←v12128)
word formal←c0517;
word sliceD←v12100;
word circle←v12128;
{
register ptr gf←c76468 = (ptr) &globalframe;
word points←v12172;
word pointCount←v12200;
word segGen←v22712 = 0;
word thesePoints←v22740 = 0;
word thisCount←v22768 = 0;
word trajParts←v22796;
word trajData←v22824;
/* TrajCircleIntersection: */
SOURCE(31244, 676)
SOURCE(31244, 676)
points←v12172 = 0;
SOURCE(31244, 676)
pointCount←v12200 = 0;
SOURCE(31447, 43)
trajParts←v22796 = XR←Narrow((* (( (ptr) sliceD←v12100)+1) ), (* (( (ptr) gf←c76468)+12) ));
SOURCE(31492, 46)
trajData←v22824 = XR←Narrow((* (( (ptr) (* (ptr) sliceD←v12100 ))+1) ), (* (( (ptr) gf←c76468)+11) ));
SOURCE(31540, 59)
{
word pd446;
pd446 = (* (( (ptr) (* (( (ptr) gf←c76468)+180)/* var←c70900 */ ))+42) );
segGen←v22712 = (word) ( *( (fPt) ((* (ptr) pd446 ))))(trajData←v22824, trajParts←v22796, pd446);
};
SOURCE(31601, 319)
{
register word seg←v22952;
{
word pd447;
pd447 = (* (( (ptr) (* (( (ptr) gf←c76468)+180)/* var←c70900 */ ))+46) );
seg←v22952 = (word) ( *( (fPt) ((* (ptr) pd447 ))))(segGen←v22712, pd447);
};
lab←L100074: ;
if ((seg←v22952 != 0)) {
}
else {
goto lab←L100071;
};
SOURCE(31702, 68)
{
W2 var←c74100;
{
word pd448;
pd448 = (* (( (ptr) (* (ptr) seg←v22952 ))+22) );
(void) ( *( (fPt) ((* (ptr) pd448 ))))((word) &var←c74100, seg←v22952, circle←v12128, pd448);
};
thisCount←v22768 = var←c74100.f1;
thesePoints←v22740 = var←c74100.f0;
};
SOURCE(31772, 102)
{
register word list←v22996;
list←v22996 = thesePoints←v22740;
lab←L100078: ;
if ((list←v22996 != 0)) {
}
else {
goto lab←L100075;
};
SOURCE(31841, 33)
{
word var←c74132;
var←c74132 = XR←NewObject(12, (* (( (ptr) gf←c76468)+21) ));
(* (W2Pt) var←c74132 ) = (* (W2Pt) list←v22996 );
(* (( (ptr) var←c74132)+2) ) = points←v12172;
points←v12172 = var←c74132;
};
list←v22996 = (* (( (ptr) list←v22996)+2) );
goto lab←L100078;
lab←L100075: ;
};
SOURCE(31885, 35)
pointCount←v12200 = SGNCK((pointCount←v12200 + thisCount←v22768));
{
word pd449;
pd449 = (* (( (ptr) (* (( (ptr) gf←c76468)+180)/* var←c70900 */ ))+46) );
seg←v22952 = (word) ( *( (fPt) ((* (ptr) pd449 ))))(segGen←v22712, pd449);
};
goto lab←L100074;
lab←L100071: ;
};
/* removed tail goto */
(* (ptr) formal←c0517 ) = points←v12172;
(* (( (ptr) formal←c0517)+1) ) = pointCount←v12200;
return;
}
static word TrajHitDataAsSimpleCurve←P1800(slice←v12344, hitData←v12372)
word slice←v12344;
word hitData←v12372;
{
register ptr gf←c76500 = (ptr) &globalframe;
word simpleCurve←v12428;
word trajHitData←v23124;
/* TrajHitDataAsSimpleCurve: */
SOURCE(31935, 383)
SOURCE(31935, 383)
simpleCurve←v12428 = 0;
SOURCE(32034, 42)
trajHitData←v23124 = XR←Narrow(hitData←v12372, (* (( (ptr) gf←c76500)+13) ));
SOURCE(32078, 240)
{
word var←c74164;
var←c74164 = (* (ptr) trajHitData←v23124 );
switch (var←c74164) {
case 1: case 2: case 4:
SOURCE(32143, 11)
return(0);
case 3:
SOURCE(32167, 153)
{
word segNum←v23168;
word seg←v23196;
SOURCE(32169, 32)
segNum←v23168 = (* (( (ptr) trajHitData←v23124)+1) );
SOURCE(32203, 49)
{
word pd450;
pd450 = (* (( (ptr) (* (( (ptr) gf←c76500)+177)/* var←c70676 */ ))+29) );
seg←v23196 = (word) ( *( (fPt) ((* (ptr) pd450 ))))(slice←v12344, SGNCK(segNum←v23168), pd450);
};
SOURCE(32254, 64)
{
word pd451;
pd451 = (* (( (ptr) (* (ptr) seg←v23196 ))+23) );
simpleCurve←v12428 = (word) ( *( (fPt) ((* (ptr) pd451 ))))(seg←v23196, (* (W2Pt) (( (ptr) trajHitData←v23124)+4) ), pd451)
;
};
};
break;
default:
SOURCE(32334, 5)
(void) XR←RaiseUnnamedError();
break;
};
};
SOURCE(31935, 383)
return(simpleCurve←v12428);
}
static void TrajSetDefaults←P1860(slice←v12500, parts←v12528, defaults←v12556, history←v12584)
word slice←v12500;
word parts←v12528;
word defaults←v12556;
word history←v12584;
{
register ptr gf←c76532 = (ptr) &globalframe;
/* TrajSetDefaults: */
SOURCE(32345, 516)
SOURCE(32451, 71)
{
word var←c74196;
word pd452;
pd452 = (* (( (ptr) (* (( (ptr) gf←c76532)+189)/* var←c72628 */ ))+53) );
var←c74196 = (word) ( *( (fPt) ((* (ptr) pd452 ))))(slice←v12500, parts←v12528, (* (ptr) defaults←v12556 ), 0, pd452);
};
SOURCE(32524, 66)
{
word pd453;
pd453 = (* (( (ptr) (* (( (ptr) gf←c76532)+189)/* var←c72628 */ ))+57) );
(void) ( *( (fPt) ((* (ptr) pd453 ))))(slice←v12500, parts←v12528, (* (( (ptr) defaults←v12556)+1) ), 0, pd453);
};
SOURCE(32592, 62)
{
word pd454;
pd454 = (* (( (ptr) (* (( (ptr) gf←c76532)+189)/* var←c72628 */ ))+55) );
(void) ( *( (fPt) ((* (ptr) pd454 ))))(slice←v12500, parts←v12528, (* (( (ptr) defaults←v12556)+2) ), 0, pd454);
};
SOURCE(32656, 131)
{
word var←c74228;
{
word pd455;
pd455 = (* (( (ptr) (* (( (ptr) gf←c76532)+179)/* var←c70868 */ ))+37) );
var←c74228 = (word) ( *( (fPt) ((* (ptr) pd455 ))))((* ((( (ptr) defaults←v12556)+4)) ), pd455);
};
{
word pd456;
pd456 = (* (( (ptr) (* (( (ptr) gf←c76532)+189)/* var←c72628 */ ))+65) );
(void) ( *( (fPt) ((* (ptr) pd456 ))))(slice←v12500, parts←v12528, (* (( (ptr) defaults←v12556)+3) ), var←c74228, (* (( (ptr) defaults←v12556)+5)
), (* (( (ptr) defaults←v12556)+6) )
, 0, pd456);
};
};
SOURCE(32789, 72)
{
word pd457;
pd457 = (* (( (ptr) (* (( (ptr) gf←c76532)+189)/* var←c72628 */ ))+59) );
(void) ( *( (fPt) ((* (ptr) pd457 ))))(slice←v12500, parts←v12528, (* (( (ptr) defaults←v12556)+7) ), (* (( (ptr) gf←c76532)+52)
), 0, pd457);
};
}
static word TrajSetStrokeWidth←P1920(slice←v12644, parts←v12672, strokeWidth←v12700, history←v12728)
word slice←v12644;
word parts←v12672;
word strokeWidth←v12700;
word history←v12728;
{
register ptr gf←c76564 = (ptr) &globalframe;
word box←v12772;
word bBoxes←v23240 = 0;
word thisBox←v23268 = 0;
word trajParts←v23296;
word trajData←v23324;
word segGen←v23352;
/* TrajSetStrokeWidth: */
SOURCE(32867, 705)
SOURCE(32867, 705)
box←v12772 = 0;
SOURCE(33041, 36)
trajParts←v23296 = XR←Narrow(parts←v12672, (* (( (ptr) gf←c76564)+12) ));
SOURCE(33079, 39)
trajData←v23324 = XR←Narrow((* (( (ptr) slice←v12644)+1) ), (* (( (ptr) gf←c76564)+11) ));
SOURCE(33120, 136)
{
word tc458;
word pd459;
word pd460;
if ((parts←v12672 != 0)) {
pd459 = (* (( (ptr) (* (( (ptr) gf←c76564)+180)/* var←c70900 */ ))+42) );
tc458 = (word) ( *( (fPt) ((* (ptr) pd459 ))))(trajData←v23324, trajParts←v23296, pd459);
}
else {
pd460 = (* (( (ptr) (* (( (ptr) gf←c76564)+180)/* var←c70900 */ ))+40) );
tc458 = (word) ( *( (fPt) ((* (ptr) pd460 ))))(trajData←v23324, pd460);
};
segGen←v23352 = tc458;
};
SOURCE(33258, 230)
{
register word seg←v23480;
{
word pd461;
pd461 = (* (( (ptr) (* (( (ptr) gf←c76564)+180)/* var←c70900 */ ))+46) );
seg←v23480 = (word) ( *( (fPt) ((* (ptr) pd461 ))))(segGen←v23352, pd461);
};
lab←L100082: ;
if ((seg←v23480 != 0)) {
}
else {
goto lab←L100079;
};
SOURCE(33359, 42)
{
word pd462;
pd462 = (* (( (ptr) (* (ptr) seg←v23480 ))+28) );
(void) ( *( (fPt) ((* (ptr) pd462 ))))(seg←v23480, strokeWidth←v12700, pd462);
};
SOURCE(33403, 33)
{
word pd463;
pd463 = (* (( (ptr) (* (ptr) seg←v23480 ))+1) );
thisBox←v23268 = (word) ( *( (fPt) ((* (ptr) pd463 ))))(seg←v23480, pd463);
};
SOURCE(33438, 50)
if ((thisBox←v23268 != 0)) {
SOURCE(33458, 30)
{
word var←c74260;
var←c74260 = XR←NewObject(8, (* (( (ptr) gf←c76564)+20) ));
(* (ptr) var←c74260 ) = thisBox←v23268;
(* (( (ptr) var←c74260)+1) ) = bBoxes←v23240;
bBoxes←v23240 = var←c74260;
};
};
{
word pd464;
pd464 = (* (( (ptr) (* (( (ptr) gf←c76564)+180)/* var←c70900 */ ))+46) );
seg←v23480 = (word) ( *( (fPt) ((* (ptr) pd464 ))))(segGen←v23352, pd464);
};
goto lab←L100082;
lab←L100079: ;
};
SOURCE(33499, 40)
{
word pd465;
pd465 = (* (( (ptr) (* (( (ptr) gf←c76564)+190)/* var←c72852 */ ))+8) );
box←v12772 = (word) ( *( (fPt) ((* (ptr) pd465 ))))(bBoxes←v23240, pd465);
};
SOURCE(33541, 31)
{
word pd466;
pd466 = (* (( (ptr) (* (( (ptr) gf←c76564)+176)/* var←c70644 */ ))+69) );
(void) ( *( (fPt) ((* (ptr) pd466 ))))(slice←v12644, pd466);
};
SOURCE(32867, 705)
return(box←v12772);
}
static void TrajGetStrokeWidth←P1980(formal←c0552, slice←v12832, parts←v12860)
word formal←c0552;
word slice←v12832;
word parts←v12860;
{
W8 var←c76596;
register ptr gf←c76628 = (ptr) &globalframe;
/* declaration of strokeWidth←v12904 skipped */
word isUnique←v12932;
/* declaration of var←c74292 skipped */
word trajParts←v23524;
word trajData←v23552;
/* declaration of found←v23580 skipped */
word aborted←v23608 = 0;
/* TrajGetStrokeWidth: */
SOURCE(33578, 753)
{
word tmpAddr467;
tmpAddr467 = (word) (( (ptr) &var←c76596)+5)/* var←c74292 */ ;
(* (ptr) tmpAddr467 ) = ( ((word) (fPt) DoCheckWidth←P5040) );
(* (( (ptr) tmpAddr467) + 1) ) = 1;
};
SOURCE(33578, 753)
var←c76596.f4/* strokeWidth←v12904 */ = (* (ptr) &fc90 );
SOURCE(33578, 753)
isUnique←v12932 = 1;
SOURCE(33699, 36)
trajParts←v23524 = XR←Narrow(parts←v12860, (* (( (ptr) gf←c76628)+12) ));
SOURCE(33737, 39)
trajData←v23552 = XR←Narrow((* (( (ptr) slice←v12832)+1) ), (* (( (ptr) gf←c76628)+11) ));
SOURCE(33778, 28)
var←c76596.f7/* found←v23580 */ = 0;
SOURCE(33808, 523)
{
word pd469;
if ((parts←v12860 == 0)) { goto then0468;};
pd469 = (* (( (ptr) (* (( (ptr) gf←c76628)+180)/* var←c70900 */ ))+44) );
if (((word) ( *( (fPt) ((* (ptr) pd469 ))))(trajData←v23552, trajParts←v23524, pd469) > 0)) {
then0468: ;
SOURCE(33891, 415)
SOURCE(34115, 165)
if ((parts←v12860 != 0)) {
SOURCE(34133, 84)
{
word pd470;
pd470 = (* (( (ptr) (* (( (ptr) gf←c76628)+180)/* var←c70900 */ ))+43) );
aborted←v23608 = (word) ( *( (fPt) ((* (ptr) pd470 ))))(trajData←v23552, trajParts←v23524, (word) (( (bPt) &var←c76596)+20)
/* var←c74292 */ , pd470);
};
}
else {
SOURCE(34217, 63)
{
word pd471;
pd471 = (* (( (ptr) (* (( (ptr) gf←c76628)+180)/* var←c70900 */ ))+41) );
aborted←v23608 = (word) ( *( (fPt) ((* (ptr) pd471 ))))(trajData←v23552, (word) (( (bPt) &var←c76596)+20)/* var←c74292 */ , pd471)
;
};
};
SOURCE(34282, 22)
isUnique←v12932 = (unsigned) (0 == aborted←v23608);
}
else {
SOURCE(34315, 16)
isUnique←v12932 = 0;
};
};
/* removed tail goto */
(* (ptr) formal←c0552 ) = var←c76596.f4/* strokeWidth←v12904 */ ;
(* (( (ptr) formal←c0552)+1) ) = isUnique←v12932;
return;
}
static word DoCheckWidth←P5040(traj←v23728, seg←v23756, index←v23784, formal←c76660)
word traj←v23728;
word seg←v23756;
word index←v23784;
word formal←c76660;
{
word done←v23828;
formal←c76660 = (formal←c76660 - 20);
/* DoCheckWidth: */
SOURCE(33893, 20)
SOURCE(33893, 20)
done←v23828 = 0;
SOURCE(33988, 119)
if ((0 != (* (( (ptr) formal←c76660)+7) ))) {
SOURCE(34004, 49)
{
word x472;
word x473;
if (((
x472 = (* (( (ptr) seg←v23756)+2) ), *(float*)&x472
) != (
x473 = (* (( (ptr) formal←c76660)+4) ), *(float*)&x473
))) {
SOURCE(34042, 11)
done←v23828 = 1;
};
};
}
else {
SOURCE(34064, 12)
(* (( (ptr) formal←c76660)+7) ) = 1;
SOURCE(34078, 29)
(* (( (ptr) formal←c76660)+4) ) = (* (( (ptr) seg←v23756)+2) );
};
SOURCE(33893, 20)
return(done←v23828);
}
static void TrajSetStrokeEnd←P2040(slice←v12992, parts←v13020, strokeEnd←v13048, history←v13076)
word slice←v12992;
word parts←v13020;
word strokeEnd←v13048;
word history←v13076;
{
register ptr gf←c76692 = (ptr) &globalframe;
word trajParts←v23856;
word trajData←v23884;
word segGen←v23912;
/* TrajSetStrokeEnd: */
SOURCE(34340, 449)
SOURCE(34446, 36)
trajParts←v23856 = XR←Narrow(parts←v13020, (* (( (ptr) gf←c76692)+12) ));
SOURCE(34484, 39)
trajData←v23884 = XR←Narrow((* (( (ptr) slice←v12992)+1) ), (* (( (ptr) gf←c76692)+11) ));
SOURCE(34525, 136)
{
word tc474;
word pd475;
word pd476;
if ((parts←v13020 != 0)) {
pd475 = (* (( (ptr) (* (( (ptr) gf←c76692)+180)/* var←c70900 */ ))+42) );
tc474 = (word) ( *( (fPt) ((* (ptr) pd475 ))))(trajData←v23884, trajParts←v23856, pd475);
}
else {
pd476 = (* (( (ptr) (* (( (ptr) gf←c76692)+180)/* var←c70900 */ ))+40) );
tc474 = (word) ( *( (fPt) ((* (ptr) pd476 ))))(trajData←v23884, pd476);
};
segGen←v23912 = tc474;
};
SOURCE(34663, 126)
{
register word seg←v23956;
{
word pd477;
pd477 = (* (( (ptr) (* (( (ptr) gf←c76692)+180)/* var←c70900 */ ))+46) );
seg←v23956 = (word) ( *( (fPt) ((* (ptr) pd477 ))))(segGen←v23912, pd477);
};
lab←L100087: ;
if ((seg←v23956 != 0)) {
}
else {
goto lab←L100084;
};
SOURCE(34764, 25)
(* (( (ptr) seg←v23956)+3) ) = strokeEnd←v13048;
{
word pd478;
pd478 = (* (( (ptr) (* (( (ptr) gf←c76692)+180)/* var←c70900 */ ))+46) );
seg←v23956 = (word) ( *( (fPt) ((* (ptr) pd478 ))))(segGen←v23912, pd478);
};
goto lab←L100087;
lab←L100084: ;
};
}
static void TrajGetStrokeEnd←P2100(formal←c0574, slice←v13136, parts←v13164)
word formal←c0574;
word slice←v13136;
word parts←v13164;
{
W8 var←c76724;
register ptr gf←c76756 = (ptr) &globalframe;
/* declaration of strokeEnd←v13208 skipped */
word isUnique←v13236;
/* declaration of var←c74324 skipped */
word trajParts←v24000;
word trajData←v24028;
/* declaration of found←v24056 skipped */
word aborted←v24084 = 0;
/* TrajGetStrokeEnd: */
SOURCE(34804, 741)
{
word tmpAddr479;
tmpAddr479 = (word) (( (ptr) &var←c76724)+5)/* var←c74324 */ ;
(* (ptr) tmpAddr479 ) = ( ((word) (fPt) DoCheckEnd←P5196) );
(* (( (ptr) tmpAddr479) + 1) ) = 1;
};
SOURCE(34804, 741)
var←c76724.f4/* strokeEnd←v13208 */ = 2;
SOURCE(34804, 741)
isUnique←v13236 = 1;
SOURCE(34927, 36)
trajParts←v24000 = XR←Narrow(parts←v13164, (* (( (ptr) gf←c76756)+12) ));
SOURCE(34965, 39)
trajData←v24028 = XR←Narrow((* (( (ptr) slice←v13136)+1) ), (* (( (ptr) gf←c76756)+11) ));
SOURCE(35006, 28)
var←c76724.f7/* found←v24056 */ = 0;
SOURCE(35036, 509)
{
word pd481;
if ((parts←v13164 == 0)) { goto then0480;};
pd481 = (* (( (ptr) (* (( (ptr) gf←c76756)+180)/* var←c70900 */ ))+44) );
if (((word) ( *( (fPt) ((* (ptr) pd481 ))))(trajData←v24028, trajParts←v24000, pd481) > 0)) {
then0480: ;
SOURCE(35119, 401)
SOURCE(35333, 161)
if ((parts←v13164 != 0)) {
SOURCE(35351, 82)
{
word pd482;
pd482 = (* (( (ptr) (* (( (ptr) gf←c76756)+180)/* var←c70900 */ ))+43) );
aborted←v24084 = (word) ( *( (fPt) ((* (ptr) pd482 ))))(trajData←v24028, trajParts←v24000, (word) (( (bPt) &var←c76724)+20)
/* var←c74324 */ , pd482);
};
}
else {
SOURCE(35433, 61)
{
word pd483;
pd483 = (* (( (ptr) (* (( (ptr) gf←c76756)+180)/* var←c70900 */ ))+41) );
aborted←v24084 = (word) ( *( (fPt) ((* (ptr) pd483 ))))(trajData←v24028, (word) (( (bPt) &var←c76724)+20)/* var←c74324 */ , pd483)
;
};
};
SOURCE(35496, 22)
isUnique←v13236 = (unsigned) (0 == aborted←v24084);
}
else {
SOURCE(35529, 16)
isUnique←v13236 = 0;
};
};
/* removed tail goto */
(* (ptr) formal←c0574 ) = var←c76724.f4/* strokeEnd←v13208 */ ;
(* (( (ptr) formal←c0574)+1) ) = isUnique←v13236;
return;
}
static word DoCheckEnd←P5196(traj←v24204, seg←v24232, index←v24260, formal←c76788)
word traj←v24204;
word seg←v24232;
word index←v24260;
word formal←c76788;
{
word done←v24304;
formal←c76788 = (formal←c76788 - 20);
/* DoCheckEnd: */
SOURCE(35121, 18)
SOURCE(35121, 18)
done←v24304 = 0;
SOURCE(35214, 111)
if ((0 != (* (( (ptr) formal←c76788)+7) ))) {
SOURCE(35230, 45)
if (((* (( (ptr) seg←v24232)+3) ) != (* (( (ptr) formal←c76788)+4) ))) {
SOURCE(35264, 11)
done←v24304 = 1;
};
}
else {
SOURCE(35286, 12)
(* (( (ptr) formal←c76788)+7) ) = 1;
SOURCE(35300, 25)
(* (( (ptr) formal←c76788)+4) ) = (* (( (ptr) seg←v24232)+3) );
};
SOURCE(35121, 18)
return(done←v24304);
}
static void TrajSetStrokeJoint←P2160(slice←v13296, parts←v13324, strokeJoint←v13352, history←v13380)
word slice←v13296;
word parts←v13324;
word strokeJoint←v13352;
word history←v13380;
{
register ptr gf←c76820 = (ptr) &globalframe;
word trajData←v24332;
/* TrajSetStrokeJoint: */
SOURCE(35554, 187)
SOURCE(35666, 39)
trajData←v24332 = XR←Narrow((* (( (ptr) slice←v13296)+1) ), (* (( (ptr) gf←c76820)+11) ));
SOURCE(35707, 34)
(* (( (ptr) trajData←v24332)+6) ) = strokeJoint←v13352;
}
static void TrajGetStrokeJoint←P2220(formal←c0590, slice←v13440, parts←v13468)
word formal←c0590;
word slice←v13440;
word parts←v13468;
{
register ptr gf←c76852 = (ptr) &globalframe;
word strokeJoint←v13512;
word isUnique←v13540;
word trajData←v24376;
/* TrajGetStrokeJoint: */
SOURCE(35747, 190)
SOURCE(35747, 190)
isUnique←v13540 = 1;
SOURCE(35868, 39)
trajData←v24376 = XR←Narrow((* (( (ptr) slice←v13440)+1) ), (* (( (ptr) gf←c76852)+11) ));
SOURCE(35909, 28)
strokeJoint←v13512 = (* (( (ptr) trajData←v24376)+6) );
isUnique←v13540 = 1;
/* removed tail goto */
(* (ptr) formal←c0590 ) = strokeJoint←v13512;
(* (( (ptr) formal←c0590)+1) ) = isUnique←v13540;
return;
}
static void TrajSetStrokeColor←P2280(slice←v13600, parts←v13628, color←v13656, setHow←v13684, history←v13712)
word slice←v13600;
word parts←v13628;
word color←v13656;
word setHow←v13684;
word history←v13712;
{
register ptr gf←c76884 = (ptr) &globalframe;
word trajParts←v24420;
word trajData←v24448;
word segGen←v24476;
/* TrajSetStrokeColor: */
SOURCE(35943, 571)
SOURCE(36057, 36)
trajParts←v24420 = XR←Narrow(parts←v13628, (* (( (ptr) gf←c76884)+12) ));
SOURCE(36095, 39)
trajData←v24448 = XR←Narrow((* (( (ptr) slice←v13600)+1) ), (* (( (ptr) gf←c76884)+11) ));
SOURCE(36136, 136)
{
word tc484;
word pd485;
word pd486;
if ((parts←v13628 != 0)) {
pd485 = (* (( (ptr) (* (( (ptr) gf←c76884)+180)/* var←c70900 */ ))+42) );
tc484 = (word) ( *( (fPt) ((* (ptr) pd485 ))))(trajData←v24448, trajParts←v24420, pd485);
}
else {
pd486 = (* (( (ptr) (* (( (ptr) gf←c76884)+180)/* var←c70900 */ ))+40) );
tc484 = (word) ( *( (fPt) ((* (ptr) pd486 ))))(trajData←v24448, pd486);
};
segGen←v24476 = tc484;
};
SOURCE(36274, 240)
{
register word seg←v24520;
{
word pd487;
pd487 = (* (( (ptr) (* (( (ptr) gf←c76884)+180)/* var←c70900 */ ))+46) );
seg←v24520 = (word) ( *( (fPt) ((* (ptr) pd487 ))))(segGen←v24476, pd487);
};
lab←L100093: ;
if ((seg←v24520 != 0)) {
}
else {
goto lab←L100090;
};
SOURCE(36375, 139)
{
word var←c74388;
var←c74388 = setHow←v13684;
if ((var←c74388 == (* (( (ptr) gf←c76884)+52) ))) {
SOURCE(36402, 17)
(* (( (ptr) seg←v24520)+8) ) = color←v13656;
}
else {
if ((var←c74388 == (* (( (ptr) gf←c76884)+54) ))) {
SOURCE(36435, 81)
{
word newColor←v24564;
SOURCE(36437, 55)
{
word pd488;
pd488 = (* (( (ptr) (* (( (ptr) gf←c76884)+179)/* var←c70868 */ ))+36) );
newColor←v24564 = (word) ( *( (fPt) ((* (ptr) pd488 ))))((* (( (ptr) seg←v24520)+8) ), color←v13656, pd488);
};
SOURCE(36494, 20)
(* (( (ptr) seg←v24520)+8) ) = newColor←v24564;
};
}
else {
SOURCE(36530, 5)
(void) XR←RaiseUnnamedError();
};
};
};
{
word pd489;
pd489 = (* (( (ptr) (* (( (ptr) gf←c76884)+180)/* var←c70900 */ ))+46) );
seg←v24520 = (word) ( *( (fPt) ((* (ptr) pd489 ))))(segGen←v24476, pd489);
};
goto lab←L100093;
lab←L100090: ;
};
}
static void TrajGetStrokeColor←P2340(formal←c0618, slice←v13772, parts←v13800)
word formal←c0618;
word slice←v13772;
word parts←v13800;
{
W8 var←c76916;
register ptr gf←c76948 = (ptr) &globalframe;
/* declaration of color←v13844 skipped */
word isUnique←v13872;
/* declaration of var←c74420 skipped */
word trajParts←v24608;
word trajData←v24636;
/* declaration of found←v24664 skipped */
word aborted←v24692 = 0;
/* TrajGetStrokeColor: */
SOURCE(36550, 1262)
{
word tmpAddr490;
tmpAddr490 = (word) (( (ptr) &var←c76916)+5)/* var←c74420 */ ;
(* (ptr) tmpAddr490 ) = ( ((word) (fPt) DoCheckColor←P5400) );
(* (( (ptr) tmpAddr490) + 1) ) = 1;
};
SOURCE(36550, 1262)
var←c76916.f4/* color←v13844 */ = 0;
SOURCE(36550, 1262)
isUnique←v13872 = 1;
SOURCE(36659, 36)
trajParts←v24608 = XR←Narrow(parts←v13800, (* (( (ptr) gf←c76948)+12) ));
SOURCE(36697, 39)
trajData←v24636 = XR←Narrow((* (( (ptr) slice←v13772)+1) ), (* (( (ptr) gf←c76948)+11) ));
SOURCE(36738, 28)
var←c76916.f7/* found←v24664 */ = 0;
SOURCE(36768, 1044)
{
word pd492;
if ((parts←v13800 == 0)) { goto then0491;};
pd492 = (* (( (ptr) (* (( (ptr) gf←c76948)+180)/* var←c70900 */ ))+44) );
if (((word) ( *( (fPt) ((* (ptr) pd492 ))))(trajData←v24636, trajParts←v24608, pd492) > 0)) {
then0491: ;
SOURCE(36851, 422)
SOURCE(37082, 165)
if ((parts←v13800 != 0)) {
SOURCE(37100, 84)
{
word pd493;
pd493 = (* (( (ptr) (* (( (ptr) gf←c76948)+180)/* var←c70900 */ ))+43) );
aborted←v24692 = (word) ( *( (fPt) ((* (ptr) pd493 ))))(trajData←v24636, trajParts←v24608, (word) (( (bPt) &var←c76916)+20)
/* var←c74420 */ , pd493);
};
}
else {
SOURCE(37184, 63)
{
word pd494;
pd494 = (* (( (ptr) (* (( (ptr) gf←c76948)+180)/* var←c70900 */ ))+41) );
aborted←v24692 = (word) ( *( (fPt) ((* (ptr) pd494 ))))(trajData←v24636, (word) (( (bPt) &var←c76916)+20)/* var←c74420 */ , pd494)
;
};
};
SOURCE(37249, 22)
isUnique←v13872 = (unsigned) (0 == aborted←v24692);
}
else {
SOURCE(37280, 549)
{
word success←v24940 = 0;
word partType←v24968;
word jointNum←v24996;
word seg←v25024 = 0;
SOURCE(37358, 454)
if (((* (( (ptr) trajParts←v24608)+4) ) > 0)) {
SOURCE(37393, 112)
{
W10 var←c74452;
{
word pd495;
pd495 = (* (( (ptr) (* (( (ptr) gf←c76948)+180)/* var←c70900 */ ))+36) );
(void) ( *( (fPt) ((* (ptr) pd495 ))))((word) &var←c74452, slice←v13772, parts←v13800, pd495);
};
seg←v25024 = (* (( (ptr) &var←c74452)+8) );
jointNum←v24996 = (* (( (ptr) &var←c74452)+4) );
partType←v24968 = (* (( (ptr) &var←c74452)+1) );
success←v24940 = (* (ptr) &var←c74452 );
};
SOURCE(37507, 305)
if ((0 != success←v24940)) {
SOURCE(37525, 287)
{
word var←c74484;
var←c74484 = partType←v24968;
switch (var←c74484) {
case 1:
SOURCE(37557, 205)
if (((* (( (ptr) trajData←v24636)+1) ) > 0)) {
SOURCE(37589, 173)
/*1*/ {
/*1*/ word pd496;
/*1*/ pd496 = (* (( (ptr) (* (( (ptr) gf←c76948)+177)/* var←c70676 */ ))+38) );
/*1*/ if ((jointNum←v24996 <= (word) ( *( (fPt) ((* (ptr) pd496 ))))(trajData←v24636, pd496))) {
SOURCE(37640, 63)
/*1*/ {
/*1*/ word pd497;
/*1*/ pd497 = (* (( (ptr) (* (( (ptr) gf←c76948)+177)/* var←c70676 */ ))+30) );
/*1*/ var←c76916.f4/* color←v13844 */ = (* (( (ptr) ( *( (fPt) ((* (ptr) pd497 ))))(trajData←v24636, jointNum←v24996, pd497))+8)
/*1*/ );
/*1*/ };
/*1*/ }
/*1*/ else {
SOURCE(37703, 59)
/*1*/ {
/*1*/ word pd498;
/*1*/ pd498 = (* (( (ptr) (* (( (ptr) gf←c76948)+177)/* var←c70676 */ ))+30) );
/*1*/ var←c76916.f4/* color←v13844 */ = (* (( (ptr) ( *( (fPt) ((* (ptr) pd498 ))))(trajData←v24636, SGNCK((jointNum←v24996 - 1))
/*1*/ , pd498))+8) );
/*1*/ };
/*1*/ };
/*1*/ };
/*1*/ };
break;
case 2: case 3:
SOURCE(37795, 17)
var←c76916.f4/* color←v13844 */ = (* (( (ptr) seg←v25024)+8) );
break;
};
};
};
};
};
};
};
/* removed tail goto */
(* (ptr) formal←c0618 ) = var←c76916.f4/* color←v13844 */ ;
(* (( (ptr) formal←c0618)+1) ) = isUnique←v13872;
return;
}
static word DoCheckColor←P5400(traj←v24812, seg←v24840, index←v24868, formal←c77012)
word traj←v24812;
word seg←v24840;
word index←v24868;
word formal←c77012;
{
register ptr gf←c76980 = (ptr) &globalframe;
word done←v24912;
formal←c77012 = (formal←c77012 - 20);
/* DoCheckColor: */
SOURCE(36853, 20)
SOURCE(36853, 20)
done←v24912 = 0;
SOURCE(36948, 126)
if ((0 != (* (( (ptr) formal←c77012)+7) ))) {
SOURCE(36964, 68)
{
word pd499;
pd499 = (* (( (ptr) (* (( (ptr) gf←c76980)+178)/* var←c70804 */ ))+35) );
if ((0 == (word) ( *( (fPt) ((* (ptr) pd499 ))))((* (( (ptr) seg←v24840)+8) ), (* (( (ptr) formal←c77012)+4) ), pd499))) {
SOURCE(37021, 11)
done←v24912 = 1;
};
};
}
else {
SOURCE(37043, 12)
(* (( (ptr) formal←c77012)+7) ) = 1;
SOURCE(37057, 17)
(* (( (ptr) formal←c77012)+4) ) = (* (( (ptr) seg←v24840)+8) );
};
SOURCE(36853, 20)
return(done←v24912);
}
static void TrajSetArrows←P2400(slice←v13932, parts←v13960, leftDown←v13988, rightUp←v14016, history←v14044)
word slice←v13932;
word parts←v13960;
word leftDown←v13988;
word rightUp←v14016;
word history←v14044;
{
register ptr gf←c77044 = (ptr) &globalframe;
word trajData←v25068;
/* TrajSetArrows: */
SOURCE(37836, 202)
SOURCE(37942, 39)
trajData←v25068 = XR←Narrow((* (( (ptr) slice←v13932)+1) ), (* (( (ptr) gf←c77044)+11) ));
SOURCE(37983, 27)
(* (( (ptr) trajData←v25068)+7) ) = leftDown←v13988;
SOURCE(38012, 26)
(* (( (ptr) trajData←v25068)+8) ) = rightUp←v14016;
}
static void TrajGetArrows←P2460(formal←c0635, slice←v14104)
word formal←c0635;
word slice←v14104;
{
register ptr gf←c77076 = (ptr) &globalframe;
word leftDown←v14148;
word rightUp←v14176;
word trajData←v25112;
/* TrajGetArrows: */
SOURCE(38044, 164)
SOURCE(38044, 164)
leftDown←v14148 = 0;
SOURCE(38044, 164)
rightUp←v14176 = 0;
SOURCE(38125, 39)
trajData←v25112 = XR←Narrow((* (( (ptr) slice←v14104)+1) ), (* (( (ptr) gf←c77076)+11) ));
SOURCE(38166, 42)
leftDown←v14148 = (* (( (ptr) trajData←v25112)+7) );
rightUp←v14176 = (* (( (ptr) trajData←v25112)+8) );
/* removed tail goto */
(* (ptr) formal←c0635 ) = leftDown←v14148;
(* (( (ptr) formal←c0635)+1) ) = rightUp←v14176;
return;
}
static void TrajSetDashed←P2520(slice←v14236, parts←v14264, dashed←v14292, pattern←v14320, offset←v14348, length←v14376, history←v14404)
word slice←v14236;
word parts←v14264;
word dashed←v14292;
word pattern←v14320;
word offset←v14348;
word length←v14376;
word history←v14404;
{
register ptr gf←c77108 = (ptr) &globalframe;
word trajParts←v25156;
word trajData←v25184;
word segGen←v25212;
/* TrajSetDashed: */
SOURCE(38213, 569)
SOURCE(38380, 36)
trajParts←v25156 = XR←Narrow(parts←v14264, (* (( (ptr) gf←c77108)+12) ));
SOURCE(38418, 39)
trajData←v25184 = XR←Narrow((* (( (ptr) slice←v14236)+1) ), (* (( (ptr) gf←c77108)+11) ));
SOURCE(38459, 136)
{
word tc500;
word pd501;
word pd502;
if ((parts←v14264 != 0)) {
pd501 = (* (( (ptr) (* (( (ptr) gf←c77108)+180)/* var←c70900 */ ))+42) );
tc500 = (word) ( *( (fPt) ((* (ptr) pd501 ))))(trajData←v25184, trajParts←v25156, pd501);
}
else {
pd502 = (* (( (ptr) (* (( (ptr) gf←c77108)+180)/* var←c70900 */ ))+40) );
tc500 = (word) ( *( (fPt) ((* (ptr) pd502 ))))(trajData←v25184, pd502);
};
segGen←v25212 = tc500;
};
SOURCE(38597, 185)
{
register word seg←v25256;
{
word pd503;
pd503 = (* (( (ptr) (* (( (ptr) gf←c77108)+180)/* var←c70900 */ ))+46) );
seg←v25256 = (word) ( *( (fPt) ((* (ptr) pd503 ))))(segGen←v25212, pd503);
};
lab←L100099: ;
if ((seg←v25256 != 0)) {
}
else {
goto lab←L100096;
};
SOURCE(38698, 19)
(* (( (ptr) seg←v25256)+4) ) = dashed←v14292;
SOURCE(38719, 21)
(* (( (ptr) seg←v25256)+5) ) = pattern←v14320;
SOURCE(38742, 19)
(* (( (ptr) seg←v25256)+6) ) = offset←v14348;
SOURCE(38763, 19)
(* (( (ptr) seg←v25256)+7) ) = length←v14376;
{
word pd504;
pd504 = (* (( (ptr) (* (( (ptr) gf←c77108)+180)/* var←c70900 */ ))+46) );
seg←v25256 = (word) ( *( (fPt) ((* (ptr) pd504 ))))(segGen←v25212, pd504);
};
goto lab←L100099;
lab←L100096: ;
};
}
static void TrajGetDashed←P2580(formal←c0660, slice←v14464, parts←v14492)
word formal←c0660;
word slice←v14464;
word parts←v14492;
{
W11 var←c77140;
register ptr gf←c77172 = (ptr) &globalframe;
/* declaration of dashed←v14536 skipped */
/* declaration of pattern←v14564 skipped */
/* declaration of offset←v14592 skipped */
/* declaration of length←v14620 skipped */
word isUnique←v14648;
/* declaration of var←c74580 skipped */
word trajParts←v25300;
word trajData←v25328;
word segCount←v25356;
/* declaration of found←v25384 skipped */
word aborted←v25412 = 0;
/* TrajGetDashed: */
SOURCE(38797, 978)
{
word tmpAddr505;
tmpAddr505 = (word) (( (ptr) &var←c77140)+8)/* var←c74580 */ ;
(* (ptr) tmpAddr505 ) = ( ((word) (fPt) DoCheckDashes←P5604) );
(* (( (ptr) tmpAddr505) + 1) ) = 1;
};
SOURCE(38797, 978)
(* (( (ptr) &var←c77140)+4)/* dashed←v14536 */ ) = 0;
SOURCE(38797, 978)
(* (( (ptr) &var←c77140)+5)/* pattern←v14564 */ ) = 0;
SOURCE(38797, 978)
(* (( (ptr) &var←c77140)+6)/* offset←v14592 */ ) = (* (ptr) &fc95 );
SOURCE(38797, 978)
(* (( (ptr) &var←c77140)+7)/* length←v14620 */ ) = (* (ptr) &fc95 );
SOURCE(38797, 978)
isUnique←v14648 = 1;
SOURCE(38962, 36)
trajParts←v25300 = XR←Narrow(parts←v14492, (* (( (ptr) gf←c77172)+12) ));
SOURCE(39000, 39)
trajData←v25328 = XR←Narrow((* (( (ptr) slice←v14464)+1) ), (* (( (ptr) gf←c77172)+11) ));
SOURCE(39041, 71)
{
word pd506;
pd506 = (* (( (ptr) (* (( (ptr) gf←c77172)+180)/* var←c70900 */ ))+44) );
segCount←v25356 = (word) ( *( (fPt) ((* (ptr) pd506 ))))(trajData←v25328, trajParts←v25300, pd506);
};
SOURCE(39114, 28)
(* (( (ptr) &var←c77140)+10)/* found←v25384 */ ) = 0;
SOURCE(39144, 631)
if ((segCount←v25356 > 0)) {
SOURCE(39165, 568)
SOURCE(39540, 167)
if ((parts←v14492 != 0)) {
SOURCE(39558, 85)
{
word pd507;
pd507 = (* (( (ptr) (* (( (ptr) gf←c77172)+180)/* var←c70900 */ ))+43) );
aborted←v25412 = (word) ( *( (fPt) ((* (ptr) pd507 ))))(trajData←v25328, trajParts←v25300, (word) (( (bPt) &var←c77140)+32)
/* var←c74580 */ , pd507);
};
}
else {
SOURCE(39643, 64)
{
word pd508;
pd508 = (* (( (ptr) (* (( (ptr) gf←c77172)+180)/* var←c70900 */ ))+41) );
aborted←v25412 = (word) ( *( (fPt) ((* (ptr) pd508 ))))(trajData←v25328, (word) (( (bPt) &var←c77140)+32)/* var←c74580 */ , pd508)
;
};
};
SOURCE(39709, 22)
isUnique←v14648 = (unsigned) (0 == aborted←v25412);
}
else {
SOURCE(39740, 35)
(* (( (ptr) &var←c77140)+4)/* dashed←v14536 */ ) = 0;
(* (( (ptr) &var←c77140)+5)/* pattern←v14564 */ ) = 0;
(* (( (ptr) &var←c77140)+6)/* offset←v14592 */ ) = (* (ptr) &fc95 );
(* (( (ptr) &var←c77140)+7)/* length←v14620 */ ) = (* (ptr) &fc95 );
isUnique←v14648 = 0;
goto lab←L100100;
};
/* removed tail goto */
lab←L100100: ;
(* (ptr) formal←c0660 ) = (* (( (ptr) &var←c77140)+4)/* dashed←v14536 */ );
(* (( (ptr) formal←c0660)+1) ) = (* (( (ptr) &var←c77140)+5)/* pattern←v14564 */ );
(* (( (ptr) formal←c0660)+2) ) = (* (( (ptr) &var←c77140)+6)/* offset←v14592 */ );
(* (( (ptr) formal←c0660)+3) ) = (* (( (ptr) &var←c77140)+7)/* length←v14620 */ );
(* (( (ptr) formal←c0660)+4) ) = isUnique←v14648;
return;
}
static word DoCheckDashes←P5604(traj←v25532, seg←v25560, index←v25588, formal←c77236)
word traj←v25532;
word seg←v25560;
word index←v25588;
word formal←c77236;
{
register ptr gf←c77204 = (ptr) &globalframe;
word done←v25632;
formal←c77236 = (formal←c77236 - 32);
/* DoCheckDashes: */
SOURCE(39167, 21)
SOURCE(39167, 21)
done←v25632 = 0;
SOURCE(39263, 269)
if ((0 != (* (( (ptr) formal←c77236)+10) ))) {
SOURCE(39277, 155)
{
word x509;
word x510;
word x511;
word x512;
word pd513;
if (((* (( (ptr) seg←v25560)+4) ) != (* (( (ptr) formal←c77236)+4) ))) {
done←v25632 = (unsigned) 1;
}
else {
if ((0 != (* (( (ptr) seg←v25560)+4) ))) {
if (((
x509 = (* (( (ptr) seg←v25560)+6) ), *(float*)&x509
) != (
x510 = (* (( (ptr) formal←c77236)+6) ), *(float*)&x510
)) || ((
x511 = (* (( (ptr) seg←v25560)+7) ), *(float*)&x511
) != (
x512 = (* (( (ptr) formal←c77236)+7) ), *(float*)&x512
))) {
done←v25632 = (unsigned) 1;
}
else {
pd513 = (* (( (ptr) (* (( (ptr) gf←c77204)+179)/* var←c70868 */ ))+38) );
done←v25632 = (unsigned) (0 == (word) ( *( (fPt) ((* (ptr) pd513 ))))((* (( (ptr) seg←v25560)+5) ), (* (( (ptr) formal←c77236)+5)
), pd513));
};
}
else {
done←v25632 = (unsigned) 0;
};
};
};
}
else {
SOURCE(39434, 12)
(* (( (ptr) formal←c77236)+10) ) = 1;
SOURCE(39448, 19)
(* (( (ptr) formal←c77236)+4) ) = (* (( (ptr) seg←v25560)+4) );
SOURCE(39469, 19)
(* (( (ptr) formal←c77236)+6) ) = (* (( (ptr) seg←v25560)+6) );
SOURCE(39490, 19)
(* (( (ptr) formal←c77236)+7) ) = (* (( (ptr) seg←v25560)+7) );
SOURCE(39511, 21)
(* (( (ptr) formal←c77236)+5) ) = (* (( (ptr) seg←v25560)+5) );
};
SOURCE(39167, 21)
return(done←v25632);
}
static word TrajSetOrientation←P2640(slice←v14708, parts←v14736, orientation←v14764, history←v14792)
word slice←v14708;
word parts←v14736;
word orientation←v14764;
word history←v14792;
{
register ptr gf←c77268 = (ptr) &globalframe;
word success←v14836;
word trajData←v25660;
/* TrajSetOrientation: */
SOURCE(39781, 579)
SOURCE(39781, 579)
success←v14836 = 1;
SOURCE(39924, 39)
trajData←v25660 = XR←Narrow((* (( (ptr) slice←v14708)+1) ), (* (( (ptr) gf←c77268)+11) ));
SOURCE(39965, 395)
{
word var←c74612;
var←c74612 = orientation←v14764;
switch (var←c74612) {
case 0:
SOURCE(39997, 67)
{
word pd514;
pd514 = (* (( (ptr) (* (( (ptr) gf←c77268)+177)/* var←c70676 */ ))+22) );
if ((0 == (word) ( *( (fPt) ((* (ptr) pd514 ))))(slice←v14708, pd514))) {
SOURCE(40039, 25)
{
word pd515;
pd515 = (* (( (ptr) (* (( (ptr) gf←c77268)+177)/* var←c70676 */ ))+21) );
(void) ( *( (fPt) ((* (ptr) pd515 ))))(slice←v14708, pd515);
};
};
};
SOURCE(40066, 23)
(* (( (ptr) trajData←v25660)+9) ) = 1;
break;
case 1:
SOURCE(40145, 63)
{
word pd516;
pd516 = (* (( (ptr) (* (( (ptr) gf←c77268)+177)/* var←c70676 */ ))+22) );
if ((0 != (word) ( *( (fPt) ((* (ptr) pd516 ))))(slice←v14708, pd516))) {
SOURCE(40183, 25)
{
word pd517;
pd517 = (* (( (ptr) (* (( (ptr) gf←c77268)+177)/* var←c70676 */ ))+21) );
(void) ( *( (fPt) ((* (ptr) pd517 ))))(slice←v14708, pd517);
};
};
};
SOURCE(40210, 24)
(* (( (ptr) trajData←v25660)+9) ) = 0;
break;
case 2:
SOURCE(40294, 25)
{
word pd518;
pd518 = (* (( (ptr) (* (( (ptr) gf←c77268)+177)/* var←c70676 */ ))+21) );
(void) ( *( (fPt) ((* (ptr) pd518 ))))(slice←v14708, pd518);
};
SOURCE(40321, 39)
(* (( (ptr) trajData←v25660)+9) ) = (unsigned) (0 == (* (( (ptr) trajData←v25660)+9) ));
break;
default:
SOURCE(40376, 5)
(void) XR←RaiseUnnamedError();
break;
};
};
SOURCE(39781, 579)
return(success←v14836);
}
static void TrajGetOrientation←P2700(formal←c0678, slice←v14896, parts←v14924)
word formal←c0678;
word slice←v14896;
word parts←v14924;
{
register ptr gf←c77300 = (ptr) &globalframe;
word orientation←v14968;
word isUnique←v14996;
word trajData←v25704;
/* TrajGetOrientation: */
SOURCE(40387, 206)
SOURCE(40387, 206)
isUnique←v14996 = 1;
SOURCE(40508, 39)
trajData←v25704 = XR←Narrow((* (( (ptr) slice←v14896)+1) ), (* (( (ptr) gf←c77300)+11) ));
SOURCE(40549, 44)
if ((0 != (* (( (ptr) trajData←v25704)+9) ))) {
orientation←v14968 = 0;
}
else {
orientation←v14968 = 1;
};
isUnique←v14996 = 1;
/* removed tail goto */
(* (ptr) formal←c0678 ) = orientation←v14968;
(* (( (ptr) formal←c0678)+1) ) = isUnique←v14996;
return;
}
static word FetchSliceClass←P2760(type←v15056)
word type←v15056;
{
register ptr gf←c77332 = (ptr) &globalframe;
word class←v15100;
/* FetchSliceClass: */
SOURCE(40599, 257)
SOURCE(40599, 257)
class←v15100 = 0;
SOURCE(40673, 114)
{
register word l←v25748;
l←v25748 = (* (( (ptr) gf←c77332)+7)/* sliceClasses←v7144 */ );
lab←L100105: ;
if ((l←v25748 != 0)) {
}
else {
goto lab←L100102;
};
SOURCE(40740, 47)
if (((* (ptr) (* (ptr) l←v25748 ) ) == type←v15056)) {
SOURCE(40766, 21)
return((* (( (ptr) (* (ptr) l←v25748 ))+1) ));
};
l←v25748 = (* (( (ptr) l←v25748)+1) );
goto lab←L100105;
lab←L100102: ;
};
SOURCE(40798, 45)
{
word var←c0682;
var←c0682 = (* (( (ptr) gf←c77332)+55) );
(void) (XR←RaiseSignal((* (( (ptr) gf←c77332)+4)/* Problem←v5464 */ ), 0, (word) &var←c0682));
};
SOURCE(40845, 11)
return(0);
}
static void RegisterSliceClass←P2820(class←v15160)
word class←v15160;
{
register ptr gf←c77364 = (ptr) &globalframe;
word classDef←v25876;
/* RegisterSliceClass: */
SOURCE(40862, 183)
SOURCE(40918, 82)
classDef←v25876 = XR←NewObject(8, (* (( (ptr) gf←c77364)+19) ));
(* (ptr) classDef←v25876 ) = (* (ptr) class←v15160 );
(* (( (ptr) classDef←v25876)+1) ) = class←v15160;
SOURCE(41002, 43)
{
word var←c74708;
var←c74708 = XR←NewObject(8, (* (( (ptr) gf←c77364)+18) ));
(* (ptr) var←c74708 ) = classDef←v25876;
(* (( (ptr) var←c74708)+1) ) = (* (( (ptr) gf←c77364)+7)/* sliceClasses←v7144 */ );
(* (( (ptr) gf←c77364)+7)/* sliceClasses←v7144 */ ) = var←c74708;
};
}
static word DescriptorFromParts←P2880(slice←v15220, parts←v15248)
word slice←v15220;
word parts←v15248;
{
register ptr gf←c77396 = (ptr) &globalframe;
word sliceD←v15292;
/* DescriptorFromParts: */
SOURCE(41051, 213)
SOURCE(41051, 213)
sliceD←v15292 = 0;
SOURCE(41156, 49)
{
word var←c74740;
var←c74740 = XR←NewObject(8, (* (( (ptr) gf←c77396)+17) ));
(* (ptr) var←c74740 ) = slice←v15220;
(* (( (ptr) var←c74740)+1) ) = parts←v15248;
sliceD←v15292 = var←c74740;
};
SOURCE(41207, 57)
if ((0 != (* (( (ptr) gf←c77396)+5)/* testing←v6976 */ ))) {
SOURCE(41223, 41)
{
word var←c74772;
var←c74772 = XR←NewObject(8, (* (( (ptr) gf←c77396)+16) ));
(* (ptr) var←c74772 ) = sliceD←v15292;
(* (( (ptr) var←c74772)+1) ) = (* (( (ptr) gf←c77396)+6)/* masterSDlist←v7004 */ );
(* (( (ptr) gf←c77396)+6)/* masterSDlist←v7004 */ ) = var←c74772;
};
};
SOURCE(41051, 213)
return(sliceD←v15292);
}
static void UnlinkAllSliceDescriptors←P2940(list←v15436)
word list←v15436;
{
register ptr gf←c77428 = (ptr) &globalframe;
/* UnlinkAllSliceDescriptors: */
SOURCE(41376, 319)
SOURCE(41444, 222)
{
register word sdList←v25920;
sdList←v25920 = (* (( (ptr) gf←c77428)+6)/* masterSDlist←v7004 */ );
lab←L100109: ;
if ((sdList←v25920 != 0)) {
}
else {
goto lab←L100106;
};
SOURCE(41528, 31)
if (((* (ptr) (* (ptr) sdList←v25920 ) ) == 0)) {
SOURCE(41559, 4)
goto lab←L100108;
};
SOURCE(41565, 75)
if (((* (( (ptr) (* (ptr) (* (ptr) sdList←v25920 ) ))+1) ) != 0)) {
SOURCE(41601, 39)
{
word pd519;
pd519 = (* (( (ptr) (* (( (ptr) gf←c77428)+176)/* var←c70644 */ ))+71) );
(void) ( *( (fPt) ((* (ptr) pd519 ))))((* (ptr) ((* (ptr) sdList←v25920 )) ), pd519);
};
};
SOURCE(41642, 24)
(* (ptr) (* (ptr) sdList←v25920 ) ) = 0;
lab←L100108: ;
sdList←v25920 = (* (( (ptr) sdList←v25920)+1) );
goto lab←L100109;
lab←L100106: ;
};
SOURCE(41677, 18)
(* (( (ptr) gf←c77428)+6)/* masterSDlist←v7004 */ ) = 0;
}
static void UnlinkSlice←P3000(slice←v15580)
word slice←v15580;
{
/* UnlinkSlice: */
SOURCE(41758, 815)
SOURCE(41802, 771)
if ( ( (slice←v15580 != 0) ? ((* (( (ptr) slice←v15580)+1) ) != 0) : 0 ) ) {
SOURCE(41875, 75)
if (((* (( (ptr) slice←v15580)+7) ) != 0)) {
SOURCE(41913, 37)
(* (ptr) (* (( (ptr) slice←v15580)+7) ) ) = 0;
};
SOURCE(41952, 69)
if (((* (( (ptr) slice←v15580)+8) ) != 0)) {
SOURCE(41987, 34)
(* (ptr) (* (( (ptr) slice←v15580)+8) ) ) = 0;
};
SOURCE(42023, 75)
if (((* (( (ptr) slice←v15580)+9) ) != 0)) {
SOURCE(42061, 37)
(* (ptr) (* (( (ptr) slice←v15580)+9) ) ) = 0;
};
SOURCE(42100, 73)
if (((* (( (ptr) slice←v15580)+10) ) != 0)) {
SOURCE(42137, 36)
(* (ptr) (* (( (ptr) slice←v15580)+10) ) ) = 0;
};
SOURCE(42175, 65)
if (((* (( (ptr) slice←v15580)+11) ) != 0)) {
SOURCE(42208, 32)
(* (ptr) (* (( (ptr) slice←v15580)+11) ) ) = 0;
};
SOURCE(42242, 65)
if (((* (( (ptr) slice←v15580)+12) ) != 0)) {
SOURCE(42275, 32)
(* (ptr) (* (( (ptr) slice←v15580)+12) ) ) = 0;
};
SOURCE(42309, 157)
(* (( (ptr) slice←v15580)+12) ) = 0;
(* (( (ptr) slice←v15580)+11) ) = 0;
(* (( (ptr) slice←v15580)+10) ) = 0;
(* (( (ptr) slice←v15580)+9) ) = 0;
(* (( (ptr) slice←v15580)+8) ) = 0;
(* (( (ptr) slice←v15580)+7) ) = 0;
SOURCE(42468, 17)
(* (ptr) slice←v15580 ) = 0;
SOURCE(42488, 16)
(* (( (ptr) slice←v15580)+1) ) = 0;
SOURCE(42507, 18)
(* (( (ptr) slice←v15580)+2) ) = 0;
SOURCE(42528, 20)
(* (( (ptr) slice←v15580)+15) ) = 0;
SOURCE(42553, 20)
(* (( (ptr) slice←v15580)+13) ) = 0;
};
}
static word EntitiesInSlice←P3060(slice←v15640)
word slice←v15640;
{
register ptr gf←c77460 = (ptr) &globalframe;
word entityGenerator←v15684;
/* EntitiesInSlice: */
SOURCE(42584, 140)
SOURCE(42584, 140)
entityGenerator←v15684 = 0;
SOURCE(42674, 50)
{
word var←c0696;
var←c0696 = (* (( (ptr) gf←c77460)+60) );
(void) (XR←RaiseSignal((* (( (ptr) gf←c77460)+4)/* Problem←v5464 */ ), 0, (word) &var←c0696));
};
SOURCE(42584, 140)
return(entityGenerator←v15684);
}
static void Init←P3120()
{
register ptr gf←c77492 = (ptr) &globalframe;
word textDef←v26048;
word ipDef←v26076;
word boxDef←v26104;
word circleDef←v26132;
word outlineDef←v26160;
word clusterDef←v26188;
word trajDef←v26216;
/* Init: */
SOURCE(42730, 936)
SOURCE(42748, 100)
{
word var←c74804;
word var←c74836;
{
word pd520;
pd520 = (* (( (ptr) (* (( (ptr) gf←c77492)+176)/* var←c70644 */ ))+19) );
var←c74804 = (word) ( *( (fPt) ((* (ptr) pd520 ))))(pd520);
};
var←c74836 = XR←NewObject(8, (* (( (ptr) gf←c77492)+19) ));
(* (ptr) var←c74836 ) = (* (( (ptr) gf←c77492)+61) );
(* (( (ptr) var←c74836)+1) ) = var←c74804;
textDef←v26048 = var←c74836;
};
SOURCE(42850, 94)
{
word var←c74868;
word var←c74900;
{
word pd521;
pd521 = (* (( (ptr) (* (( (ptr) gf←c77492)+176)/* var←c70644 */ ))+54) );
var←c74868 = (word) ( *( (fPt) ((* (ptr) pd521 ))))(pd521);
};
var←c74900 = XR←NewObject(8, (* (( (ptr) gf←c77492)+19) ));
(* (ptr) var←c74900 ) = (* (( (ptr) gf←c77492)+62) );
(* (( (ptr) var←c74900)+1) ) = var←c74868;
ipDef←v26076 = var←c74900;
};
SOURCE(42946, 97)
{
word var←c74932;
word var←c74964;
{
word pd522;
pd522 = (* (( (ptr) (* (( (ptr) gf←c77492)+176)/* var←c70644 */ ))+43) );
var←c74932 = (word) ( *( (fPt) ((* (ptr) pd522 ))))(pd522);
};
var←c74964 = XR←NewObject(8, (* (( (ptr) gf←c77492)+19) ));
(* (ptr) var←c74964 ) = (* (( (ptr) gf←c77492)+63) );
(* (( (ptr) var←c74964)+1) ) = var←c74932;
boxDef←v26104 = var←c74964;
};
SOURCE(43045, 106)
{
word var←c74996;
word var←c75028;
{
word pd523;
pd523 = (* (( (ptr) (* (( (ptr) gf←c77492)+176)/* var←c70644 */ ))+51) );
var←c74996 = (word) ( *( (fPt) ((* (ptr) pd523 ))))(pd523);
};
var←c75028 = XR←NewObject(8, (* (( (ptr) gf←c77492)+19) ));
(* (ptr) var←c75028 ) = (* (( (ptr) gf←c77492)+38) );
(* (( (ptr) var←c75028)+1) ) = var←c74996;
circleDef←v26132 = var←c75028;
};
SOURCE(43153, 109)
{
word var←c75060;
word var←c75092;
{
word pd524;
pd524 = (* (( (ptr) (* (( (ptr) gf←c77492)+176)/* var←c70644 */ ))+64) );
var←c75060 = (word) ( *( (fPt) ((* (ptr) pd524 ))))(pd524);
};
var←c75092 = XR←NewObject(8, (* (( (ptr) gf←c77492)+19) ));
(* (ptr) var←c75092 ) = (* (( (ptr) gf←c77492)+64) );
(* (( (ptr) var←c75092)+1) ) = var←c75060;
outlineDef←v26160 = var←c75092;
};
SOURCE(43264, 109)
{
word var←c75124;
word var←c75156;
{
word pd525;
pd525 = (* (( (ptr) (* (( (ptr) gf←c77492)+176)/* var←c70644 */ ))+17) );
var←c75124 = (word) ( *( (fPt) ((* (ptr) pd525 ))))(pd525);
};
var←c75156 = XR←NewObject(8, (* (( (ptr) gf←c77492)+19) ));
(* (ptr) var←c75156 ) = (* (( (ptr) gf←c77492)+65) );
(* (( (ptr) var←c75156)+1) ) = var←c75124;
clusterDef←v26188 = var←c75156;
};
SOURCE(43375, 100)
{
word var←c75188;
word var←c75220;
{
word pd526;
pd526 = (* (( (ptr) (* (( (ptr) gf←c77492)+176)/* var←c70644 */ ))+62) );
var←c75188 = (word) ( *( (fPt) ((* (ptr) pd526 ))))(pd526);
};
var←c75220 = XR←NewObject(8, (* (( (ptr) gf←c77492)+19) ));
(* (ptr) var←c75220 ) = (* (( (ptr) gf←c77492)+66) );
(* (( (ptr) var←c75220)+1) ) = var←c75188;
trajDef←v26216 = var←c75220;
};
SOURCE(43477, 87)
{
word var←c75252;
word var←c75284;
var←c75252 = XR←NewObject(8, (* (( (ptr) gf←c77492)+18) ));
var←c75284 = var←c75252;
(* (ptr) var←c75284 ) = trajDef←v26216;
(* (( (ptr) var←c75284)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c77492)+18) ));
var←c75284 = (* (( (ptr) var←c75284)+1) );
(* (ptr) var←c75284 ) = outlineDef←v26160;
(* (( (ptr) var←c75284)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c77492)+18) ));
var←c75284 = (* (( (ptr) var←c75284)+1) );
(* (ptr) var←c75284 ) = clusterDef←v26188;
(* (( (ptr) var←c75284)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c77492)+18) ));
var←c75284 = (* (( (ptr) var←c75284)+1) );
(* (ptr) var←c75284 ) = circleDef←v26132;
(* (( (ptr) var←c75284)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c77492)+18) ));
var←c75284 = (* (( (ptr) var←c75284)+1) );
(* (ptr) var←c75284 ) = boxDef←v26104;
(* (( (ptr) var←c75284)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c77492)+18) ));
var←c75284 = (* (( (ptr) var←c75284)+1) );
(* (ptr) var←c75284 ) = ipDef←v26076;
(* (( (ptr) var←c75284)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c77492)+18) ));
var←c75284 = (* (( (ptr) var←c75284)+1) );
(* (ptr) var←c75284 ) = textDef←v26048;
(* (( (ptr) gf←c77492)+7)/* sliceClasses←v7144 */ ) = var←c75252;
};
SOURCE(43567, 48)
{
word pd527;
pd527 = (* (( (ptr) (* (( (ptr) gf←c77492)+183)/* var←c71476 */ ))+5) );
(* (( (ptr) gf←c77492)+8)/* printPrefix←v7172 */ ) = (word) ( *( (fPt) ((* (ptr) pd527 ))))((* (( (ptr) gf←c77492)+67) ), 0, 2147483647, pd527)
;
};
SOURCE(43617, 49)
{
word pd528;
pd528 = (* (( (ptr) (* (( (ptr) gf←c77492)+183)/* var←c71476 */ ))+5) );
(* (( (ptr) gf←c77492)+9)/* screenPrefix←v7200 */ ) = (word) ( *( (fPt) ((* (ptr) pd528 ))))((* (( (ptr) gf←c77492)+68)
), 0, 2147483647, pd528);
};
}
/* file: GGSliceImplE, module: GGSliceImplE, compiled at: July 11, 1993 8:18:34 pm PDT */
extern void XR←install←GGSliceImplE() {
NoName←Q5760();
}
extern void XR←run←GGSliceImplE() { XR←Start(&globalframe); }