grep -p -po -c -i "(slice|sliceD)':\b(Slice|SliceDescriptor)\b='>" GG*.mesa!H grep -p -po -c -i "ISTYPE'[\w',\b(OutlineDescriptor|SliceDescriptor)" GG*.mesa!H grep -p -po -c -i "\w':\b(Slice|SliceDescriptor)\b='>" GG*.mesa!H 71 total locations found by grep. 12 need work. []<>candy>Bier.pa>Gargoyle>GGAlignImpl.mesa!19 (12170) UpdateBagsForNewSlices []<>candy>Bier.pa>Gargoyle>GGAlignImpl.mesa!19 (23194) IncrementalFilters []<>candy>Bier.pa>Gargoyle>GGAlignImpl.mesa!19 (30626) []<>candy>bier.pa>Gargoyle>GGBoundBoxImpl.mesa!5 (6406) BoundBoxOfSelected []<>candy>bier.pa>Gargoyle>GGBoundBoxImpl.mesa!5 (7196) BoundBoxOfMoving []<>candy>bier.pa>Gargoyle>GGCaretImpl.mesa!5 (2730) SittingOnEnd SittingOnEndNEWW ready when assumptions OK []<>candy>Bier.pa>Gargoyle>GGEventImplA.mesa!16 (51870) Close []<>candy>bier.pa>Gargoyle>GGEventImplB.mesa!9 (2761) Top []<>candy>bier.pa>Gargoyle>GGEventImplB.mesa!9 (3559) Bottom []<>candy>bier.pa>Gargoyle>GGEventImplB.mesa!9 (6226) LineWidth []<>candy>bier.pa>Gargoyle>GGEventImplB.mesa!9 (7821) LineEnds []<>candy>bier.pa>Gargoyle>GGEventImplB.mesa!9 (9300) TrajJoints []<>candy>bier.pa>Gargoyle>GGEventImplB.mesa!9 (10608) DashesFromSelection []<>candy>bier.pa>Gargoyle>GGEventImplB.mesa!9 (11794) DashesOff []<>candy>bier.pa>Gargoyle>GGEventImplB.mesa!9 (13387) PrintStrokeValues []<>candy>bier.pa>Gargoyle>GGEventImplB.mesa!10 (20966) MakeHot []<>candy>bier.pa>Gargoyle>GGEventImplB.mesa!9 (23118) MakeAllHot []<>candy>bier.pa>Gargoyle>GGEventImplC.mesa!10 (20058) DescribeCurve []<>candy>bier.pa>Gargoyle>GGEventImplC.mesa!10 (20839) AddControlPoint []<>candy>bier.pa>Gargoyle>GGEventImplC.mesa!10 (25150) AddJoint []<>candy>bier.pa>Gargoyle>GGEventImplC.mesa!10 (30555) DoTheTransforms []<>candy>bier.pa>Gargoyle>GGEventImplC.mesa!10 (32136) AreaSelectNewAndDelete GGEventImplC.AreaSelectNewAndDeleteNEWW should already compile []<>candy>bier.pa>Gargoyle>GGEventImplC.mesa!10 (34345) AreaSelectAux []<>candy>bier.pa>Gargoyle>GGEventImplC.mesa!10 (34971) AreaSelectAux GGEventImplC.AreaSelectAuxNEWW should already compile. []<>candy>Bier.pa>Gargoyle>GGEventImplD.mesa!12 (18248) AreaColorToColorTool []<>candy>Bier.pa>Gargoyle>GGEventImplD.mesa!12 (18996) LineColorToColorTool []<>candy>Bier.pa>Gargoyle>GGEventImplD.mesa!12 (23162) SelectMatchingAreaColor GGEventImplD.SelectMatchingAreaColorNEWW should already compile. []<>candy>Bier.pa>Gargoyle>GGEventImplD.mesa!12 (23162) SelectMatchingLineColor GGEventImplD.SelectMatchingLineColorNEWW should already compile.. []<>candy>Bier.pa>Gargoyle>GGEventImplD.mesa!12 (28017) PrintAreaColor []<>candy>Bier.pa>Gargoyle>GGEventImplD.mesa!12 (29326) PrintLineColor []<>candy>Bier.pa>Gargoyle>GGEventImplD.mesa!12 (31336) AreaColorAux []<>candy>Bier.pa>Gargoyle>GGEventImplD.mesa!12 (32022) LineColorAux []<>candy>Bier.pa>Gargoyle>GGEventImplD.mesa!12 (40422) DescribeCaretObject []<>candy>Bier.pa>Gargoyle>GGFileOutImpl.mesa!7 (3638) FileoutEntity goes away. []<>candy>Bier.pa>Gargoyle>GGFileOutImpl.mesa!7 () FileoutSlice FileoutSliceNEWW OK when assumptions are OK. []<>candy>bier.pa>Gargoyle>GGMouseEventImplA.mesa!34 (4249) SortNewEntities []<>candy>bier.pa>Gargoyle>GGMouseEventImplA.mesa!34 (4418) SortNewEntities []<>candy>bier.pa>Gargoyle>GGMouseEventImplA.mesa!34 (17887) SitOnFeature []<>candy>bier.pa>Gargoyle>GGMouseEventImplA.mesa!34 (21148) UpdateSceneForCopy []<>candy>bier.pa>Gargoyle>GGMouseEventImplA.mesa!34 (22751) TransformObjectsAfterMove []<>candy>bier.pa>Gargoyle>GGMouseEventImplA.mesa!34 (30917) SafelyGetCaretTraj GGMouseEventImplA.SafelyGetCaretTrajNEWW OK when assumptions are OK.. []<>candy>bier.pa>Gargoyle>GGMouseEventImplB.mesa!26 (8206) SelectAndDescribeTrajPart []<>candy>bier.pa>Gargoyle>GGRefreshImpl.mesa!17 (7504) RefreshOverlay []<>candy>bier.pa>Gargoyle>GGRefreshImpl.mesa!17 (10210) DrawAttractorFeedback []<>candy>bier.pa>Gargoyle>GGRefreshImpl.mesa!17 (18040) BackmostSelectedSlice []<>candy>bier.pa>Gargoyle>GGRefreshImpl.mesa!17 (19722) DrawObjects []<>candy>bier.pa>Gargoyle>GGRefreshImpl.mesa!17 (20954) DrawObjectsFiltered []<>candy>bier.pa>Gargoyle>GGRefreshImpl.mesa!17 (23569) PaintTightBoxes []<>candy>bier.pa>Gargoyle>GGRefreshImpl.mesa!17 (31026) SnapshotBackground []<>candy>bier.pa>Gargoyle>GGRefreshImpl.mesa!17 (31963) MoveToOverlay []<>candy>bier.pa>Gargoyle>GGRefreshImpl.mesa!17 (32747) MoveToBackground []<>candy>bier.pa>Gargoyle>GGRefreshImpl.mesa!17 (33169) MoveOverlayToBackground []<>candy>bier.pa>Gargoyle>GGRefreshImpl.mesa!17 (33752) OnOverlay []<>candy>bier.pa>Gargoyle>GGRefreshImpl.mesa!17 (33793) OnOverlay []<>candy>bier.pa>Gargoyle>GGRefreshImpl.mesa!17 (34206) OrderOverlayList []<>candy>bier.pa>Gargoyle>GGRefreshImpl.mesa!17 (34997) OrderOverlayList []<>candy>Bier.pa>Gargoyle>GGSceneImpl.mesa!8 (4104) EntityPriority []<>candy>Bier.pa>Gargoyle>GGSceneImpl.mesa!8 (4444) UpdatePriorities []<>candy>Bier.pa>Gargoyle>GGSceneImpl.mesa!8 (11417) UpOne []<>candy>Bier.pa>Gargoyle>GGSceneImpl.mesa!8 (12615) DownOne []<>candy>Bier.pa>Gargoyle>GGSceneImpl.mesa!8 (13558) []<>candy>Bier.pa>Gargoyle>GGSceneImpl.mesa!8 (15694) ListBoxesInScene []<>candy>Bier.pa>Gargoyle>GGSceneImpl.mesa!8 (16181) ListTightBoxesInScene []<>candy>Bier.pa>Gargoyle>GGSceneImpl.mesa!8 (17528) ListTrajsInScene ListTrajsInSceneNEWW OK after assumptions. []<>candy>Bier.pa>Gargoyle>GGSceneImpl.mesa!8 (17961) ListOutlinesInScene ListOutlinesInSceneNEWW OK after assumptions. []<>candy>Bier.pa>Gargoyle>GGSceneImpl.mesa!8 (18303) ListSlicesInScene ListSlicesInSceneNEWW OK after assumptions. []<>candy>bier.pa>Gargoyle>GGSelectImpl.mesa!7 (3429) SelectAll []<>candy>bier.pa>Gargoyle>GGSelectImpl.mesa!7 (6711) DeselectAll []<>candy>bier.pa>Gargoyle>GGSelectImpl.mesa!7 (7340) DeselectEntity []<>candy>bier.pa>Gargoyle>GGSelectImpl.mesa!7 (7404) DeselectEntity []<>candy>bier.pa>Gargoyle>GGSelectImpl.mesa!7 (13777) IsSelectedInFull IsSelectedInFullNEWW OK after assumptions (needs isComplete class proc) []<>candy>bier.pa>Gargoyle>GGSelectImpl.mesa!7 (14629) IsSelectedInPart []<>candy>bier.pa>Gargoyle>GGSelectImpl.mesa!7 (21042) SelectedOutlineSequences SelectedOutlineSequencesNEWW needs GGSelect.OutlineSequenceObj redefined. QFind -c "$Outline" GG*.mesa!H 14 matches with QFind. 9 more cases to worry about. 21 found so far. []<>mouse>bier.pa>Gargoyle>GGCaretImpl.mesa!6 (2788) SittingOnEnd []<>mouse>Bier.pa>Gargoyle>GGEventImplA.mesa!15 (51908) Close NEWW will work when assumptions are OK. []<>mouse>bier.pa>Gargoyle>GGEventImplC.mesa!10 (20889) AddControlPoint NEWW will work when attractor is a SliceDescriptor []<>mouse>bier.pa>Gargoyle>GGEventImplC.mesa!10 (25200) AddJoint NEWW will work when attractor is a SliceDescriptor []<>mouse>Bier.pa>Gargoyle>GGFileInImpl.mesa!6 (5839) FileinEntity Unify with GGFileInImpl.FileInSlice. Careful of version management. []<>mouse>bier.pa>Gargoyle>GGMouseEventImplB.mesa!26 (7263) EndSelectAux EndSelectAuxNEWW should work using SitTheCaretNEWW []<>mouse>bier.pa>Gargoyle>GGMouseEventImplB.mesa!26 (9649) SitTheCaret SitTheCaretNEWW should be checked for correctness []<>mouse>Bier.pa>Gargoyle>GGOutlineImplA.mesa!21 (4213) MakeOutlineClass Update as needed []<>mouse>bier.pa>Gargoyle>GGSelectImpl.mesa!7 (8082) DeselectEntireSlice NEWW version should work after assumptions []<>mouse>bier.pa>Gargoyle>GGSelectImpl.mesa!7 (13817) IsSelectedInFull []<>mouse>Bier.pa>Gargoyle>GGSliceImplA.mesa!12 (76656) UpdateDescriptorBoundBoxes This proc should go away when GGSlice.UpdateDescriptorBoundBoxes handles all types []<>mouse>Bier.pa>Gargoyle>GGSliceImplA.mesa!12 (77438) SegmentsInDescriptor NEWW version should compile now; will work when assumptions are OK []<>mouse>Bier.pa>Gargoyle>GGSliceImplA.mesa!12 (77858) WalkSegments NEWW version should compile now; will work when assumptions are OK ASSUMPTIONS: caret.chair becomes SliceDescriptor - GGInterfaceTypes caret.attractor becomes SliceDescriptor - GGInterfaceTypes GGSelect.SelectedStuff returns SliceDescriptorGenerator - is this different from GGSelect.SelectedSlices ?? GGScene.TopLevelEntitiesInScene returns SliceGenerator - is this different from TopLevelSlicesInScene ?? GGSelect.IsSelectedInFull takes Slice - GGSelectImpl Implement WalkSegments for Outline class - GGOutlineImplA. class fileout procs do everything except class name - GGFileOutImpl Check GGMouseEventImplB.EndSelectAuxNEW and SitTheCaretNEW for correctness. Check GGSelectImpl and collapse slice/outline specific procs as needed. Get rid of all the List.Mubles for LIST OF SliceDescriptor; use GGUtility instead. implement IsEmpty, IsComplete for all slices. GGSliceImpl* RENAME class proc emptyParts to IsEmpty - GGModelTypes. create new class proc IsComplete - GGModelTypes. write GGOutline.TrajectoriesOfOutline to return LIST OF Traj - GGOutlineImplB. scene.entities RETURNS LIST OF Slice - GGSceneType. GGOutline.SaveSelectionsInOutline, GGOutline.RemakeSelectionsFromOutline take slices. GGOutlineImplB. GGCaret.GetAttractor RETURNS SliceDescriptor. GGCaretImpl. ggData.drag.outlineToExtend goes away. GGInterfaceTypes GGOutline.UpdateDescriptorBoundBoxes replaced by new version of in GGSliceImplA.UpdateDescriptorBoundBoxes. GGOutlineImplB. Implement segmentsInDescriptor, nextSegment, walkSegments for outline types GGOutlineImplA. GGSelect.OutlineSequenceObj should contain slices. GGSelect. everything in GGOutline that used to take outlines take slices. GGOutline. Global Type Substitutions OutlineDescriptor SliceDescriptor OutlineDescriptorObj SliceDescriptorObj Outline Slice OutlineObj SliceObj OutlineClass SliceClass OutlineClassObj SliceClassObj EntityGenerator SliceGenerator EntityGeneratorObj SliceGeneratorObj OutlineGenerator SliceGenerator OutlineGeneratorObj SliceGeneratorObj OutlineDescriptorGenerator SliceDescriptorGenerator OutlineDescriptorGeneratorObj SliceDescriptorGeneratorObj OutlinePointGenerator PointGenerator OutlinePointGeneratorObj PointGeneratorObj OutlinePointPairGenerator PointPairGenerator OutlinePointPairGeneratorObj PointPairGeneratorObj Obsolete Code GGAlignImpl.mesa <> <> <> <> <> <> <> <> <<};>> <<>> <> <> <> <> <<[background, overlay, rubber, drag] _ outlineD.slice.class.movingParts[selSliceD.slice, selSliceD.parts];>> <> <> <<};>> <<>> <> <> <> <> <> <> <<}>> <> <> <> <> <> <<};>> <<};>> <> <> <> <> <> <> <> <> <> <> <> <<};>> <<>> <> <> <> <> <> <<>> <> <> <> <> <<[] _ GGGravity.SegmentAddMidpoint[pairCount, next.lo, next.hi, alignBag];>> <> <> <<};>> <<>> <> <> <> <> <> <> <> <> <> <> <<};>> <<};>> <<};>> <<>> <> <> <> <> <<};>> <<};>> <<>> <> <> <> <> <> <> <<};>> <<>> <> <> <<>> <<};>> <> <> <> <> <> <> <> <> <<};>> <<>> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <<};>> <<>> <> <> <> <> <> <<};>> <<>> <> <> <> <> <> <> <> <> <> <> <> <<};>> <<>> <> <> <> <> <> <> <> <> <> <> <> <<};>> <<>> <<>> <> <> <> <<[before, at, after] _ FindOutlineAndNeighbors[outline, featureList ! EntityNotFound => {notFound _ TRUE; CONTINUE}];>> <> <> <> <> <> <<};>> <<};>> <<>> <> <> <> <> <<[before, at, after] _ FindOutlineAndNeighbors[outlineD.slice, featureList ! EntityNotFound => {notFound _ TRUE; CONTINUE}];>> <> <> <> <> <> <<};>> <<};>> <<>> <> <> <> <> <> <> <> <> <> <> <<[sceneBag.outlines, notFound] _ DeleteOutline[oldOutline, sceneBag.outlines];>> <> <> <> <<[triggerBag.outlines, notFound] _ DeleteOutline[oldOutline, triggerBag.outlines];>> <> <> <> <> <> <> <> <<};>> <> <> <> <<};>> <> <> <> <> <> <> <> <> <<};>> <<>> GGBoundBoxImpl.mesa <> <> <> < f.PutF["Item: joint on %g", [rope[DescribeTraj[NARROW[item.traj]]]]];>> < f.PutF["Item: segment on %g", [rope[DescribeTraj[NARROW[item.traj]]]]];>> < ERROR;>> <<};>> <<>> <> <> <> <> <> <> <> <> <> <> <> <> <<};>> GGEditToolImpl.mesa GGEventImplA.mesa <> < transformation preferredSize>> <> <> <> <> <> <> <<}>> <> <<};>> <<>> <> < >> <> <> <> <> <> <> <<}>> <> <<};>> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <<[oldOutline,----] _ GGInterface.DeleteSequence[holeSeq, ggData.scene];>> <> <> <> <> <> <<[oldOutline,----] _ GGInterface.DeleteSequence[fenceSeq, ggData.scene];>> <> <> <> <<}>> <> <> <> <<};>> <> <<};>> <> < {>> <> <<};>> <> <<>> <> <<};>> <<>> <> <> <> <<};>> <> <> <> <> <> <> <> <> <> <> <> <> <> <<};>> <<>> <> <> <> <> <> <> <> <> <> <> <> <> < {>> <<[success, ----, traj] _ GGOutline.UnpackSimpleDescriptorOld[outlineD];>> <> <<};>> < {>> <> <<[success, ----, traj] _ GGOutline.UnpackSimpleDescriptor[sliceD];>> <> <<};>> < ERROR;>> <> <> <> <> <> <> <> <> <> <> <<[] _ GGSelect.ReselectTraj[traj, hi, ggData.scene, TRUE];>> <<}>> <> <> <> <> <> <<};>> <> <> <> <> <> <> <> <> < {>> <> <> <<};>> < {>> <> <> <<};>> <> <<}; -- end Close>> <<>> <> <> <> <> <> <> <<};>> <<>> <> <> <> <> <> <> <<};>> GGEventImplB.mesa <> <> <> <> <> <> <> <> <> <> <> <> <> <> <<};>> <> <> <> <> <> <> <<};>> <<>> GGEventImplC.mesa <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> < {>> <<[success, partType, traj, ----, ----, ----, ----, seg, segNum] _ GGOutline.UnpackSimpleDescriptorOld[oD];>> <> <<};>> < {>> <> <<[success, partType, traj, ----, ----, ----, ----, seg, segNum] _ GGOutline.UnpackSimpleDescriptor[sD];>> <> <<};>> < ERROR;>> <> <> <> <> <> <> <> <> <> <> <<[refreshBox, newTraj] _ GGSelect.SubstituteForSegment[traj, segNum, newRun, ggData.scene];>> <> <> <> <> <> < {>> <> <> <<};>> <> <<};>> <<>> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> < {>> <<[success, partType, traj, ----, ----, ----, ----, seg, segNum] _ GGOutline.UnpackSimpleDescriptorOld[oD];>> <> <<};>> < {>> <> <<[success, partType, traj, ----, ----, ----, ----, seg, segNum] _ GGOutline.UnpackSimpleDescriptor[sD];>> <> <<};>> < ERROR;>> <> <> <> <> <> << [Artwork node; type 'ArtworkInterpress on' to command tool] >> <<[newSeg1, newSeg2] _ seg.class.addJoint[seg, caretPos];>> <> <> <> <> <> <> <> <<[refreshBox, newTraj] _ GGSelect.SubstituteForSegment[traj, segNum, newRun, ggData.scene];>> <> <> <> <> <> <> <> < {>> <> <> <<};>> < {>> <> <> <<};>> <> <<};>> <<>> <> <> <> < feature.hitPart _ curve.hitData;>> < feature.hitPart _ curve.hitData;>> < {};>> < SIGNAL Problem[msg: "Unimplemented type."];>> <<};>> <<>> <> <> < ggData.drag.extendMode _ joint;>> < ggData.drag.extendMode _ segmentRange;>> < ggData.drag.extendMode _ traj;>> < ggData.drag.extendMode _ topLevel;>> < ERROR;>> <> < GGCaret.SitOn[caret, outlineD];>> < {>> <> <> <> <> <> <> <<[jointNum, traj] _ GGOutline.NearestJointToHitData[hitData];>> <> <> <> <> <<}>> <> <<};>> < ERROR;>> <<};>> <<>> GGMultiGravityImpl.mesa GGOutlineImplA.mesa <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <<};>> <<>> <> <> <<};>> <<>> <> <> <> <<};>> <<>> <> GGOutlineImplB.mesa <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <<[success, partType, traj, joint, jointNum, cp, cpNum, seg, segNum] _ GGSequence.UnpackSimpleSequence[theSeq];>> <<};>> <<};>> <> <<};>> <<>> <> <> <<};>> <<>> <> <> <> <> <> <> <> <> <<};>> <<>> <> <> <> <> <> <> <<};>> <<>> GGParseInImpl.mesa GGParseOutImpl.mesa GGRefreshImpl.mesa <> <> <> <> <> <<[selectedList, ptr] _ GGUtility.StartOutlineList[];>> <> <<[selectedList, ptr] _ GGUtility.AddOutline[outD.slice, selectedList, ptr];>> <> <> <> <> <> <<};>> <<>> <> <> <> <> <> <> <> <> <> <> <> <> <> <<};>> <<>> <> <> <<[attractor: attractor, on: attOn, jointNum: attJointNum, seg: attSeg] _ GGCaret.GetAttractor[ggData.caret];>> <> < {};>> < {};>> < attOn _ nothing; >> <<};>> <<>> <> <> <> <> <> <> <> <<[attractor: attractor, on: attOn, jointNum: attJointNum, seg: attSeg, segNum: attSegNum] _ GGCaret.GetAttractor[ggData.caret];>> <<[chair: chair, on: chairOn, jointNum: chairJointNum, segNum: chairSegNum, seg: chairSeg] _ GGCaret.GetChair[ggData.caret];>> <> < {>> <> <> <> <> <> <> <> <> <<};>> <<}>> <> <> <> <> <> <> <<};>> <<}>> <> <> <<};>> < { -- if slices are the same (don't user parts) then chair=attractor>> <> < IF aSliceD.slice=chairSliceD.slice THEN attOn _ nothing;>> <> <<};>> < attOn _ nothing; >> <<};>> <<>> <> <> <<$DrawBackgroundBox => sliceD.slice.class.movingParts[sliceD.slice, sliceD.parts].background,>> <<$DrawOverlayBox => sliceD.slice.class.movingParts[sliceD.slice, sliceD.parts].overlay,>> <<$DrawRubberBox => sliceD.slice.class.movingParts[sliceD.slice, sliceD.parts].rubber,>> <<$DrawDragBox => sliceD.slice.class.movingParts[sliceD.slice, sliceD.parts].drag,>> < ERROR;>> <<};>> <<>> GGSceneImpl.mesa <> <> <> <> <<]];>> <<};>> <<>> <> <> <> <> <> <<[resultPoint, feature] _ GGMultiGravity.StrictDistance[worldPt, ggData.hitTest.criticalR, GGAlign.emptyAlignBag, sceneObjects, ggData];>> <> <<};>> <<>> <> <> <> <> <> <> <<}>> <> <> <<};>> <<>> <> <> <> <> <> <<};>> <<>> <> <> <> <> <> <<};>> <<};>> <<>> <> <> <> <> <> <> <<};>> <<>> <> <> <> <> < {>> <<};>> < {>> <> <> <> <<};>> < ERROR;>> <> <<};>> <<>> <> <> <> <> < {>> <<};>> < {>> <> <<};>> < ERROR;>> <> <<};>> <<>> <> <> <> <> < {>> <> <> <<};>> < {};>> < ERROR;>> <> <<};>> <<>> GGSegmentImplA.mesa <> <> <> <> <> <> <> <<};>> <<>> GGSegmentImplB.mesa GGSelectImpl.mesa <> <> < {>> <> <<};>> < {>> <> <<};>> < { -- this case needed for ReselectTraj>> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <<};>> < ERROR;>> <<};>> <<>> <> <> < slice.normalSelectedParts _ NIL;>> < slice.hotSelectedParts _ NIL;>> < slice.activeSelectedParts _ NIL;>> <> <<};>> <<>> <> <> <> <> <> <> <> <> <<}>> <> <> <> <> <<}; -- end SelectOutline>> <<>> <> <> <> <> <<};>> <<>> <> <> <> <> <> <> <> <> <<};>> <<};>> <<>> <> <> <> <> <> <> <> <> <> <> <> <> <> <<};>> <<};>> <<};>> <<>> <> <> <> <> <> <> <<};>> <<};>> <<>> <> <> <> <> <> <> <> <> <<};>> <> <<};>> <> <> < {>> <> <> < outlineD _ IF outline.normalSelectedParts = NIL THEN NIL ELSE outline.normalSelectedParts;>> < outlineD _ IF outline.hotSelectedParts = NIL THEN NIL ELSE outline.hotSelectedParts;>> < outlineD _ IF outline.activeSelectedParts = NIL THEN NIL ELSE outline.activeSelectedParts;>> < ERROR;>> <<};>> <<>> <> <> <> <> <<[sliceDescGen.list, ptr] _ AddSliceDescriptor[sliceDList.first, sliceDescGen.list, ptr];>> <> <<};>> <<>> <> <> <> <> <> <> <> <<[sliceDescGen.list, ptr] _ AddSliceDescriptor[sliceD, sliceDescGen.list, ptr];>> <<};>> <> <<};>> <<>> <> <> <> <> <> <<};>> <<};>> <> <> <> <> <> <<}>> <> <> <> <> <<};>> <<};>> <> <> <> <> <> <> <> <> <> <<>> <> <<[outSeqGen.list, outSeqPtr] _ StartOutlineSequenceList[];>> <> <> <> < NULL;>> < {>> <> <<[holeSeqs, ptr] _ GGUtility.StartSequenceList[];>> <> <> <> <> <> <<};>> <> <<[holeSeqs, ptr] _ GGUtility.AddSequence[list.first, holeSeqs, ptr];>> <> <> <> <<[outSeqGen.list, outSeqPtr] _ AddOutlineSequence[outlineSeq, outSeqGen.list, outSeqPtr];>> <<};>> < ERROR;>> <> <<};>> <<>> <> <> <> <> <> <<};>> <<>> <> <