/* Generated with C2C (Cedar To C)*/ /* Copyright (C) 1993 by Xerox Corporation. All rights reserved. */ /* time: July 11, 1993 7:59:22 pm PDT */ /* C2C version: April 20, 1993 (sun4) */ /* ref-counting: off */ /* file: GGMultiGravityImpl, module: GGMultiGravityImpl */ /* switches: bcfhklnouw */ #include <cedar/InstallationSupport.h> #include <cedar/CedarExtra.h> static char versionStamp[] = "@(#)mob←version [215622169,11083639] GGMultiGravityImpl"; typedef unsigned word, *ptr; typedef unsigned char byte, *bPt; typedef unsigned short half, *hPt; typedef struct {word f0, f1;} W2; typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8; typedef struct {W8 f; W8 r;} W16; typedef struct {W16 f; word r;} W17; typedef W2 *W2Pt; typedef word (*fPt)(); typedef struct {word f0, f1, f2, f3, f4, f5;} W6; typedef struct {word f0, f1, f2, f3;} W4; typedef struct {W8 f; W4 r;} W12; typedef struct {word f0, f1, f2, f3, f4;} W5; typedef struct {W8 f; W5 r;} W13; typedef struct {W16 f; W2 r;} W18; typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7; typedef struct {word f0, f1, f2;} W3; typedef struct {W16 f; W6 r;} W22; typedef struct {W8 f; W2 r;} W10; typedef struct {W8 f; word r;} W9; typedef W9 *W9Pt; typedef W7 *W7Pt; typedef W4 *W4Pt; typedef W8 *W8Pt; typedef W3 *W3Pt; typedef W6 *W6Pt; #define SOURCE(p, l) /* source p, l */ static float fc58 = 0.0; static float fc59 = -1.0; #define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) ) static float fc65 = 0.072; #define IOP2(op, x, y) ( (word) ((x) op (y)) ) #define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i ) #define MIN(cast, x, y) ( ( cast x) < ( cast y) ? (x) : (y) ) static float fc98 = 2.0; #define FABS(f, t) ( ((t=(f)) >= (float) 0.0) ? (t) : (- (t)) ) static float fc191 = 1.0e-5; #define FMIN(x, y, tx, ty) ( (tx=((float) x)) <= (ty=((float) y)) ? tx : ty ) #define FMAX(x, y, tx, ty) ( (tx=((float) x)) >= (ty=((float) y)) ? tx : ty ) #define MAX(cast, x, y) ( ( cast x) > ( cast y) ? (x) : (y) ) static float fc358 = 0.5; static void NoName←Q7344(); static void GGMultiGravityImpl←P0(); static void Map←P60(); static word NoName←Q7404(); static void PointsPreferred←P120(); static void LinesPreferred←P180(); static void FacesPreferred←P240(); static void PrepareWinner←P300(); static word EmptyCycler←P360(); static word MapCycler←P420(); static word NoName←Q7464(); static word CopyVEF←P480(); static word PointsPreferredCycler←P540(); static word LinesPreferredCycler←P600(); static word FacesPreferredCycler←P660(); static void FirstFeature←P720(); static void NextFeature←P780(); static void PreviousFeature←P840(); static void GetFeature←P900(); static void MultiMap←P960(); static word NoName←Q7524(); static void MultiFacesPreferred←P1020(); static void MultiLinesPreferred←P1080(); static void MultiPointsPreferred←P1140(); static void VertsInNeighborhoodPlus←P1200(); static void ProcessPoint←P3948(); static void ProcessSlice←P4008(); static word DoForSliceTrigger←P4068(); static word FindIntersections←P1260(); static word FindMidpoints←P1320(); static void CurvesInNeighborhoodPlus←P1380(); static void ProcessLine←P4560(); static void ProcessCircle←P4620(); static void QProjectedOntoCircle←P5004(); static void ProcessSlice←P4680(); static word ProcessSlopeLine←P4740(); static word DoForSceneSlice←P4800(); static void FacesInNeighborhoodPlus←P1440(); static void ProcessSlice←P5064(); static word DoForSceneSlice←P5124(); static word BestFacesFromPool←P1500(); static word BestCurvesFromPool←P1560(); static word BestPointsFromPool←P1620(); static word AddNeighbor←P1680(); static word AddFace←P1740(); static void NearPointsFromPoints←P1800(); static void MergePointsAndCurves←P1860(); static void MergeByOverlapAndDistance←P1920(); static void SortPoints←P1980(); static void SortCurves←P2040(); static void SortFaces←P2100(); static void SortByOverlap←P2160(); static void ComputeMidpoint←P2220(); static void ClassifyCurve←P2280(); static void CurveMeetsCurve←P2340(); static void NoOpI←P2400(); static void LinLinI←P2460(); static void CirLinI←P2520(); static void CirCirI←P2580(); static void EdgLinI←P2640(); static void EdgCirI←P2700(); static void EdgEdgI←P2760(); static void ArcLinI←P2820(); static void ArcCirI←P2880(); static void ArcEdgI←P2940(); static void ArcArcI←P3000(); static void CubLinI←P3060(); static void CubicMeetsEdge←P3120(); static void CubEdgI←P3180(); static void SlcLinI←P3240(); static void SlcCirI←P3300(); static word NewMultiGravityPool←P3360(); static void NoName←Q7584(); static void NoName←Q7644(); static void NoName←Q7704(); static struct {unsigned f; char r[4];} string1 = {131076, "\216\251\000"}; static struct {unsigned f; char r[4];} string2 = {65537, "\001\000\000"}; static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\014\332\042\031\300\000\251\037\167\100\214\000\000"}; static struct {unsigned f; char r[12];} string4 = {589833, "\011\000\004\100\340\040\000\040\001\000\000"}; static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\223\145\303\043\300\372\023\025\003\101\304\000\000"}; static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\223\145\303\043\300\372\023\025\003\101\270\000\000"}; static struct {unsigned f; char r[12];} string7 = {524296, "\011\000\004\000\040\000\004\001\000\000\000"}; static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\223\145\303\043\300\372\023\025\003\101\254\000\000"}; static struct {unsigned f; char r[4];} string9 = {196611, "\004@`"}; static struct {unsigned f; char r[16];} string10 = {851984, "\257\300\223\145\303\043\300\372\023\025\003\100\370\000\000"}; static struct {unsigned f; char r[16];} string11 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\100\310\000\000"}; static struct {unsigned f; char r[4];} string12 = {131074, "\004\003\000"}; static struct {unsigned f; char r[16];} string13 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\107\270\000\000"}; static struct {unsigned f; char r[4];} string14 = {131074, "\003\001\000"}; static struct {unsigned f; char r[16];} string15 = {851984, "\257\300\223\145\303\043\300\372\023\025\003\101\224\000\000"}; static struct {unsigned f; char r[4];} string16 = {131074, "\004\030\000"}; static struct {unsigned f; char r[16];} string17 = {851984, "\257\300\223\145\303\043\300\372\023\025\003\101\144\000\000"}; static struct {unsigned f; char r[4];} string18 = {131074, "\004\005\000"}; static struct {unsigned f; char r[16];} string19 = {851984, "\257\300\241\203\324\306\300\306\173\161\152\100\200\000\000"}; static struct {unsigned f; char r[16];} string20 = {851984, "\257\300\223\145\303\043\300\372\023\025\003\101\174\000\000"}; static struct {unsigned f; char r[16];} string21 = {851984, "\257\300\014\332\042\031\300\000\251\037\167\100\200\000\000"}; static struct {unsigned f; char r[12];} string22 = {589833, "\011\000\004A \000(\001\000\000"}; static struct {unsigned f; char r[20];} string23 = {1179668, "\260\006\005\146\151\162\163\164\232\005\004\162\145\163\164\214\232\261\000"}; static struct {unsigned f; char r[16];} string24 = {851984, "\257\300\014\332\042\031\300\000\251\037\167\100\230\000\000"}; static struct {unsigned f; char r[4];} string25 = {131074, "\004\007\000"}; static struct {unsigned f; char r[16];} string26 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"}; static struct {unsigned f; char r[44];} string27 = {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];} string28 = {131074, "\003\002\000"}; static struct {unsigned f; char r[16];} string29 = {851984, "\257\300\241\203\324\306\300\306\173\161\152\100\164\000\000"}; static struct {unsigned f; char r[16];} string30 = {851984, "\257\300\012\121\313\233\300\012\365\115\261\100\200\000\000"}; static struct {unsigned f; char r[4];} string31 = {196611, "\004A\001"}; static struct {unsigned f; char r[16];} string32 = {851984, "\257\300\012\121\313\233\300\012\365\115\261\100\164\000\000"}; static struct {unsigned f; char r[16];} string33 = {851984, "\257\300\176\067\335\331\300\021\260\123\113\100\200\000\000"}; static struct {unsigned f; char r[20];} string34 = {1048596, "Impossible case.\000\000\000"}; static struct {unsigned f; char r[16];} string35 = {786448, "FaceOverflow\000\000\000"}; static struct {unsigned f; char r[16];} string36 = {851984, "CurveOverflow\000\000"}; static struct {unsigned f; char r[16];} string37 = {851984, "PointOverflow\000\000"}; static struct {unsigned f; char r[12];} string38 = {524300, "Gargoyle\000\000\000"}; static struct {unsigned f; char r[12];} string39 = {524300, "MultiMap\000\000\000"}; static struct {unsigned f; char r[16];} string40 = {851984, "\257\300\014\332\042\031\300\000\251\037\167\100\164\000\000"}; static struct {unsigned f; char r[8];} string41 = {393222, "\006\001A@\004?\000"}; static struct {unsigned f; char r[16];} string42 = {851984, "\257\300\006<7[\300;CV\364@h\000\000"}; static struct {unsigned f; char r[16];} string43 = {851984, "\257\300\325\040\343\357\300\152\277\324\231\100\150\000\000"}; static struct {unsigned f; char r[16];} string44 = {851984, "\257\300\136\002\175\264\300\016\031\370\241\100\150\000\000"}; static struct {unsigned f; char r[16];} string45 = {851984, "\257\300\223\031\346\162\300\275\253\133\335\100\150\000\000"}; static struct {unsigned f; char r[16];} string46 = {851984, "\257\300IKM\275\300Y\0222&@h\000\000"}; static struct {unsigned f; char r[16];} string47 = {851984, "\257\300\301\241\007\150\300\032\111\265\237\100\150\000\000"}; static struct {unsigned f; char r[16];} string48 = {851984, "\257\300\347\101\365\007\300\150\102\366\020\100\150\000\000"}; static struct {unsigned f; char r[16];} string49 = {851984, "\257\300\336\025\013\356\300\216\115\352\271\100\150\000\000"}; static struct {unsigned f; char r[16];} string50 = {851984, "\257\300\206\055\004\241\300\261\334\001\116\100\150\000\000"}; static struct {unsigned f; char r[16];} string51 = {851984, "\257\300\103\306\166\071\300\047\126\012\237\100\150\000\000"}; static struct {unsigned f; char r[16];} string52 = {851984, "\257\300\245\247\302\156\300\052\156\325\023\100\150\000\000"}; static struct {unsigned f; char r[16];} string53 = {851984, "\257\300\004\142\347\110\300\363\053\254\345\100\150\000\000"}; static struct {unsigned f; char r[16];} string54 = {851984, "\257\300\172\265\057\072\300\145\211\260\126\100\150\000\000"}; static struct { word f0[4]; word f4; word f5[82]; word f87; word f88; word f89; word f90; word f91; word f92; word f93; word f94; word f95; word f96; word f97; word f98; word f99; word f100; word f101; word f102; word f103; word f104; word f105; word f106; word f107; word f108; word f109; word f110; word f111; word f112; word f113; word f114; word f115; word f116; word f117; word f118; word f119; word f120; word f121; word f122; word f123; word f124; word f125; word f126; word f127; word f128; word f129; word f130; word f131; word f132; word f133; word f134; word f135; word f136; word f137; word f138; word f139; word f140; word f141; word f142; word f143; word f144; word f145; word f146; word f147; word f148; word f149; word f150; word f151; word f152; word f153; word f154; word f155; word f156; word f157; word f158; word f159; word f160; word f161; word f162; word f163; word f164; word f165; word f166; word f167; word f168; word f169; word f170; word f171; word f172; word f173; word f174; word f175; word f176; word f177; word f178; word f179; word f180; word f181; word f182; word f183; word f184; word f185; word f186; word f187; word f188; word f189; word f190; word f191; word f192; word f193; word f194; word f195; word f196; word f197; word f198; word f199; word f200[14]; } globalframe = { {0}, (word) 20, {0}, (word) NewMultiGravityPool←P3360, 0, (word) SlcCirI←P3300, 0, (word) SlcLinI←P3240, 0, (word) CubEdgI←P3180, 0, (word) CubicMeetsEdge←P3120, 0, (word) CubLinI←P3060, 0, (word) ArcArcI←P3000, 0, (word) ArcEdgI←P2940, 0, (word) ArcCirI←P2880, 0, (word) ArcLinI←P2820, 0, (word) EdgEdgI←P2760, 0, (word) EdgCirI←P2700, 0, (word) EdgLinI←P2640, 0, (word) CirCirI←P2580, 0, (word) CirLinI←P2520, 0, (word) LinLinI←P2460, 0, (word) NoOpI←P2400, 0, (word) CurveMeetsCurve←P2340, 0, (word) ClassifyCurve←P2280, 0, (word) ComputeMidpoint←P2220, 0, (word) SortByOverlap←P2160, 0, (word) SortFaces←P2100, 0, (word) SortCurves←P2040, 0, (word) SortPoints←P1980, 0, (word) MergeByOverlapAndDistance←P1920, 0, (word) MergePointsAndCurves←P1860, 0, (word) NearPointsFromPoints←P1800, 0, (word) AddFace←P1740, 0, (word) AddNeighbor←P1680, 0, (word) BestPointsFromPool←P1620, 0, (word) BestCurvesFromPool←P1560, 0, (word) BestFacesFromPool←P1500, 0, (word) FacesInNeighborhoodPlus←P1440, 0, (word) CurvesInNeighborhoodPlus←P1380, 0, (word) FindMidpoints←P1320, 0, (word) FindIntersections←P1260, 0, (word) VertsInNeighborhoodPlus←P1200, 0, (word) MultiPointsPreferred←P1140, 0, (word) MultiLinesPreferred←P1080, 0, (word) MultiFacesPreferred←P1020, 0, (word) MultiMap←P960, 0, (word) GetFeature←P900, 0, (word) PreviousFeature←P840, 0, (word) NextFeature←P780, 0, (word) FirstFeature←P720, 0, (word) FacesPreferredCycler←P660, 0, (word) LinesPreferredCycler←P600, 0, (word) PointsPreferredCycler←P540, 0, (word) CopyVEF←P480, 0, (word) MapCycler←P420, 0, (word) EmptyCycler←P360, 0, (word) PrepareWinner←P300, 0, (word) FacesPreferred←P240, 0, (word) LinesPreferred←P180, 0, (word) PointsPreferred←P120, 0, (word) Map←P60, 0, (word) GGMultiGravityImpl←P0, {0} }; static void NoName←Q7344() { register ptr gf←c0960 = (ptr) &globalframe; word var←c59352; (* (( (ptr) gf←c0960)+54) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2); (* (( (ptr) gf←c0960)+57) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4); (* (( (ptr) gf←c0960)+58) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string2); (* (( (ptr) gf←c0960)+59) ) = (word) XR←GetTypeIndex((word) &string6, 0, (word) &string7); (* (( (ptr) gf←c0960)+60) ) = (word) XR←GetTypeIndex((word) &string8, 0, (word) &string9); (* (( (ptr) gf←c0960)+62) ) = (word) XR←GetTypeIndex((word) &string10, 0, (word) &string9); (* (( (ptr) gf←c0960)+64) ) = (word) XR←GetTypeIndex((word) &string11, 0, (word) &string12); (* (( (ptr) gf←c0960)+65) ) = (word) XR←GetTypeIndex((word) &string13, 0, (word) &string14); (* (( (ptr) gf←c0960)+66) ) = (word) XR←GetTypeIndex((word) &string15, 0, (word) &string16); (* (( (ptr) gf←c0960)+67) ) = (word) XR←GetTypeIndex((word) &string17, 0, (word) &string18); (* (( (ptr) gf←c0960)+68) ) = (word) XR←GetTypeIndexS((word) (&string19)); (* (( (ptr) gf←c0960)+69) ) = (word) XR←GetTypeIndex((word) &string20, 0, (word) &string12); (* (( (ptr) gf←c0960)+70) ) = (word) XR←GetTypeIndex((word) &string21, 0, (word) &string22); (* (( (ptr) gf←c0960)+71) ) = (word) XR←GetTypeIndex((word) &string23, 0, (word) &string14); (* (( (ptr) gf←c0960)+72) ) = (word) XR←GetTypeIndex((word) &string24, 0, (word) &string25); (* (( (ptr) gf←c0960)+74) ) = (word) XR←GetTypeIndex((word) &string26, 0, (word) &string2); (* (( (ptr) gf←c0960)+75) ) = (word) XR←GetTypeIndex((word) &string27, 0, (word) &string28); (* (( (ptr) gf←c0960)+76) ) = (word) XR←GetTypeIndex((word) &string29, 0, (word) &string2); (* (( (ptr) gf←c0960)+77) ) = (word) XR←GetTypeIndex((word) &string30, 0, (word) &string31); (* (( (ptr) gf←c0960)+78) ) = (word) XR←GetTypeIndexS((word) (&string32)); (* (( (ptr) gf←c0960)+79) ) = (word) XR←GetTypeIndexS((word) (&string33)); (* (ptr) (( (bPt) gf←c0960)+320) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0960)+74) ), (word) &string34); (* (ptr) (( (bPt) gf←c0960)+324) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0960)+54) ), (word) &string35); (* (ptr) (( (bPt) gf←c0960)+328) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0960)+54) ), (word) &string36); (* (ptr) (( (bPt) gf←c0960)+332) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0960)+54) ), (word) &string37); (* (ptr) (( (bPt) gf←c0960)+336) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0960)+54) ), (word) &string38); (* (ptr) (( (bPt) gf←c0960)+340) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0960)+54) ), (word) &string39); (void) XR←DeclareGlobalFrame((word) "GGMultiGravityImpl", &globalframe, (word) XR←GetTypeIndex((word) &string40, 0, (word) &string41) , (word) (( (bPt) gf←c0960)+796)/* var←c51384 */ ); var←c59352 = (word) XR←ImportInterface((word) "CodeTimer", (word) XR←GetTypeIndexS((word) (&string42)), 21); (* (( (ptr) gf←c0960)+202)/* var←c51480 */ ) = var←c59352; (void) XR←ImportProcS(var←c59352, 526850); (void) XR←ImportProcS(var←c59352, 526338); var←c59352 = (word) XR←ImportInterface((word) "CubicPaths", (word) XR←GetTypeIndexS((word) (&string43)), 13); (* (( (ptr) gf←c0960)+212)/* var←c58168 */ ) = var←c59352; (void) XR←ImportProcS(var←c59352, 673975300); var←c59352 = (word) XR←ImportInterface((word) "GGAlign", (word) XR←GetTypeIndexS((word) (&string44)), 46); (* (( (ptr) gf←c0960)+203)/* var←c53176 */ ) = var←c59352; (void) XR←ImportProcS(var←c59352, 528642); (void) XR←ImportProcS(var←c59352, 525570); (void) XR←ImportProcS(var←c59352, 67371777); (void) XR←ImportProcS(var←c59352, 67374849); var←c59352 = (word) XR←ImportInterface((word) "GGCaret", (word) XR←GetTypeIndexS((word) (&string45)), 13); (* (( (ptr) gf←c0960)+204)/* var←c53976 */ ) = var←c59352; (void) XR←ImportProcS(var←c59352, 134482945); (void) XR←ImportProcS(var←c59352, 134482689); (void) XR←ImportProcS(var←c59352, 67371777); var←c59352 = (word) XR←ImportInterface((word) "GGCircles", (word) XR←GetTypeIndexS((word) (&string46)), 29); (* (( (ptr) gf←c0960)+211)/* var←c56888 */ ) = var←c59352; (void) XR←ImportProcS(var←c59352, 403180546); (void) XR←ImportProcS(var←c59352, 403180290); (void) XR←ImportProcS(var←c59352, 403179778); (void) XR←ImportProcS(var←c59352, 403180034); (void) XR←ImportProcS(var←c59352, 403179266); (void) XR←ImportProcS(var←c59352, 403179522); (void) XR←ImportProcS(var←c59352, 403179010); var←c59352 = (word) XR←ImportInterface((word) "GGParent", (word) XR←GetTypeIndexS((word) (&string47)), 83); (* (( (ptr) gf←c0960)+210)/* var←c55576 */ ) = var←c59352; (void) XR←ImportProcS(var←c59352, 67649282); (void) XR←ImportProcS(var←c59352, 134752514); (void) XR←ImportProcS(var←c59352, 67385857); var←c59352 = (word) XR←ImportInterface((word) "GGScene", (word) XR←GetTypeIndexS((word) (&string48)), 50); (* (( (ptr) gf←c0960)+207)/* var←c54136 */ ) = var←c59352; (void) XR←ImportProcS(var←c59352, 67637506); var←c59352 = (word) XR←ImportInterface((word) "GGSliceOps", (word) XR←GetTypeIndexS((word) (&string49)), 73); (* (( (ptr) gf←c0960)+208)/* var←c54328 */ ) = var←c59352; (void) XR←ImportProcS(var←c59352, 134753794); (void) XR←ImportProcS(var←c59352, 134753538); (void) XR←ImportProcS(var←c59352, 67645186); (void) XR←ImportProcS(var←c59352, 135277571); (void) XR←ImportProcS(var←c59352, 470821635); var←c59352 = (word) XR←ImportInterface((word) "GGState", (word) XR←GetTypeIndexS((word) (&string50)), 119); (* (( (ptr) gf←c0960)+201)/* var←c51448 */ ) = var←c59352; (void) XR←ImportProcS(var←c59352, 67384321); (void) XR←ImportProcS(var←c59352, 67392769); (void) XR←ImportProcS(var←c59352, 67393793); var←c59352 = (word) XR←ImportInterface((word) "Lines2d", (word) XR←GetTypeIndexS((word) (&string51)), 50); (* (( (ptr) gf←c0960)+209)/* var←c54776 */ ) = var←c59352; (void) XR←ImportProcS(var←c59352, 67906306); (void) XR←ImportProcS(var←c59352, 201859074); (void) XR←ImportProcS(var←c59352, 201858818); (void) XR←ImportProcS(var←c59352, 201858306); (void) XR←ImportProcS(var←c59352, 135013378); (void) XR←ImportProcS(var←c59352, 67904258); var←c59352 = (word) XR←ImportInterface((word) "RealFns", (word) XR←GetTypeIndexS((word) (&string52)), 36); (* (( (ptr) gf←c0960)+206)/* var←c54040 */ ) = var←c59352; (void) XR←ImportProcS(var←c59352, 67372289); var←c59352 = (word) XR←ImportInterface((word) "Vectors2d", (word) XR←GetTypeIndexS((word) (&string53)), 21); (* (( (ptr) gf←c0960)+205)/* var←c54008 */ ) = var←c59352; (void) XR←ImportProcS(var←c59352, 135006210); (void) XR←ImportProcS(var←c59352, 135267842); (void) XR←ImportProcS(var←c59352, 67636737); (void) XR←ImportProcS(var←c59352, 135268098); (void) XR←ImportProcS(var←c59352, 68161282); (void) XR←ImportProcS(var←c59352, 67637249); (void) XR←ImportProcS(var←c59352, 68161794); var←c59352 = (word) XR←ExportInterface((word) "GGMultiGravity", (word) XR←GetTypeIndexS((word) (&string54)), 16); (* (( (ptr) gf←c0960)+213)/* var←c59384 */ ) = var←c59352; (void) XR←ExportProcS(var←c59352, (word) (( (bPt) gf←c0960)+788)/* var←c51352 */ , 404488198, (word) "Map"); (void) XR←ExportProcS(var←c59352, (word) (( (bPt) gf←c0960)+780)/* var←c51320 */ , 404488454, (word) "PointsPreferred"); (void) XR←ExportProcS(var←c59352, (word) (( (bPt) gf←c0960)+772)/* var←c51288 */ , 404226565, (word) "LinesPreferred"); (void) XR←ExportProcS(var←c59352, (word) (( (bPt) gf←c0960)+764)/* var←c51256 */ , 404226821, (word) "FacesPreferred"); (void) XR←ExportProcS(var←c59352, (word) (( (bPt) gf←c0960)+740)/* var←c51160 */ , 68944902, (word) "MapCycler"); (void) XR←ExportProcS(var←c59352, (word) (( (bPt) gf←c0960)+724)/* var←c51096 */ , 69207303, (word) "PointsPreferredCycler") ; (void) XR←ExportProcS(var←c59352, (word) (( (bPt) gf←c0960)+716)/* var←c51064 */ , 68683269, (word) "LinesPreferredCycler") ; (void) XR←ExportProcS(var←c59352, (word) (( (bPt) gf←c0960)+708)/* var←c51032 */ , 68683525, (word) "FacesPreferredCycler") ; (void) XR←ExportProcS(var←c59352, (word) (( (bPt) gf←c0960)+748)/* var←c51192 */ , 67635201, (word) "EmptyCycler"); (void) XR←ExportProcS(var←c59352, (word) (( (bPt) gf←c0960)+700)/* var←c51000 */ , 402917633, (word) "FirstFeature"); (void) XR←ExportProcS(var←c59352, (word) (( (bPt) gf←c0960)+692)/* var←c50968 */ , 402917889, (word) "NextFeature"); (void) XR←ExportProcS(var←c59352, (word) (( (bPt) gf←c0960)+684)/* var←c50936 */ , 402918145, (word) "PreviousFeature"); (void) XR←ExportProcS(var←c59352, (word) (( (bPt) gf←c0960)+668)/* var←c50872 */ , 136055814, (word) "MultiMap"); (void) XR←ExportProcS(var←c59352, (word) (( (bPt) gf←c0960)+652)/* var←c50808 */ , 135793925, (word) "MultiLinesPreferred") ; (void) XR←ExportProcS(var←c59352, (word) (( (bPt) gf←c0960)+644)/* var←c50776 */ , 136056326, (word) "MultiPointsPreferred") ; (void) XR←ExportProcS(var←c59352, (word) (( (bPt) gf←c0960)+348)/* var←c49592 */ , 67112704, (word) "NewMultiGravityPool") ; } static void GGMultiGravityImpl←P0(formal←c078, formal←c077) word formal←c078; word formal←c077; { register ptr gf←c59416 = (ptr) &globalframe; /* GGMultiGravityImpl: */ SOURCE(255, 43164) /* moved to installation proc */ SOURCE(37190, 502) (* (( (ptr) gf←c59416)+5) ) = (word) (( (bPt) gf←c59416)+476)/* var←c50104 */ ; (* (( (ptr) gf←c59416)+12) ) = (word) (( (bPt) gf←c59416)+476)/* var←c50104 */ ; (* (( (ptr) gf←c59416)+13) ) = (word) (( (bPt) gf←c59416)+468)/* var←c50072 */ ; (* (( (ptr) gf←c59416)+19) ) = (word) (( (bPt) gf←c59416)+476)/* var←c50104 */ ; (* (( (ptr) gf←c59416)+20) ) = (word) (( (bPt) gf←c59416)+460)/* var←c50040 */ ; (* (( (ptr) gf←c59416)+21) ) = (word) (( (bPt) gf←c59416)+452)/* var←c50008 */ ; (* (( (ptr) gf←c59416)+26) ) = (word) (( (bPt) gf←c59416)+476)/* var←c50104 */ ; (* (( (ptr) gf←c59416)+27) ) = (word) (( (bPt) gf←c59416)+444)/* var←c49976 */ ; (* (( (ptr) gf←c59416)+28) ) = (word) (( (bPt) gf←c59416)+436)/* var←c49944 */ ; (* (( (ptr) gf←c59416)+29) ) = (word) (( (bPt) gf←c59416)+428)/* var←c49912 */ ; (* (( (ptr) gf←c59416)+33) ) = (word) (( (bPt) gf←c59416)+476)/* var←c50104 */ ; (* (( (ptr) gf←c59416)+34) ) = (word) (( (bPt) gf←c59416)+420)/* var←c49880 */ ; (* (( (ptr) gf←c59416)+35) ) = (word) (( (bPt) gf←c59416)+412)/* var←c49848 */ ; (* (( (ptr) gf←c59416)+36) ) = (word) (( (bPt) gf←c59416)+404)/* var←c49816 */ ; (* (( (ptr) gf←c59416)+37) ) = (word) (( (bPt) gf←c59416)+396)/* var←c49784 */ ; (* (( (ptr) gf←c59416)+40) ) = (word) (( (bPt) gf←c59416)+476)/* var←c50104 */ ; (* (( (ptr) gf←c59416)+41) ) = (word) (( (bPt) gf←c59416)+388)/* var←c49752 */ ; (* (( (ptr) gf←c59416)+42) ) = (word) (( (bPt) gf←c59416)+476)/* var←c50104 */ ; (* (( (ptr) gf←c59416)+43) ) = (word) (( (bPt) gf←c59416)+372)/* var←c49688 */ ; (* (( (ptr) gf←c59416)+44) ) = (word) (( (bPt) gf←c59416)+476)/* var←c50104 */ ; (* (( (ptr) gf←c59416)+45) ) = (word) (( (bPt) gf←c59416)+476)/* var←c50104 */ ; (* (( (ptr) gf←c59416)+47) ) = (word) (( (bPt) gf←c59416)+476)/* var←c50104 */ ; (* (( (ptr) gf←c59416)+48) ) = (word) (( (bPt) gf←c59416)+364)/* var←c49656 */ ; (* (( (ptr) gf←c59416)+49) ) = (word) (( (bPt) gf←c59416)+356)/* var←c49624 */ ; (* (( (ptr) gf←c59416)+50) ) = (word) (( (bPt) gf←c59416)+476)/* var←c50104 */ ; (* (( (ptr) gf←c59416)+51) ) = (word) (( (bPt) gf←c59416)+476)/* var←c50104 */ ; (* (( (ptr) gf←c59416)+52) ) = (word) (( (bPt) gf←c59416)+476)/* var←c50104 */ ; (* (( (ptr) gf←c59416)+53) ) = (word) (( (bPt) gf←c59416)+476)/* var←c50104 */ ; } static void Map←P60(formal←c089, formal←c01049, formal←c01050, formal←c01051, formal←c01052, formal←c01053, formal←c01054) word formal←c089; W2 formal←c01049; word formal←c01050; word formal←c01051; word formal←c01052; word formal←c01053; word formal←c01054; { W17 var←c59448; /* declaration of testPoint←v7196 skipped */ /* declaration of t←v7224 skipped */ /* declaration of alignBag←v7252 skipped */ /* declaration of sceneBag←v7280 skipped */ /* declaration of ggData←v7308 skipped */ /* declaration of intersections←v7336 skipped */ /* declaration of resultPoint←v7380 skipped */ /* declaration of normal←v7408 skipped */ /* declaration of feature←v7436 skipped */ /* declaration of hitData←v7464 skipped */ (* (W2Pt) (( (ptr) &var←c59448)+4)/* testPoint←v7196 */ ) = formal←c01049; (* (( (ptr) &var←c59448)+6)/* t←v7224 */ ) = formal←c01050; (* (( (ptr) &var←c59448)+7)/* alignBag←v7252 */ ) = formal←c01051; (* (( (ptr) &var←c59448)+8)/* sceneBag←v7280 */ ) = formal←c01052; (* (( (ptr) &var←c59448)+9)/* ggData←v7308 */ ) = formal←c01053; (* (( (ptr) &var←c59448)+10)/* intersections←v7336 */ ) = formal←c01054; /* Map: */ SOURCE(3169, 849) SOURCE(3169, 849) (* (( (ptr) &var←c59448)+15)/* feature←v7436 */ ) = 0; SOURCE(3169, 849) (* (( (ptr) &var←c59448)+16)/* hitData←v7464 */ ) = 0; SOURCE(3390, 628) { word var←c01028; var←c01028 = (word) &var←c59448; (void) (word) XR←Enable(( ((word) (fPt) NoName←Q7404) ), ( ((word) (fPt) NoName←Q7704) ), var←c01028); }; /* removed tail goto */ (* (W2Pt) formal←c089 ) = (* (W2Pt) (( (ptr) &var←c59448)+11)/* resultPoint←v7380 */ ); (* (W2Pt) (( (ptr) formal←c089)+2) ) = (* (W2Pt) (( (ptr) &var←c59448)+13)/* normal←v7408 */ ); (* (( (ptr) formal←c089)+4) ) = (* (( (ptr) &var←c59448)+15)/* feature←v7436 */ ); (* (( (ptr) formal←c089)+5) ) = (* (( (ptr) &var←c59448)+16)/* hitData←v7464 */ ); return; } static word NoName←Q7404(formal←c0963) word formal←c0963; { register ptr gf←c0962 = (ptr) &globalframe; SOURCE(3461, 57) { word gravityType←v16112; SOURCE(3461, 57) { word pd55; pd55 = (* (( (ptr) (* (( (ptr) gf←c0962)+201)/* var←c51448 */ ))+93) ); gravityType←v16112 = (word) ( *( (fPt) ((* (ptr) pd55 ))))((* ((( (ptr) formal←c0963)+9)) ), pd55); }; SOURCE(3520, 40) { word pd56; pd56 = (* (( (ptr) (* (( (ptr) gf←c0962)+202)/* var←c51480 */ ))+12) ); (void) ( *( (fPt) ((* (ptr) pd56 ))))((* (( (ptr) gf←c0962)+85) ), (* (( (ptr) gf←c0962)+84) ), pd56); }; SOURCE(3562, 412) { word pd57; pd57 = (* (( (ptr) (* (( (ptr) gf←c0962)+201)/* var←c51448 */ ))+89) ); if ((0 != (word) ( *( (fPt) ((* (ptr) pd57 ))))((* ((( (ptr) formal←c0963)+9)) ), pd57))) { SOURCE(3599, 291) { word var←c51512; var←c51512 = gravityType←v16112; switch (var←c51512) { case 1: SOURCE(3642, 114) { W6 var←c51544; (void) PointsPreferred←P120((word) &var←c51544, (* (W2Pt) (( (ptr) formal←c0963)+4) ), (* (( (ptr) formal←c0963)+6) ), (* ( /*1*/ ( (ptr) formal←c0963)+7) ), (* (( (ptr) formal←c0963)+8) ), (* (( (ptr) formal←c0963)+9) ) , (* (( (ptr) formal←c0963)+10) )); (* (( (ptr) formal←c0963)+16) ) = var←c51544.f5; (* (( (ptr) formal←c0963)+15) ) = var←c51544.f4; (* (W2Pt) (( (ptr) formal←c0963)+13) ) = (* (W2Pt) (( (ptr) &var←c51544)+2) ); (* (W2Pt) (( (ptr) formal←c0963)+11) ) = (* (W2Pt) &var←c51544 ); }; break; case 0: case 2: SOURCE(3792, 98) { W6 var←c51576; (void) LinesPreferred←P180((word) &var←c51576, (* (W2Pt) (( (ptr) formal←c0963)+4) ), (* (( (ptr) formal←c0963)+6) ), (* ( /*1*/ ( (ptr) formal←c0963)+7) ), (* (( (ptr) formal←c0963)+8) ), (* (( (ptr) formal←c0963)+9) )); (* (( (ptr) formal←c0963)+16) ) = var←c51576.f5; (* (( (ptr) formal←c0963)+15) ) = var←c51576.f4; (* (W2Pt) (( (ptr) formal←c0963)+13) ) = (* (W2Pt) (( (ptr) &var←c51576)+2) ); (* (W2Pt) (( (ptr) formal←c0963)+11) ) = (* (W2Pt) &var←c51576 ); }; break; default: SOURCE(3903, 5) (void) XR←RaiseUnnamedError(); break; }; }; } else { SOURCE(3919, 23) (* (W2Pt) (( (ptr) formal←c0963)+11) ) = (* (W2Pt) (( (ptr) formal←c0963)+4) ); SOURCE(3944, 13) (* (( (ptr) formal←c0963)+15) ) = 0; SOURCE(3959, 15) (* (( (ptr) formal←c0963)+13) ) = (* (ptr) &fc58 ); (* (( (ptr) formal←c0963)+14) ) = (* (ptr) &fc59 ); }; }; SOURCE(3979, 39) { word pd60; pd60 = (* (( (ptr) (* (( (ptr) gf←c0962)+202)/* var←c51480 */ ))+14) ); (void) ( *( (fPt) ((* (ptr) pd60 ))))((* (( (ptr) gf←c0962)+85) ), (* (( (ptr) gf←c0962)+84) ), pd60); }; }; return(0); } static void PointsPreferred←P120(formal←c0124, testPoint←v7540, t←v7568, alignBag←v7596, sceneBag←v7624, ggData←v7652, intersections←v7680) word formal←c0124; W2 testPoint←v7540; word t←v7568; word alignBag←v7596; word sceneBag←v7624; word ggData←v7652; word intersections←v7680; { W2 resultPoint←v7724; W2 normal←v7752; word feature←v7780; word hitData←v7808; word count←v16156; word nearVEF←v16184 = 0; /* PointsPreferred: */ SOURCE(4023, 947) SOURCE(4023, 947) feature←v7780 = 0; SOURCE(4023, 947) hitData←v7808 = 0; SOURCE(4301, 96) { W2 var←c51608; (void) MultiPointsPreferred←P1140((word) &var←c51608, testPoint←v7540, t←v7568, alignBag←v7596, sceneBag←v7624, ggData←v7652 , intersections←v7680); count←v16156 = var←c51608.f1; nearVEF←v16184 = var←c51608.f0; }; SOURCE(4399, 54) if ((count←v16156 == 0)) { SOURCE(4417, 36) resultPoint←v7724 = testPoint←v7540; normal←v7752.f0 = (* (ptr) &fc58 ); normal←v7752.f1 = (* (ptr) &fc59 ); feature←v7780 = 0; hitData←v7808 = 0; goto lab←L100003; }; SOURCE(4455, 515) if ((count←v16156 == 1)) { SOURCE(4473, 38) { W6 var←c51672; (void) PrepareWinner←P300((word) &var←c51672, nearVEF←v16184, 0); resultPoint←v7724 = (* (W2Pt) &var←c51672 ); normal←v7752 = (* (W2Pt) (( (ptr) &var←c51672)+2) ); feature←v7780 = var←c51672.f4; hitData←v7808 = var←c51672.f5; /* removed tail goto */ }; } else { SOURCE(4511, 470) { word neighborCount←v16228 = 1; word nearestDist←v16284; SOURCE(4571, 22) nearestDist←v16284 = (* (ptr) &fc59 ); SOURCE(4595, 29) { word limit61; nearestDist←v16284 = (* (ptr) (* ((( (ptr) nearVEF←v16184)+1)+( limit61 = (* (ptr) nearVEF←v16184 ), BCK(0, limit61) )) ) ); }; SOURCE(4626, 103) { register word i←v16328 = 1; register word noName←c51704; noName←c51704 = count←v16156; if ((i←v16328 >= noName←c51704)) { goto lab←L100004; }; lab←L100007: ; SOURCE(4654, 75) { word limit62; word x63; word x64; word x66; if ((( x63 = (* (ptr) (* ((( (ptr) nearVEF←v16184)+1)+( limit62 = (* (ptr) nearVEF←v16184 ), BCK(i←v16328, limit62) )) ) ), *(float*)&x63 ) - ( x64 = nearestDist←v16284, *(float*)&x64 ) < ( x66 = (* (ptr) &fc65 ), *(float*)&x66 ))) { SOURCE(4696, 33) neighborCount←v16228 = (neighborCount←v16228 + 1); }; }; i←v16328 = (i←v16328 + 1); if ((i←v16328 < noName←c51704)) { goto lab←L100007; }; lab←L100004: ; }; SOURCE(4740, 58) if ((neighborCount←v16228 == 1)) { SOURCE(4766, 32) { W6 var←c51736; (void) PrepareWinner←P300((word) &var←c51736, nearVEF←v16184, 0); resultPoint←v7724 = (* (W2Pt) &var←c51736 ); normal←v7752 = (* (W2Pt) (( (ptr) &var←c51736)+2) ); feature←v7780 = var←c51736.f4; hitData←v7808 = var←c51736.f5; goto lab←L100003; }; }; SOURCE(4800, 170) { register word i←v16372 = 0; register word noName←c51768; noName←c51768 = neighborCount←v16228; if ((i←v16372 >= noName←c51768)) { goto lab←L100008; }; lab←L100011: ; SOURCE(4836, 78) { word limit67; if (((* (ptr) (* (( (ptr) (* ((( (ptr) nearVEF←v16184)+1)+( limit67 = (* (ptr) nearVEF←v16184 ), BCK(i←v16372, limit67) )) ))+5) ) ) == 0)) { SOURCE(4882, 32) { W6 var←c51800; (void) PrepareWinner←P300((word) &var←c51800, nearVEF←v16184, i←v16372); resultPoint←v7724 = (* (W2Pt) &var←c51800 ); normal←v7752 = (* (W2Pt) (( (ptr) &var←c51800)+2) ); feature←v7780 = var←c51800.f4; hitData←v7808 = var←c51800.f5; goto lab←L100003; }; }; }; i←v16372 = (i←v16372 + 1); if ((i←v16372 < noName←c51768)) { goto lab←L100011; }; lab←L100008: ; SOURCE(4938, 32) { W6 var←c51832; (void) PrepareWinner←P300((word) &var←c51832, nearVEF←v16184, 0); resultPoint←v7724 = (* (W2Pt) &var←c51832 ); normal←v7752 = (* (W2Pt) (( (ptr) &var←c51832)+2) ); feature←v7780 = var←c51832.f4; hitData←v7808 = var←c51832.f5; /* removed tail goto */ }; }; }; }; lab←L100003: ; (* (W2Pt) formal←c0124 ) = resultPoint←v7724; (* (W2Pt) (( (ptr) formal←c0124)+2) ) = normal←v7752; (* (( (ptr) formal←c0124)+4) ) = feature←v7780; (* (( (ptr) formal←c0124)+5) ) = hitData←v7808; return; } static void LinesPreferred←P180(formal←c0142, testPoint←v7880, t←v7908, alignBag←v7936, sceneBag←v7964, ggData←v7992) word formal←c0142; W2 testPoint←v7880; word t←v7908; word alignBag←v7936; word sceneBag←v7964; word ggData←v7992; { W2 resultPoint←v8036; W2 normal←v8064; word feature←v8092; word hitData←v8120; word nearVEF←v16416 = 0; word count←v16444; /* LinesPreferred: */ SOURCE(4987, 816) SOURCE(4987, 816) feature←v8092 = 0; SOURCE(4987, 816) hitData←v8120 = 0; SOURCE(5235, 80) { W2 var←c51864; (void) MultiLinesPreferred←P1080((word) &var←c51864, testPoint←v7880, t←v7908, alignBag←v7936, sceneBag←v7964, ggData←v7992) ; count←v16444 = var←c51864.f1; nearVEF←v16416 = var←c51864.f0; }; SOURCE(5317, 54) if ((count←v16444 == 0)) { SOURCE(5335, 36) resultPoint←v8036 = testPoint←v7880; normal←v8064.f0 = (* (ptr) &fc58 ); normal←v8064.f1 = (* (ptr) &fc59 ); feature←v8092 = 0; hitData←v8120 = 0; goto lab←L100012; }; SOURCE(5373, 430) if ((count←v16444 == 1)) { SOURCE(5391, 38) { W6 var←c51928; (void) PrepareWinner←P300((word) &var←c51928, nearVEF←v16416, 0); resultPoint←v8036 = (* (W2Pt) &var←c51928 ); normal←v8064 = (* (W2Pt) (( (ptr) &var←c51928)+2) ); feature←v8092 = var←c51928.f4; hitData←v8120 = var←c51928.f5; /* removed tail goto */ }; } else { SOURCE(5771, 32) { W6 var←c51960; (void) PrepareWinner←P300((word) &var←c51960, nearVEF←v16416, 0); resultPoint←v8036 = (* (W2Pt) &var←c51960 ); normal←v8064 = (* (W2Pt) (( (ptr) &var←c51960)+2) ); feature←v8092 = var←c51960.f4; hitData←v8120 = var←c51960.f5; /* removed tail goto */ }; }; lab←L100012: ; (* (W2Pt) formal←c0142 ) = resultPoint←v8036; (* (W2Pt) (( (ptr) formal←c0142)+2) ) = normal←v8064; (* (( (ptr) formal←c0142)+4) ) = feature←v8092; (* (( (ptr) formal←c0142)+5) ) = hitData←v8120; return; } static void FacesPreferred←P240(formal←c0158, testPoint←v8192, t←v8220, alignBag←v8248, sceneBag←v8276, ggData←v8304) word formal←c0158; W2 testPoint←v8192; word t←v8220; word alignBag←v8248; word sceneBag←v8276; word ggData←v8304; { W2 resultPoint←v8348; W2 normal←v8376; word feature←v8404; word hitData←v8432; word nearVEF←v16488 = 0; word count←v16516; /* FacesPreferred: */ SOURCE(5812, 420) SOURCE(5812, 420) feature←v8404 = 0; SOURCE(5812, 420) hitData←v8432 = 0; SOURCE(6061, 80) { W2 var←c51992; (void) MultiFacesPreferred←P1020((word) &var←c51992, testPoint←v8192, t←v8220, alignBag←v8248, sceneBag←v8276, ggData←v8304) ; count←v16516 = var←c51992.f1; nearVEF←v16488 = var←c51992.f0; }; SOURCE(6143, 54) if ((count←v16516 == 0)) { SOURCE(6161, 36) resultPoint←v8348 = testPoint←v8192; normal←v8376.f0 = (* (ptr) &fc58 ); normal←v8376.f1 = (* (ptr) &fc59 ); feature←v8404 = 0; hitData←v8432 = 0; goto lab←L100013; }; SOURCE(6199, 33) { W6 var←c52056; (void) PrepareWinner←P300((word) &var←c52056, nearVEF←v16488, 0); resultPoint←v8348 = (* (W2Pt) &var←c52056 ); normal←v8376 = (* (W2Pt) (( (ptr) &var←c52056)+2) ); feature←v8404 = var←c52056.f4; hitData←v8432 = var←c52056.f5; /* removed tail goto */ }; lab←L100013: ; (* (W2Pt) formal←c0158 ) = resultPoint←v8348; (* (W2Pt) (( (ptr) formal←c0158)+2) ) = normal←v8376; (* (( (ptr) formal←c0158)+4) ) = feature←v8404; (* (( (ptr) formal←c0158)+5) ) = hitData←v8432; return; } static void PrepareWinner←P300(formal←c0166, nearVEF←v8504, index←v8532) word formal←c0166; word nearVEF←v8504; word index←v8532; { W2 resultPoint←v8576; W2 normal←v8604; word feature←v8632; word hitData←v8660; word goodPoint←v16560; /* PrepareWinner: */ SOURCE(6236, 312) SOURCE(6236, 312) feature←v8632 = 0; SOURCE(6236, 312) hitData←v8660 = 0; SOURCE(6391, 37) { word limit68; goodPoint←v16560 = (* ((( (ptr) nearVEF←v8504)+1)+( limit68 = (* (ptr) nearVEF←v8504 ), BCK(index←v8532, limit68) )) ); }; SOURCE(6430, 29) resultPoint←v8576 = (* (W2Pt) (( (ptr) goodPoint←v16560)+1) ); SOURCE(6461, 25) normal←v8604 = (* (W2Pt) (( (ptr) goodPoint←v16560)+3) ); SOURCE(6488, 31) feature←v8632 = (* (( (ptr) goodPoint←v16560)+5) ); SOURCE(6521, 27) hitData←v8660 = (* (( (ptr) goodPoint←v16560)+6) ); /* removed tail goto */ (* (W2Pt) formal←c0166 ) = resultPoint←v8576; (* (W2Pt) (( (ptr) formal←c0166)+2) ) = normal←v8604; (* (( (ptr) formal←c0166)+4) ) = feature←v8632; (* (( (ptr) formal←c0166)+5) ) = hitData←v8660; return; } static word EmptyCycler←P360(testPoint←v8732) W2 testPoint←v8732; { register ptr gf←c59480 = (ptr) &globalframe; word featureCycler←v8776; /* EmptyCycler: */ SOURCE(6554, 186) SOURCE(6554, 186) featureCycler←v8776 = 0; SOURCE(6641, 99) { word var←c52088; var←c52088 = XR←NewObject(20, (* (( (ptr) gf←c59480)+58) )); (* (( (ptr) var←c52088)+2) ) = (word) -1; (* (W2Pt) (( (ptr) var←c52088)+3) ) = testPoint←v8732; featureCycler←v8776 = var←c52088; }; SOURCE(6554, 186) return(featureCycler←v8776); } static word MapCycler←P420(formal←c01055, formal←c01056, formal←c01057, formal←c01058, formal←c01059, formal←c01060) W2 formal←c01055; word formal←c01056; word formal←c01057; word formal←c01058; word formal←c01059; word formal←c01060; { W12 var←c59512; /* declaration of testPoint←v8836 skipped */ /* declaration of t←v8864 skipped */ /* declaration of alignBag←v8892 skipped */ /* declaration of sceneBag←v8920 skipped */ /* declaration of ggData←v8948 skipped */ /* declaration of intersections←v8976 skipped */ /* declaration of featureCycler←v9020 skipped */ (* (W2Pt) (( (ptr) &var←c59512)+4)/* testPoint←v8836 */ ) = formal←c01055; (* (( (ptr) &var←c59512)+6)/* t←v8864 */ ) = formal←c01056; (* (( (ptr) &var←c59512)+7)/* alignBag←v8892 */ ) = formal←c01057; (* (( (ptr) &var←c59512)+8)/* sceneBag←v8920 */ ) = formal←c01058; (* (( (ptr) &var←c59512)+9)/* ggData←v8948 */ ) = formal←c01059; (* (( (ptr) &var←c59512)+10)/* intersections←v8976 */ ) = formal←c01060; /* MapCycler: */ SOURCE(6746, 666) SOURCE(6746, 666) (* (( (ptr) &var←c59512)+11)/* featureCycler←v9020 */ ) = 0; SOURCE(6927, 485) { word var←c01029; var←c01029 = (word) &var←c59512; (void) (word) XR←Enable(( ((word) (fPt) NoName←Q7464) ), ( ((word) (fPt) NoName←Q7644) ), var←c01029); }; SOURCE(6746, 666) return((* (( (ptr) &var←c59512)+11)/* featureCycler←v9020 */ )); } static word NoName←Q7464(formal←c0966) word formal←c0966; { register ptr gf←c0965 = (ptr) &globalframe; SOURCE(6998, 57) { word gravityType←v16604; SOURCE(6998, 57) { word pd69; pd69 = (* (( (ptr) (* (( (ptr) gf←c0965)+201)/* var←c51448 */ ))+93) ); gravityType←v16604 = (word) ( *( (fPt) ((* (ptr) pd69 ))))((* ((( (ptr) formal←c0966)+9)) ), pd69); }; SOURCE(7057, 355) { word pd70; pd70 = (* (( (ptr) (* (( (ptr) gf←c0965)+201)/* var←c51448 */ ))+89) ); if ((0 != (word) ( *( (fPt) ((* (ptr) pd70 ))))((* ((( (ptr) formal←c0966)+9)) ), pd70))) { SOURCE(7094, 251) { word var←c52152; var←c52152 = gravityType←v16604; switch (var←c52152) { case 1: SOURCE(7137, 94) (* (( (ptr) formal←c0966)+11) ) = (word) PointsPreferredCycler←P540((* (W2Pt) (( (ptr) formal←c0966)+4) ), (* (( (ptr) formal←c0966)+6) ), (* (( (ptr) formal←c0966)+7) ), (* (( (ptr) formal←c0966)+8) ), (* (( (ptr) formal←c0966)+9) ), (* (( (ptr) formal←c0966)+10) ) , 1); break; case 0: case 2: SOURCE(7267, 78) (* (( (ptr) formal←c0966)+11) ) = (word) LinesPreferredCycler←P600((* (W2Pt) (( (ptr) formal←c0966)+4) ), (* (( (ptr) formal←c0966)+6) ), (* (( (ptr) formal←c0966)+7) ), (* (( (ptr) formal←c0966)+8) ), (* (( (ptr) formal←c0966)+9) )); break; default: SOURCE(7358, 5) (void) XR←RaiseUnnamedError(); break; }; }; } else { SOURCE(7374, 38) (* (( (ptr) formal←c0966)+11) ) = (word) EmptyCycler←P360((* (W2Pt) ((( (ptr) formal←c0966)+4)) )); }; }; }; return(0); } static word CopyVEF←P480(vef←v9080, count←v9108) word vef←v9080; word count←v9108; { register ptr gf←c59544 = (ptr) &globalframe; word copy←v9152; word oldGoodPoint←v16648 = 0; word newGoodPoint←v16676 = 0; /* CopyVEF: */ SOURCE(7421, 481) SOURCE(7421, 481) copy←v9152 = 0; SOURCE(7559, 44) { word var←c52184; word var←c52216; word var←c52248; var←c52184 = BCK(count←v9108, 67108863); var←c52216 = ((word) var←c52184 << 2); var←c52248 = XR←NewObject((4 + var←c52216), (* (( (ptr) gf←c59544)+59) )); (* (ptr) var←c52248 ) = var←c52184; copy←v9152 = var←c52248; }; SOURCE(7605, 297) { register word i←v16720 = 0; register word noName←c52280; noName←c52280 = count←v9108; if ((i←v16720 >= noName←c52280)) { goto lab←L100017; }; lab←L100020: ; SOURCE(7633, 21) { word limit71; oldGoodPoint←v16648 = (* ((( (ptr) vef←v9080)+1)+( limit71 = (* (ptr) vef←v9080 ), BCK(i←v16720, limit71) )) ); }; SOURCE(7656, 222) { word var←c52312; var←c52312 = XR←NewObject(36, (* (( (ptr) gf←c59544)+60) )); (* (ptr) var←c52312 ) = (* (ptr) oldGoodPoint←v16648 ); (* (W2Pt) (( (ptr) var←c52312)+1) ) = (* (W2Pt) (( (ptr) oldGoodPoint←v16648)+1) ); (* (W2Pt) (( (ptr) var←c52312)+3) ) = (* (W2Pt) (( (ptr) oldGoodPoint←v16648)+3) ); (* (( (ptr) var←c52312)+5) ) = (* (( (ptr) oldGoodPoint←v16648)+5) ); (* (( (ptr) var←c52312)+6) ) = (* (( (ptr) oldGoodPoint←v16648)+6) ); (* (( (ptr) var←c52312)+7) ) = (* (( (ptr) oldGoodPoint←v16648)+7) ); newGoodPoint←v16676 = var←c52312; }; SOURCE(7880, 22) { word limit72; (* ((( (ptr) copy←v9152)+1)+( limit72 = (* (ptr) copy←v9152 ), BCK(i←v16720, limit72) )) ) = newGoodPoint←v16676; }; i←v16720 = (i←v16720 + 1); if ((i←v16720 < noName←c52280)) { goto lab←L100020; }; lab←L100017: ; }; SOURCE(7421, 481) return(copy←v9152); } static word PointsPreferredCycler←P540(testPoint←v9212, t←v9240, alignBag←v9268, sceneBag←v9296, ggData←v9324, intersections←v9352, maxDimension←v9380) W2 testPoint←v9212; word t←v9240; word alignBag←v9268; word sceneBag←v9296; word ggData←v9324; word intersections←v9352; word maxDimension←v9380; { register ptr gf←c59576 = (ptr) &globalframe; word featureCycler←v9444; word count←v16764; word nearVEF←v16792 = 0; /* PointsPreferredCycler: */ SOURCE(7917, 1279) SOURCE(7917, 1279) featureCycler←v9444 = 0; SOURCE(8181, 1015) SOURCE(8187, 96) { W2 var←c52344; (void) MultiPointsPreferred←P1140((word) &var←c52344, testPoint←v9212, t←v9240, alignBag←v9268, sceneBag←v9296, ggData←v9324 , intersections←v9352); count←v16764 = var←c52344.f1; nearVEF←v16792 = var←c52344.f0; }; SOURCE(8285, 48) if ((count←v16764 == 0)) { SOURCE(8303, 30) return((word) EmptyCycler←P360(testPoint←v9212)); }; SOURCE(8335, 692) if ((count←v16764 == 1)) { SOURCE(8353, 27) goto lab←L100021; } else { SOURCE(8380, 658) { word neighborCount←v16836 = 1; word nearestDist←v16892; SOURCE(8440, 22) nearestDist←v16892 = (* (ptr) &fc59 ); SOURCE(8465, 157) { word var←c52408; var←c52408 = XR←NewObject(20, (* (( (ptr) gf←c59576)+58) )); (* (( (ptr) var←c52408)+1) ) = count←v16764; (* (( (ptr) var←c52408)+2) ) = (word) -1; (* (W2Pt) (( (ptr) var←c52408)+3) ) = testPoint←v9212; featureCycler←v9444 = var←c52408; }; SOURCE(8624, 29) { word limit73; nearestDist←v16892 = (* (ptr) (* ((( (ptr) nearVEF←v16792)+1)+( limit73 = (* (ptr) nearVEF←v16792 ), BCK(0, limit73) )) ) ); }; SOURCE(8655, 103) { register word i←v16936 = 1; register word noName←c52440; noName←c52440 = count←v16764; if ((i←v16936 >= noName←c52440)) { goto lab←L100022; }; lab←L100025: ; SOURCE(8683, 75) { word limit74; word x75; word x76; word x77; if ((( x75 = (* (ptr) (* ((( (ptr) nearVEF←v16792)+1)+( limit74 = (* (ptr) nearVEF←v16792 ), BCK(i←v16936, limit74) )) ) ), *(float*)&x75 ) - ( x76 = nearestDist←v16892, *(float*)&x76 ) < ( x77 = (* (ptr) &fc65 ), *(float*)&x77 ))) { SOURCE(8725, 33) neighborCount←v16836 = (neighborCount←v16836 + 1); }; }; i←v16936 = (i←v16936 + 1); if ((i←v16936 < noName←c52440)) { goto lab←L100025; }; lab←L100022: ; }; SOURCE(8769, 26) if ((neighborCount←v16836 == 1)) { SOURCE(8795, 21) goto lab←L100021; }; SOURCE(8818, 47) (* (ptr) featureCycler←v9444 ) = (word) CopyVEF←P480(nearVEF←v16792, count←v16764); SOURCE(8867, 160) { register word i←v16980 = 0; register word noName←c52472; noName←c52472 = neighborCount←v16836; if ((i←v16980 >= noName←c52472)) { goto lab←L100026; }; lab←L100029: ; SOURCE(8903, 77) { word limit78; if (((* (ptr) (* (( (ptr) (* ((( (ptr) nearVEF←v16792)+1)+( limit78 = (* (ptr) nearVEF←v16792 ), BCK(i←v16980, limit78) )) ))+5) ) ) == 0)) { SOURCE(8949, 23) (* (( (ptr) featureCycler←v9444)+2) ) = i←v16980; SOURCE(8974, 6) return(featureCycler←v9444); }; }; i←v16980 = (i←v16980 + 1); if ((i←v16980 < noName←c52472)) { goto lab←L100029; }; lab←L100026: ; SOURCE(9004, 23) (* (( (ptr) featureCycler←v9444)+2) ) = 0; }; }; }; goto lab←L100030; lab←L100021: ; SOURCE(9069, 122) { word var←c52504; word var←c52536; var←c52504 = (word) CopyVEF←P480(nearVEF←v16792, count←v16764); var←c52536 = XR←NewObject(20, (* (( (ptr) gf←c59576)+58) )); (* (ptr) var←c52536 ) = var←c52504; (* (( (ptr) var←c52536)+1) ) = count←v16764; (* (W2Pt) (( (ptr) var←c52536)+3) ) = testPoint←v9212; featureCycler←v9444 = var←c52536; }; lab←L100030: ; SOURCE(7917, 1279) return(featureCycler←v9444); } static word LinesPreferredCycler←P600(testPoint←v9504, t←v9532, alignBag←v9560, sceneBag←v9588, ggData←v9616) W2 testPoint←v9504; word t←v9532; word alignBag←v9560; word sceneBag←v9588; word ggData←v9616; { register ptr gf←c59608 = (ptr) &globalframe; word featureCycler←v9660; word nearVEF←v17024 = 0; word count←v17052; /* LinesPreferredCycler: */ SOURCE(9206, 1000) SOURCE(9206, 1000) featureCycler←v9660 = 0; SOURCE(9414, 792) SOURCE(9420, 80) { W2 var←c52568; (void) MultiLinesPreferred←P1080((word) &var←c52568, testPoint←v9504, t←v9532, alignBag←v9560, sceneBag←v9588, ggData←v9616) ; count←v17052 = var←c52568.f1; nearVEF←v17024 = var←c52568.f0; }; SOURCE(9502, 48) if ((count←v17052 == 0)) { SOURCE(9520, 30) return((word) EmptyCycler←P360(testPoint←v9504)); }; SOURCE(9552, 494) if ((count←v17052 == 1)) { SOURCE(9570, 27) goto lab←L100031; } else { SOURCE(9597, 451) { word nearestDist←v17096; word bestSceneObject←v17124 = (word) -1; word neighborCount←v17152 = 1; SOURCE(9599, 22) nearestDist←v17096 = (* (ptr) &fc59 ); SOURCE(9708, 29) { word limit79; nearestDist←v17096 = (* (ptr) (* ((( (ptr) nearVEF←v17024)+1)+( limit79 = (* (ptr) nearVEF←v17024 ), BCK(0, limit79) )) ) ); }; SOURCE(9739, 103) { register word i←v17224 = 1; register word noName←c52632; noName←c52632 = count←v17052; if ((i←v17224 >= noName←c52632)) { goto lab←L100032; }; lab←L100035: ; SOURCE(9767, 75) { word limit80; word x81; word x82; word x83; if ((( x81 = (* (ptr) (* ((( (ptr) nearVEF←v17024)+1)+( limit80 = (* (ptr) nearVEF←v17024 ), BCK(i←v17224, limit80) )) ) ), *(float*)&x81 ) - ( x82 = nearestDist←v17096, *(float*)&x82 ) < ( x83 = (* (ptr) &fc65 ), *(float*)&x83 ))) { SOURCE(9809, 33) neighborCount←v17152 = (neighborCount←v17152 + 1); }; }; i←v17224 = (i←v17224 + 1); if ((i←v17224 < noName←c52632)) { goto lab←L100035; }; lab←L100032: ; }; SOURCE(9853, 26) if ((neighborCount←v17152 == 1)) { SOURCE(9879, 21) goto lab←L100031; }; SOURCE(9902, 20) bestSceneObject←v17124 = (word) -1; SOURCE(9924, 122) { word var←c52664; word var←c52696; var←c52664 = (word) CopyVEF←P480(nearVEF←v17024, count←v17052); var←c52696 = XR←NewObject(20, (* (( (ptr) gf←c59608)+58) )); (* (ptr) var←c52696 ) = var←c52664; (* (( (ptr) var←c52696)+1) ) = count←v17052; (* (W2Pt) (( (ptr) var←c52696)+3) ) = testPoint←v9504; featureCycler←v9660 = var←c52696; }; }; }; goto lab←L100036; lab←L100031: ; SOURCE(10079, 122) { word var←c52728; word var←c52760; var←c52728 = (word) CopyVEF←P480(nearVEF←v17024, count←v17052); var←c52760 = XR←NewObject(20, (* (( (ptr) gf←c59608)+58) )); (* (ptr) var←c52760 ) = var←c52728; (* (( (ptr) var←c52760)+1) ) = count←v17052; (* (W2Pt) (( (ptr) var←c52760)+3) ) = testPoint←v9504; featureCycler←v9660 = var←c52760; }; lab←L100036: ; SOURCE(9206, 1000) return(featureCycler←v9660); } static word FacesPreferredCycler←P660(testPoint←v9720, t←v9748, alignBag←v9776, sceneBag←v9804, ggData←v9832) W2 testPoint←v9720; word t←v9748; word alignBag←v9776; word sceneBag←v9804; word ggData←v9832; { register ptr gf←c59640 = (ptr) &globalframe; word featureCycler←v9876; word nearVEF←v17268 = 0; word count←v17296; /* FacesPreferredCycler: */ SOURCE(10215, 1027) SOURCE(10215, 1027) featureCycler←v9876 = 0; SOURCE(10423, 819) SOURCE(10429, 80) { W2 var←c52792; (void) MultiFacesPreferred←P1020((word) &var←c52792, testPoint←v9720, t←v9748, alignBag←v9776, sceneBag←v9804, ggData←v9832) ; count←v17296 = var←c52792.f1; nearVEF←v17268 = var←c52792.f0; }; SOURCE(10511, 48) if ((count←v17296 == 0)) { SOURCE(10529, 30) return((word) EmptyCycler←P360(testPoint←v9720)); }; SOURCE(10561, 18) if ((count←v17296 == 1)) { SOURCE(10579, 27) goto lab←L100037; } else { SOURCE(10608, 21) goto lab←L100037; }; /* c2c skipped dead code */ lab←L100037: ; SOURCE(11115, 122) { word var←c52856; word var←c52888; var←c52856 = (word) CopyVEF←P480(nearVEF←v17268, count←v17296); var←c52888 = XR←NewObject(20, (* (( (ptr) gf←c59640)+58) )); (* (ptr) var←c52888 ) = var←c52856; (* (( (ptr) var←c52888)+1) ) = count←v17296; (* (W2Pt) (( (ptr) var←c52888)+3) ) = testPoint←v9720; featureCycler←v9876 = var←c52888; }; SOURCE(10215, 1027) return(featureCycler←v9876); } static void FirstFeature←P720(formal←c0249, featureCycler←v9936) word formal←c0249; word featureCycler←v9936; { W2 resultPoint←v9980; W2 normal←v10008; word feature←v10036; word hitData←v10064; /* FirstFeature: */ SOURCE(11250, 181) SOURCE(11250, 181) feature←v10036 = 0; SOURCE(11250, 181) hitData←v10064 = 0; SOURCE(11396, 35) { W6 var←c52920; (void) GetFeature←P900((word) &var←c52920, featureCycler←v9936, 1); resultPoint←v9980 = (* (W2Pt) &var←c52920 ); normal←v10008 = (* (W2Pt) (( (ptr) &var←c52920)+2) ); feature←v10036 = var←c52920.f4; hitData←v10064 = var←c52920.f5; /* removed tail goto */ }; (* (W2Pt) formal←c0249 ) = resultPoint←v9980; (* (W2Pt) (( (ptr) formal←c0249)+2) ) = normal←v10008; (* (( (ptr) formal←c0249)+4) ) = feature←v10036; (* (( (ptr) formal←c0249)+5) ) = hitData←v10064; return; } static void NextFeature←P780(formal←c0257, featureCycler←v10136) word formal←c0257; word featureCycler←v10136; { W2 resultPoint←v10180; W2 normal←v10208; word feature←v10236; word hitData←v10264; /* NextFeature: */ SOURCE(11437, 180) SOURCE(11437, 180) feature←v10236 = 0; SOURCE(11437, 180) hitData←v10264 = 0; SOURCE(11582, 35) { W6 var←c52952; (void) GetFeature←P900((word) &var←c52952, featureCycler←v10136, 2); resultPoint←v10180 = (* (W2Pt) &var←c52952 ); normal←v10208 = (* (W2Pt) (( (ptr) &var←c52952)+2) ); feature←v10236 = var←c52952.f4; hitData←v10264 = var←c52952.f5; /* removed tail goto */ }; (* (W2Pt) formal←c0257 ) = resultPoint←v10180; (* (W2Pt) (( (ptr) formal←c0257)+2) ) = normal←v10208; (* (( (ptr) formal←c0257)+4) ) = feature←v10236; (* (( (ptr) formal←c0257)+5) ) = hitData←v10264; return; } static void PreviousFeature←P840(formal←c0265, featureCycler←v10336) word formal←c0265; word featureCycler←v10336; { W2 resultPoint←v10380; W2 normal←v10408; word feature←v10436; word hitData←v10464; /* PreviousFeature: */ SOURCE(11623, 185) SOURCE(11623, 185) feature←v10436 = 0; SOURCE(11623, 185) hitData←v10464 = 0; SOURCE(11772, 36) { W6 var←c52984; (void) GetFeature←P900((word) &var←c52984, featureCycler←v10336, 0); resultPoint←v10380 = (* (W2Pt) &var←c52984 ); normal←v10408 = (* (W2Pt) (( (ptr) &var←c52984)+2) ); feature←v10436 = var←c52984.f4; hitData←v10464 = var←c52984.f5; /* removed tail goto */ }; (* (W2Pt) formal←c0265 ) = resultPoint←v10380; (* (W2Pt) (( (ptr) formal←c0265)+2) ) = normal←v10408; (* (( (ptr) formal←c0265)+4) ) = feature←v10436; (* (( (ptr) formal←c0265)+5) ) = hitData←v10464; return; } static void GetFeature←P900(formal←c0274, featureCycler←v10536, move←v10564) word formal←c0274; word featureCycler←v10536; word move←v10564; { W2 resultPoint←v10628; W2 normal←v10656; word feature←v10684; word hitData←v10712; /* GetFeature: */ SOURCE(11814, 664) SOURCE(11814, 664) feature←v10684 = 0; SOURCE(11814, 664) hitData←v10712 = 0; SOURCE(11973, 505) if ((featureCycler←v10536 == 0)) { SOURCE(12033, 24) resultPoint←v10628.f0 = (* (ptr) &fc58 ); resultPoint←v10628.f1 = (* (ptr) &fc58 ); SOURCE(12068, 15) normal←v10656.f0 = (* (ptr) &fc58 ); normal←v10656.f1 = (* (ptr) &fc59 ); SOURCE(12085, 13) feature←v10684 = 0; SOURCE(12100, 13) hitData←v10712 = 0; } else { SOURCE(12122, 356) if (((* (( (ptr) featureCycler←v10536)+1) ) == 0)) { SOURCE(12186, 37) resultPoint←v10628 = (* (W2Pt) (( (ptr) featureCycler←v10536)+3) ); SOURCE(12225, 15) normal←v10656.f0 = (* (ptr) &fc58 ); normal←v10656.f1 = (* (ptr) &fc59 ); SOURCE(12242, 13) feature←v10684 = 0; SOURCE(12257, 13) hitData←v10712 = 0; } else { SOURCE(12281, 96) (* (( (ptr) featureCycler←v10536)+2) ) = IOP2( % , (int)(((* (( (ptr) featureCycler←v10536)+2) ) + (move←v10564 - 1)) + (* (( (ptr) featureCycler←v10536)+1) )), (int)(* (( (ptr) featureCycler←v10536)+1) )); SOURCE(12379, 99) { W6 var←c53016; { word idx84; (void) PrepareWinner←P300((word) &var←c53016, (* (ptr) featureCycler←v10536 ), ( idx84 = (* (( (ptr) featureCycler←v10536)+2) ), SGNCK(idx84) )); }; hitData←v10712 = var←c53016.f5; feature←v10684 = var←c53016.f4; normal←v10656 = (* (W2Pt) (( (ptr) &var←c53016)+2) ); resultPoint←v10628 = (* (W2Pt) &var←c53016 ); }; }; }; /* removed tail goto */ (* (W2Pt) formal←c0274 ) = resultPoint←v10628; (* (W2Pt) (( (ptr) formal←c0274)+2) ) = normal←v10656; (* (( (ptr) formal←c0274)+4) ) = feature←v10684; (* (( (ptr) formal←c0274)+5) ) = hitData←v10712; return; } static void MultiMap←P960(formal←c0283, formal←c01061, formal←c01062, formal←c01063, formal←c01064, formal←c01065, formal←c01066) word formal←c0283; W2 formal←c01061; word formal←c01062; word formal←c01063; word formal←c01064; word formal←c01065; word formal←c01066; { W13 var←c59672; /* declaration of testPoint←v10784 skipped */ /* declaration of t←v10812 skipped */ /* declaration of alignBag←v10840 skipped */ /* declaration of sceneBag←v10868 skipped */ /* declaration of ggData←v10896 skipped */ /* declaration of intersections←v10924 skipped */ /* declaration of nearVEF←v10968 skipped */ /* declaration of count←v10996 skipped */ (* (W2Pt) (( (ptr) &var←c59672)+4)/* testPoint←v10784 */ ) = formal←c01061; (* (( (ptr) &var←c59672)+6)/* t←v10812 */ ) = formal←c01062; (* (( (ptr) &var←c59672)+7)/* alignBag←v10840 */ ) = formal←c01063; (* (( (ptr) &var←c59672)+8)/* sceneBag←v10868 */ ) = formal←c01064; (* (( (ptr) &var←c59672)+9)/* ggData←v10896 */ ) = formal←c01065; (* (( (ptr) &var←c59672)+10)/* intersections←v10924 */ ) = formal←c01066; /* MultiMap: */ SOURCE(12487, 747) SOURCE(12487, 747) (* (( (ptr) &var←c59672)+11)/* nearVEF←v10968 */ ) = 0; SOURCE(12682, 552) { word var←c01030; var←c01030 = (word) &var←c59672; (void) (word) XR←Enable(( ((word) (fPt) NoName←Q7524) ), ( ((word) (fPt) NoName←Q7584) ), var←c01030); }; /* removed tail goto */ (* (ptr) formal←c0283 ) = (* (( (ptr) &var←c59672)+11)/* nearVEF←v10968 */ ); (* (( (ptr) formal←c0283)+1) ) = (* (( (ptr) &var←c59672)+12)/* count←v10996 */ ); return; } static word NoName←Q7524(formal←c0972) word formal←c0972; { register ptr gf←c0971 = (ptr) &globalframe; SOURCE(12800, 40) { word pd85; pd85 = (* (( (ptr) (* (( (ptr) gf←c0971)+202)/* var←c51480 */ ))+12) ); (void) ( *( (fPt) ((* (ptr) pd85 ))))((* (( (ptr) gf←c0971)+85) ), (* (( (ptr) gf←c0971)+84) ), pd85); }; SOURCE(12842, 348) { word pd86; pd86 = (* (( (ptr) (* (( (ptr) gf←c0971)+201)/* var←c51448 */ ))+89) ); if ((0 != (word) ( *( (fPt) ((* (ptr) pd86 ))))((* ((( (ptr) formal←c0972)+9)) ), pd86))) { SOURCE(12879, 258) { word var←c53080; { word pd87; pd87 = (* (( (ptr) (* (( (ptr) gf←c0971)+201)/* var←c51448 */ ))+93) ); var←c53080 = (word) ( *( (fPt) ((* (ptr) pd87 ))))((* ((( (ptr) formal←c0972)+9)) ), pd87); }; if ((var←c53080 == 0)) { SOURCE(12940, 80) { W2 var←c53112; (void) MultiLinesPreferred←P1080((word) &var←c53112, (* (W2Pt) (( (ptr) formal←c0972)+4) ), (* (( (ptr) formal←c0972)+6) ), (* (( (ptr) formal←c0972)+7) ), (* (( (ptr) formal←c0972)+8) ), (* (( (ptr) formal←c0972)+9) )); (* (( (ptr) formal←c0972)+12) ) = var←c53112.f1; (* (( (ptr) formal←c0972)+11) ) = var←c53112.f0; }; } else { if ((var←c53080 == 1)) { SOURCE(13041, 96) { W2 var←c53144; (void) MultiPointsPreferred←P1140((word) &var←c53144, (* (W2Pt) (( (ptr) formal←c0972)+4) ), (* (( (ptr) formal←c0972)+6) ), (* (( (ptr) formal←c0972)+7) ), (* (( (ptr) formal←c0972)+8) ), (* (( (ptr) formal←c0972)+9) ) , (* (( (ptr) formal←c0972)+10) )); (* (( (ptr) formal←c0972)+12) ) = var←c53144.f1; (* (( (ptr) formal←c0972)+11) ) = var←c53144.f0; }; } else { SOURCE(13150, 5) (void) XR←RaiseUnnamedError(); }; }; }; } else { SOURCE(13166, 13) (* (( (ptr) formal←c0972)+11) ) = 0; SOURCE(13181, 9) (* (( (ptr) formal←c0972)+12) ) = 0; }; }; SOURCE(13195, 39) { word pd88; pd88 = (* (( (ptr) (* (( (ptr) gf←c0971)+202)/* var←c51480 */ ))+14) ); (void) ( *( (fPt) ((* (ptr) pd88 ))))((* (( (ptr) gf←c0971)+85) ), (* (( (ptr) gf←c0971)+84) ), pd88); }; return(0); } static void MultiFacesPreferred←P1020(formal←c0313, testPoint←v11056, t←v11084, alignBag←v11112, sceneBag←v11140, ggData←v11168) word formal←c0313; W2 testPoint←v11056; word t←v11084; word alignBag←v11112; word sceneBag←v11140; word ggData←v11168; { register ptr gf←c59704 = (ptr) &globalframe; word nearVEF←v11212; word count←v11240; word bestCurves←v17340 = 0; word bestPoints←v17368 = 0; word bestFaces←v17396 = 0; word faceCount←v17424; word curveCount←v17452; word pointCount←v17480; /* MultiFacesPreferred: */ SOURCE(13240, 1030) SOURCE(13240, 1030) nearVEF←v11212 = 0; SOURCE(13516, 92) { word tc89; word pd90; word pd91; pd90 = (* (( (ptr) (* (( (ptr) gf←c59704)+203)/* var←c53176 */ ))+19) ); if ((0 != (word) ( *( (fPt) ((* (ptr) pd90 ))))(alignBag←v11112, pd90))) { pd91 = (* (( (ptr) (* (( (ptr) gf←c59704)+203)/* var←c53176 */ ))+7) ); tc89 = (word) (0 != (word) ( *( (fPt) ((* (ptr) pd91 ))))(sceneBag←v11140, pd91)); } else { tc89 = (word) 0; }; if (tc89) { SOURCE(13594, 14) nearVEF←v11212 = 0; count←v11240 = 0; goto lab←L100046; }; }; SOURCE(13611, 90) { W2 var←c53208; (void) FacesInNeighborhoodPlus←P1440((word) &var←c53208, alignBag←v11112, sceneBag←v11140, testPoint←v11056, ggData←v11168, t←v11084) ; faceCount←v17424 = var←c53208.f1; bestFaces←v17396 = var←c53208.f0; }; SOURCE(13703, 35) (void) SortByOverlap←P2160(bestFaces←v17396, faceCount←v17424); SOURCE(13741, 96) { W2 var←c53240; (void) CurvesInNeighborhoodPlus←P1380((word) &var←c53240, alignBag←v11112, sceneBag←v11140, testPoint←v11056, ggData←v11168, t←v11084 , (* (ptr) &fc58 )); curveCount←v17452 = var←c53240.f1; bestCurves←v17340 = var←c53240.f0; }; SOURCE(13840, 123) { W2 var←c53272; (void) VertsInNeighborhoodPlus←P1200((word) &var←c53272, bestCurves←v17340, curveCount←v17452, alignBag←v11112, sceneBag←v11140, testPoint←v11056 , t←v11084, ggData←v11168, 0); pointCount←v17480 = var←c53272.f1; bestPoints←v17368 = var←c53272.f0; }; SOURCE(13965, 34) (void) SortPoints←P1980(bestPoints←v17368, pointCount←v17480); SOURCE(14002, 49) { word x92; count←v11240 = (x92 = (* (( (ptr) gf←c59704)+4)/* MaxFeatures←v5240 */ ), MIN( (unsigned) , (pointCount←v17480 + curveCount←v17452), x92)); }; SOURCE(14053, 47) { word var←c53304; word var←c53336; word var←c53368; var←c53304 = BCK(count←v11240, 67108863); var←c53336 = ((word) var←c53304 << 2); var←c53368 = XR←NewObject((4 + var←c53336), (* (( (ptr) gf←c59704)+59) )); (* (ptr) var←c53368 ) = var←c53304; nearVEF←v11212 = var←c53368; }; SOURCE(14102, 84) (void) MergePointsAndCurves←P1860(bestPoints←v17368, pointCount←v17480, bestCurves←v17340, curveCount←v17452, nearVEF←v11212, count←v11240) ; SOURCE(14188, 82) { W2 var←c53400; (void) MergeByOverlapAndDistance←P1920((word) &var←c53400, bestFaces←v17396, faceCount←v17424, nearVEF←v11212, count←v11240) ; count←v11240 = var←c53400.f1; nearVEF←v11212 = var←c53400.f0; }; /* removed tail goto */ lab←L100046: ; (* (ptr) formal←c0313 ) = nearVEF←v11212; (* (( (ptr) formal←c0313)+1) ) = count←v11240; return; } static void MultiLinesPreferred←P1080(formal←c0332, testPoint←v11300, t←v11328, alignBag←v11356, sceneBag←v11384, ggData←v11412) word formal←c0332; W2 testPoint←v11300; word t←v11328; word alignBag←v11356; word sceneBag←v11384; word ggData←v11412; { register ptr gf←c59736 = (ptr) &globalframe; word nearVEF←v11456; word count←v11484; word bestCurves←v17524 = 0; word bestPoints←v17552 = 0; word pointCount←v17580; word curveCount←v17608; /* MultiLinesPreferred: */ SOURCE(14276, 795) SOURCE(14276, 795) nearVEF←v11456 = 0; SOURCE(14531, 92) { word tc93; word pd94; word pd95; pd94 = (* (( (ptr) (* (( (ptr) gf←c59736)+203)/* var←c53176 */ ))+19) ); if ((0 != (word) ( *( (fPt) ((* (ptr) pd94 ))))(alignBag←v11356, pd94))) { pd95 = (* (( (ptr) (* (( (ptr) gf←c59736)+203)/* var←c53176 */ ))+7) ); tc93 = (word) (0 != (word) ( *( (fPt) ((* (ptr) pd95 ))))(sceneBag←v11384, pd95)); } else { tc93 = (word) 0; }; if (tc93) { SOURCE(14609, 14) nearVEF←v11456 = 0; count←v11484 = 0; goto lab←L100047; }; }; SOURCE(14626, 96) { W2 var←c53432; (void) CurvesInNeighborhoodPlus←P1380((word) &var←c53432, alignBag←v11356, sceneBag←v11384, testPoint←v11300, ggData←v11412, t←v11328 , (* (ptr) &fc58 )); curveCount←v17608 = var←c53432.f1; bestCurves←v17524 = var←c53432.f0; }; SOURCE(14725, 123) { W2 var←c53464; (void) VertsInNeighborhoodPlus←P1200((word) &var←c53464, bestCurves←v17524, curveCount←v17608, alignBag←v11356, sceneBag←v11384, testPoint←v11300 , t←v11328, ggData←v11412, 0); pointCount←v17580 = var←c53464.f1; bestPoints←v17552 = var←c53464.f0; }; SOURCE(14850, 34) (void) SortPoints←P1980(bestPoints←v17552, pointCount←v17580); SOURCE(14887, 49) { word x96; count←v11484 = (x96 = (* (( (ptr) gf←c59736)+4)/* MaxFeatures←v5240 */ ), MIN( (unsigned) , (pointCount←v17580 + curveCount←v17608), x96)); }; SOURCE(14938, 47) { word var←c53496; word var←c53528; word var←c53560; var←c53496 = BCK(count←v11484, 67108863); var←c53528 = ((word) var←c53496 << 2); var←c53560 = XR←NewObject((4 + var←c53528), (* (( (ptr) gf←c59736)+59) )); (* (ptr) var←c53560 ) = var←c53496; nearVEF←v11456 = var←c53560; }; SOURCE(14987, 84) (void) MergePointsAndCurves←P1860(bestPoints←v17552, pointCount←v17580, bestCurves←v17524, curveCount←v17608, nearVEF←v11456, count←v11484) ; /* removed tail goto */ lab←L100047: ; (* (ptr) formal←c0332 ) = nearVEF←v11456; (* (( (ptr) formal←c0332)+1) ) = count←v11484; return; } static void MultiPointsPreferred←P1140(formal←c0356, testPoint←v11544, t←v11572, alignBag←v11600, sceneBag←v11628, ggData←v11656, intersections←v11684) word formal←c0356; W2 testPoint←v11544; word t←v11572; word alignBag←v11600; word sceneBag←v11628; word ggData←v11656; word intersections←v11684; { register ptr gf←c59768 = (ptr) &globalframe; word nearVEF←v11728; word count←v11756; word bestCurves←v17652 = 0; word bestPoints←v17680 = 0; word pointCount←v17708; word curveCount←v17736; word innerR←v17764; /* MultiPointsPreferred: */ SOURCE(15077, 1049) SOURCE(15077, 1049) nearVEF←v11728 = 0; SOURCE(15361, 20) { word x97; word x99; *(float*)&innerR←v17764 = ( x97 = t←v11572, *(float*)&x97 ) / ( x99 = (* (ptr) &fc98 ), *(float*)&x99 ); }; SOURCE(15383, 92) { word tc100; word pd101; word pd102; pd101 = (* (( (ptr) (* (( (ptr) gf←c59768)+203)/* var←c53176 */ ))+19) ); if ((0 != (word) ( *( (fPt) ((* (ptr) pd101 ))))(alignBag←v11600, pd101))) { pd102 = (* (( (ptr) (* (( (ptr) gf←c59768)+203)/* var←c53176 */ ))+7) ); tc100 = (word) (0 != (word) ( *( (fPt) ((* (ptr) pd102 ))))(sceneBag←v11628, pd102)); } else { tc100 = (word) 0; }; if (tc100) { SOURCE(15461, 14) nearVEF←v11728 = 0; count←v11756 = 0; goto lab←L100048; }; }; SOURCE(15478, 101) { W2 var←c53592; (void) CurvesInNeighborhoodPlus←P1380((word) &var←c53592, alignBag←v11600, sceneBag←v11628, testPoint←v11544, ggData←v11656, t←v11572 , innerR←v17764); curveCount←v17736 = var←c53592.f1; bestCurves←v17652 = var←c53592.f0; }; SOURCE(15582, 131) { W2 var←c53624; (void) VertsInNeighborhoodPlus←P1200((word) &var←c53624, bestCurves←v17652, curveCount←v17736, alignBag←v11600, sceneBag←v11628, testPoint←v11544 , t←v11572, ggData←v11656, intersections←v11684); pointCount←v17708 = var←c53624.f1; bestPoints←v17680 = var←c53624.f0; }; SOURCE(15715, 34) (void) SortPoints←P1980(bestPoints←v17680, pointCount←v17708); SOURCE(15752, 374) { word tc103; word limit104; word x105; word x106; if ((pointCount←v17708 > 0)) { tc103 = (word) (( x105 = (* (ptr) (* ((( (ptr) bestPoints←v17680)+10)+( limit104 = (* (( (ptr) bestPoints←v17680)+9) ), BCK(0, limit104) )) ) ), *(float*)&x105 ) < ( x106 = innerR←v17764, *(float*)&x106 )); } else { tc103 = (word) 0; }; if (tc103) { SOURCE(15809, 18) count←v11756 = pointCount←v17708; SOURCE(15829, 47) { word var←c53656; word var←c53688; word var←c53720; var←c53656 = BCK(count←v11756, 67108863); var←c53688 = ((word) var←c53656 << 2); var←c53720 = XR←NewObject((4 + var←c53688), (* (( (ptr) gf←c59768)+59) )); (* (ptr) var←c53720 ) = var←c53656; nearVEF←v11728 = var←c53720; }; SOURCE(15878, 53) (void) NearPointsFromPoints←P1800(bestPoints←v17680, pointCount←v17708, nearVEF←v11728); } else { SOURCE(15942, 49) { word x107; count←v11756 = (x107 = (* (( (ptr) gf←c59768)+4)/* MaxFeatures←v5240 */ ), MIN( (unsigned) , (pointCount←v17708 + curveCount←v17736), x107)); }; SOURCE(15993, 47) { word var←c53752; word var←c53784; word var←c53816; var←c53752 = BCK(count←v11756, 67108863); var←c53784 = ((word) var←c53752 << 2); var←c53816 = XR←NewObject((4 + var←c53784), (* (( (ptr) gf←c59768)+59) )); (* (ptr) var←c53816 ) = var←c53752; nearVEF←v11728 = var←c53816; }; SOURCE(16042, 84) (void) MergePointsAndCurves←P1860(bestPoints←v17680, pointCount←v17708, bestCurves←v17652, curveCount←v17736, nearVEF←v11728, count←v11756) ; }; }; /* removed tail goto */ lab←L100048: ; (* (ptr) formal←c0356 ) = nearVEF←v11728; (* (( (ptr) formal←c0356)+1) ) = count←v11756; return; } static void VertsInNeighborhoodPlus←P1200(formal←c0378, bestCurves←v11816, curveCount←v11844, alignBag←v11872, sceneBag←v11900, formal←c01067, t←v11956, formal←c01068, intersections←v12012) word formal←c0378; word bestCurves←v11816; word curveCount←v11844; word alignBag←v11872; word sceneBag←v11900; W2 formal←c01067; word t←v11956; word formal←c01068; word intersections←v12012; { W18 var←c59800; /* declaration of q←v11928 skipped */ /* declaration of ggData←v11984 skipped */ register ptr gf←c59832 = (ptr) &globalframe; /* declaration of h←v12056 skipped */ word pointCount←v12084; /* declaration of var←c53848 skipped */ /* declaration of var←c53880 skipped */ /* declaration of var←c53912 skipped */ /* declaration of thisPoint←v17808 skipped */ /* declaration of sliceD←v17920 skipped */ word featureData←v17948 = 0; /* declaration of success←v17976 skipped */ /* declaration of dTol←v18004 skipped */ word midpoints←v18032; (* (W2Pt) (( (ptr) &var←c59800)+4)/* q←v11928 */ ) = formal←c01067; (* (( (ptr) &var←c59800)+6)/* ggData←v11984 */ ) = formal←c01068; /* VertsInNeighborhoodPlus: */ SOURCE(16135, 2326) { word tmpAddr108; tmpAddr108 = (word) (( (ptr) &var←c59800)+8)/* var←c53848 */ ; (* (ptr) tmpAddr108 ) = ( ((word) (fPt) DoForSliceTrigger←P4068) ); (* (( (ptr) tmpAddr108) + 1) ) = 1; }; { word tmpAddr109; tmpAddr109 = (word) (( (ptr) &var←c59800)+10)/* var←c53880 */ ; (* (ptr) tmpAddr109 ) = ( ((word) (fPt) ProcessSlice←P4008) ); (* (( (ptr) tmpAddr109) + 1) ) = 1; }; { word tmpAddr110; tmpAddr110 = (word) (( (ptr) &var←c59800)+12)/* var←c53912 */ ; (* (ptr) tmpAddr110 ) = ( ((word) (fPt) ProcessPoint←P3948) ); (* (( (ptr) tmpAddr110) + 1) ) = 1; }; SOURCE(16135, 2326) (* (( (ptr) &var←c59800)+7)/* h←v12056 */ ) = 0; SOURCE(16358, 20) (* (( (ptr) &var←c59800)+14)/* thisPoint←v17808 */ ) = 0; SOURCE(17621, 23) (* (( (ptr) &var←c59800)+15)/* sliceD←v17920 */ ) = 0; SOURCE(17672, 21) (* (( (ptr) &var←c59800)+16)/* success←v17976 */ ) = 0; SOURCE(17695, 14) (* (( (ptr) &var←c59800)+17)/* dTol←v18004 */ ) = t←v11956; SOURCE(17711, 46) { word pd111; pd111 = (* (( (ptr) (* (( (ptr) gf←c59832)+201)/* var←c51448 */ ))+56) ); midpoints←v18032 = (word) ( *( (fPt) ((* (ptr) pd111 ))))((* ((( (ptr) &var←c59800)+6)/* ggData←v11984 */ ) ), pd111); }; SOURCE(17760, 29) (* (( (ptr) &var←c59800)+14)/* thisPoint←v17808 */ ) = XR←NewObject(36, (* (( (ptr) gf←c59832)+60) )); SOURCE(17791, 33) (* (( (ptr) &var←c59800)+7)/* h←v12056 */ ) = (word) BestPointsFromPool←P1620((* (( (ptr) &var←c59800)+6)/* ggData←v11984 */ ), t←v11956) ; SOURCE(17827, 210) if ((0 != intersections←v12012)) { SOURCE(17851, 85) (* (( (ptr) &var←c59800)+17)/* dTol←v18004 */ ) = (word) FindIntersections←P1260(bestCurves←v11816, curveCount←v11844, (* ( ( (ptr) &var←c59800)+14)/* thisPoint←v17808 */ ), (* (W2Pt) (( (ptr) &var←c59800)+4)/* q←v11928 */ ), (* (( (ptr) &var←c59800)+17) /* dTol←v18004 */ ), (* (( (ptr) &var←c59800)+7)/* h←v12056 */ ) , (* (( (ptr) (* (( (ptr) &var←c59800)+6)/* ggData←v11984 */ ))+11) )); SOURCE(17938, 99) if ((0 != midpoints←v18032)) { SOURCE(17956, 81) (* (( (ptr) &var←c59800)+17)/* dTol←v18004 */ ) = (word) FindMidpoints←P1320(bestCurves←v11816, curveCount←v11844, (* (( (ptr) &var←c59800)+14) /* thisPoint←v17808 */ ), (* (W2Pt) (( (ptr) &var←c59800)+4)/* q←v11928 */ ), (* (( (ptr) &var←c59800)+17)/* dTol←v18004 */ ), (* ( ( (ptr) &var←c59800)+7)/* h←v12056 */ ) , (* (( (ptr) (* (( (ptr) &var←c59800)+6)/* ggData←v11984 */ ))+11) )); }; }; SOURCE(18043, 54) { word pd112; pd112 = (* (( (ptr) (* (( (ptr) gf←c59832)+203)/* var←c53176 */ ))+9) ); (void) ( *( (fPt) ((* (ptr) pd112 ))))(sceneBag←v11900, (word) (( (bPt) &var←c59800)+32)/* var←c53848 */ , pd112); }; SOURCE(18099, 29) featureData←v17948 = (* (( (ptr) alignBag←v11872)+4) ); SOURCE(18130, 193) if ((featureData←v17948 != 0)) { SOURCE(18156, 169) { word anchor←v18280; SOURCE(18158, 41) anchor←v18280 = XR←Narrow((* (( (ptr) featureData←v17948)+1) ), (* (( (ptr) gf←c59832)+62) )); SOURCE(18201, 35) { word pd113; pd113 = (* (( (ptr) (* (( (ptr) gf←c59832)+204)/* var←c53976 */ ))+7) ); if ((0 == (word) ( *( (fPt) ((* (ptr) pd113 ))))(anchor←v18280, pd113))) { SOURCE(18236, 5) (void) XR←RaiseUnnamedError(); }; }; SOURCE(18243, 42) { word pd114; pd114 = (* (( (ptr) (* (( (ptr) gf←c59832)+204)/* var←c53976 */ ))+15) ); (void) ( *( (fPt) ((* (ptr) pd114 ))))((word) (( (bPt) (* (( (ptr) &var←c59800)+14)/* thisPoint←v17808 */ ))+4), anchor←v18280, pd114) ; }; SOURCE(18287, 36) (void) ProcessPoint←P3948((* (( (ptr) &var←c59800)+14)/* thisPoint←v17808 */ ), featureData←v17948, (word) (( (bPt) &var←c59800)+48) /* var←c53912 */ ); }; }; SOURCE(18328, 19) pointCount←v12084 = (* (ptr) (* (( (ptr) &var←c59800)+7)/* h←v12056 */ ) ); SOURCE(18349, 112) if ((0 != (* (( (ptr) (* (( (ptr) &var←c59800)+7)/* h←v12056 */ ))+8) ))) { SOURCE(18370, 45) { word pd115; pd115 = (* (( (ptr) (* (( (ptr) gf←c59832)+202)/* var←c51480 */ ))+12) ); (void) ( *( (fPt) ((* (ptr) pd115 ))))((* (( (ptr) gf←c59832)+83) ), (* (( (ptr) gf←c59832)+84) ), pd115); }; SOURCE(18417, 44) { word pd116; pd116 = (* (( (ptr) (* (( (ptr) gf←c59832)+202)/* var←c51480 */ ))+14) ); (void) ( *( (fPt) ((* (ptr) pd116 ))))((* (( (ptr) gf←c59832)+83) ), (* (( (ptr) gf←c59832)+84) ), pd116); }; }; /* removed tail goto */ (* (ptr) formal←c0378 ) = (* (( (ptr) &var←c59800)+7)/* h←v12056 */ ); (* (( (ptr) formal←c0378)+1) ) = pointCount←v12084; return; } static void ProcessPoint←P3948(thisPoint←v18108, featureData←v18136, formal←c59896) word thisPoint←v18108; word featureData←v18136; word formal←c59896; { register ptr gf←c59864 = (ptr) &globalframe; word dSquared←v18324; word dTolSquared←v18352; formal←c59896 = (formal←c59896 - 48); /* ProcessPoint: */ SOURCE(16380, 564) SOURCE(16491, 29) { word x117; word x118; *(float*)&dTolSquared←v18352 = ( x117 = (* (( (ptr) formal←c59896)+17) ), *(float*)&x117 ) * ( x118 = (* (( (ptr) formal←c59896)+17) ), *(float*)&x118 ); }; SOURCE(16522, 56) { word pd119; pd119 = (* (( (ptr) (* (( (ptr) gf←c59864)+205)/* var←c54008 */ ))+21) ); dSquared←v18324 = (word) ( *( (fPt) ((* (ptr) pd119 ))))((* (W2Pt) (( (ptr) thisPoint←v18108)+1) ), (* (W2Pt) (( (ptr) formal←c59896)+4) ), pd119); }; SOURCE(16580, 23) (* (( (ptr) thisPoint←v18108)+6) ) = 0; SOURCE(16605, 339) { word x120; word x121; if ((( x120 = dSquared←v18324, *(float*)&x120 ) < ( x121 = dTolSquared←v18352, *(float*)&x121 ))) { SOURCE(16638, 39) { word pd122; pd122 = (* (( (ptr) (* (( (ptr) gf←c59864)+206)/* var←c54040 */ ))+9) ); (* (ptr) thisPoint←v18108 ) = (word) ( *( (fPt) ((* (ptr) pd122 ))))(dSquared←v18324, pd122); }; SOURCE(16679, 63) { word var←c54072; var←c54072 = XR←Narrow((* (( (ptr) featureData←v18136)+1) ), (* (( (ptr) gf←c59864)+62) )); { word pd123; pd123 = (* (( (ptr) (* (( (ptr) gf←c59864)+204)/* var←c53976 */ ))+16) ); (void) ( *( (fPt) ((* (ptr) pd123 ))))((word) (( (bPt) thisPoint←v18108)+12), var←c54072, pd123); }; }; SOURCE(16758, 83) { word pd124; word x125; word x126; pd124 = (* (( (ptr) (* (( (ptr) gf←c59864)+205)/* var←c54008 */ ))+20) ); if ((( x125 = (word) ( *( (fPt) ((* (ptr) pd124 ))))((* (W2Pt) ((( (ptr) thisPoint←v18108)+3)) ), pd124), *(float*)&x125 ) == ( x126 = (* (ptr) &fc58 ), *(float*)&x126 ))) { SOURCE(16815, 26) (* (( (ptr) thisPoint←v18108)+3) ) = (* (ptr) &fc58 ); (* (( (ptr) thisPoint←v18108)+4) ) = (* (ptr) &fc59 ); }; }; SOURCE(16843, 35) (* (( (ptr) thisPoint←v18108)+5) ) = featureData←v18136; SOURCE(16880, 23) (* (( (ptr) thisPoint←v18108)+8) ) = (word) -1; SOURCE(16905, 39) (* (( (ptr) formal←c59896)+17) ) = (word) AddNeighbor←P1680(thisPoint←v18108, (* (( (ptr) formal←c59896)+7) ), 0); }; }; } static void ProcessSlice←P4008(sliceD←v18196, thisPoint←v18224, featureData←v18252, formal←c59960) word sliceD←v18196; word thisPoint←v18224; word featureData←v18252; word formal←c59960; { register ptr gf←c59928 = (ptr) &globalframe; formal←c59960 = (formal←c59960 - 40); /* ProcessSlice: */ SOURCE(16952, 516) SOURCE(17049, 130) { W7 var←c54104; { word pd127; pd127 = (* (( (ptr) (* (ptr) (* (ptr) sliceD←v18196 ) ))+38) ); (void) ( *( (fPt) ((* (ptr) pd127 ))))((word) &var←c54104, sliceD←v18196, (* (W2Pt) (( (ptr) formal←c59960)+4) ), (* (( (ptr) formal←c59960)+17) ), pd127); }; (* (( (ptr) formal←c59960)+16) ) = var←c54104.f6; (* (( (ptr) thisPoint←v18224)+6) ) = var←c54104.f5; (* (W2Pt) (( (ptr) thisPoint←v18224)+3) ) = (* (W2Pt) (( (ptr) &var←c54104)+3) ); (* (ptr) thisPoint←v18224 ) = var←c54104.f2; (* (W2Pt) (( (ptr) thisPoint←v18224)+1) ) = (* (W2Pt) &var←c54104 ); }; SOURCE(17181, 287) if ((0 != (* (( (ptr) formal←c59960)+16) ))) { SOURCE(17199, 269) { word x128; word x129; if ((( x128 = (* (ptr) thisPoint←v18224 ), *(float*)&x128 ) < ( x129 = (* (( (ptr) formal←c59960)+17) ), *(float*)&x129 ))) { SOURCE(17231, 35) (* (( (ptr) thisPoint←v18224)+5) ) = featureData←v18252; SOURCE(17268, 86) { word pd130; word x131; word x132; pd130 = (* (( (ptr) (* (( (ptr) gf←c59928)+205)/* var←c54008 */ ))+20) ); if ((( x131 = (word) ( *( (fPt) ((* (ptr) pd130 ))))((* (W2Pt) ((( (ptr) thisPoint←v18224)+3)) ), pd130), *(float*)&x131 ) == ( x132 = (* (ptr) &fc58 ), *(float*)&x132 ))) { SOURCE(17328, 26) (* (( (ptr) thisPoint←v18224)+3) ) = (* (ptr) &fc58 ); (* (( (ptr) thisPoint←v18224)+4) ) = (* (ptr) &fc59 ); }; }; SOURCE(17359, 68) { word pd133; pd133 = (* (( (ptr) (* (( (ptr) gf←c59928)+207)/* var←c54136 */ ))+21) ); (* (( (ptr) thisPoint←v18224)+8) ) = (word) ( *( (fPt) ((* (ptr) pd133 ))))((* (( (ptr) (* (( (ptr) formal←c59960)+6) ))+11) ), (* (ptr) sliceD←v18196 ), pd133); }; SOURCE(17429, 39) (* (( (ptr) formal←c59960)+17) ) = (word) AddNeighbor←P1680(thisPoint←v18224, (* (( (ptr) formal←c59960)+7) ), 0); }; }; }; } static word DoForSliceTrigger←P4068(feature←v35032, formal←c60024) word feature←v35032; word formal←c60024; { register ptr gf←c59992 = (ptr) &globalframe; word done←v35076; formal←c60024 = (formal←c60024 - 32); /* DoForSliceTrigger: */ SOURCE(17479, 136) SOURCE(17479, 136) done←v35076 = 0; SOURCE(17526, 47) (* (( (ptr) formal←c60024)+15) ) = XR←Narrow((* (( (ptr) feature←v35032)+1) ), (* (( (ptr) gf←c59992)+64) )); SOURCE(17575, 40) (void) ProcessSlice←P4008((* (( (ptr) formal←c60024)+15) ), (* (( (ptr) formal←c60024)+14) ), feature←v35032, (word) (( (bPt) formal←c60024)+40) ); SOURCE(17479, 136) return(done←v35076); } static word FindIntersections←P1260(bestCurves←v12144, curveCount←v12172, thisPoint←v12200, q←v12228, tolerance←v12256, h←v12284, scene←v12312) word bestCurves←v12144; word curveCount←v12172; word thisPoint←v12200; W2 q←v12228; word tolerance←v12256; word h←v12284; word scene←v12312; { register ptr gf←c60056 = (ptr) &globalframe; word dTol←v12356; word curveI←v18396 = 0; word curveJ←v18424 = 0; word theseIPoints←v18452 = 0; word thisTangency←v18480 = 0; word tangentList←v18508 = 0; word success←v18536 = 0; /* FindIntersections: */ SOURCE(18504, 2180) SOURCE(18793, 16) dTol←v12356 = tolerance←v12256; SOURCE(18811, 1873) { register word i←v18748 = 0; register word noName←c54168; noName←c54168 = curveCount←v12172; if ((i←v18748 >= noName←c54168)) { goto lab←L100050; }; lab←L100053: ; SOURCE(18844, 22) { word limit134; curveI←v18396 = (* ((( (ptr) bestCurves←v12144)+10)+( limit134 = (* (( (ptr) bestCurves←v12144)+9) ), BCK(i←v18748, limit134) )) ); }; SOURCE(18868, 27) { word x135; word x136; if ((( x135 = (* (ptr) curveI←v18396 ), *(float*)&x135 ) > ( x136 = dTol←v12356, *(float*)&x136 ))) { SOURCE(18895, 4) goto lab←L100051; }; }; SOURCE(18958, 1726) { register word j←v18792 = 0; if ((j←v18792 > i←v18748)) { goto lab←L100054; }; lab←L100057: ; SOURCE(18982, 22) { word limit137; curveJ←v18424 = (* ((( (ptr) bestCurves←v12144)+10)+( limit137 = (* (( (ptr) bestCurves←v12144)+9) ), BCK(j←v18792, limit137) )) ); }; SOURCE(19006, 27) { word x138; word x139; if ((( x138 = (* (ptr) curveJ←v18424 ), *(float*)&x138 ) > ( x139 = dTol←v12356, *(float*)&x139 ))) { SOURCE(19033, 4) goto lab←L100056; }; }; SOURCE(19093, 62) { W2 var←c54200; (void) CurveMeetsCurve←P2340((word) &var←c54200, curveI←v18396, curveJ←v18424); thisTangency←v18480 = var←c54200.f1; theseIPoints←v18452 = var←c54200.f0; }; SOURCE(19157, 26) tangentList←v18508 = thisTangency←v18480; SOURCE(19185, 1499) { register word list←v18836; list←v18836 = theseIPoints←v18452; lab←L100061: ; if ((list←v18836 != 0)) { } else { goto lab←L100058; }; SOURCE(19255, 28) (* (W2Pt) (( (ptr) thisPoint←v12200)+1) ) = (* (W2Pt) list←v18836 ); SOURCE(19285, 55) { word pd140; pd140 = (* (( (ptr) (* (( (ptr) gf←c60056)+205)/* var←c54008 */ ))+19) ); (* (ptr) thisPoint←v12200 ) = (word) ( *( (fPt) ((* (ptr) pd140 ))))((* (W2Pt) (( (ptr) thisPoint←v12200)+1) ), q←v12228, pd140) ; }; SOURCE(19342, 32) { word x141; word x142; success←v18536 = (unsigned) (( x141 = (* (ptr) thisPoint←v12200 ), *(float*)&x141 ) <= ( x142 = dTol←v12356, *(float*)&x142 )); }; SOURCE(19376, 1273) if ((0 != success←v18536)) { SOURCE(19392, 1259) { word featureData←v18964; word alignmentPoint←v18992; SOURCE(19394, 46) featureData←v18964 = XR←NewObject(8, (* (( (ptr) gf←c60056)+65) )); SOURCE(19442, 167) alignmentPoint←v18992 = XR←NewObject(20, (* (( (ptr) gf←c60056)+66) )); (* (W2Pt) alignmentPoint←v18992 ) = (* (W2Pt) (( (ptr) thisPoint←v12200)+1) ); (* (( (ptr) alignmentPoint←v18992)+2) ) = (* (ptr) tangentList←v18508 ); (* (( (ptr) alignmentPoint←v18992)+3) ) = (* (( (ptr) curveI←v18396)+5) ); (* (( (ptr) alignmentPoint←v18992)+4) ) = (* (( (ptr) curveJ←v18424)+5) ); SOURCE(19611, 36) (* (ptr) featureData←v18964 ) = 6; SOURCE(19649, 34) (* (( (ptr) featureData←v18964)+1) ) = alignmentPoint←v18992; SOURCE(19685, 35) (* (( (ptr) thisPoint←v12200)+5) ) = featureData←v18964; SOURCE(19722, 23) (* (( (ptr) thisPoint←v12200)+8) ) = (word) -1; SOURCE(19747, 776) if (((* (ptr) (* (( (ptr) curveI←v18396)+5) ) ) == 0)) { SOURCE(19787, 317) { word sliceD←v19036; word slice←v19064; SOURCE(19789, 58) sliceD←v19036 = XR←Narrow((* (( (ptr) (* (( (ptr) curveI←v18396)+5) ))+1) ), (* (( (ptr) gf←c60056)+64) )); SOURCE(19849, 27) slice←v19064 = (* (ptr) sliceD←v19036 ); SOURCE(19878, 54) { word pd143; pd143 = (* (( (ptr) (* (( (ptr) gf←c60056)+207)/* var←c54136 */ ))+21) ); (* (( (ptr) thisPoint←v12200)+8) ) = (word) ( *( (fPt) ((* (ptr) pd143 ))))(scene←v12312, slice←v19064, pd143); }; SOURCE(19934, 34) (* (( (ptr) thisPoint←v12200)+6) ) = (* (( (ptr) curveI←v18396)+6) ); SOURCE(19970, 72) { W2 var←c54296; W7 var←c0417; { /*1*/ word pd144; /*1*/ pd144 = (* (( (ptr) (* (( (ptr) gf←c60056)+208)/* var←c54328 */ ))+47) ); /*1*/ (void) ( *( (fPt) ((* (ptr) pd144 ))))((word) &var←c0417, sliceD←v19036, q←v12228, dTol←v12356, pd144); /*1*/ }; var←c54296 = (* (W2Pt) (( (ptr) &var←c0417)+3) ); (* (W2Pt) (( (ptr) thisPoint←v12200)+3) ) = var←c54296; }; }; } else { SOURCE(20111, 412) if (((* (ptr) (* (( (ptr) curveJ←v18424)+5) ) ) == 0)) { SOURCE(20151, 342) { word sliceD←v19108; word slice←v19136; SOURCE(20153, 58) sliceD←v19108 = XR←Narrow((* (( (ptr) (* (( (ptr) curveJ←v18424)+5) ))+1) ), (* (( (ptr) gf←c60056)+64) )); SOURCE(20213, 27) slice←v19136 = (* (ptr) sliceD←v19108 ); SOURCE(20242, 79) { /*1*/ word var←c54360; /*1*/ { /*1*/ word x145; /*1*/ word pd146; /*1*/ word x147; /*1*/ pd146 = (* (( (ptr) (* (( (ptr) gf←c60056)+207)/* var←c54136 */ ))+21) ); /*1*/ var←c54360 = (x145 = (* (( (ptr) thisPoint←v12200)+8) ), /*1*/ x147 = (word) ( *( (fPt) ((* (ptr) pd146 ))))(scene←v12312, slice←v19136, pd146), /*1*/ MIN((int)(word), x145, x147)); /*1*/ }; /*1*/ (* (( (ptr) thisPoint←v12200)+8) ) = var←c54360; /*1*/ }; SOURCE(20323, 34) (* (( (ptr) thisPoint←v12200)+6) ) = (* (( (ptr) curveJ←v18424)+6) ); SOURCE(20359, 72) { /*1*/ W2 var←c54392; /*1*/ W7 var←c0422; /*1*/ { /*1*/ word pd148; /*1*/ pd148 = (* (( (ptr) (* (( (ptr) gf←c60056)+208)/* var←c54328 */ ))+47) ); /*1*/ (void) ( *( (fPt) ((* (ptr) pd148 ))))((word) &var←c0422, sliceD←v19108, q←v12228, dTol←v12356, pd148); /*1*/ }; /*1*/ var←c54392 = (* (W2Pt) (( (ptr) &var←c0422)+3) ); /*1*/ (* (W2Pt) (( (ptr) thisPoint←v12200)+3) ) = var←c54392; /*1*/ }; }; } else { SOURCE(20500, 23) (* (( (ptr) thisPoint←v12200)+6) ) = 0; }; }; SOURCE(20525, 83) { word pd149; word x150; word x151; pd149 = (* (( (ptr) (* (( (ptr) gf←c60056)+205)/* var←c54008 */ ))+20) ); if ((( x150 = (word) ( *( (fPt) ((* (ptr) pd149 ))))((* (W2Pt) ((( (ptr) thisPoint←v12200)+3)) ), pd149), *(float*)&x150 ) == ( x151 = (* (ptr) &fc58 ), *(float*)&x151 ))) { SOURCE(20582, 26) (* (( (ptr) thisPoint←v12200)+3) ) = (* (ptr) &fc58 ); (* (( (ptr) thisPoint←v12200)+4) ) = (* (ptr) &fc59 ); }; }; SOURCE(20610, 39) dTol←v12356 = (word) AddNeighbor←P1680(thisPoint←v12200, h←v12284, 0); }; }; SOURCE(20654, 30) tangentList←v18508 = (* (( (ptr) tangentList←v18508)+1) ); list←v18836 = (* (( (ptr) list←v18836)+2) ); goto lab←L100061; lab←L100058: ; }; lab←L100056: ; if ((j←v18792 >= i←v18748)) { goto lab←L100054; }; j←v18792 = (j←v18792 + 1); goto lab←L100057; lab←L100054: ; }; i←v18748 = (i←v18748 + 1); if ((i←v18748 < noName←c54168)) { goto lab←L100053; }; lab←L100050: ; lab←L100051: ; }; SOURCE(18504, 2180) return(dTol←v12356); } static word FindMidpoints←P1320(bestCurves←v12416, curveCount←v12444, thisPoint←v12472, q←v12500, tolerance←v12528, h←v12556, scene←v12584) word bestCurves←v12416; word curveCount←v12444; word thisPoint←v12472; W2 q←v12500; word tolerance←v12528; word h←v12556; word scene←v12584; { register ptr gf←c60088 = (ptr) &globalframe; word dTol←v12628; word curve←v19180 = 0; W2 midpoint←v19208; word success←v19236 = 0; /* FindMidpoints: */ SOURCE(20717, 1268) SOURCE(20940, 16) dTol←v12628 = tolerance←v12528; SOURCE(20958, 1027) { register word i←v19280 = 0; register word noName←c54424; noName←c54424 = curveCount←v12444; if ((i←v19280 >= noName←c54424)) { goto lab←L100062; }; lab←L100065: ; SOURCE(20991, 21) { word limit152; curve←v19180 = (* ((( (ptr) bestCurves←v12416)+10)+( limit152 = (* (( (ptr) bestCurves←v12416)+9) ), BCK(i←v19280, limit152) )) ); }; SOURCE(21014, 37) if (((* (ptr) (* (( (ptr) curve←v19180)+5) ) ) != 0)) { SOURCE(21051, 4) goto lab←L100064; }; SOURCE(21057, 44) { W3 var←c54456; (void) ComputeMidpoint←P2220((word) &var←c54456, curve←v19180); success←v19236 = var←c54456.f2; midpoint←v19208 = (* (W2Pt) &var←c54456 ); }; SOURCE(21103, 20) if ((0 == success←v19236)) { SOURCE(21123, 4) goto lab←L100064; }; SOURCE(21129, 26) (* (W2Pt) (( (ptr) thisPoint←v12472)+1) ) = midpoint←v19208; SOURCE(21157, 55) { word pd153; pd153 = (* (( (ptr) (* (( (ptr) gf←c60088)+205)/* var←c54008 */ ))+19) ); (* (ptr) thisPoint←v12472 ) = (word) ( *( (fPt) ((* (ptr) pd153 ))))((* (W2Pt) (( (ptr) thisPoint←v12472)+1) ), q←v12500, pd153) ; }; SOURCE(21214, 32) { word x154; word x155; success←v19236 = (unsigned) (( x154 = (* (ptr) thisPoint←v12472 ), *(float*)&x154 ) <= ( x155 = dTol←v12628, *(float*)&x155 )); }; SOURCE(21248, 737) if ((0 != success←v19236)) { SOURCE(21264, 723) { word sliceD←v19324; word slice←v19352; word featureData←v19380; word alignmentPoint←v19408; SOURCE(21266, 57) sliceD←v19324 = XR←Narrow((* (( (ptr) (* (( (ptr) curve←v19180)+5) ))+1) ), (* (( (ptr) gf←c60088)+64) )); SOURCE(21325, 27) slice←v19352 = (* (ptr) sliceD←v19324 ); SOURCE(21354, 46) featureData←v19380 = XR←NewObject(8, (* (( (ptr) gf←c60088)+65) )); SOURCE(21402, 139) alignmentPoint←v19408 = XR←NewObject(20, (* (( (ptr) gf←c60088)+66) )); (* (W2Pt) alignmentPoint←v19408 ) = (* (W2Pt) (( (ptr) thisPoint←v12472)+1) ); (* (( (ptr) alignmentPoint←v19408)+3) ) = (* (( (ptr) curve←v19180)+5) ); SOURCE(21543, 27) (* (ptr) featureData←v19380 ) = 7; SOURCE(21572, 34) (* (( (ptr) featureData←v19380)+1) ) = alignmentPoint←v19408; SOURCE(21608, 35) (* (( (ptr) thisPoint←v12472)+5) ) = featureData←v19380; SOURCE(21645, 33) (* (( (ptr) thisPoint←v12472)+6) ) = (* (( (ptr) curve←v19180)+6) ); SOURCE(21680, 72) { W2 var←c54552; W7 var←c0443; { word pd156; pd156 = (* (( (ptr) (* (( (ptr) gf←c60088)+208)/* var←c54328 */ ))+47) ); (void) ( *( (fPt) ((* (ptr) pd156 ))))((word) &var←c0443, sliceD←v19324, q←v12500, dTol←v12628, pd156); }; var←c54552 = (* (W2Pt) (( (ptr) &var←c0443)+3) ); (* (W2Pt) (( (ptr) thisPoint←v12472)+3) ) = var←c54552; }; SOURCE(21805, 83) { word pd157; word x158; word x159; pd157 = (* (( (ptr) (* (( (ptr) gf←c60088)+205)/* var←c54008 */ ))+20) ); if ((( x158 = (word) ( *( (fPt) ((* (ptr) pd157 ))))((* (W2Pt) ((( (ptr) thisPoint←v12472)+3)) ), pd157), *(float*)&x158 ) == ( x159 = (* (ptr) &fc58 ), *(float*)&x159 ))) { SOURCE(21862, 26) (* (( (ptr) thisPoint←v12472)+3) ) = (* (ptr) &fc58 ); (* (( (ptr) thisPoint←v12472)+4) ) = (* (ptr) &fc59 ); }; }; SOURCE(21890, 54) { word pd160; pd160 = (* (( (ptr) (* (( (ptr) gf←c60088)+207)/* var←c54136 */ ))+21) ); (* (( (ptr) thisPoint←v12472)+8) ) = (word) ( *( (fPt) ((* (ptr) pd160 ))))(scene←v12584, slice←v19352, pd160); }; SOURCE(21946, 39) dTol←v12628 = (word) AddNeighbor←P1680(thisPoint←v12472, h←v12556, 0); }; }; lab←L100064: ; i←v19280 = (i←v19280 + 1); if ((i←v19280 < noName←c54424)) { goto lab←L100065; }; lab←L100062: ; }; SOURCE(20717, 1268) return(dTol←v12628); } static void CurvesInNeighborhoodPlus←P1380(formal←c0467, alignBag←v12688, sceneBag←v12716, formal←c01069, formal←c01070, t←v12800, innerR←v12828) word formal←c0467; word alignBag←v12688; word sceneBag←v12716; W2 formal←c01069; word formal←c01070; word t←v12800; word innerR←v12828; { W22 var←c60120; /* declaration of q←v12744 skipped */ /* declaration of ggData←v12772 skipped */ register ptr gf←c60152 = (ptr) &globalframe; /* declaration of h←v12872 skipped */ word curveCount←v12900; /* declaration of var←c54584 skipped */ /* declaration of var←c54616 skipped */ /* declaration of var←c54648 skipped */ /* declaration of var←c54680 skipped */ /* declaration of var←c54712 skipped */ /* declaration of line←v19592 skipped */ word circle←v19620 = 0; /* declaration of sliceD←v19648 skipped */ word featureData←v19676 = 0; word added←v19704 = 0; /* declaration of thisCurve←v19732 skipped */ /* declaration of dTol←v19760 skipped */ (* (W2Pt) (( (ptr) &var←c60120)+4)/* q←v12744 */ ) = formal←c01069; (* (( (ptr) &var←c60120)+6)/* ggData←v12772 */ ) = formal←c01070; /* CurvesInNeighborhoodPlus: */ SOURCE(22003, 3516) { word tmpAddr161; tmpAddr161 = (word) (( (ptr) &var←c60120)+8)/* var←c54584 */ ; (* (ptr) tmpAddr161 ) = ( ((word) (fPt) DoForSceneSlice←P4800) ); (* (( (ptr) tmpAddr161) + 1) ) = 1; }; { word tmpAddr162; tmpAddr162 = (word) (( (ptr) &var←c60120)+10)/* var←c54616 */ ; (* (ptr) tmpAddr162 ) = ( ((word) (fPt) ProcessSlopeLine←P4740) ); (* (( (ptr) tmpAddr162) + 1) ) = 1; }; { word tmpAddr163; tmpAddr163 = (word) (( (ptr) &var←c60120)+12)/* var←c54648 */ ; (* (ptr) tmpAddr163 ) = ( ((word) (fPt) ProcessSlice←P4680) ); (* (( (ptr) tmpAddr163) + 1) ) = 1; }; { word tmpAddr164; tmpAddr164 = (word) (( (ptr) &var←c60120)+14)/* var←c54680 */ ; (* (ptr) tmpAddr164 ) = ( ((word) (fPt) ProcessCircle←P4620) ); (* (( (ptr) tmpAddr164) + 1) ) = 1; }; { word tmpAddr165; tmpAddr165 = (word) (( (ptr) &var←c60120)+16)/* var←c54712 */ ; (* (ptr) tmpAddr165 ) = ( ((word) (fPt) ProcessLine←P4560) ); (* (( (ptr) tmpAddr165) + 1) ) = 1; }; SOURCE(22003, 3516) (* (( (ptr) &var←c60120)+7)/* h←v12872 */ ) = 0; SOURCE(24364, 10) (* (( (ptr) &var←c60120)+18)/* line←v19592 */ ) = 0; SOURCE(24392, 23) (* (( (ptr) &var←c60120)+19)/* sliceD←v19648 */ ) = 0; SOURCE(24464, 40) (* (( (ptr) &var←c60120)+20)/* thisCurve←v19732 */ ) = XR←NewObject(36, (* (( (ptr) gf←c60152)+60) )); SOURCE(24506, 14) (* (( (ptr) &var←c60120)+21)/* dTol←v19760 */ ) = t←v12800; SOURCE(24522, 41) (* (( (ptr) &var←c60120)+7)/* h←v12872 */ ) = (word) BestCurvesFromPool←P1560((* (( (ptr) &var←c60120)+6)/* ggData←v12772 */ ), t←v12800, innerR←v12828) ; SOURCE(24566, 50) { word pd166; pd166 = (* (( (ptr) (* (( (ptr) gf←c60152)+203)/* var←c53176 */ ))+21) ); (void) ( *( (fPt) ((* (ptr) pd166 ))))(alignBag←v12688, (word) (( (bPt) &var←c60120)+40)/* var←c54616 */ , pd166); }; SOURCE(24618, 228) { register word angleLines←v20152; angleLines←v20152 = (* (( (ptr) alignBag←v12688)+1) ); lab←L100070: ; if ((angleLines←v20152 != 0)) { } else { goto lab←L100067; }; SOURCE(24719, 30) featureData←v19676 = (* (ptr) angleLines←v20152 ); SOURCE(24751, 52) (* (( (ptr) &var←c60120)+18)/* line←v19592 */ ) = (* (ptr) XR←Narrow((* (( (ptr) featureData←v19676)+1) ), (* (( (ptr) gf←c60152)+67) )) ); SOURCE(24805, 41) (void) ProcessLine←P4560((* (( (ptr) &var←c60120)+18)/* line←v19592 */ ), (* (( (ptr) &var←c60120)+20)/* thisCurve←v19732 */ ), featureData←v19676, (word) ( ( (bPt) &var←c60120)+64)/* var←c54712 */ ); angleLines←v20152 = (* (( (ptr) angleLines←v20152)+1) ); goto lab←L100070; lab←L100067: ; }; SOURCE(24857, 195) { register word dLines←v20280; dLines←v20280 = (* (( (ptr) alignBag←v12688)+3) ); lab←L100074: ; if ((dLines←v20280 != 0)) { } else { goto lab←L100071; }; SOURCE(24949, 26) featureData←v19676 = (* (ptr) dLines←v20280 ); SOURCE(24977, 32) (* (( (ptr) &var←c60120)+18)/* line←v19592 */ ) = XR←Narrow((* (( (ptr) featureData←v19676)+1) ), (* (( (ptr) gf←c60152)+68) )); SOURCE(25011, 41) (void) ProcessLine←P4560((* (( (ptr) &var←c60120)+18)/* line←v19592 */ ), (* (( (ptr) &var←c60120)+20)/* thisCurve←v19732 */ ), featureData←v19676, (word) ( ( (bPt) &var←c60120)+64)/* var←c54712 */ ); dLines←v20280 = (* (( (ptr) dLines←v20280)+1) ); goto lab←L100074; lab←L100071: ; }; SOURCE(25063, 228) { register word circles←v20408; circles←v20408 = (* (( (ptr) alignBag←v12688)+2) ); lab←L100078: ; if ((circles←v20408 != 0)) { } else { goto lab←L100075; }; SOURCE(25157, 27) featureData←v19676 = (* (ptr) circles←v20408 ); SOURCE(25186, 58) circle←v19620 = (* (ptr) XR←Narrow((* (( (ptr) featureData←v19676)+1) ), (* (( (ptr) gf←c60152)+69) )) ); SOURCE(25246, 45) (void) ProcessCircle←P4620(circle←v19620, (* (( (ptr) &var←c60120)+20)/* thisCurve←v19732 */ ), featureData←v19676, (word) ( ( (bPt) &var←c60120)+56)/* var←c54680 */ ); circles←v20408 = (* (( (ptr) circles←v20408)+1) ); goto lab←L100078; lab←L100075: ; }; SOURCE(25302, 52) { word pd167; pd167 = (* (( (ptr) (* (( (ptr) gf←c60152)+203)/* var←c53176 */ ))+9) ); (void) ( *( (fPt) ((* (ptr) pd167 ))))(sceneBag←v12716, (word) (( (bPt) &var←c60120)+32)/* var←c54584 */ , pd167); }; SOURCE(25356, 19) curveCount←v12900 = (* (ptr) (* (( (ptr) &var←c60120)+7)/* h←v12872 */ ) ); SOURCE(25377, 112) if ((0 != (* (( (ptr) (* (( (ptr) &var←c60120)+7)/* h←v12872 */ ))+8) ))) { SOURCE(25398, 45) { word pd168; pd168 = (* (( (ptr) (* (( (ptr) gf←c60152)+202)/* var←c51480 */ ))+12) ); (void) ( *( (fPt) ((* (ptr) pd168 ))))((* (( (ptr) gf←c60152)+82) ), (* (( (ptr) gf←c60152)+84) ), pd168); }; SOURCE(25445, 44) { word pd169; pd169 = (* (( (ptr) (* (( (ptr) gf←c60152)+202)/* var←c51480 */ ))+14) ); (void) ( *( (fPt) ((* (ptr) pd169 ))))((* (( (ptr) gf←c60152)+82) ), (* (( (ptr) gf←c60152)+84) ), pd169); }; }; SOURCE(25494, 25) (void) SortCurves←P2040((* (( (ptr) &var←c60120)+7)/* h←v12872 */ ), curveCount←v12900); /* removed tail goto */ (* (ptr) formal←c0467 ) = (* (( (ptr) &var←c60120)+7)/* h←v12872 */ ); (* (( (ptr) formal←c0467)+1) ) = curveCount←v12900; return; } static void ProcessLine←P4560(line←v19836, thisCurve←v19864, featureData←v19892, formal←c60216) word line←v19836; word thisCurve←v19864; word featureData←v19892; word formal←c60216; { register ptr gf←c60184 = (ptr) &globalframe; formal←c60216 = (formal←c60216 - 64); /* ProcessLine: */ SOURCE(22171, 486) SOURCE(22254, 46) { word pd170; pd170 = (* (( (ptr) (* (( (ptr) gf←c60184)+209)/* var←c54776 */ ))+39) ); (* (ptr) thisCurve←v19864 ) = (word) ( *( (fPt) ((* (ptr) pd170 ))))((* (W2Pt) (( (ptr) formal←c60216)+4) ), line←v19836, pd170) ; }; SOURCE(22302, 355) { word x171; word x172; if ((( x171 = (* (ptr) thisCurve←v19864 ), *(float*)&x171 ) < ( x172 = (* (( (ptr) formal←c60216)+21) ), *(float*)&x172 ))) { SOURCE(22334, 35) (* (( (ptr) thisCurve←v19864)+5) ) = featureData←v19892; SOURCE(22371, 52) { word pd173; pd173 = (* (( (ptr) (* (( (ptr) gf←c60184)+209)/* var←c54776 */ ))+40) ); (void) ( *( (fPt) ((* (ptr) pd173 ))))((word) (( (bPt) thisCurve←v19864)+4), (* (W2Pt) (( (ptr) formal←c60216)+4) ), line←v19836, pd173) ; }; SOURCE(22425, 52) { word pd174; pd174 = (* (( (ptr) (* (( (ptr) gf←c60184)+205)/* var←c54008 */ ))+11) ); (void) ( *( (fPt) ((* (ptr) pd174 ))))((word) (( (bPt) thisCurve←v19864)+12), (* (W2Pt) (( (ptr) formal←c60216)+4) ), (* (W2Pt) ( ( (ptr) thisCurve←v19864)+1) ), pd174); }; SOURCE(22479, 86) { word pd175; word x176; word x177; pd175 = (* (( (ptr) (* (( (ptr) gf←c60184)+205)/* var←c54008 */ ))+20) ); if ((( x176 = (word) ( *( (fPt) ((* (ptr) pd175 ))))((* (W2Pt) ((( (ptr) thisCurve←v19864)+3)) ), pd175), *(float*)&x176 ) == ( x177 = (* (ptr) &fc58 ), *(float*)&x177 ))) { SOURCE(22539, 26) (* (( (ptr) thisCurve←v19864)+3) ) = (* (ptr) &fc58 ); (* (( (ptr) thisCurve←v19864)+4) ) = (* (ptr) &fc59 ); }; }; SOURCE(22569, 23) (* (( (ptr) thisCurve←v19864)+6) ) = 0; SOURCE(22594, 23) (* (( (ptr) thisCurve←v19864)+8) ) = (word) -1; SOURCE(22619, 38) (* (( (ptr) formal←c60216)+21) ) = (word) AddNeighbor←P1680(thisCurve←v19864, (* (( (ptr) formal←c60216)+7) ), 1); }; }; } static void ProcessCircle←P4620(formal←c01071, thisCurve←v19980, featureData←v20008, formal←c60312) word formal←c01071; word thisCurve←v19980; word featureData←v20008; word formal←c60312; { W10 var←c60248; /* declaration of circle←v19952 skipped */ register ptr gf←c60280 = (ptr) &globalframe; /* declaration of var←c54808 skipped */ /* declaration of centerToQ←v20564 skipped */ /* declaration of distQtoCenter←v20592 skipped */ formal←c60312 = (formal←c60312 - 56); (* (( (ptr) &var←c60248)+4)/* circle←v19952 */ ) = formal←c01071; (* (ptr) &var←c60248 ) = formal←c60312; /* ProcessCircle: */ SOURCE(22664, 864) { word tmpAddr178; tmpAddr178 = (word) (( (ptr) &var←c60248)+5)/* var←c54808 */ ; (* (ptr) tmpAddr178 ) = ( ((word) (fPt) QProjectedOntoCircle←P5004) ); (* (( (ptr) tmpAddr178) + 1) ) = 1; }; SOURCE(23054, 51) { word pd179; pd179 = (* (( (ptr) (* (( (ptr) gf←c60280)+205)/* var←c54008 */ ))+11) ); (void) ( *( (fPt) ((* (ptr) pd179 ))))((word) (( (bPt) &var←c60248)+28)/* centerToQ←v20564 */ , (* (W2Pt) (( (ptr) formal←c60312)+4) ), (* (W2Pt) (* (( (ptr) &var←c60248)+4)/* circle←v19952 */ ) ), pd179); }; SOURCE(23107, 52) { word pd180; pd180 = (* (( (ptr) (* (( (ptr) gf←c60280)+205)/* var←c54008 */ ))+18) ); (* (( (ptr) &var←c60248)+9)/* distQtoCenter←v20592 */ ) = (word) ( *( (fPt) ((* (ptr) pd180 ))))((* (W2Pt) ((( (ptr) &var←c60248)+7) /* centerToQ←v20564 */ ) ), pd180); }; SOURCE(23161, 49) { float tf181; word x182; word x183; float tf184; (* (ptr) thisCurve←v19980 ) = ( tf184 = FABS((( x182 = (* (( (ptr) &var←c60248)+9)/* distQtoCenter←v20592 */ ), *(float*)&x182 ) - ( x183 = (* (( (ptr) (* (( (ptr) &var←c60248)+4)/* circle←v19952 */ ))+2) ), *(float*)&x183 )), tf181), *(word*)&tf184 ); }; SOURCE(23212, 316) { word x185; word x186; if ((( x185 = (* (ptr) thisCurve←v19980 ), *(float*)&x185 ) < ( x186 = (* (( (ptr) formal←c60312)+21) ), *(float*)&x186 ))) { SOURCE(23244, 35) (* (( (ptr) thisCurve←v19980)+5) ) = featureData←v20008; SOURCE(23281, 40) (void) QProjectedOntoCircle←P5004((word) (( (bPt) thisCurve←v19980)+4), (word) (( (bPt) &var←c60248)+20)/* var←c54808 */ ) ; SOURCE(23323, 115) { word x187; word x188; if ((( x187 = (* (ptr) thisCurve←v19980 ), *(float*)&x187 ) == ( x188 = (* (ptr) &fc58 ), *(float*)&x188 ))) { SOURCE(23352, 34) (* (W2Pt) (( (ptr) thisCurve←v19980)+3) ) = (* (W2Pt) (( (ptr) &var←c60248)+7)/* centerToQ←v20564 */ ); } else { SOURCE(23386, 52) { word pd189; pd189 = (* (( (ptr) (* (( (ptr) gf←c60280)+205)/* var←c54008 */ ))+11) ); (void) ( *( (fPt) ((* (ptr) pd189 ))))((word) (( (bPt) thisCurve←v19980)+12), (* (W2Pt) (( (ptr) formal←c60312)+4) ), (* (W2Pt) ( ( (ptr) thisCurve←v19980)+1) ), pd189); }; }; }; SOURCE(23440, 23) (* (( (ptr) thisCurve←v19980)+6) ) = 0; SOURCE(23465, 23) (* (( (ptr) thisCurve←v19980)+8) ) = (word) -1; SOURCE(23490, 38) (* (( (ptr) formal←c60312)+21) ) = (word) AddNeighbor←P1680(thisCurve←v19980, (* (( (ptr) formal←c60312)+7) ), 1); }; }; } static void QProjectedOntoCircle←P5004(formal←c0486, formal←c60376) word formal←c0486; word formal←c60376; { register ptr gf←c60344 = (ptr) &globalframe; W2 projectedPt←v20668; formal←c60376 = (formal←c60376 - 20); /* QProjectedOntoCircle: */ SOURCE(22753, 296) SOURCE(22848, 201) { word x190; word x192; if ((( x190 = (* (( (ptr) formal←c60376)+9) ), *(float*)&x190 ) < ( x192 = (* (ptr) &fc191 ), *(float*)&x192 ))) { SOURCE(22880, 70) { word x193; word x194; *(float*)&projectedPt←v20668.f0 = ( x193 = (* (ptr) (* (( (ptr) formal←c60376)+4) ) ), *(float*)&x193 ) + ( x194 = (* (( (ptr) (* (( (ptr) formal←c60376)+4) ))+2) ), *(float*)&x194 ); }; projectedPt←v20668.f1 = (* (( (ptr) (* (( (ptr) formal←c60376)+4) ))+1) ); } else { SOURCE(22950, 99) { W2 var←c54840; { word pd195; word x196; word x197; float tf198; pd195 = (* (( (ptr) (* (( (ptr) gf←c60344)+205)/* var←c54008 */ ))+12) ); (void) ( *( (fPt) ((* (ptr) pd195 ))))((word) &var←c54840, (* (W2Pt) (( (ptr) formal←c60376)+7) ), ( tf198 = ( x196 = (* (( (ptr) (* (( (ptr) formal←c60376)+4) ))+2) ), *(float*)&x196 ) / ( x197 = (* (( (ptr) formal←c60376)+9) ), *(float*)&x197 ), *(word*)&tf198 ), pd195); }; { W2 var←c0485; { word pd199; pd199 = (* (( (ptr) (* (( (ptr) gf←c60344)+205)/* var←c54008 */ ))+10) ); (void) ( *( (fPt) ((* (ptr) pd199 ))))((word) &var←c0485, (* (W2Pt) (* (( (ptr) formal←c60376)+4) ) ), var←c54840, pd199) ; }; projectedPt←v20668 = var←c0485; }; }; }; }; /* removed tail goto */ (* (W2Pt) formal←c0486 ) = projectedPt←v20668; return; } static void ProcessSlice←P4680(sliceD←v20068, thisCurve←v20096, featureData←v20124, formal←c60440) word sliceD←v20068; word thisCurve←v20096; word featureData←v20124; word formal←c60440; { register ptr gf←c60408 = (ptr) &globalframe; word success←v20740 = 0; formal←c60440 = (formal←c60440 - 48); /* ProcessSlice: */ SOURCE(23536, 540) SOURCE(23656, 132) { W7 var←c54872; { word pd200; pd200 = (* (( (ptr) (* (ptr) (* (ptr) sliceD←v20068 ) ))+41) ); (void) ( *( (fPt) ((* (ptr) pd200 ))))((word) &var←c54872, sliceD←v20068, (* (W2Pt) (( (ptr) formal←c60440)+4) ), (* (( (ptr) formal←c60440)+21) ), pd200); }; success←v20740 = var←c54872.f6; (* (( (ptr) thisCurve←v20096)+6) ) = var←c54872.f5; (* (W2Pt) (( (ptr) thisCurve←v20096)+3) ) = (* (W2Pt) (( (ptr) &var←c54872)+3) ); (* (ptr) thisCurve←v20096 ) = var←c54872.f2; (* (W2Pt) (( (ptr) thisCurve←v20096)+1) ) = (* (W2Pt) &var←c54872 ); }; SOURCE(23790, 286) if ((0 != success←v20740)) { SOURCE(23808, 268) { word x201; word x202; if ((( x201 = (* (ptr) thisCurve←v20096 ), *(float*)&x201 ) < ( x202 = (* (( (ptr) formal←c60440)+21) ), *(float*)&x202 ))) { SOURCE(23840, 35) (* (( (ptr) thisCurve←v20096)+5) ) = featureData←v20124; SOURCE(23877, 86) { word pd203; word x204; word x205; pd203 = (* (( (ptr) (* (( (ptr) gf←c60408)+205)/* var←c54008 */ ))+20) ); if ((( x204 = (word) ( *( (fPt) ((* (ptr) pd203 ))))((* (W2Pt) ((( (ptr) thisCurve←v20096)+3)) ), pd203), *(float*)&x204 ) == ( x205 = (* (ptr) &fc58 ), *(float*)&x205 ))) { SOURCE(23937, 26) (* (( (ptr) thisCurve←v20096)+3) ) = (* (ptr) &fc58 ); (* (( (ptr) thisCurve←v20096)+4) ) = (* (ptr) &fc59 ); }; }; SOURCE(23968, 68) { word pd206; pd206 = (* (( (ptr) (* (( (ptr) gf←c60408)+207)/* var←c54136 */ ))+21) ); (* (( (ptr) thisCurve←v20096)+8) ) = (word) ( *( (fPt) ((* (ptr) pd206 ))))((* (( (ptr) (* (( (ptr) formal←c60440)+6) ))+11) ), (* (ptr) sliceD←v20068 ), pd206); }; SOURCE(24038, 38) (* (( (ptr) formal←c60440)+21) ) = (word) AddNeighbor←P1680(thisCurve←v20096, (* (( (ptr) formal←c60440)+7) ), 1); }; }; }; } static word ProcessSlopeLine←P4740(feature←v38372, formal←c60504) word feature←v38372; word formal←c60504; { register ptr gf←c60472 = (ptr) &globalframe; word done←v38416; formal←c60504 = (formal←c60504 - 40); /* ProcessSlopeLine: */ SOURCE(24087, 133) SOURCE(24087, 133) done←v38416 = 0; SOURCE(24133, 48) (* (( (ptr) formal←c60504)+18) ) = (* (ptr) XR←Narrow((* (( (ptr) feature←v38372)+1) ), (* (( (ptr) gf←c60472)+67) )) ); SOURCE(24183, 37) (void) ProcessLine←P4560((* (( (ptr) formal←c60504)+18) ), (* (( (ptr) formal←c60504)+20) ), feature←v38372, (word) (( (bPt) formal←c60504)+64) ); SOURCE(24087, 133) return(done←v38416); } static word DoForSceneSlice←P4800(feature←v38476, formal←c60568) word feature←v38476; word formal←c60568; { register ptr gf←c60536 = (ptr) &globalframe; word done←v38520; formal←c60568 = (formal←c60568 - 32); /* DoForSceneSlice: */ SOURCE(24225, 134) SOURCE(24225, 134) done←v38520 = 0; SOURCE(24270, 47) (* (( (ptr) formal←c60568)+19) ) = XR←Narrow((* (( (ptr) feature←v38476)+1) ), (* (( (ptr) gf←c60536)+64) )); SOURCE(24319, 40) (void) ProcessSlice←P4680((* (( (ptr) formal←c60568)+19) ), (* (( (ptr) formal←c60568)+20) ), feature←v38476, (word) (( (bPt) formal←c60568)+48) ); SOURCE(24225, 134) return(done←v38520); } static void FacesInNeighborhoodPlus←P1440(formal←c0510, alignBag←v12960, sceneBag←v12988, formal←c01072, formal←c01073, formal←c01074) word formal←c0510; word alignBag←v12960; word sceneBag←v12988; W2 formal←c01072; word formal←c01073; word formal←c01074; { W16 var←c60600; /* declaration of q←v13016 skipped */ /* declaration of ggData←v13044 skipped */ /* declaration of t←v13072 skipped */ register ptr gf←c60632 = (ptr) &globalframe; /* declaration of h←v13116 skipped */ word faceCount←v13144; /* declaration of var←c54904 skipped */ /* declaration of var←c54936 skipped */ /* declaration of sliceD←v20784 skipped */ word added←v20812 = 0; /* declaration of thisFace←v20840 skipped */ /* declaration of priorityTol←v20868 skipped */ (* (W2Pt) (( (ptr) &var←c60600)+4)/* q←v13016 */ ) = formal←c01072; (* (( (ptr) &var←c60600)+6)/* ggData←v13044 */ ) = formal←c01073; (* (( (ptr) &var←c60600)+7)/* t←v13072 */ ) = formal←c01074; /* FacesInNeighborhoodPlus: */ SOURCE(25557, 1515) { word tmpAddr207; tmpAddr207 = (word) (( (ptr) &var←c60600)+9)/* var←c54904 */ ; (* (ptr) tmpAddr207 ) = ( ((word) (fPt) DoForSceneSlice←P5124) ); (* (( (ptr) tmpAddr207) + 1) ) = 1; }; { word tmpAddr208; tmpAddr208 = (word) (( (ptr) &var←c60600)+11)/* var←c54936 */ ; (* (ptr) tmpAddr208 ) = ( ((word) (fPt) ProcessSlice←P5064) ); (* (( (ptr) tmpAddr208) + 1) ) = 1; }; SOURCE(25557, 1515) (* (( (ptr) &var←c60600)+8)/* h←v13116 */ ) = 0; SOURCE(25708, 23) (* (( (ptr) &var←c60600)+13)/* sliceD←v20784 */ ) = 0; SOURCE(25754, 39) (* (( (ptr) &var←c60600)+14)/* thisFace←v20840 */ ) = XR←NewObject(36, (* (( (ptr) gf←c60632)+60) )); SOURCE(25795, 21) (* (( (ptr) &var←c60600)+15)/* priorityTol←v20868 */ ) = (word) -1; SOURCE(26827, 29) (* (( (ptr) &var←c60600)+8)/* h←v13116 */ ) = (word) BestFacesFromPool←P1500((* ((( (ptr) &var←c60600)+6)/* ggData←v13044 */ ) )) ; SOURCE(26859, 52) { word pd209; pd209 = (* (( (ptr) (* (( (ptr) gf←c60632)+203)/* var←c53176 */ ))+9) ); (void) ( *( (fPt) ((* (ptr) pd209 ))))(sceneBag←v12988, (word) (( (bPt) &var←c60600)+36)/* var←c54904 */ , pd209); }; SOURCE(26914, 18) faceCount←v13144 = (* (ptr) (* (( (ptr) &var←c60600)+8)/* h←v13116 */ ) ); SOURCE(26934, 110) if ((0 != (* (( (ptr) (* (( (ptr) &var←c60600)+8)/* h←v13116 */ ))+6) ))) { SOURCE(26955, 44) { word pd210; pd210 = (* (( (ptr) (* (( (ptr) gf←c60632)+202)/* var←c51480 */ ))+12) ); (void) ( *( (fPt) ((* (ptr) pd210 ))))((* (( (ptr) gf←c60632)+81) ), (* (( (ptr) gf←c60632)+84) ), pd210); }; SOURCE(27001, 43) { word pd211; pd211 = (* (( (ptr) (* (( (ptr) gf←c60632)+202)/* var←c51480 */ ))+14) ); (void) ( *( (fPt) ((* (ptr) pd211 ))))((* (( (ptr) gf←c60632)+81) ), (* (( (ptr) gf←c60632)+84) ), pd211); }; }; SOURCE(27049, 23) (void) SortFaces←P2100((* (( (ptr) &var←c60600)+8)/* h←v13116 */ ), faceCount←v13144); /* removed tail goto */ (* (ptr) formal←c0510 ) = (* (( (ptr) &var←c60600)+8)/* h←v13116 */ ); (* (( (ptr) formal←c0510)+1) ) = faceCount←v13144; return; } static void ProcessSlice←P5064(sliceD←v21000, thisFace←v21028, featureData←v21056, formal←c60696) word sliceD←v21000; word thisFace←v21028; word featureData←v21056; word formal←c60696; { register ptr gf←c60664 = (ptr) &globalframe; word hitData←v21084 = 0; word moreHitDatas←v21112 = 0; word success←v21140 = 1; formal←c60696 = (formal←c60696 - 44); /* ProcessSlice: */ SOURCE(25819, 852) SOURCE(25986, 685) { word pd212; pd212 = (* (( (ptr) (* (( (ptr) gf←c60664)+207)/* var←c54136 */ ))+21) ); if (( (int)(word) ( *( (fPt) ((* (ptr) pd212 ))))((* (( (ptr) (* (( (ptr) formal←c60696)+6) ))+11) ), (* (ptr) sliceD←v21000 ), pd212) >= (int)(* (( (ptr) formal←c60696)+15) ))) { SOURCE(26059, 78) { W2 var←c55000; { word pd213; pd213 = (* (( (ptr) (* (( (ptr) gf←c60664)+208)/* var←c54328 */ ))+48) ); (void) ( *( (fPt) ((* (ptr) pd213 ))))((word) &var←c55000, (* (ptr) sliceD←v21000 ), (* (W2Pt) (( (ptr) formal←c60696)+4) ), (* (( (ptr) formal←c60696)+7) ), pd213); }; moreHitDatas←v21112 = var←c55000.f1; hitData←v21084 = var←c55000.f0; }; SOURCE(26139, 238) if ((hitData←v21084 != 0)) { SOURCE(26163, 18) (* (W2Pt) (( (ptr) thisFace←v21028)+1) ) = (* (W2Pt) (( (ptr) formal←c60696)+4) ); SOURCE(26183, 67) { word pd214; pd214 = (* (( (ptr) (* (( (ptr) gf←c60664)+207)/* var←c54136 */ ))+21) ); (* (( (ptr) thisFace←v21028)+8) ) = (word) ( *( (fPt) ((* (ptr) pd214 ))))((* (( (ptr) (* (( (ptr) formal←c60696)+6) ))+11) ), (* (ptr) sliceD←v21000 ), pd214); }; SOURCE(26252, 25) (* (( (ptr) thisFace←v21028)+3) ) = (* (ptr) &fc58 ); (* (( (ptr) thisFace←v21028)+4) ) = (* (ptr) &fc59 ); SOURCE(26279, 26) (* (( (ptr) thisFace←v21028)+6) ) = hitData←v21084; SOURCE(26307, 34) (* (( (ptr) thisFace←v21028)+5) ) = featureData←v21056; SOURCE(26343, 34) (* (( (ptr) formal←c60696)+15) ) = (word) AddFace←P1740(thisFace←v21028, (* (( (ptr) formal←c60696)+8) )); }; SOURCE(26382, 289) { register word list←v21292; list←v21292 = moreHitDatas←v21112; lab←L100084: ; if ((list←v21292 != 0)) { } else { goto lab←L100081; }; SOURCE(26454, 18) (* (W2Pt) (( (ptr) thisFace←v21028)+1) ) = (* (W2Pt) (( (ptr) formal←c60696)+4) ); SOURCE(26474, 67) { word pd215; pd215 = (* (( (ptr) (* (( (ptr) gf←c60664)+207)/* var←c54136 */ ))+21) ); (* (( (ptr) thisFace←v21028)+8) ) = (word) ( *( (fPt) ((* (ptr) pd215 ))))((* (( (ptr) (* (( (ptr) formal←c60696)+6) ))+11) ), (* (ptr) sliceD←v21000 ), pd215); }; SOURCE(26543, 25) (* (( (ptr) thisFace←v21028)+3) ) = (* (ptr) &fc58 ); (* (( (ptr) thisFace←v21028)+4) ) = (* (ptr) &fc59 ); SOURCE(26570, 29) (* (( (ptr) thisFace←v21028)+6) ) = (* (ptr) list←v21292 ); SOURCE(26601, 34) (* (( (ptr) thisFace←v21028)+5) ) = featureData←v21056; SOURCE(26637, 34) (* (( (ptr) formal←c60696)+15) ) = (word) AddFace←P1740(thisFace←v21028, (* (( (ptr) formal←c60696)+8) )); list←v21292 = (* (( (ptr) list←v21292)+1) ); goto lab←L100084; lab←L100081: ; }; }; }; } static word DoForSceneSlice←P5124(feature←v40596, formal←c60760) word feature←v40596; word formal←c60760; { register ptr gf←c60728 = (ptr) &globalframe; word done←v40640; formal←c60760 = (formal←c60760 - 36); /* DoForSceneSlice: */ SOURCE(26688, 133) SOURCE(26688, 133) done←v40640 = 0; SOURCE(26733, 47) (* (( (ptr) formal←c60760)+13) ) = XR←Narrow((* (( (ptr) feature←v40596)+1) ), (* (( (ptr) gf←c60728)+64) )); SOURCE(26782, 39) (void) ProcessSlice←P5064((* (( (ptr) formal←c60760)+13) ), (* (( (ptr) formal←c60760)+14) ), feature←v40596, (word) (( (bPt) formal←c60760)+44) ); SOURCE(26688, 133) return(done←v40640); } static word BestFacesFromPool←P1500(ggData←v13204) word ggData←v13204; { register ptr gf←c60792 = (ptr) &globalframe; word h←v13248; /* BestFacesFromPool: */ SOURCE(27102, 346) SOURCE(27102, 346) h←v13248 = 0; SOURCE(27170, 63) h←v13248 = (* (( (ptr) XR←Narrow((* (( (ptr) ggData←v13204)+52) ), (* (( (ptr) gf←c60792)+72) )))+2) ); SOURCE(27235, 10) (* (ptr) h←v13248 ) = 0; SOURCE(27247, 18) (* (( (ptr) h←v13248)+1) ) = (word) -1; SOURCE(27267, 17) (* (( (ptr) h←v13248)+3) ) = 9999; SOURCE(27286, 25) (* (( (ptr) h←v13248)+2) ) = 2147483647; SOURCE(27313, 25) (* (( (ptr) h←v13248)+4) ) = (word) -1; SOURCE(27340, 18) (* (( (ptr) h←v13248)+6) ) = 0; SOURCE(27360, 88) { register word i←v21432 = 0; register word noName←c55032; noName←c55032 = (* (( (ptr) gf←c60792)+4)/* MaxFeatures←v5240 */ ); if ((i←v21432 >= noName←c55032)) { goto lab←L100085; }; lab←L100088: ; SOURCE(27394, 30) { word limit216; (* (ptr) (* ((( (ptr) h←v13248)+8)+( limit216 = (* (( (ptr) h←v13248)+7) ), BCK(i←v21432, limit216) )) ) ) = 2139095039; }; SOURCE(27426, 22) { word limit217; (* (( (ptr) (* ((( (ptr) h←v13248)+8)+( limit217 = (* (( (ptr) h←v13248)+7) ), BCK(i←v21432, limit217) )) ))+5) ) = 0; }; i←v21432 = (i←v21432 + 1); if ((i←v21432 < noName←c55032)) { goto lab←L100088; }; lab←L100085: ; }; SOURCE(27102, 346) return(h←v13248); } static word BestCurvesFromPool←P1560(ggData←v13308, t←v13336, innerR←v13364) word ggData←v13308; word t←v13336; word innerR←v13364; { register ptr gf←c60824 = (ptr) &globalframe; word h←v13408; /* BestCurvesFromPool: */ SOURCE(27463, 435) SOURCE(27463, 435) h←v13408 = 0; SOURCE(27556, 64) h←v13408 = (* (( (ptr) XR←Narrow((* (( (ptr) ggData←v13308)+52) ), (* (( (ptr) gf←c60824)+72) )))+1) ); SOURCE(27622, 10) (* (ptr) h←v13408 ) = 0; SOURCE(27634, 11) (* (( (ptr) h←v13408)+1) ) = (* (ptr) &fc58 ); SOURCE(27647, 17) (* (( (ptr) h←v13408)+3) ) = 9999; SOURCE(27666, 26) (* (( (ptr) h←v13408)+2) ) = 2139095039; SOURCE(27694, 10) (* (( (ptr) h←v13408)+5) ) = t←v13336; SOURCE(27706, 17) (* (( (ptr) h←v13408)+6) ) = innerR←v13364; SOURCE(27725, 11) (* (( (ptr) h←v13408)+7) ) = (* (ptr) &fc65 ); SOURCE(27755, 33) (* (( (ptr) h←v13408)+4) ) = 2139095039; SOURCE(27790, 18) (* (( (ptr) h←v13408)+8) ) = 0; SOURCE(27810, 88) { register word i←v21476 = 0; register word noName←c55064; noName←c55064 = (* (( (ptr) gf←c60824)+4)/* MaxFeatures←v5240 */ ); if ((i←v21476 >= noName←c55064)) { goto lab←L100089; }; lab←L100092: ; SOURCE(27844, 30) { word limit218; (* (ptr) (* ((( (ptr) h←v13408)+10)+( limit218 = (* (( (ptr) h←v13408)+9) ), BCK(i←v21476, limit218) )) ) ) = 2139095039; }; SOURCE(27876, 22) { word limit219; (* (( (ptr) (* ((( (ptr) h←v13408)+10)+( limit219 = (* (( (ptr) h←v13408)+9) ), BCK(i←v21476, limit219) )) ))+5) ) = 0; }; i←v21476 = (i←v21476 + 1); if ((i←v21476 < noName←c55064)) { goto lab←L100092; }; lab←L100089: ; }; SOURCE(27463, 435) return(h←v13408); } static word BestPointsFromPool←P1620(ggData←v13468, t←v13496) word ggData←v13468; word t←v13496; { register ptr gf←c60856 = (ptr) &globalframe; word h←v13540; /* BestPointsFromPool: */ SOURCE(27913, 402) SOURCE(27913, 402) h←v13540 = 0; SOURCE(27992, 64) h←v13540 = (* (ptr) XR←Narrow((* (( (ptr) ggData←v13468)+52) ), (* (( (ptr) gf←c60856)+72) )) ); SOURCE(28058, 10) (* (ptr) h←v13540 ) = 0; SOURCE(28070, 11) (* (( (ptr) h←v13540)+1) ) = (* (ptr) &fc58 ); SOURCE(28083, 17) (* (( (ptr) h←v13540)+3) ) = 9999; SOURCE(28102, 26) (* (( (ptr) h←v13540)+2) ) = 2139095039; SOURCE(28130, 10) (* (( (ptr) h←v13540)+5) ) = t←v13496; SOURCE(28142, 11) (* (( (ptr) h←v13540)+7) ) = (* (ptr) &fc65 ); SOURCE(28172, 33) (* (( (ptr) h←v13540)+4) ) = 2139095039; SOURCE(28207, 18) (* (( (ptr) h←v13540)+8) ) = 0; SOURCE(28227, 88) { register word i←v21520 = 0; register word noName←c55096; noName←c55096 = (* (( (ptr) gf←c60856)+4)/* MaxFeatures←v5240 */ ); if ((i←v21520 >= noName←c55096)) { goto lab←L100093; }; lab←L100096: ; SOURCE(28261, 30) { word limit220; (* (ptr) (* ((( (ptr) h←v13540)+10)+( limit220 = (* (( (ptr) h←v13540)+9) ), BCK(i←v21520, limit220) )) ) ) = 2139095039; }; SOURCE(28293, 22) { word limit221; (* (( (ptr) (* ((( (ptr) h←v13540)+10)+( limit221 = (* (( (ptr) h←v13540)+9) ), BCK(i←v21520, limit221) )) ))+5) ) = 0; }; i←v21520 = (i←v21520 + 1); if ((i←v21520 < noName←c55096)) { goto lab←L100096; }; lab←L100093: ; }; SOURCE(27913, 402) return(h←v13540); } static word AddNeighbor←P1680(thisPoint←v13600, h←v13628, curve←v13656) word thisPoint←v13600; word h←v13628; word curve←v13656; { register ptr gf←c60888 = (ptr) &globalframe; word dTol←v13700; word d←v21564; word n←v21592; /* AddNeighbor: */ SOURCE(28330, 1282) SOURCE(28432, 24) d←v21564 = (* (ptr) thisPoint←v13600 ); SOURCE(28458, 20) n←v21592 = (* (( (ptr) gf←c60888)+4)/* MaxFeatures←v5240 */ ); SOURCE(28480, 1132) { word x222; word x223; if ((( x222 = d←v21564, *(float*)&x222 ) > ( x223 = (* (( (ptr) h←v13628)+5) ), *(float*)&x223 ))) { SOURCE(28517, 9) goto lab←L100099; } else { if (((* (ptr) h←v13628 ) < n←v21592)) { SOURCE(28604, 8) goto lab←L100097; } else { if (((* (ptr) h←v13628 ) == n←v21592)) { SOURCE(28628, 22) goto lab←L100098; } else { SOURCE(28663, 39) { word var←c0543; var←c0543 = (* (( (ptr) gf←c60888)+80) ); (void) (XR←RaiseSignal((word) (( (bPt) gf←c60888)+344)/* var←c49560 */ , 0, (word) &var←c0543)); }; }; }; }; }; goto lab←L100100; lab←L100097: ; SOURCE(28719, 23) { word idx224; word limit225; (* (W9Pt) (* ((( (ptr) h←v13628)+10)+( idx224 = (* (ptr) h←v13628 ), limit225 = (* (( (ptr) h←v13628)+9) ), BCK(idx224, limit225) )) ) ) = (* (W9Pt) thisPoint←v13600 ); }; SOURCE(28744, 49) { word x226; word x227; if ((( x226 = d←v21564, *(float*)&x226 ) > ( x227 = (* (( (ptr) h←v13628)+1) ), *(float*)&x227 ))) { SOURCE(28763, 9) (* (( (ptr) h←v13628)+1) ) = d←v21564; SOURCE(28774, 19) (* (( (ptr) h←v13628)+3) ) = (* (ptr) h←v13628 ); }; }; SOURCE(28796, 21) { word x228; float tf229; float tf230; word x231; float tf232; (* (( (ptr) h←v13628)+2) ) = ( tf232 = FMIN(( x228 = (* (( (ptr) h←v13628)+2) ), *(float*)&x228 ), ( x231 = d←v21564, *(float*)&x231 ), tf229, tf230), *(word*)&tf232 ); }; SOURCE(28819, 19) (* (ptr) h←v13628 ) = ((* (ptr) h←v13628 ) + 1); SOURCE(28840, 85) if ((0 != curve←v13656)) { SOURCE(28854, 46) { word var←c55128; { word x233; word x234; float tf235; float tf236; word x237; float tf238; var←c55128 = ( tf238 = FMAX((( x233 = (* (( (ptr) h←v13628)+2) ), *(float*)&x233 ) + ( x234 = (* (( (ptr) h←v13628)+7) ), *(float*)&x234 )), ( x237 = (* (( (ptr) h←v13628)+6) ), *(float*)&x237 ), tf235, tf236), *(word*)&tf238 ); }; (* (( (ptr) h←v13628)+5) ) = var←c55128; dTol←v13700 = var←c55128; }; } else { SOURCE(28900, 25) { word var←c55160; { word x239; word x240; *(float*)&var←c55160 = ( x239 = (* (( (ptr) h←v13628)+2) ), *(float*)&x239 ) + ( x240 = (* (( (ptr) h←v13628)+7) ), *(float*)&x240 ); }; (* (( (ptr) h←v13628)+5) ) = var←c55160; dTol←v13700 = var←c55160; }; }; goto lab←L100100; lab←L100098: ; SOURCE(28953, 551) { word x241; word x242; if ((( x241 = d←v21564, *(float*)&x241 ) < ( x242 = (* (( (ptr) h←v13628)+1) ), *(float*)&x242 ))) { SOURCE(28991, 27) { word idx243; word limit244; (* (W9Pt) (* ((( (ptr) h←v13628)+10)+( idx243 = (* (( (ptr) h←v13628)+3) ), limit244 = (* (( (ptr) h←v13628)+9) ), BCK(idx243, limit244) )) ) ) = (* (W9Pt) thisPoint←v13600 ); }; SOURCE(29020, 39) { word x245; float tf246; float tf247; word x248; float tf249; (* (( (ptr) h←v13628)+4) ) = ( tf249 = FMIN(( x245 = (* (( (ptr) h←v13628)+4) ), *(float*)&x245 ), ( x248 = (* (( (ptr) h←v13628)+1) ), *(float*)&x248 ), tf246, tf247), *(word*)&tf249 ); }; SOURCE(29061, 21) { word x250; float tf251; float tf252; word x253; float tf254; (* (( (ptr) h←v13628)+2) ) = ( tf254 = FMIN(( x250 = (* (( (ptr) h←v13628)+2) ), *(float*)&x250 ), ( x253 = d←v21564, *(float*)&x253 ), tf251, tf252), *(word*)&tf254 ); }; SOURCE(29084, 85) if ((0 != curve←v13656)) { SOURCE(29098, 46) { word var←c55192; { word x255; word x256; float tf257; float tf258; word x259; float tf260; var←c55192 = ( tf260 = FMAX((( x255 = (* (( (ptr) h←v13628)+2) ), *(float*)&x255 ) + ( x256 = (* (( (ptr) h←v13628)+7) ), *(float*)&x256 )), ( x259 = (* (( (ptr) h←v13628)+6) ), *(float*)&x259 ), tf257, tf258), *(word*)&tf260 ); }; (* (( (ptr) h←v13628)+5) ) = var←c55192; dTol←v13700 = var←c55192; }; } else { SOURCE(29144, 25) { word var←c55224; { word x261; word x262; *(float*)&var←c55224 = ( x261 = (* (( (ptr) h←v13628)+2) ), *(float*)&x261 ) + ( x262 = (* (( (ptr) h←v13628)+7) ), *(float*)&x262 ); }; (* (( (ptr) h←v13628)+5) ) = var←c55224; dTol←v13700 = var←c55224; }; }; SOURCE(29171, 33) { word x263; word x264; (* (( (ptr) h←v13628)+8) ) = (unsigned) (( x263 = (* (( (ptr) h←v13628)+4) ), *(float*)&x263 ) <= ( x264 = dTol←v13700, *(float*)&x264 )); }; SOURCE(29206, 194) { word maxIndex←v21636 = 0; word maxDist←v21664; SOURCE(29231, 19) maxDist←v21664 = (* (ptr) &fc58 ); SOURCE(29252, 96) { register word i←v21708 = 0; register word noName←c55256; noName←c55256 = (* (( (ptr) gf←c60888)+4)/* MaxFeatures←v5240 */ ); if ((i←v21708 >= noName←c55256)) { goto lab←L100101; }; lab←L100104: ; SOURCE(29286, 62) { word limit265; word x266; word x267; if ((( x266 = (* (ptr) (* ((( (ptr) h←v13628)+10)+( limit265 = (* (( (ptr) h←v13628)+9) ), BCK(i←v21708, limit265) )) ) ), *(float*)&x266 ) > ( x267 = maxDist←v21664, *(float*)&x267 ))) { SOURCE(29315, 12) maxIndex←v21636 = i←v21708; SOURCE(29329, 19) { word limit268; maxDist←v21664 = (* (ptr) (* ((( (ptr) h←v13628)+10)+( /*1*/ limit268 = (* (( (ptr) h←v13628)+9) ), /*1*/ BCK(i←v21708, limit268) /*1*/ )) ) ); }; }; }; i←v21708 = (i←v21708 + 1); if ((i←v21708 < noName←c55256)) { goto lab←L100104; }; lab←L100101: ; }; SOURCE(29360, 15) (* (( (ptr) h←v13628)+1) ) = maxDist←v21664; SOURCE(29377, 21) (* (( (ptr) h←v13628)+3) ) = maxIndex←v21636; }; } else { SOURCE(29435, 13) dTol←v13700 = (* (( (ptr) h←v13628)+5) ); SOURCE(29450, 35) { word x269; float tf270; float tf271; word x272; float tf273; (* (( (ptr) h←v13628)+4) ) = ( tf273 = FMIN(( x269 = (* (( (ptr) h←v13628)+4) ), *(float*)&x269 ), ( x272 = d←v21564, *(float*)&x272 ), tf270, tf271), *(word*)&tf273 ); }; SOURCE(29487, 17) (* (( (ptr) h←v13628)+8) ) = 1; }; }; goto lab←L100100; lab←L100099: ; SOURCE(29522, 13) dTol←v13700 = (* (( (ptr) h←v13628)+5) ); SOURCE(29537, 35) { word x274; float tf275; float tf276; word x277; float tf278; (* (( (ptr) h←v13628)+4) ) = ( tf278 = FMIN(( x274 = (* (( (ptr) h←v13628)+4) ), *(float*)&x274 ), ( x277 = d←v21564, *(float*)&x277 ), tf275, tf276), *(word*)&tf278 ); }; SOURCE(29574, 33) { word x279; word x280; (* (( (ptr) h←v13628)+8) ) = (unsigned) (( x279 = (* (( (ptr) h←v13628)+4) ), *(float*)&x279 ) <= ( x280 = dTol←v13700, *(float*)&x280 )); }; lab←L100100: ; SOURCE(28330, 1282) return(dTol←v13700); } static word AddFace←P1740(thisFace←v13760, h←v13788) word thisFace←v13760; word h←v13788; { register ptr gf←c60920 = (ptr) &globalframe; word priorityTol←v13832; word d←v21752; word n←v21780; /* AddFace: */ SOURCE(29621, 1285) SOURCE(29702, 26) d←v21752 = (* (( (ptr) thisFace←v13760)+8) ); SOURCE(29730, 20) n←v21780 = (* (( (ptr) gf←c60920)+4)/* MaxFeatures←v5240 */ ); SOURCE(29752, 1154) if (( (int)d←v21752 < (int)(* (( (ptr) h←v13788)+5) ))) { SOURCE(29796, 9) goto lab←L100107; } else { if (((* (ptr) h←v13788 ) < n←v21780)) { SOURCE(29855, 8) goto lab←L100105; } else { if (((* (ptr) h←v13788 ) == n←v21780)) { SOURCE(29879, 22) goto lab←L100106; } else { SOURCE(29914, 39) { word var←c0557; var←c0557 = (* (( (ptr) gf←c60920)+80) ); (void) (XR←RaiseSignal((word) (( (bPt) gf←c60920)+344)/* var←c49560 */ , 0, (word) &var←c0557)); }; }; }; }; goto lab←L100108; lab←L100105: ; SOURCE(29970, 22) { word idx281; word limit282; (* (W9Pt) (* ((( (ptr) h←v13788)+8)+( idx281 = (* (ptr) h←v13788 ), limit282 = (* (( (ptr) h←v13788)+7) ), BCK(idx281, limit282) )) ) ) = (* (W9Pt) thisFace←v13760 ); }; SOURCE(29994, 65) if (( (int)d←v21752 < (int)(* (( (ptr) h←v13788)+2) ))) { SOURCE(30021, 17) (* (( (ptr) h←v13788)+2) ) = d←v21752; SOURCE(30040, 19) (* (( (ptr) h←v13788)+3) ) = (* (ptr) h←v13788 ); }; SOURCE(30062, 37) { word x283; (* (( (ptr) h←v13788)+1) ) = (x283 = (* (( (ptr) h←v13788)+1) ), MAX((int)(word), x283, d←v21752)); }; SOURCE(30101, 19) (* (ptr) h←v13788 ) = ((* (ptr) h←v13788 ) + 1); SOURCE(30122, 27) priorityTol←v13832 = (* (( (ptr) h←v13788)+5) ); goto lab←L100108; lab←L100106: ; SOURCE(30177, 607) if (( (int)d←v21752 > (int)(* (( (ptr) h←v13788)+2) ))) { SOURCE(30223, 26) { word idx284; word limit285; (* (W9Pt) (* ((( (ptr) h←v13788)+8)+( idx284 = (* (( (ptr) h←v13788)+3) ), limit285 = (* (( (ptr) h←v13788)+7) ), BCK(idx284, limit285) )) ) ) = (* (W9Pt) thisFace←v13760 ); }; SOURCE(30251, 63) { word x286; word x287; (* (( (ptr) h←v13788)+4) ) = (x286 = (* (( (ptr) h←v13788)+4) ), x287 = (* (( (ptr) h←v13788)+2) ), MAX((int)(word), x286, x287)); }; SOURCE(30316, 37) { word x288; (* (( (ptr) h←v13788)+1) ) = (x288 = (* (( (ptr) h←v13788)+1) ), MAX((int)(word), x288, d←v21752)); }; SOURCE(30355, 17) (* (( (ptr) h←v13788)+6) ) = 1; SOURCE(30374, 231) { word minIndex←v21824 = 0; word minPriority←v21852 = 2147483647; SOURCE(30429, 112) { register word i←v21896 = 0; register word noName←c55288; noName←c55288 = (* (( (ptr) gf←c60920)+4)/* MaxFeatures←v5240 */ ); if ((i←v21896 >= noName←c55288)) { goto lab←L100109; }; lab←L100112: ; SOURCE(30463, 78) { word limit289; if (( (int)(* (( (ptr) (* ((( (ptr) h←v13788)+8)+( limit289 = (* (( (ptr) h←v13788)+7) ), BCK(i←v21896, limit289) )) ))+8) ) < (int)minPriority←v21852)) { SOURCE(30500, 12) minIndex←v21824 = i←v21896; SOURCE(30514, 27) { word limit290; minPriority←v21852 = (* (( (ptr) (* ((( (ptr) h←v13788)+8)+( /*1*/ limit290 = (* (( (ptr) h←v13788)+7) ), /*1*/ BCK(i←v21896, limit290) /*1*/ )) ))+8) ); }; }; }; i←v21896 = (i←v21896 + 1); if ((i←v21896 < noName←c55288)) { goto lab←L100112; }; lab←L100109: ; }; SOURCE(30553, 27) (* (( (ptr) h←v13788)+2) ) = minPriority←v21852; SOURCE(30582, 21) (* (( (ptr) h←v13788)+3) ) = minIndex←v21824; }; SOURCE(30610, 43) { word var←c55320; var←c55320 = (* (( (ptr) h←v13788)+2) ); (* (( (ptr) h←v13788)+5) ) = var←c55320; priorityTol←v13832 = var←c55320; }; } else { SOURCE(30685, 27) priorityTol←v13832 = (* (( (ptr) h←v13788)+5) ); SOURCE(30714, 51) { word x291; (* (( (ptr) h←v13788)+4) ) = (x291 = (* (( (ptr) h←v13788)+4) ), MAX((int)(word), x291, d←v21752)); }; SOURCE(30767, 17) (* (( (ptr) h←v13788)+6) ) = 1; }; goto lab←L100108; lab←L100107: ; SOURCE(30802, 27) priorityTol←v13832 = (* (( (ptr) h←v13788)+5) ); SOURCE(30831, 51) { word x292; (* (( (ptr) h←v13788)+4) ) = (x292 = (* (( (ptr) h←v13788)+4) ), MAX((int)(word), x292, d←v21752)); }; SOURCE(30884, 17) (* (( (ptr) h←v13788)+6) ) = 1; lab←L100108: ; SOURCE(29621, 1285) return(priorityTol←v13832); } static void NearPointsFromPoints←P1800(bestPoints←v13892, pointCount←v13920, nearVEF←v13948) word bestPoints←v13892; word pointCount←v13920; word nearVEF←v13948; { /* NearPointsFromPoints: */ SOURCE(30915, 165) SOURCE(31021, 59) { register word i←v21940 = 0; register word noName←c55352; noName←c55352 = pointCount←v13920; if ((i←v21940 >= noName←c55352)) { goto lab←L100113; }; lab←L100116: ; SOURCE(31054, 26) { word limit293; word limit294; (* ((( (ptr) nearVEF←v13948)+1)+( limit293 = (* (ptr) nearVEF←v13948 ), BCK(i←v21940, limit293) )) ) = (* ((( (ptr) bestPoints←v13892)+10)+( limit294 = (* (( (ptr) bestPoints←v13892)+9) ), BCK(i←v21940, limit294) )) ); }; i←v21940 = (i←v21940 + 1); if ((i←v21940 < noName←c55352)) { goto lab←L100116; }; lab←L100113: ; }; } static void MergePointsAndCurves←P1860(bestPoints←v14008, pointCount←v14036, bestCurves←v14064, curveCount←v14092, nearVEF←v14120, count←v14148) word bestPoints←v14008; word pointCount←v14036; word bestCurves←v14064; word curveCount←v14092; word nearVEF←v14120; word count←v14148; { word pointIndex←v21984; word curveIndex←v22012; word pointDist←v22040; word curveDist←v22068; /* MergePointsAndCurves: */ SOURCE(31095, 948) SOURCE(31311, 14) pointIndex←v21984 = 0; SOURCE(31327, 14) curveIndex←v22012 = 0; SOURCE(31343, 700) { register word i←v22112 = 0; register word noName←c55384; noName←c55384 = count←v14148; if (( (int)i←v22112 >= (int)noName←c55384)) { goto lab←L100117; }; lab←L100122: ; SOURCE(31375, 33) if ((pointIndex←v21984 >= pointCount←v14036)) { SOURCE(31408, 17) goto lab←L100120; }; SOURCE(31427, 33) if ((curveIndex←v22012 >= curveCount←v14092)) { SOURCE(31460, 17) goto lab←L100121; }; SOURCE(31479, 30) { word limit295; pointDist←v22040 = (* (ptr) (* ((( (ptr) bestPoints←v14008)+10)+( limit295 = (* (( (ptr) bestPoints←v14008)+9) ), BCK(i←v22112, limit295) )) ) ); }; SOURCE(31511, 30) { word limit296; curveDist←v22068 = (* (ptr) (* ((( (ptr) bestCurves←v14064)+10)+( limit296 = (* (( (ptr) bestCurves←v14064)+9) ), BCK(i←v22112, limit296) )) ) ); }; SOURCE(31543, 172) { word x297; word x298; if ((( x297 = pointDist←v22040, *(float*)&x297 ) <= ( x298 = curveDist←v22068, *(float*)&x298 ))) { SOURCE(31576, 35) { word limit299; word limit300; (* ((( (ptr) nearVEF←v14120)+1)+( limit299 = (* (ptr) nearVEF←v14120 ), BCK(i←v22112, limit299) )) ) = (* ((( (ptr) bestPoints←v14008)+10)+( limit300 = (* (( (ptr) bestPoints←v14008)+9) ), BCK(pointIndex←v21984, limit300) )) ); }; SOURCE(31613, 27) pointIndex←v21984 = (pointIndex←v21984 + 1); } else { SOURCE(31651, 35) { word limit301; word limit302; (* ((( (ptr) nearVEF←v14120)+1)+( limit301 = (* (ptr) nearVEF←v14120 ), BCK(i←v22112, limit301) )) ) = (* ((( (ptr) bestCurves←v14064)+10)+( limit302 = (* (( (ptr) bestCurves←v14064)+9) ), BCK(curveIndex←v22012, limit302) )) ); }; SOURCE(31688, 27) curveIndex←v22012 = (curveIndex←v22012 + 1); }; }; i←v22112 = (i←v22112 + 1); if (( (int)i←v22112 < (int)noName←c55384)) { goto lab←L100122; }; goto lab←L100117; lab←L100120: ; SOURCE(31775, 104) { register word k←v22156; k←v22156 = SGNCK(i←v22112); lab←L100126: ; if ((k←v22156 < count←v14148)) { } else { goto lab←L100123; }; SOURCE(31815, 35) { word limit303; word limit304; (* ((( (ptr) nearVEF←v14120)+1)+( limit303 = (* (ptr) nearVEF←v14120 ), BCK(k←v22156, limit303) )) ) = (* ((( (ptr) bestCurves←v14064)+10)+( limit304 = (* (( (ptr) bestCurves←v14064)+9) ), BCK(curveIndex←v22012, limit304) )) ); }; SOURCE(31852, 27) curveIndex←v22012 = (curveIndex←v22012 + 1); k←v22156 = (k←v22156 + 1); goto lab←L100126; lab←L100123: ; }; goto lab←L100118; lab←L100121: ; SOURCE(31939, 104) { register word k←v22200; k←v22200 = SGNCK(i←v22112); lab←L100130: ; if ((k←v22200 < count←v14148)) { } else { goto lab←L100127; }; SOURCE(31979, 35) { word limit305; word limit306; (* ((( (ptr) nearVEF←v14120)+1)+( limit305 = (* (ptr) nearVEF←v14120 ), BCK(k←v22200, limit305) )) ) = (* ((( (ptr) bestPoints←v14008)+10)+( limit306 = (* (( (ptr) bestPoints←v14008)+9) ), BCK(pointIndex←v21984, limit306) )) ); }; SOURCE(32016, 27) pointIndex←v21984 = (pointIndex←v21984 + 1); k←v22200 = (k←v22200 + 1); goto lab←L100130; lab←L100127: ; }; goto lab←L100118; lab←L100117: ; lab←L100118: ; }; } static void MergeByOverlapAndDistance←P1920(formal←c0608, faces←v14208, faceCount←v14236, curves←v14264, curveCount←v14292) word formal←c0608; word faces←v14208; word faceCount←v14236; word curves←v14264; word curveCount←v14292; { register ptr gf←c60952 = (ptr) &globalframe; word nearVEF←v14336; word total←v14364; word facePtr←v22244; word curvePtr←v22272; /* MergeByOverlapAndDistance: */ SOURCE(32068, 1844) SOURCE(32068, 1844) nearVEF←v14336 = 0; SOURCE(32267, 46) { word x307; total←v14364 = (x307 = (* (( (ptr) gf←c60952)+4)/* MaxFeatures←v5240 */ ), MIN( (unsigned) , (curveCount←v14292 + faceCount←v14236), x307)); }; SOURCE(32315, 47) { word var←c55416; word var←c55448; word var←c55480; var←c55416 = BCK(total←v14364, 67108863); var←c55448 = ((word) var←c55416 << 2); var←c55480 = XR←NewObject((4 + var←c55448), (* (( (ptr) gf←c60952)+59) )); (* (ptr) var←c55480 ) = var←c55416; nearVEF←v14336 = var←c55480; }; SOURCE(32364, 22) curvePtr←v22272 = 0; facePtr←v22244 = 0; SOURCE(32389, 1523) { register word i←v22316 = 0; register word noName←c55512; noName←c55512 = total←v14364; if ((i←v22316 >= noName←c55512)) { goto lab←L100132; }; lab←L100137: ; SOURCE(32416, 31) if ((curvePtr←v22272 >= curveCount←v14292)) { SOURCE(32447, 21) goto lab←L100135; }; SOURCE(32470, 29) if ((facePtr←v22244 >= faceCount←v14236)) { SOURCE(32499, 20) goto lab←L100136; }; SOURCE(32522, 1090) SOURCE(32528, 571) { word var←c55544; { word limit308; word limit309; var←c55544 = ((* (( (ptr) (* ((( (ptr) faces←v14208)+8)+( limit308 = (* (( (ptr) faces←v14208)+7) ), BCK(facePtr←v22244, limit308) )) ))+8) ) - (* (( (ptr) (* ((( (ptr) curves←v14264)+1)+( limit309 = (* (ptr) curves←v14264 ), BCK(curvePtr←v22272, limit309) )) ))+8) )); }; if (( (int)var←c55544 == (int)0)) { SOURCE(32599, 628) { word slice←v22360; SOURCE(32635, 78) { word limit311; slice←v22360 = (* (ptr) XR←Narrow((* (( (ptr) (* (( (ptr) (* ((( (ptr) faces←v14208)+8)+( /*1*/ limit311 = (* (( (ptr) faces←v14208)+7) ), /*1*/ BCK(facePtr←v22244, limit311) /*1*/ )) ))+5) ))+1) ), (* (( (ptr) gf←c60952)+64) )) ); }; SOURCE(32715, 384) { word pd312; pd312 = (* (( (ptr) (* (( (ptr) gf←c60952)+210)/* var←c55576 */ ))+62) ); if ((0 != (word) ( *( (fPt) ((* (ptr) pd312 ))))(slice←v22360, pd312))) { SOURCE(32748, 450) { word facePath←v22404 = 0; word curvePath←v22432 = 0; word faceHitData←v22460 = 0; word curveHitData←v22488 = 0; SOURCE(32814, 79) { W2 var←c55608; { /*1*/ word pd313; /*1*/ word limit314; /*1*/ pd313 = (* (( (ptr) (* (( (ptr) gf←c60952)+210)/* var←c55576 */ ))+45) ); /*1*/ (void) ( *( (fPt) ((* (ptr) pd313 ))))((word) &var←c55608, slice←v22360, (* (( (ptr) (* ((( (ptr) faces←v14208)+8)+( /*1*/ limit314 = (* (( (ptr) faces←v14208)+7) ), /*1*/ BCK(facePtr←v22244, limit314) /*1*/ )) ))+6) ), pd313); /*1*/ }; faceHitData←v22460 = var←c55608.f1; facePath←v22404 = var←c55608.f0; }; SOURCE(32895, 83) { W2 var←c55640; { /*1*/ word pd315; /*1*/ word limit316; /*1*/ pd315 = (* (( (ptr) (* (( (ptr) gf←c60952)+210)/* var←c55576 */ ))+45) ); /*1*/ (void) ( *( (fPt) ((* (ptr) pd315 ))))((word) &var←c55640, slice←v22360, (* (( (ptr) (* ((( (ptr) curves←v14264)+1)+( /*1*/ limit316 = (* (ptr) curves←v14264 ), /*1*/ BCK(curvePtr←v22272, limit316) /*1*/ )) ))+6) ), pd315); /*1*/ }; curveHitData←v22488 = var←c55640.f1; curvePath←v22432 = var←c55640.f0; }; SOURCE(32980, 29) if ((facePath←v22404 == curvePath←v22432)) { SOURCE(33009, 20) goto lab←L100138; }; SOURCE(33031, 68) { word var←c55672; { /*1*/ word pd317; /*1*/ pd317 = (* (( (ptr) (* (( (ptr) gf←c60952)+210)/* var←c55576 */ ))+67) ); /*1*/ var←c55672 = (word) ( *( (fPt) ((* (ptr) pd317 ))))(facePath←v22404, curvePath←v22432, pd317); /*1*/ }; switch (var←c55672) { /*1*/ case 0: SOURCE(33099, 18) /*1*/ goto lab←L100140; /*1*/ case 2: SOURCE(33130, 17) /*1*/ goto lab←L100139; /*1*/ case 1: SOURCE(33158, 20) /*1*/ goto lab←L100138; /*1*/ default: SOURCE(33191, 5) /*1*/ (void) XR←RaiseUnnamedError(); /*1*/ break; /*1*/ }; }; }; } else { SOURCE(33205, 20) goto lab←L100138; }; }; }; goto endif0310; }; if (( (int)var←c55544 > (int)0)) { SOURCE(33237, 17) goto lab←L100139; }; if (( (int)var←c55544 < (int)0)) { SOURCE(33263, 18) goto lab←L100140; }; SOURCE(33294, 5) (void) XR←RaiseUnnamedError(); goto endif0310; endif0310: ; }; /* removed dead code */ lab←L100138: ; SOURCE(33328, 29) { word limit318; word limit319; (* ((( (ptr) nearVEF←v14336)+1)+( limit318 = (* (ptr) nearVEF←v14336 ), BCK(i←v22316, limit318) )) ) = (* ((( (ptr) curves←v14264)+1)+( limit319 = (* (ptr) curves←v14264 ), BCK(curvePtr←v22272, limit319) )) ); }; SOURCE(33359, 23) curvePtr←v22272 = (curvePtr←v22272 + 1); SOURCE(33384, 21) facePtr←v22244 = (facePtr←v22244 + 1); SOURCE(33407, 17) total←v14364 = SGNCK((total←v14364 - 1)); goto lab←L100141; lab←L100139: ; SOURCE(33479, 27) { word limit320; word limit321; (* ((( (ptr) nearVEF←v14336)+1)+( limit320 = (* (ptr) nearVEF←v14336 ), BCK(i←v22316, limit320) )) ) = (* ((( (ptr) faces←v14208)+8)+( limit321 = (* (( (ptr) faces←v14208)+7) ), BCK(facePtr←v22244, limit321) )) ); }; SOURCE(33508, 21) facePtr←v22244 = (facePtr←v22244 + 1); goto lab←L100141; lab←L100140: ; SOURCE(33553, 29) { word limit322; word limit323; (* ((( (ptr) nearVEF←v14336)+1)+( limit322 = (* (ptr) nearVEF←v14336 ), BCK(i←v22316, limit322) )) ) = (* ((( (ptr) curves←v14264)+1)+( limit323 = (* (ptr) curves←v14264 ), BCK(curvePtr←v22272, limit323) )) ); }; SOURCE(33584, 23) curvePtr←v22272 = (curvePtr←v22272 + 1); lab←L100141: ; i←v22316 = (i←v22316 + 1); if ((i←v22316 < noName←c55512)) { goto lab←L100137; }; goto lab←L100132; lab←L100135: ; SOURCE(33670, 90) { register word k←v22544; k←v22544 = i←v22316; lab←L100145: ; if ((k←v22544 < total←v14364)) { } else { goto lab←L100142; }; SOURCE(33710, 27) { word limit324; word limit325; (* ((( (ptr) nearVEF←v14336)+1)+( limit324 = (* (ptr) nearVEF←v14336 ), BCK(k←v22544, limit324) )) ) = (* ((( (ptr) faces←v14208)+8)+( limit325 = (* (( (ptr) faces←v14208)+7) ), BCK(facePtr←v22244, limit325) )) ); }; SOURCE(33739, 21) facePtr←v22244 = (facePtr←v22244 + 1); k←v22544 = (k←v22544 + 1); goto lab←L100145; lab←L100142: ; }; goto lab←L100133; lab←L100136: ; SOURCE(33818, 94) { register word k←v22588; k←v22588 = i←v22316; lab←L100149: ; if ((k←v22588 < total←v14364)) { } else { goto lab←L100146; }; SOURCE(33858, 29) { word limit326; word limit327; (* ((( (ptr) nearVEF←v14336)+1)+( limit326 = (* (ptr) nearVEF←v14336 ), BCK(k←v22588, limit326) )) ) = (* ((( (ptr) curves←v14264)+1)+( limit327 = (* (ptr) curves←v14264 ), BCK(curvePtr←v22272, limit327) )) ); }; SOURCE(33889, 23) curvePtr←v22272 = (curvePtr←v22272 + 1); k←v22588 = (k←v22588 + 1); goto lab←L100149; lab←L100146: ; }; goto lab←L100133; lab←L100132: ; lab←L100133: ; }; /* removed tail goto */ (* (ptr) formal←c0608 ) = nearVEF←v14336; (* (( (ptr) formal←c0608)+1) ) = total←v14364; return; } static void SortPoints←P1980(bestPoints←v14424, pointCount←v14452) word bestPoints←v14424; word pointCount←v14452; { word temp←v22632 = 0; /* SortPoints: */ SOURCE(33973, 287) SOURCE(34053, 207) { register word i←v22676 = 0; register word noName←c55704; noName←c55704 = (pointCount←v14452 - 2); if (( (int)i←v22676 > (int)noName←c55704)) { goto lab←L100150; }; lab←L100153: ; SOURCE(34092, 168) { register word j←v22720 = 1; register word noName←c55736; word var←c55768; word var←c01031; noName←c55736 = (pointCount←v14452 - i←v22676); if (( (int)j←v22720 >= (int)noName←c55736)) { goto lab←L100154; }; lab←L100157: ; SOURCE(34131, 129) { word x329; word limit330; word x331; { word limit328; var←c55768 = (j←v22720 - 1); var←c01031 = (* (ptr) (* ((( (ptr) bestPoints←v14424)+10)+( limit328 = (* (( (ptr) bestPoints←v14424)+9) ), BCK(var←c55768, limit328) )) ) ); }; if ((( x329 = var←c01031, *(float*)&x329 ) > ( x331 = (* (ptr) (* ((( (ptr) bestPoints←v14424)+10)+( limit330 = (* (( (ptr) bestPoints←v14424)+9) ), BCK(j←v22720, limit330) )) ) ), *(float*)&x331 ))) { SOURCE(34183, 20) { word limit332; temp←v22632 = (* ((( (ptr) bestPoints←v14424)+10)+( limit332 = (* (( (ptr) bestPoints←v14424)+9) ), BCK(j←v22720, limit332) )) ); }; SOURCE(34205, 31) { word var←c55800; var←c55800 = (j←v22720 - 1); { word limit333; word limit334; (* ((( (ptr) bestPoints←v14424)+10)+( limit333 = (* (( (ptr) bestPoints←v14424)+9) ), BCK(j←v22720, limit333) )) ) = (* ((( (ptr) bestPoints←v14424)+10)+( limit334 = (* (( (ptr) bestPoints←v14424)+9) ), BCK(var←c55800, limit334) )) ); }; }; SOURCE(34238, 22) { word var←c55832; var←c55832 = (j←v22720 - 1); { word limit335; (* ((( (ptr) bestPoints←v14424)+10)+( limit335 = (* (( (ptr) bestPoints←v14424)+9) ), BCK(var←c55832, limit335) )) ) = temp←v22632; }; }; }; }; j←v22720 = (j←v22720 + 1); if (( (int)j←v22720 < (int)noName←c55736)) { goto lab←L100157; }; lab←L100154: ; }; if (( (int)i←v22676 >= (int)noName←c55704)) { goto lab←L100150; }; i←v22676 = (i←v22676 + 1); goto lab←L100153; lab←L100150: ; }; } static void SortCurves←P2040(bestCurves←v14512, curveCount←v14540) word bestCurves←v14512; word curveCount←v14540; { word temp←v22764 = 0; /* SortCurves: */ SOURCE(34287, 287) SOURCE(34367, 207) { register word i←v22808 = 0; register word noName←c55864; noName←c55864 = (curveCount←v14540 - 2); if (( (int)i←v22808 > (int)noName←c55864)) { goto lab←L100158; }; lab←L100161: ; SOURCE(34406, 168) { register word j←v22852 = 1; register word noName←c55896; word var←c55928; word var←c01032; noName←c55896 = (curveCount←v14540 - i←v22808); if (( (int)j←v22852 >= (int)noName←c55896)) { goto lab←L100162; }; lab←L100165: ; SOURCE(34445, 129) { word x337; word limit338; word x339; { word limit336; var←c55928 = (j←v22852 - 1); var←c01032 = (* (ptr) (* ((( (ptr) bestCurves←v14512)+10)+( limit336 = (* (( (ptr) bestCurves←v14512)+9) ), BCK(var←c55928, limit336) )) ) ); }; if ((( x337 = var←c01032, *(float*)&x337 ) > ( x339 = (* (ptr) (* ((( (ptr) bestCurves←v14512)+10)+( limit338 = (* (( (ptr) bestCurves←v14512)+9) ), BCK(j←v22852, limit338) )) ) ), *(float*)&x339 ))) { SOURCE(34497, 20) { word limit340; temp←v22764 = (* ((( (ptr) bestCurves←v14512)+10)+( limit340 = (* (( (ptr) bestCurves←v14512)+9) ), BCK(j←v22852, limit340) )) ); }; SOURCE(34519, 31) { word var←c55960; var←c55960 = (j←v22852 - 1); { word limit341; word limit342; (* ((( (ptr) bestCurves←v14512)+10)+( limit341 = (* (( (ptr) bestCurves←v14512)+9) ), BCK(j←v22852, limit341) )) ) = (* ((( (ptr) bestCurves←v14512)+10)+( limit342 = (* (( (ptr) bestCurves←v14512)+9) ), BCK(var←c55960, limit342) )) ); }; }; SOURCE(34552, 22) { word var←c55992; var←c55992 = (j←v22852 - 1); { word limit343; (* ((( (ptr) bestCurves←v14512)+10)+( limit343 = (* (( (ptr) bestCurves←v14512)+9) ), BCK(var←c55992, limit343) )) ) = temp←v22764; }; }; }; }; j←v22852 = (j←v22852 + 1); if (( (int)j←v22852 < (int)noName←c55896)) { goto lab←L100165; }; lab←L100162: ; }; if (( (int)i←v22808 >= (int)noName←c55864)) { goto lab←L100158; }; i←v22808 = (i←v22808 + 1); goto lab←L100161; lab←L100158: ; }; } static void SortFaces←P2100(bestFaces←v14600, faceCount←v14628) word bestFaces←v14600; word faceCount←v14628; { word temp←v22896 = 0; /* SortFaces: */ SOURCE(34601, 283) SOURCE(34677, 207) { register word i←v22940 = 0; register word noName←c56024; noName←c56024 = (faceCount←v14628 - 2); if (( (int)i←v22940 > (int)noName←c56024)) { goto lab←L100166; }; lab←L100169: ; SOURCE(34715, 169) { register word j←v22984 = 1; register word noName←c56056; word var←c56088; word var←c01033; noName←c56056 = (faceCount←v14628 - i←v22940); if (( (int)j←v22984 >= (int)noName←c56056)) { goto lab←L100170; }; lab←L100173: ; SOURCE(34753, 131) { word limit345; { word limit344; var←c56088 = (j←v22984 - 1); var←c01033 = (* (( (ptr) (* ((( (ptr) bestFaces←v14600)+8)+( limit344 = (* (( (ptr) bestFaces←v14600)+7) ), BCK(var←c56088, limit344) )) ))+8) ); }; if (( (int)var←c01033 < (int)(* (( (ptr) (* ((( (ptr) bestFaces←v14600)+8)+( limit345 = (* (( (ptr) bestFaces←v14600)+7) ), BCK(j←v22984, limit345) )) ))+8) ))) { SOURCE(34811, 19) { word limit346; temp←v22896 = (* ((( (ptr) bestFaces←v14600)+8)+( limit346 = (* (( (ptr) bestFaces←v14600)+7) ), BCK(j←v22984, limit346) )) ); }; SOURCE(34832, 29) { word var←c56120; var←c56120 = (j←v22984 - 1); { word limit347; word limit348; (* ((( (ptr) bestFaces←v14600)+8)+( limit347 = (* (( (ptr) bestFaces←v14600)+7) ), BCK(j←v22984, limit347) )) ) = (* ((( (ptr) bestFaces←v14600)+8)+( limit348 = (* (( (ptr) bestFaces←v14600)+7) ), BCK(var←c56120, limit348) )) ); }; }; SOURCE(34863, 21) { word var←c56152; var←c56152 = (j←v22984 - 1); { word limit349; (* ((( (ptr) bestFaces←v14600)+8)+( limit349 = (* (( (ptr) bestFaces←v14600)+7) ), BCK(var←c56152, limit349) )) ) = temp←v22896; }; }; }; }; j←v22984 = (j←v22984 + 1); if (( (int)j←v22984 < (int)noName←c56056)) { goto lab←L100173; }; lab←L100170: ; }; if (( (int)i←v22940 >= (int)noName←c56024)) { goto lab←L100166; }; i←v22940 = (i←v22940 + 1); goto lab←L100169; lab←L100166: ; }; } static void SortByOverlap←P2160(faces←v14688, count←v14716) word faces←v14688; word count←v14716; { word temp←v23028 = 0; /* SortByOverlap: */ SOURCE(34911, 247) SOURCE(34983, 175) { register word i←v23072 = 0; register word noName←c56184; noName←c56184 = (count←v14716 - 2); if (( (int)i←v23072 > (int)noName←c56184)) { goto lab←L100174; }; lab←L100177: ; SOURCE(35017, 141) { register word j←v23116 = 1; register word noName←c56216; word var←c56248; word var←c01034; noName←c56216 = (count←v14716 - i←v23072); if (( (int)j←v23116 >= (int)noName←c56216)) { goto lab←L100178; }; lab←L100181: ; SOURCE(35051, 107) { word limit351; { word limit350; var←c56248 = (j←v23116 - 1); var←c01034 = (* (( (ptr) (* ((( (ptr) faces←v14688)+8)+( limit350 = (* (( (ptr) faces←v14688)+7) ), BCK(var←c56248, limit350) )) ))+8) ); }; if (( (int)var←c01034 < (int)(* (( (ptr) (* ((( (ptr) faces←v14688)+8)+( limit351 = (* (( (ptr) faces←v14688)+7) ), BCK(j←v23116, limit351) )) ))+8) ))) { SOURCE(35101, 15) { word limit352; temp←v23028 = (* ((( (ptr) faces←v14688)+8)+( limit352 = (* (( (ptr) faces←v14688)+7) ), BCK(j←v23116, limit352) )) ); }; SOURCE(35118, 21) { word var←c56280; var←c56280 = (j←v23116 - 1); { word limit353; word limit354; (* ((( (ptr) faces←v14688)+8)+( limit353 = (* (( (ptr) faces←v14688)+7) ), BCK(j←v23116, limit353) )) ) = (* ((( (ptr) faces←v14688)+8)+( limit354 = (* (( (ptr) faces←v14688)+7) ), BCK(var←c56280, limit354) )) ); }; }; SOURCE(35141, 17) { word var←c56312; var←c56312 = (j←v23116 - 1); { word limit355; (* ((( (ptr) faces←v14688)+8)+( limit355 = (* (( (ptr) faces←v14688)+7) ), BCK(var←c56312, limit355) )) ) = temp←v23028; }; }; }; }; j←v23116 = (j←v23116 + 1); if (( (int)j←v23116 < (int)noName←c56216)) { goto lab←L100181; }; lab←L100178: ; }; if (( (int)i←v23072 >= (int)noName←c56184)) { goto lab←L100174; }; i←v23072 = (i←v23072 + 1); goto lab←L100177; lab←L100174: ; }; } static void ComputeMidpoint←P2220(formal←c0665, curve←v14776) word formal←c0665; word curve←v14776; { register ptr gf←c60984 = (ptr) &globalframe; W2 midpoint←v14820; word success←v14848; word class←v23160; word simpleCurve←v23188 = 0; /* ComputeMidpoint: */ SOURCE(35184, 488) SOURCE(35184, 488) success←v14848 = 1; SOURCE(35311, 43) { W2 var←c56344; (void) ClassifyCurve←P2280((word) &var←c56344, curve←v14776); simpleCurve←v23188 = var←c56344.f1; class←v23160 = var←c56344.f0; }; SOURCE(35356, 316) { word var←c56376; var←c56376 = class←v23160; if ((var←c56376 == 3)) { SOURCE(35379, 130) { word edge←v23244; SOURCE(35389, 32) edge←v23244 = XR←Narrow(simpleCurve←v23188, (* (( (ptr) gf←c60984)+76) )); SOURCE(35423, 68) { W2 var←c56408; { word pd356; pd356 = (* (( (ptr) (* (( (ptr) gf←c60984)+205)/* var←c54008 */ ))+10) ); (void) ( *( (fPt) ((* (ptr) pd356 ))))((word) &var←c56408, (* (W2Pt) (( (ptr) edge←v23244)+2) ), (* (W2Pt) (( (ptr) edge←v23244)+4) ), pd356); }; { W2 var←c0660; { word pd357; pd357 = (* (( (ptr) (* (( (ptr) gf←c60984)+205)/* var←c54008 */ ))+12) ); (void) ( *( (fPt) ((* (ptr) pd357 ))))((word) &var←c0660, var←c56408, (* (ptr) &fc358 ), pd357); }; midpoint←v14820 = var←c0660; }; }; SOURCE(35493, 14) success←v14848 = 1; }; } else { if ((var←c56376 == 4)) { SOURCE(35517, 121) { word arc←v23288; SOURCE(35526, 30) arc←v23288 = XR←Narrow(simpleCurve←v23188, (* (( (ptr) gf←c60984)+77) )); SOURCE(35558, 62) { W2 var←c56440; { word pd359; pd359 = (* (( (ptr) (* (( (ptr) gf←c60984)+205)/* var←c54008 */ ))+10) ); (void) ( *( (fPt) ((* (ptr) pd359 ))))((word) &var←c56440, (* (W2Pt) (( (ptr) arc←v23288)+2) ), (* (W2Pt) (( (ptr) arc←v23288)+4) ), pd359); }; { W2 var←c0664; { word pd360; pd360 = (* (( (ptr) (* (( (ptr) gf←c60984)+205)/* var←c54008 */ ))+12) ); (void) ( *( (fPt) ((* (ptr) pd360 ))))((word) &var←c0664, var←c56440, (* (ptr) &fc358 ), pd360); }; midpoint←v14820 = var←c0664; }; }; SOURCE(35622, 14) success←v14848 = 1; }; } else { SOURCE(35652, 20) midpoint←v14820.f0 = (* (ptr) &fc58 ); midpoint←v14820.f1 = (* (ptr) &fc58 ); success←v14848 = 0; goto lab←L100182; }; }; }; /* removed tail goto */ lab←L100182: ; (* (W2Pt) formal←c0665 ) = midpoint←v14820; (* (( (ptr) formal←c0665)+2) ) = success←v14848; return; } static void ClassifyCurve←P2280(formal←c0679, curve←v14908) word formal←c0679; word curve←v14908; { register ptr gf←c61016 = (ptr) &globalframe; word class←v14952; word simpleCurve←v14980; word feature←v23332; /* ClassifyCurve: */ SOURCE(35678, 867) SOURCE(35678, 867) simpleCurve←v14980 = 0; SOURCE(35764, 40) feature←v23332 = (* (( (ptr) curve←v14908)+5) ); SOURCE(35806, 601) { word var←c56504; var←c56504 = (* (ptr) feature←v23332 ); switch (var←c56504) { case 0: SOURCE(35840, 227) { word sliceD←v23376; word hitData←v23404; SOURCE(35842, 47) sliceD←v23376 = XR←Narrow((* (( (ptr) feature←v23332)+1) ), (* (( (ptr) gf←c61016)+64) )); SOURCE(35891, 32) hitData←v23404 = (* (( (ptr) curve←v14908)+6) ); SOURCE(35925, 68) { word pd361; pd361 = (* (( (ptr) (* (( (ptr) gf←c61016)+208)/* var←c54328 */ ))+51) ); simpleCurve←v14980 = (word) ( *( (fPt) ((* (ptr) pd361 ))))((* (ptr) sliceD←v23376 ), hitData←v23404, pd361); }; SOURCE(35995, 67) if ((simpleCurve←v14980 == 0)) { SOURCE(36023, 20) simpleCurve←v14980 = sliceD←v23376; SOURCE(36045, 9) class←v14952 = 6; SOURCE(36056, 6) goto lab←L100183; }; }; break; case 5: SOURCE(36087, 9) class←v14952 = 2; SOURCE(36098, 59) simpleCurve←v14980 = (* (ptr) XR←Narrow((* (( (ptr) feature←v23332)+1) ), (* (( (ptr) gf←c61016)+69) )) ); SOURCE(36159, 6) goto lab←L100183; case 2: case 3: SOURCE(36196, 9) class←v14952 = 1; SOURCE(36207, 55) simpleCurve←v14980 = (* (ptr) XR←Narrow((* (( (ptr) feature←v23332)+1) ), (* (( (ptr) gf←c61016)+67) )) ); SOURCE(36264, 6) goto lab←L100183; case 1: SOURCE(36293, 9) class←v14952 = 1; SOURCE(36304, 41) simpleCurve←v14980 = XR←Narrow((* (( (ptr) feature←v23332)+1) ), (* (( (ptr) gf←c61016)+68) )); SOURCE(36347, 6) goto lab←L100183; default: SOURCE(36370, 9) class←v14952 = 0; SOURCE(36382, 17) simpleCurve←v14980 = 0; SOURCE(36401, 6) goto lab←L100183; }; }; SOURCE(36410, 135) { word var←c56536; word var←c56568; var←c56536 = simpleCurve←v14980; if ((var←c56536 == 0)) { goto lab←L100184; }; var←c56568 = XR←GetReferentType(var←c56536); if (((* (( (ptr) gf←c61016)+78) ) == var←c56568)) { { word circle←v23460; circle←v23460 = var←c56536; SOURCE(36457, 9) class←v14952 = 2; }; goto endif0362; }; if (((* (( (ptr) gf←c61016)+76) ) == var←c56568)) { { word edge←v23504; edge←v23504 = var←c56536; SOURCE(36482, 9) class←v14952 = 3; }; goto endif0362; }; if (((* (( (ptr) gf←c61016)+77) ) == var←c56568)) { { word arc←v23548; arc←v23548 = var←c56536; SOURCE(36505, 9) class←v14952 = 4; }; goto endif0362; }; if (((* (( (ptr) gf←c61016)+79) ) == var←c56568)) { { word cubic←v23592; cubic←v23592 = var←c56536; SOURCE(36536, 9) class←v14952 = 5; }; goto endif0362; }; lab←L100184: ; SOURCE(36558, 5) (void) XR←RaiseUnnamedError(); goto endif0362; endif0362: ; }; /* removed tail goto */ lab←L100183: ; (* (ptr) formal←c0679 ) = class←v14952; (* (( (ptr) formal←c0679)+1) ) = simpleCurve←v14980; return; } static void CurveMeetsCurve←P2340(formal←c0696, c1←v15052, c2←v15080) word formal←c0696; word c1←v15052; word c2←v15080; { register ptr gf←c61048 = (ptr) &globalframe; word iPoints←v15124; word tangency←v15152; word typeOfCurve1←v23636; word typeOfCurve2←v23664; word simpleCurve1←v23692 = 0; word simpleCurve2←v23720 = 0; /* CurveMeetsCurve: */ SOURCE(36569, 511) SOURCE(36569, 511) iPoints←v15124 = 0; SOURCE(36569, 511) tangency←v15152 = 0; SOURCE(36742, 48) { W2 var←c56600; (void) ClassifyCurve←P2280((word) &var←c56600, c1←v15052); simpleCurve1←v23692 = var←c56600.f1; typeOfCurve1←v23636 = var←c56600.f0; }; SOURCE(36792, 48) { W2 var←c56632; (void) ClassifyCurve←P2280((word) &var←c56632, c2←v15080); simpleCurve2←v23720 = var←c56632.f1; typeOfCurve2←v23664 = var←c56632.f0; }; SOURCE(36842, 238) if ((typeOfCurve1←v23636 >= typeOfCurve2←v23664)) { SOURCE(36879, 103) { W2 var←c56664; { word pd363; pd363 = (* (( (ptr) (( (W7Pt) (( (ptr) gf←c61048)+5)/* ComputeIntersection←v5716 */ )+BCK(typeOfCurve1←v23636, 7)))+BCK(typeOfCurve2←v23664, 7) ) ); (void) ( *( (fPt) ((* (ptr) pd363 ))))((word) &var←c56664, simpleCurve1←v23692, simpleCurve2←v23720, pd363); }; tangency←v15152 = var←c56664.f1; iPoints←v15124 = var←c56664.f0; }; } else { SOURCE(36982, 98) { W2 var←c56696; { word pd364; pd364 = (* (( (ptr) (( (W7Pt) (( (ptr) gf←c61048)+5)/* ComputeIntersection←v5716 */ )+BCK(typeOfCurve2←v23664, 7)))+BCK(typeOfCurve1←v23636, 7) ) ); (void) ( *( (fPt) ((* (ptr) pd364 ))))((word) &var←c56696, simpleCurve2←v23720, simpleCurve1←v23692, pd364); }; tangency←v15152 = var←c56696.f1; iPoints←v15124 = var←c56696.f0; }; }; /* removed tail goto */ (* (ptr) formal←c0696 ) = iPoints←v15124; (* (( (ptr) formal←c0696)+1) ) = tangency←v15152; return; } static void NoOpI←P2400(formal←c0701, c1←v30400, c2←v30428) word formal←c0701; word c1←v30400; word c2←v30428; { word iPoints←v30472; word tangency←v30500; /* NoOpI: */ SOURCE(37696, 57) SOURCE(37696, 57) iPoints←v30472 = 0; SOURCE(37696, 57) tangency←v30500 = 0; SOURCE(37724, 13) iPoints←v30472 = 0; SOURCE(37739, 14) tangency←v30500 = 0; /* removed tail goto */ (* (ptr) formal←c0701 ) = iPoints←v30472; (* (( (ptr) formal←c0701)+1) ) = tangency←v30500; return; } static void LinLinI←P2460(formal←c0715, c1←v30560, c2←v30588) word formal←c0715; word c1←v30560; word c2←v30588; { register ptr gf←c61080 = (ptr) &globalframe; word iPoints←v30632; word tangency←v30660; word l1←v23776; word l2←v23804; W2 point←v23832; word parallel←v23860 = 0; /* LinLinI: */ SOURCE(37759, 269) SOURCE(37759, 269) iPoints←v30632 = 0; SOURCE(37759, 269) tangency←v30660 = 0; SOURCE(37789, 21) l1←v23776 = XR←Narrow(c1←v30560, (* (( (ptr) gf←c61080)+68) )); SOURCE(37812, 21) l2←v23804 = XR←Narrow(c2←v30588, (* (( (ptr) gf←c61080)+68) )); SOURCE(37873, 49) { W3 var←c56728; { word pd365; pd365 = (* (( (ptr) (* (( (ptr) gf←c61080)+209)/* var←c54776 */ ))+33) ); (void) ( *( (fPt) ((* (ptr) pd365 ))))((word) &var←c56728, l1←v23776, l2←v23804, pd365); }; parallel←v23860 = var←c56728.f2; point←v23832 = (* (W2Pt) &var←c56728 ); }; SOURCE(37924, 104) if ((0 == parallel←v23860)) { SOURCE(37946, 21) { word var←c56760; word var←c56792; var←c56760 = XR←NewObject(12, (* (( (ptr) gf←c61080)+75) )); var←c56792 = var←c56760; (* (W2Pt) var←c56792 ) = point←v23832; iPoints←v30632 = var←c56760; }; SOURCE(37969, 22) tangency←v30660 = XR←NewObject(8, (* (( (ptr) gf←c61080)+71) )); { word var←c56856; var←c56856 = tangency←v30660; }; } else { SOURCE(37999, 13) iPoints←v30632 = 0; SOURCE(38014, 14) tangency←v30660 = 0; }; /* removed tail goto */ (* (ptr) formal←c0715 ) = iPoints←v30632; (* (( (ptr) formal←c0715)+1) ) = tangency←v30660; return; } static void CirLinI←P2520(formal←c0731, c1←v30720, c2←v30748) word formal←c0731; word c1←v30720; word c2←v30748; { register ptr gf←c61112 = (ptr) &globalframe; word iPoints←v30792; word tangency←v30820; word circle←v23904; word line←v23932; W4 points←v23960; word hitCount←v23988; word tangent←v24016 = 0; /* CirLinI: */ SOURCE(38035, 328) SOURCE(38035, 328) iPoints←v30792 = 0; SOURCE(38035, 328) tangency←v30820 = 0; SOURCE(38065, 27) circle←v23904 = XR←Narrow(c1←v30720, (* (( (ptr) gf←c61112)+78) )); SOURCE(38094, 23) line←v23932 = XR←Narrow(c2←v30748, (* (( (ptr) gf←c61112)+68) )); SOURCE(38191, 69) { W6 var←c56920; { word pd366; pd366 = (* (( (ptr) (* (( (ptr) gf←c61112)+211)/* var←c56888 */ ))+10) ); (void) ( *( (fPt) ((* (ptr) pd366 ))))((word) &var←c56920, circle←v23904, line←v23932, pd366); }; tangent←v24016 = var←c56920.f5; hitCount←v23988 = var←c56920.f4; points←v23960 = (* (W4Pt) &var←c56920 ); }; SOURCE(38262, 101) { register word i←v24116 = 1; register word noName←c56952; noName←c56952 = hitCount←v23988; if ((i←v24116 > noName←c56952)) { goto lab←L100189; }; lab←L100192: ; SOURCE(38293, 34) { word var←c56984; var←c56984 = XR←NewObject(12, (* (( (ptr) gf←c61112)+75) )); (* (W2Pt) var←c56984 ) = (* (( (W2Pt) &points←v23960)+BCK((i←v24116 - 1), 2)) ); (* (( (ptr) var←c56984)+2) ) = iPoints←v30792; iPoints←v30792 = var←c56984; }; SOURCE(38329, 34) { word var←c57016; var←c57016 = XR←NewObject(8, (* (( (ptr) gf←c61112)+71) )); (* (ptr) var←c57016 ) = tangent←v24016; (* (( (ptr) var←c57016)+1) ) = tangency←v30820; tangency←v30820 = var←c57016; }; if ((i←v24116 >= noName←c56952)) { goto lab←L100189; }; i←v24116 = (i←v24116 + 1); goto lab←L100192; lab←L100189: ; }; /* removed tail goto */ (* (ptr) formal←c0731 ) = iPoints←v30792; (* (( (ptr) formal←c0731)+1) ) = tangency←v30820; return; } static void CirCirI←P2580(formal←c0747, c1←v30880, c2←v30908) word formal←c0747; word c1←v30880; word c2←v30908; { register ptr gf←c61144 = (ptr) &globalframe; word iPoints←v30952; word tangency←v30980; word circle1←v24160; word circle2←v24188; W4 points←v24216; word hitCount←v24244; word tangent←v24272 = 0; /* CirCirI: */ SOURCE(38378, 340) SOURCE(38378, 340) iPoints←v30952 = 0; SOURCE(38378, 340) tangency←v30980 = 0; SOURCE(38408, 28) circle1←v24160 = XR←Narrow(c1←v30880, (* (( (ptr) gf←c61144)+78) )); SOURCE(38438, 28) circle2←v24188 = XR←Narrow(c2←v30908, (* (( (ptr) gf←c61144)+78) )); SOURCE(38540, 75) { W6 var←c57048; { word pd367; pd367 = (* (( (ptr) (* (( (ptr) gf←c61144)+211)/* var←c56888 */ ))+12) ); (void) ( *( (fPt) ((* (ptr) pd367 ))))((word) &var←c57048, circle1←v24160, circle2←v24188, pd367); }; tangent←v24272 = var←c57048.f5; hitCount←v24244 = var←c57048.f4; points←v24216 = (* (W4Pt) &var←c57048 ); }; SOURCE(38617, 101) { register word i←v24372 = 1; register word noName←c57080; noName←c57080 = hitCount←v24244; if ((i←v24372 > noName←c57080)) { goto lab←L100194; }; lab←L100197: ; SOURCE(38648, 34) { word var←c57112; var←c57112 = XR←NewObject(12, (* (( (ptr) gf←c61144)+75) )); (* (W2Pt) var←c57112 ) = (* (( (W2Pt) &points←v24216)+BCK((i←v24372 - 1), 2)) ); (* (( (ptr) var←c57112)+2) ) = iPoints←v30952; iPoints←v30952 = var←c57112; }; SOURCE(38684, 34) { word var←c57144; var←c57144 = XR←NewObject(8, (* (( (ptr) gf←c61144)+71) )); (* (ptr) var←c57144 ) = tangent←v24272; (* (( (ptr) var←c57144)+1) ) = tangency←v30980; tangency←v30980 = var←c57144; }; if ((i←v24372 >= noName←c57080)) { goto lab←L100194; }; i←v24372 = (i←v24372 + 1); goto lab←L100197; lab←L100194: ; }; /* removed tail goto */ (* (ptr) formal←c0747 ) = iPoints←v30952; (* (( (ptr) formal←c0747)+1) ) = tangency←v30980; return; } static void EdgLinI←P2640(formal←c0761, c1←v31040, c2←v31068) word formal←c0761; word c1←v31040; word c2←v31068; { register ptr gf←c61176 = (ptr) &globalframe; word iPoints←v31112; word tangency←v31140; word edge←v24416; word line←v24444; W2 point←v24472; word noHit←v24500 = 0; /* EdgLinI: */ SOURCE(38733, 268) SOURCE(38733, 268) iPoints←v31112 = 0; SOURCE(38733, 268) tangency←v31140 = 0; SOURCE(38763, 23) edge←v24416 = XR←Narrow(c1←v31040, (* (( (ptr) gf←c61176)+76) )); SOURCE(38788, 23) line←v24444 = XR←Narrow(c2←v31068, (* (( (ptr) gf←c61176)+68) )); SOURCE(38848, 50) { W3 var←c57176; { word pd368; pd368 = (* (( (ptr) (* (( (ptr) gf←c61176)+209)/* var←c54776 */ ))+35) ); (void) ( *( (fPt) ((* (ptr) pd368 ))))((word) &var←c57176, line←v24444, edge←v24416, pd368); }; noHit←v24500 = var←c57176.f2; point←v24472 = (* (W2Pt) &var←c57176 ); }; SOURCE(38900, 101) if ((0 == noHit←v24500)) { SOURCE(38919, 21) { word var←c57208; word var←c57240; var←c57208 = XR←NewObject(12, (* (( (ptr) gf←c61176)+75) )); var←c57240 = var←c57208; (* (W2Pt) var←c57240 ) = point←v24472; iPoints←v31112 = var←c57208; }; SOURCE(38942, 22) tangency←v31140 = XR←NewObject(8, (* (( (ptr) gf←c61176)+71) )); { word var←c57304; var←c57304 = tangency←v31140; }; } else { SOURCE(38972, 13) iPoints←v31112 = 0; SOURCE(38987, 14) tangency←v31140 = 0; }; /* removed tail goto */ (* (ptr) formal←c0761 ) = iPoints←v31112; (* (( (ptr) formal←c0761)+1) ) = tangency←v31140; return; } static void EdgCirI←P2700(formal←c0777, c1←v31200, c2←v31228) word formal←c0777; word c1←v31200; word c2←v31228; { register ptr gf←c61208 = (ptr) &globalframe; word iPoints←v31272; word tangency←v31300; word edge←v24544; word circle←v24572; W4 points←v24600; word hitCount←v24628; word tangent←v24656 = 0; /* EdgCirI: */ SOURCE(39008, 328) SOURCE(39008, 328) iPoints←v31272 = 0; SOURCE(39008, 328) tangency←v31300 = 0; SOURCE(39038, 23) edge←v24544 = XR←Narrow(c1←v31200, (* (( (ptr) gf←c61208)+76) )); SOURCE(39063, 27) circle←v24572 = XR←Narrow(c2←v31228, (* (( (ptr) gf←c61208)+78) )); SOURCE(39164, 69) { W6 var←c57336; { word pd369; pd369 = (* (( (ptr) (* (( (ptr) gf←c61208)+211)/* var←c56888 */ ))+11) ); (void) ( *( (fPt) ((* (ptr) pd369 ))))((word) &var←c57336, circle←v24572, edge←v24544, pd369); }; tangent←v24656 = var←c57336.f5; hitCount←v24628 = var←c57336.f4; points←v24600 = (* (W4Pt) &var←c57336 ); }; SOURCE(39235, 101) { register word i←v24756 = 1; register word noName←c57368; noName←c57368 = hitCount←v24628; if ((i←v24756 > noName←c57368)) { goto lab←L100200; }; lab←L100203: ; SOURCE(39266, 34) { word var←c57400; var←c57400 = XR←NewObject(12, (* (( (ptr) gf←c61208)+75) )); (* (W2Pt) var←c57400 ) = (* (( (W2Pt) &points←v24600)+BCK((i←v24756 - 1), 2)) ); (* (( (ptr) var←c57400)+2) ) = iPoints←v31272; iPoints←v31272 = var←c57400; }; SOURCE(39302, 34) { word var←c57432; var←c57432 = XR←NewObject(8, (* (( (ptr) gf←c61208)+71) )); (* (ptr) var←c57432 ) = tangent←v24656; (* (( (ptr) var←c57432)+1) ) = tangency←v31300; tangency←v31300 = var←c57432; }; if ((i←v24756 >= noName←c57368)) { goto lab←L100200; }; i←v24756 = (i←v24756 + 1); goto lab←L100203; lab←L100200: ; }; /* removed tail goto */ (* (ptr) formal←c0777 ) = iPoints←v31272; (* (( (ptr) formal←c0777)+1) ) = tangency←v31300; return; } static void EdgEdgI←P2760(formal←c0791, c1←v31360, c2←v31388) word formal←c0791; word c1←v31360; word c2←v31388; { register ptr gf←c61240 = (ptr) &globalframe; word iPoints←v31432; word tangency←v31460; word e1←v24800; word e2←v24828; W2 point←v24856; word noHit←v24884 = 0; /* EdgEdgI: */ SOURCE(39351, 260) SOURCE(39351, 260) iPoints←v31432 = 0; SOURCE(39351, 260) tangency←v31460 = 0; SOURCE(39381, 21) e1←v24800 = XR←Narrow(c1←v31360, (* (( (ptr) gf←c61240)+76) )); SOURCE(39404, 21) e2←v24828 = XR←Narrow(c2←v31388, (* (( (ptr) gf←c61240)+76) )); SOURCE(39462, 46) { W3 var←c57464; { word pd370; pd370 = (* (( (ptr) (* (( (ptr) gf←c61240)+209)/* var←c54776 */ ))+36) ); (void) ( *( (fPt) ((* (ptr) pd370 ))))((word) &var←c57464, e1←v24800, e2←v24828, pd370); }; noHit←v24884 = var←c57464.f2; point←v24856 = (* (W2Pt) &var←c57464 ); }; SOURCE(39510, 101) if ((0 == noHit←v24884)) { SOURCE(39529, 21) { word var←c57496; word var←c57528; var←c57496 = XR←NewObject(12, (* (( (ptr) gf←c61240)+75) )); var←c57528 = var←c57496; (* (W2Pt) var←c57528 ) = point←v24856; iPoints←v31432 = var←c57496; }; SOURCE(39552, 22) tangency←v31460 = XR←NewObject(8, (* (( (ptr) gf←c61240)+71) )); { word var←c57592; var←c57592 = tangency←v31460; }; } else { SOURCE(39582, 13) iPoints←v31432 = 0; SOURCE(39597, 14) tangency←v31460 = 0; }; /* removed tail goto */ (* (ptr) formal←c0791 ) = iPoints←v31432; (* (( (ptr) formal←c0791)+1) ) = tangency←v31460; return; } static void ArcLinI←P2820(formal←c0807, c1←v31520, c2←v31548) word formal←c0807; word c1←v31520; word c2←v31548; { register ptr gf←c61272 = (ptr) &globalframe; word iPoints←v31592; word tangency←v31620; word arc←v24928; word line←v24956; W4 points←v24984; word hitCount←v25012; word tangent←v25040 = 0; /* ArcLinI: */ SOURCE(39618, 316) SOURCE(39618, 316) iPoints←v31592 = 0; SOURCE(39618, 316) tangency←v31620 = 0; SOURCE(39648, 21) arc←v24928 = XR←Narrow(c1←v31520, (* (( (ptr) gf←c61272)+77) )); SOURCE(39671, 23) line←v24956 = XR←Narrow(c2←v31548, (* (( (ptr) gf←c61272)+68) )); SOURCE(39768, 63) { W6 var←c57624; { word pd371; pd371 = (* (( (ptr) (* (( (ptr) gf←c61272)+211)/* var←c56888 */ ))+14) ); (void) ( *( (fPt) ((* (ptr) pd371 ))))((word) &var←c57624, arc←v24928, line←v24956, pd371); }; tangent←v25040 = var←c57624.f5; hitCount←v25012 = var←c57624.f4; points←v24984 = (* (W4Pt) &var←c57624 ); }; SOURCE(39833, 101) { register word i←v25140 = 1; register word noName←c57656; noName←c57656 = hitCount←v25012; if ((i←v25140 > noName←c57656)) { goto lab←L100206; }; lab←L100209: ; SOURCE(39864, 34) { word var←c57688; var←c57688 = XR←NewObject(12, (* (( (ptr) gf←c61272)+75) )); (* (W2Pt) var←c57688 ) = (* (( (W2Pt) &points←v24984)+BCK((i←v25140 - 1), 2)) ); (* (( (ptr) var←c57688)+2) ) = iPoints←v31592; iPoints←v31592 = var←c57688; }; SOURCE(39900, 34) { word var←c57720; var←c57720 = XR←NewObject(8, (* (( (ptr) gf←c61272)+71) )); (* (ptr) var←c57720 ) = tangent←v25040; (* (( (ptr) var←c57720)+1) ) = tangency←v31620; tangency←v31620 = var←c57720; }; if ((i←v25140 >= noName←c57656)) { goto lab←L100206; }; i←v25140 = (i←v25140 + 1); goto lab←L100209; lab←L100206: ; }; /* removed tail goto */ (* (ptr) formal←c0807 ) = iPoints←v31592; (* (( (ptr) formal←c0807)+1) ) = tangency←v31620; return; } static void ArcCirI←P2880(formal←c0823, c1←v31680, c2←v31708) word formal←c0823; word c1←v31680; word c2←v31708; { register ptr gf←c61304 = (ptr) &globalframe; word iPoints←v31752; word tangency←v31780; word arc←v25184; word circle←v25212; W4 points←v25240; word hitCount←v25268; word tangent←v25296 = 0; /* ArcCirI: */ SOURCE(39949, 324) SOURCE(39949, 324) iPoints←v31752 = 0; SOURCE(39949, 324) tangency←v31780 = 0; SOURCE(39979, 21) arc←v25184 = XR←Narrow(c1←v31680, (* (( (ptr) gf←c61304)+77) )); SOURCE(40002, 27) circle←v25212 = XR←Narrow(c2←v31708, (* (( (ptr) gf←c61304)+78) )); SOURCE(40103, 67) { W6 var←c57752; { word pd372; pd372 = (* (( (ptr) (* (( (ptr) gf←c61304)+211)/* var←c56888 */ ))+13) ); (void) ( *( (fPt) ((* (ptr) pd372 ))))((word) &var←c57752, circle←v25212, arc←v25184, pd372); }; tangent←v25296 = var←c57752.f5; hitCount←v25268 = var←c57752.f4; points←v25240 = (* (W4Pt) &var←c57752 ); }; SOURCE(40172, 101) { register word i←v25396 = 1; register word noName←c57784; noName←c57784 = hitCount←v25268; if ((i←v25396 > noName←c57784)) { goto lab←L100211; }; lab←L100214: ; SOURCE(40203, 34) { word var←c57816; var←c57816 = XR←NewObject(12, (* (( (ptr) gf←c61304)+75) )); (* (W2Pt) var←c57816 ) = (* (( (W2Pt) &points←v25240)+BCK((i←v25396 - 1), 2)) ); (* (( (ptr) var←c57816)+2) ) = iPoints←v31752; iPoints←v31752 = var←c57816; }; SOURCE(40239, 34) { word var←c57848; var←c57848 = XR←NewObject(8, (* (( (ptr) gf←c61304)+71) )); (* (ptr) var←c57848 ) = tangent←v25296; (* (( (ptr) var←c57848)+1) ) = tangency←v31780; tangency←v31780 = var←c57848; }; if ((i←v25396 >= noName←c57784)) { goto lab←L100211; }; i←v25396 = (i←v25396 + 1); goto lab←L100214; lab←L100211: ; }; /* removed tail goto */ (* (ptr) formal←c0823 ) = iPoints←v31752; (* (( (ptr) formal←c0823)+1) ) = tangency←v31780; return; } static void ArcEdgI←P2940(formal←c0839, c1←v31840, c2←v31868) word formal←c0839; word c1←v31840; word c2←v31868; { register ptr gf←c61336 = (ptr) &globalframe; word iPoints←v31912; word tangency←v31940; word arc←v25440; word edge←v25468; W4 points←v25496; word hitCount←v25524; word tangent←v25552 = 0; /* ArcEdgI: */ SOURCE(40288, 316) SOURCE(40288, 316) iPoints←v31912 = 0; SOURCE(40288, 316) tangency←v31940 = 0; SOURCE(40318, 21) arc←v25440 = XR←Narrow(c1←v31840, (* (( (ptr) gf←c61336)+77) )); SOURCE(40341, 23) edge←v25468 = XR←Narrow(c2←v31868, (* (( (ptr) gf←c61336)+76) )); SOURCE(40438, 63) { W6 var←c57880; { word pd373; pd373 = (* (( (ptr) (* (( (ptr) gf←c61336)+211)/* var←c56888 */ ))+15) ); (void) ( *( (fPt) ((* (ptr) pd373 ))))((word) &var←c57880, arc←v25440, edge←v25468, pd373); }; tangent←v25552 = var←c57880.f5; hitCount←v25524 = var←c57880.f4; points←v25496 = (* (W4Pt) &var←c57880 ); }; SOURCE(40503, 101) { register word i←v25652 = 1; register word noName←c57912; noName←c57912 = hitCount←v25524; if ((i←v25652 > noName←c57912)) { goto lab←L100216; }; lab←L100219: ; SOURCE(40534, 34) { word var←c57944; var←c57944 = XR←NewObject(12, (* (( (ptr) gf←c61336)+75) )); (* (W2Pt) var←c57944 ) = (* (( (W2Pt) &points←v25496)+BCK((i←v25652 - 1), 2)) ); (* (( (ptr) var←c57944)+2) ) = iPoints←v31912; iPoints←v31912 = var←c57944; }; SOURCE(40570, 34) { word var←c57976; var←c57976 = XR←NewObject(8, (* (( (ptr) gf←c61336)+71) )); (* (ptr) var←c57976 ) = tangent←v25552; (* (( (ptr) var←c57976)+1) ) = tangency←v31940; tangency←v31940 = var←c57976; }; if ((i←v25652 >= noName←c57912)) { goto lab←L100216; }; i←v25652 = (i←v25652 + 1); goto lab←L100219; lab←L100216: ; }; /* removed tail goto */ (* (ptr) formal←c0839 ) = iPoints←v31912; (* (( (ptr) formal←c0839)+1) ) = tangency←v31940; return; } static void ArcArcI←P3000(formal←c0855, c1←v32000, c2←v32028) word formal←c0855; word c1←v32000; word c2←v32028; { register ptr gf←c61368 = (ptr) &globalframe; word iPoints←v32072; word tangency←v32100; word arc1←v25696; word arc2←v25724; W4 points←v25752; word hitCount←v25780; word tangent←v25808 = 0; /* ArcArcI: */ SOURCE(40619, 316) SOURCE(40619, 316) iPoints←v32072 = 0; SOURCE(40619, 316) tangency←v32100 = 0; SOURCE(40649, 22) arc1←v25696 = XR←Narrow(c1←v32000, (* (( (ptr) gf←c61368)+77) )); SOURCE(40673, 22) arc2←v25724 = XR←Narrow(c2←v32028, (* (( (ptr) gf←c61368)+77) )); SOURCE(40769, 63) { W6 var←c58008; { word pd374; pd374 = (* (( (ptr) (* (( (ptr) gf←c61368)+211)/* var←c56888 */ ))+16) ); (void) ( *( (fPt) ((* (ptr) pd374 ))))((word) &var←c58008, arc1←v25696, arc2←v25724, pd374); }; tangent←v25808 = var←c58008.f5; hitCount←v25780 = var←c58008.f4; points←v25752 = (* (W4Pt) &var←c58008 ); }; SOURCE(40834, 101) { register word i←v25908 = 1; register word noName←c58040; noName←c58040 = hitCount←v25780; if ((i←v25908 > noName←c58040)) { goto lab←L100221; }; lab←L100224: ; SOURCE(40865, 34) { word var←c58072; var←c58072 = XR←NewObject(12, (* (( (ptr) gf←c61368)+75) )); (* (W2Pt) var←c58072 ) = (* (( (W2Pt) &points←v25752)+BCK((i←v25908 - 1), 2)) ); (* (( (ptr) var←c58072)+2) ) = iPoints←v32072; iPoints←v32072 = var←c58072; }; SOURCE(40901, 34) { word var←c58104; var←c58104 = XR←NewObject(8, (* (( (ptr) gf←c61368)+71) )); (* (ptr) var←c58104 ) = tangent←v25808; (* (( (ptr) var←c58104)+1) ) = tangency←v32100; tangency←v32100 = var←c58104; }; if ((i←v25908 >= noName←c58040)) { goto lab←L100221; }; i←v25908 = (i←v25908 + 1); goto lab←L100224; lab←L100221: ; }; /* removed tail goto */ (* (ptr) formal←c0855 ) = iPoints←v32072; (* (( (ptr) formal←c0855)+1) ) = tangency←v32100; return; } static void CubLinI←P3060(formal←c0871, c1←v32160, c2←v32188) word formal←c0871; word c1←v32160; word c2←v32188; { register ptr gf←c61400 = (ptr) &globalframe; word iPoints←v32232; word tangency←v32260; word bezier←v25952; word line←v25980; W6 points←v26008; word hitCount←v26036; W3 tangent←v26064; /* CubLinI: */ SOURCE(40950, 376) SOURCE(40950, 376) iPoints←v32232 = 0; SOURCE(40950, 376) tangency←v32260 = 0; SOURCE(40980, 30) bezier←v25952 = XR←Narrow(c1←v32160, (* (( (ptr) gf←c61400)+79) )); SOURCE(41012, 23) line←v25980 = XR←Narrow(c2←v32188, (* (( (ptr) gf←c61400)+68) )); SOURCE(41086, 42) tangent←v26064.f0 = 0; tangent←v26064.f1 = 0; tangent←v26064.f2 = 0; SOURCE(41130, 90) { W10 var←c58200; { word pd375; word x376; float tf377; word x378; float tf379; pd375 = (* (( (ptr) (* (( (ptr) gf←c61400)+212)/* var←c58168 */ ))+16) ); (void) ( *( (fPt) ((* (ptr) pd375 ))))((word) &var←c58200, (* (W8Pt) bezier←v25952 ), ( tf377 = - ( x376 = (* (( (ptr) line←v25980)+3) ), *(float*)&x376 ), *(word*)&tf377 ), (* (( (ptr) line←v25980)+2) ), ( tf379 = - ( x378 = (* (( (ptr) line←v25980)+1) ), *(float*)&x378 ), *(word*)&tf379 ), pd375); }; tangent←v26064 = (* (W3Pt) (( (ptr) &var←c58200)+7) ); hitCount←v26036 = (* (( (ptr) &var←c58200)+6) ); points←v26008 = (* (W6Pt) &var←c58200 ); }; SOURCE(41222, 104) { register word i←v26200 = 0; register word noName←c58232; noName←c58232 = hitCount←v26036; if ((i←v26200 >= noName←c58232)) { goto lab←L100226; }; lab←L100229: ; SOURCE(41253, 34) { word var←c58264; var←c58264 = XR←NewObject(12, (* (( (ptr) gf←c61400)+75) )); (* (W2Pt) var←c58264 ) = (* (( (W2Pt) &points←v26008)+BCK(i←v26200, 3)) ); (* (( (ptr) var←c58264)+2) ) = iPoints←v32232; iPoints←v32232 = var←c58264; }; SOURCE(41289, 37) { word var←c58296; var←c58296 = XR←NewObject(8, (* (( (ptr) gf←c61400)+71) )); (* (ptr) var←c58296 ) = (* (( (ptr) &tangent←v26064)+BCK(i←v26200, 3)) ); (* (( (ptr) var←c58296)+1) ) = tangency←v32260; tangency←v32260 = var←c58296; }; i←v26200 = (i←v26200 + 1); if ((i←v26200 < noName←c58232)) { goto lab←L100229; }; lab←L100226: ; }; /* removed tail goto */ (* (ptr) formal←c0871 ) = iPoints←v32232; (* (( (ptr) formal←c0871)+1) ) = tangency←v32260; return; } static void CubicMeetsEdge←P3120(formal←c0884, bezier←v15792, edge←v15820) word formal←c0884; word bezier←v15792; word edge←v15820; { register ptr gf←c61432 = (ptr) &globalframe; W6 points←v15864; word hitCount←v15892; W3 tangent←v15920; W6 linePoints←v26244; word lineHitCount←v26272; W3 lineTangents←v26300; /* CubicMeetsEdge: */ SOURCE(41341, 564) SOURCE(41341, 564) hitCount←v15892 = 0; SOURCE(41341, 564) tangent←v15920.f0 = 0; tangent←v15920.f1 = 0; tangent←v15920.f2 = 0; SOURCE(41561, 47) lineTangents←v26300.f0 = 0; lineTangents←v26300.f1 = 0; lineTangents←v26300.f2 = 0; SOURCE(41610, 118) { W10 var←c58360; { word pd380; word x381; float tf382; word x383; float tf384; pd380 = (* (( (ptr) (* (( (ptr) gf←c61432)+212)/* var←c58168 */ ))+16) ); (void) ( *( (fPt) ((* (ptr) pd380 ))))((word) &var←c58360, (* (W8Pt) bezier←v15792 ), ( tf382 = - ( x381 = (* (( (ptr) (* (ptr) edge←v15820 ))+3) ), *(float*)&x381 ), *(word*)&tf382 ), (* (( (ptr) (* (ptr) edge←v15820 ))+2) ), ( tf384 = - ( x383 = (* (( (ptr) (* (ptr) edge←v15820 ))+1) ), *(float*)&x383 ), *(word*)&tf384 ), pd380); }; lineTangents←v26300 = (* (W3Pt) (( (ptr) &var←c58360)+7) ); lineHitCount←v26272 = (* (( (ptr) &var←c58360)+6) ); linePoints←v26244 = (* (W6Pt) &var←c58360 ); }; SOURCE(41730, 175) { register word i←v26436 = 0; register word noName←c58392; noName←c58392 = lineHitCount←v26272; if ((i←v26436 >= noName←c58392)) { goto lab←L100231; }; lab←L100234: ; SOURCE(41765, 140) { word pd385; pd385 = (* (( (ptr) (* (( (ptr) gf←c61432)+209)/* var←c54776 */ ))+47) ); if ((0 != (word) ( *( (fPt) ((* (ptr) pd385 ))))((* (( (W2Pt) &linePoints←v26244)+BCK(i←v26436, 3)) ), edge←v15820, pd385) )) { SOURCE(41811, 32) (* (( (W2Pt) &points←v15864)+BCK(hitCount←v15892, 3)) ) = (* (( (W2Pt) &linePoints←v26244)+BCK(i←v26436, 3)) ); SOURCE(41845, 35) (* (( (ptr) &tangent←v15920)+BCK(hitCount←v15892, 3)) ) = (* (( (ptr) &lineTangents←v26300)+BCK(i←v26436, 3)) ); SOURCE(41882, 23) hitCount←v15892 = BCK((hitCount←v15892 + 1), 4); }; }; i←v26436 = (i←v26436 + 1); if ((i←v26436 < noName←c58392)) { goto lab←L100234; }; lab←L100231: ; }; /* removed tail goto */ (* (W6Pt) formal←c0884 ) = points←v15864; (* (( (ptr) formal←c0884)+6) ) = hitCount←v15892; (* (W3Pt) (( (ptr) formal←c0884)+7) ) = tangent←v15920; return; } static void CubEdgI←P3180(formal←c0900, c1←v32320, c2←v32348) word formal←c0900; word c1←v32320; word c2←v32348; { register ptr gf←c61464 = (ptr) &globalframe; word iPoints←v32392; word tangency←v32420; word bezier←v26508; word edge←v26536; W6 points←v26564; word hitCount←v26592; W3 tangent←v26620; /* CubEdgI: */ SOURCE(41923, 450) SOURCE(41923, 450) iPoints←v32392 = 0; SOURCE(41923, 450) tangency←v32420 = 0; SOURCE(42059, 30) bezier←v26508 = XR←Narrow(c1←v32320, (* (( (ptr) gf←c61464)+79) )); SOURCE(42091, 23) edge←v26536 = XR←Narrow(c2←v32348, (* (( (ptr) gf←c61464)+76) )); SOURCE(42165, 42) tangent←v26620.f0 = 0; tangent←v26620.f1 = 0; tangent←v26620.f2 = 0; SOURCE(42209, 58) { W10 var←c58456; (void) CubicMeetsEdge←P3120((word) &var←c58456, bezier←v26508, edge←v26536); tangent←v26620 = (* (W3Pt) (( (ptr) &var←c58456)+7) ); hitCount←v26592 = (* (( (ptr) &var←c58456)+6) ); points←v26564 = (* (W6Pt) &var←c58456 ); }; SOURCE(42269, 104) { register word i←v27096 = 0; register word noName←c58488; noName←c58488 = hitCount←v26592; if ((i←v27096 >= noName←c58488)) { goto lab←L100236; }; lab←L100239: ; SOURCE(42300, 34) { word var←c58520; var←c58520 = XR←NewObject(12, (* (( (ptr) gf←c61464)+75) )); (* (W2Pt) var←c58520 ) = (* (( (W2Pt) &points←v26564)+BCK(i←v27096, 3)) ); (* (( (ptr) var←c58520)+2) ) = iPoints←v32392; iPoints←v32392 = var←c58520; }; SOURCE(42336, 37) { word var←c58552; var←c58552 = XR←NewObject(8, (* (( (ptr) gf←c61464)+71) )); (* (ptr) var←c58552 ) = (* (( (ptr) &tangent←v26620)+BCK(i←v27096, 3)) ); (* (( (ptr) var←c58552)+1) ) = tangency←v32420; tangency←v32420 = var←c58552; }; i←v27096 = (i←v27096 + 1); if ((i←v27096 < noName←c58488)) { goto lab←L100239; }; lab←L100236: ; }; /* removed tail goto */ (* (ptr) formal←c0900 ) = iPoints←v32392; (* (( (ptr) formal←c0900)+1) ) = tangency←v32420; return; } static void SlcLinI←P3240(formal←c0911, c1←v32480, c2←v32508) word formal←c0911; word c1←v32480; word c2←v32508; { register ptr gf←c61496 = (ptr) &globalframe; word iPoints←v32552; word tangency←v32580; word sliceD←v27140; word line←v27168; /* SlcLinI: */ SOURCE(42388, 251) SOURCE(42388, 251) iPoints←v32552 = 0; SOURCE(42388, 251) tangency←v32580 = 0; SOURCE(42418, 36) sliceD←v27140 = XR←Narrow(c1←v32480, (* (( (ptr) gf←c61496)+64) )); SOURCE(42456, 23) line←v27168 = XR←Narrow(c2←v32508, (* (( (ptr) gf←c61496)+68) )); SOURCE(42481, 59) { W2 var←c58584; { word pd386; pd386 = (* (( (ptr) (* (( (ptr) gf←c61496)+208)/* var←c54328 */ ))+49) ); (void) ( *( (fPt) ((* (ptr) pd386 ))))((word) &var←c58584, sliceD←v27140, line←v27168, pd386); }; iPoints←v32552 = var←c58584.f0; }; SOURCE(42542, 97) { register word list←v27212; list←v27212 = iPoints←v32552; lab←L100244: ; if ((list←v27212 != 0)) { } else { goto lab←L100241; }; SOURCE(42607, 32) { word var←c58616; var←c58616 = XR←NewObject(8, (* (( (ptr) gf←c61496)+71) )); (* (( (ptr) var←c58616)+1) ) = tangency←v32580; tangency←v32580 = var←c58616; }; list←v27212 = (* (( (ptr) list←v27212)+2) ); goto lab←L100244; lab←L100241: ; }; /* removed tail goto */ (* (ptr) formal←c0911 ) = iPoints←v32552; (* (( (ptr) formal←c0911)+1) ) = tangency←v32580; return; } static void SlcCirI←P3300(formal←c0922, c1←v32640, c2←v32668) word formal←c0922; word c1←v32640; word c2←v32668; { register ptr gf←c61528 = (ptr) &globalframe; word iPoints←v32712; word tangency←v32740; word sliceD←v27340; word circle←v27368; /* SlcCirI: */ SOURCE(42654, 259) SOURCE(42654, 259) iPoints←v32712 = 0; SOURCE(42654, 259) tangency←v32740 = 0; SOURCE(42684, 36) sliceD←v27340 = XR←Narrow(c1←v32640, (* (( (ptr) gf←c61528)+64) )); SOURCE(42722, 27) circle←v27368 = XR←Narrow(c2←v32668, (* (( (ptr) gf←c61528)+78) )); SOURCE(42751, 63) { W2 var←c58648; { word pd387; pd387 = (* (( (ptr) (* (( (ptr) gf←c61528)+208)/* var←c54328 */ ))+50) ); (void) ( *( (fPt) ((* (ptr) pd387 ))))((word) &var←c58648, sliceD←v27340, circle←v27368, pd387); }; iPoints←v32712 = var←c58648.f0; }; SOURCE(42816, 97) { register word list←v27412; list←v27412 = iPoints←v32712; lab←L100249: ; if ((list←v27412 != 0)) { } else { goto lab←L100246; }; SOURCE(42881, 32) { word var←c58680; var←c58680 = XR←NewObject(8, (* (( (ptr) gf←c61528)+71) )); (* (( (ptr) var←c58680)+1) ) = tangency←v32740; tangency←v32740 = var←c58680; }; list←v27412 = (* (( (ptr) list←v27412)+2) ); goto lab←L100249; lab←L100246: ; }; /* removed tail goto */ (* (ptr) formal←c0922 ) = iPoints←v32712; (* (( (ptr) formal←c0922)+1) ) = tangency←v32740; return; } static word NewMultiGravityPool←P3360() { register ptr gf←c61560 = (ptr) &globalframe; word var←c16072; word pool←v27540; /* NewMultiGravityPool: */ SOURCE(42928, 491) SOURCE(43043, 49) pool←v27540 = XR←NewObject(12, (* (( (ptr) gf←c61560)+72) )); SOURCE(43094, 49) { word var←c58744; { word var←c58776; word var←c58808; word var←c58840; { word idx388; var←c58776 = ( idx388 = (* (( (ptr) gf←c61560)+4)/* MaxFeatures←v5240 */ ), BCK(idx388, 67108863) ); }; var←c58808 = ((word) var←c58776 << 2); var←c58840 = XR←NewObject((40 + var←c58808), (* (( (ptr) gf←c61560)+70) )); (* (( (ptr) var←c58840)+9) ) = var←c58776; var←c58744 = var←c58840; }; (* (ptr) pool←v27540 ) = var←c58744; }; SOURCE(43145, 49) { word var←c58872; { word var←c58904; word var←c58936; word var←c58968; { word idx389; var←c58904 = ( idx389 = (* (( (ptr) gf←c61560)+4)/* MaxFeatures←v5240 */ ), BCK(idx389, 67108863) ); }; var←c58936 = ((word) var←c58904 << 2); var←c58968 = XR←NewObject((40 + var←c58936), (* (( (ptr) gf←c61560)+70) )); (* (( (ptr) var←c58968)+9) ) = var←c58904; var←c58872 = var←c58968; }; (* (( (ptr) pool←v27540)+1) ) = var←c58872; }; SOURCE(43196, 47) { word var←c59000; { word var←c59032; word var←c59064; word var←c59096; { word idx390; var←c59032 = ( idx390 = (* (( (ptr) gf←c61560)+4)/* MaxFeatures←v5240 */ ), BCK(idx390, 67108863) ); }; var←c59064 = ((word) var←c59032 << 2); var←c59096 = XR←NewObject((32 + var←c59064), (* (( (ptr) gf←c61560)+57) )); (* (( (ptr) var←c59096)+7) ) = var←c59032; var←c59000 = var←c59096; }; (* (( (ptr) pool←v27540)+2) ) = var←c59000; }; SOURCE(43245, 151) { register word i←v27584 = 0; register word noName←c59128; noName←c59128 = (* (( (ptr) gf←c61560)+4)/* MaxFeatures←v5240 */ ); if ((i←v27584 >= noName←c59128)) { goto lab←L100250; }; lab←L100253: ; SOURCE(43279, 38) { word var←c59192; var←c59192 = (* (ptr) pool←v27540 ); { word limit391; (* ((( (ptr) var←c59192)+10)+( limit391 = (* (( (ptr) var←c59192)+9) ), BCK(i←v27584, limit391) )) ) = XR←NewObject(36, (* (( (ptr) gf←c61560)+60) )); }; }; SOURCE(43319, 38) { word var←c59256; var←c59256 = (* (( (ptr) pool←v27540)+1) ); { word limit392; (* ((( (ptr) var←c59256)+10)+( limit392 = (* (( (ptr) var←c59256)+9) ), BCK(i←v27584, limit392) )) ) = XR←NewObject(36, (* (( (ptr) gf←c61560)+60) )); }; }; SOURCE(43359, 37) { word var←c59320; var←c59320 = (* (( (ptr) pool←v27540)+2) ); { word limit393; (* ((( (ptr) var←c59320)+8)+( limit393 = (* (( (ptr) var←c59320)+7) ), BCK(i←v27584, limit393) )) ) = XR←NewObject(36, (* (( (ptr) gf←c61560)+60) )); }; }; i←v27584 = (i←v27584 + 1); if ((i←v27584 < noName←c59128)) { goto lab←L100253; }; lab←L100250: ; }; SOURCE(43407, 12) return(pool←v27540); } static void NoName←Q7584(formal←c0947, formal←c200008, formal←c200009, formal←c200010, formal←c200011) word formal←c0947; word formal←c200008; word formal←c200009; word formal←c200010; word formal←c200011; { if ((formal←c200009 == XR←Unwind)) { SOURCE(12699, 47) { word var←c53048; var←c53048 = (word) NewMultiGravityPool←P3360(); (* (( (ptr) (* (( (ptr) formal←c200008)+9) ))+52) ) = var←c53048; }; }; (* (ptr) formal←c0947 ) = 0; (* (( (ptr) formal←c0947)+1) ) = 0; return; } static void NoName←Q7644(formal←c0953, formal←c200004, formal←c200005, formal←c200006, formal←c200007) word formal←c0953; word formal←c200004; word formal←c200005; word formal←c200006; word formal←c200007; { if ((formal←c200005 == XR←Unwind)) { SOURCE(6946, 47) { word var←c52120; var←c52120 = (word) NewMultiGravityPool←P3360(); (* (( (ptr) (* (( (ptr) formal←c200004)+9) ))+52) ) = var←c52120; }; }; (* (ptr) formal←c0953 ) = 0; (* (( (ptr) formal←c0953)+1) ) = 0; return; } static void NoName←Q7704(formal←c0959, formal←c200000, formal←c200001, formal←c200002, formal←c200003) word formal←c0959; word formal←c200000; word formal←c200001; word formal←c200002; word formal←c200003; { if ((formal←c200001 == XR←Unwind)) { SOURCE(3409, 47) { word var←c51416; var←c51416 = (word) NewMultiGravityPool←P3360(); (* (( (ptr) (* (( (ptr) formal←c200000)+9) ))+52) ) = var←c51416; }; }; (* (ptr) formal←c0959 ) = 0; (* (( (ptr) formal←c0959)+1) ) = 0; return; } /* file: GGMultiGravityImpl, module: GGMultiGravityImpl, compiled at: July 11, 1993 7:59:18 pm PDT */ extern void XR←install←GGMultiGravityImpl() { NoName←Q7344(); } extern void XR←run←GGMultiGravityImpl() { XR←Start(&globalframe); }