/* 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 #include 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); }