@willcgage/module-schematic 0.59.0 → 0.60.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -1383,6 +1383,48 @@ declare function turnoutClosure(size: number, opts?: {
1383
1383
  * around 25″ on a #7 — clear of the Free-moN 22″ minimum. */
1384
1384
  easeInches?: number;
1385
1385
  }): TurnoutClosure;
1386
+ /** A frog casting's parts, in TURNOUT-LOCAL inches: `x` = distance past the
1387
+ * points, `y` = lateral offset from the through route. */
1388
+ interface FrogCasting {
1389
+ /** The point rail — the acute V, apex at the crossing, opening toward the
1390
+ * diverging end. Three points: through leg, apex, diverging leg. */
1391
+ point: Array<{
1392
+ x: number;
1393
+ y: number;
1394
+ }>;
1395
+ /** The two wing rails flanking the point, each a short polyline. */
1396
+ wings: Array<Array<{
1397
+ x: number;
1398
+ y: number;
1399
+ }>>;
1400
+ /** The apex — where the two inner rails actually cross. */
1401
+ apex: {
1402
+ x: number;
1403
+ y: number;
1404
+ };
1405
+ }
1406
+ /**
1407
+ * The frog casting at a turnout's crossing.
1408
+ *
1409
+ * The apex is where the two INNER rails cross, which is HALF a gauge off the
1410
+ * through centre-line (the through inner rail sits at +g/2, the diverging inner
1411
+ * rail at d−g/2, and d = g at the frog). Not one full gauge — that is the
1412
+ * diverging CENTRE-line, and putting the casting there floats it clear of the
1413
+ * rails it is made of.
1414
+ *
1415
+ * ⚠️ **The flangeway is EXAGGERATED and that is deliberate.** True scale in N is
1416
+ * about 0.011″ (prototype 1¾″ ÷ 160) — one pixel in a close-up render and
1417
+ * invisible at module zoom. Drawn to scale the wing rails would sit exactly on
1418
+ * the running rails and add nothing. `flangewayInches` defaults to a readable
1419
+ * fraction of the gauge instead; pass the true figure if you ever need it.
1420
+ */
1421
+ declare function frogCasting(cl: TurnoutClosure, opts?: {
1422
+ gaugeInches?: number;
1423
+ /** How far the casting runs either side of the apex. */
1424
+ reachInches?: number;
1425
+ /** See the warning above — exaggerated for legibility by default. */
1426
+ flangewayInches?: number;
1427
+ }): FrogCasting;
1386
1428
  declare function divergeSideForHand(kind: TurnoutKind | undefined, stubDir: number,
1387
1429
  /** The turnout is installed the other way round — the points face the far
1388
1430
  * direction, which swaps the side the diverging route leaves on. */
@@ -1541,4 +1583,4 @@ declare function poseOverridesFromDoc(doc: ModuleSchematicDoc): Record<string, {
1541
1583
  heading: number;
1542
1584
  }>;
1543
1585
 
1544
- export { ATLAS_CODE55_N, BUILT_IN_TRACK_PARTS, type BenchworkPoint, type BranchConnector, CODE55_RAIL_HEIGHT_INCHES, type DimensionSource, type DrawCrossing, type DrawCrossover, type DrawIndustry, type DrawSignal, type DrawTrack, type DrawTurnout, ENDPLATE_FASCIA_CLEAR_INCHES, ENDPLATE_LEAD_INCHES, type EditorBranch, type EditorControlPoint, type EditorCpSignal, type EditorCrossing, type EditorIndustry, type EditorState, type EditorTrack, type EditorTurnout, type EndplateBConfig, type EndplatePose, type EndplateTrackIssue, type EndplateWidthIssue, FREEMO_ENDPLATE_TRACK_FASCIA_CLEARANCE_INCHES, FREEMO_ENDPLATE_WIDTH_MIN_INCHES, FREEMO_ENDPLATE_WIDTH_RECOMMENDED_INCHES, FREEMO_TRACK_SPACING_INCHES, type GeometryType, type ImportedPart, type IndustryLabelMode, type IndustrySpot, MAIN2_TRACK_ID, MAIN_TRACK_ID, type ModuleFeatures, type ModuleFootprint, type ModuleFootprintInput, type ModuleGeometryInput, type ModuleSchematicDoc, type ModuleTrackRow, N_CAR_LENGTH_INCHES, N_SCALE_RATIO, type OutlineFace, type PartAngle, type PartDimension, type PartEnd, type PartSegment, RAIL_GAUGE_INCHES, type ReturnLoopGeometry, type ReturnLoopShape, type SchematicBlock, type SchematicControlPoint, type SchematicCrossing, type SchematicEndplate, type SchematicEndplateTrack, type SchematicIndustry, type SchematicSection, type SchematicSignal, type SchematicTrack, type SchematicTurnout, type SectionAdjacency, type SectionFootprint, type SectionRelativePos, type SignalFacing, type SignalSide, TURNOUT_LEAD_INCHES_PER_FROG, type TrackConfig, type TrackPart, type TrackRole, type TurnoutClosure, type TurnoutKind, WHOLE_MODULE_SECTION_ID, asModuleSchematic, benchworkBand, benchworkOutline, buildCrossover, buildPassingSiding, buildTransition, carCapacity, checkEndplateWidth, deriveEndplatePoses, divergeSideForHand, docToState, emptyEditorState, endplateFaceSegments, endplateLead, endplateTrackOffsetFor, endplateTrackOffsetInches, endplateWidthInches, frogNumberFromName, fromSectionRelative, geometryTurnDegrees, importedPartToTrackPart, inchesToScaleFeet, isLoopDoc, isTransitionTurnout, leadInchesForSize, mergeImportedParts, moduleCenterline, moduleFeatures, moduleFootprint, moduleLengthFromSections, moduleSections, nextId, parseXtpLibrary, partOutlineAtFrog, poseNeedsManual, poseOverridesFromDoc, remapPos, returnLoop, sampleBenchworkOutline, samplePartSegments, samplePath, scaleFeetToInches, sectionAdjacency, sectionBand, sectionBreaksFromSections, sectionComponents, sectionFootprints, sectionNeighbours, sectionSpans, sectionSpansOrWhole, sectionedCenterline, sectionedEndPose, sliceCenterline, stateToDoc, toSectionRelative, trackMeetsEndplateIssues, trackPart, trackPath, turnoutClosure, turnoutPartForSize };
1586
+ export { ATLAS_CODE55_N, BUILT_IN_TRACK_PARTS, type BenchworkPoint, type BranchConnector, CODE55_RAIL_HEIGHT_INCHES, type DimensionSource, type DrawCrossing, type DrawCrossover, type DrawIndustry, type DrawSignal, type DrawTrack, type DrawTurnout, ENDPLATE_FASCIA_CLEAR_INCHES, ENDPLATE_LEAD_INCHES, type EditorBranch, type EditorControlPoint, type EditorCpSignal, type EditorCrossing, type EditorIndustry, type EditorState, type EditorTrack, type EditorTurnout, type EndplateBConfig, type EndplatePose, type EndplateTrackIssue, type EndplateWidthIssue, FREEMO_ENDPLATE_TRACK_FASCIA_CLEARANCE_INCHES, FREEMO_ENDPLATE_WIDTH_MIN_INCHES, FREEMO_ENDPLATE_WIDTH_RECOMMENDED_INCHES, FREEMO_TRACK_SPACING_INCHES, type FrogCasting, type GeometryType, type ImportedPart, type IndustryLabelMode, type IndustrySpot, MAIN2_TRACK_ID, MAIN_TRACK_ID, type ModuleFeatures, type ModuleFootprint, type ModuleFootprintInput, type ModuleGeometryInput, type ModuleSchematicDoc, type ModuleTrackRow, N_CAR_LENGTH_INCHES, N_SCALE_RATIO, type OutlineFace, type PartAngle, type PartDimension, type PartEnd, type PartSegment, RAIL_GAUGE_INCHES, type ReturnLoopGeometry, type ReturnLoopShape, type SchematicBlock, type SchematicControlPoint, type SchematicCrossing, type SchematicEndplate, type SchematicEndplateTrack, type SchematicIndustry, type SchematicSection, type SchematicSignal, type SchematicTrack, type SchematicTurnout, type SectionAdjacency, type SectionFootprint, type SectionRelativePos, type SignalFacing, type SignalSide, TURNOUT_LEAD_INCHES_PER_FROG, type TrackConfig, type TrackPart, type TrackRole, type TurnoutClosure, type TurnoutKind, WHOLE_MODULE_SECTION_ID, asModuleSchematic, benchworkBand, benchworkOutline, buildCrossover, buildPassingSiding, buildTransition, carCapacity, checkEndplateWidth, deriveEndplatePoses, divergeSideForHand, docToState, emptyEditorState, endplateFaceSegments, endplateLead, endplateTrackOffsetFor, endplateTrackOffsetInches, endplateWidthInches, frogCasting, frogNumberFromName, fromSectionRelative, geometryTurnDegrees, importedPartToTrackPart, inchesToScaleFeet, isLoopDoc, isTransitionTurnout, leadInchesForSize, mergeImportedParts, moduleCenterline, moduleFeatures, moduleFootprint, moduleLengthFromSections, moduleSections, nextId, parseXtpLibrary, partOutlineAtFrog, poseNeedsManual, poseOverridesFromDoc, remapPos, returnLoop, sampleBenchworkOutline, samplePartSegments, samplePath, scaleFeetToInches, sectionAdjacency, sectionBand, sectionBreaksFromSections, sectionComponents, sectionFootprints, sectionNeighbours, sectionSpans, sectionSpansOrWhole, sectionedCenterline, sectionedEndPose, sliceCenterline, stateToDoc, toSectionRelative, trackMeetsEndplateIssues, trackPart, trackPath, turnoutClosure, turnoutPartForSize };
package/dist/index.d.ts CHANGED
@@ -1383,6 +1383,48 @@ declare function turnoutClosure(size: number, opts?: {
1383
1383
  * around 25″ on a #7 — clear of the Free-moN 22″ minimum. */
1384
1384
  easeInches?: number;
1385
1385
  }): TurnoutClosure;
1386
+ /** A frog casting's parts, in TURNOUT-LOCAL inches: `x` = distance past the
1387
+ * points, `y` = lateral offset from the through route. */
1388
+ interface FrogCasting {
1389
+ /** The point rail — the acute V, apex at the crossing, opening toward the
1390
+ * diverging end. Three points: through leg, apex, diverging leg. */
1391
+ point: Array<{
1392
+ x: number;
1393
+ y: number;
1394
+ }>;
1395
+ /** The two wing rails flanking the point, each a short polyline. */
1396
+ wings: Array<Array<{
1397
+ x: number;
1398
+ y: number;
1399
+ }>>;
1400
+ /** The apex — where the two inner rails actually cross. */
1401
+ apex: {
1402
+ x: number;
1403
+ y: number;
1404
+ };
1405
+ }
1406
+ /**
1407
+ * The frog casting at a turnout's crossing.
1408
+ *
1409
+ * The apex is where the two INNER rails cross, which is HALF a gauge off the
1410
+ * through centre-line (the through inner rail sits at +g/2, the diverging inner
1411
+ * rail at d−g/2, and d = g at the frog). Not one full gauge — that is the
1412
+ * diverging CENTRE-line, and putting the casting there floats it clear of the
1413
+ * rails it is made of.
1414
+ *
1415
+ * ⚠️ **The flangeway is EXAGGERATED and that is deliberate.** True scale in N is
1416
+ * about 0.011″ (prototype 1¾″ ÷ 160) — one pixel in a close-up render and
1417
+ * invisible at module zoom. Drawn to scale the wing rails would sit exactly on
1418
+ * the running rails and add nothing. `flangewayInches` defaults to a readable
1419
+ * fraction of the gauge instead; pass the true figure if you ever need it.
1420
+ */
1421
+ declare function frogCasting(cl: TurnoutClosure, opts?: {
1422
+ gaugeInches?: number;
1423
+ /** How far the casting runs either side of the apex. */
1424
+ reachInches?: number;
1425
+ /** See the warning above — exaggerated for legibility by default. */
1426
+ flangewayInches?: number;
1427
+ }): FrogCasting;
1386
1428
  declare function divergeSideForHand(kind: TurnoutKind | undefined, stubDir: number,
1387
1429
  /** The turnout is installed the other way round — the points face the far
1388
1430
  * direction, which swaps the side the diverging route leaves on. */
@@ -1541,4 +1583,4 @@ declare function poseOverridesFromDoc(doc: ModuleSchematicDoc): Record<string, {
1541
1583
  heading: number;
1542
1584
  }>;
1543
1585
 
1544
- export { ATLAS_CODE55_N, BUILT_IN_TRACK_PARTS, type BenchworkPoint, type BranchConnector, CODE55_RAIL_HEIGHT_INCHES, type DimensionSource, type DrawCrossing, type DrawCrossover, type DrawIndustry, type DrawSignal, type DrawTrack, type DrawTurnout, ENDPLATE_FASCIA_CLEAR_INCHES, ENDPLATE_LEAD_INCHES, type EditorBranch, type EditorControlPoint, type EditorCpSignal, type EditorCrossing, type EditorIndustry, type EditorState, type EditorTrack, type EditorTurnout, type EndplateBConfig, type EndplatePose, type EndplateTrackIssue, type EndplateWidthIssue, FREEMO_ENDPLATE_TRACK_FASCIA_CLEARANCE_INCHES, FREEMO_ENDPLATE_WIDTH_MIN_INCHES, FREEMO_ENDPLATE_WIDTH_RECOMMENDED_INCHES, FREEMO_TRACK_SPACING_INCHES, type GeometryType, type ImportedPart, type IndustryLabelMode, type IndustrySpot, MAIN2_TRACK_ID, MAIN_TRACK_ID, type ModuleFeatures, type ModuleFootprint, type ModuleFootprintInput, type ModuleGeometryInput, type ModuleSchematicDoc, type ModuleTrackRow, N_CAR_LENGTH_INCHES, N_SCALE_RATIO, type OutlineFace, type PartAngle, type PartDimension, type PartEnd, type PartSegment, RAIL_GAUGE_INCHES, type ReturnLoopGeometry, type ReturnLoopShape, type SchematicBlock, type SchematicControlPoint, type SchematicCrossing, type SchematicEndplate, type SchematicEndplateTrack, type SchematicIndustry, type SchematicSection, type SchematicSignal, type SchematicTrack, type SchematicTurnout, type SectionAdjacency, type SectionFootprint, type SectionRelativePos, type SignalFacing, type SignalSide, TURNOUT_LEAD_INCHES_PER_FROG, type TrackConfig, type TrackPart, type TrackRole, type TurnoutClosure, type TurnoutKind, WHOLE_MODULE_SECTION_ID, asModuleSchematic, benchworkBand, benchworkOutline, buildCrossover, buildPassingSiding, buildTransition, carCapacity, checkEndplateWidth, deriveEndplatePoses, divergeSideForHand, docToState, emptyEditorState, endplateFaceSegments, endplateLead, endplateTrackOffsetFor, endplateTrackOffsetInches, endplateWidthInches, frogNumberFromName, fromSectionRelative, geometryTurnDegrees, importedPartToTrackPart, inchesToScaleFeet, isLoopDoc, isTransitionTurnout, leadInchesForSize, mergeImportedParts, moduleCenterline, moduleFeatures, moduleFootprint, moduleLengthFromSections, moduleSections, nextId, parseXtpLibrary, partOutlineAtFrog, poseNeedsManual, poseOverridesFromDoc, remapPos, returnLoop, sampleBenchworkOutline, samplePartSegments, samplePath, scaleFeetToInches, sectionAdjacency, sectionBand, sectionBreaksFromSections, sectionComponents, sectionFootprints, sectionNeighbours, sectionSpans, sectionSpansOrWhole, sectionedCenterline, sectionedEndPose, sliceCenterline, stateToDoc, toSectionRelative, trackMeetsEndplateIssues, trackPart, trackPath, turnoutClosure, turnoutPartForSize };
1586
+ export { ATLAS_CODE55_N, BUILT_IN_TRACK_PARTS, type BenchworkPoint, type BranchConnector, CODE55_RAIL_HEIGHT_INCHES, type DimensionSource, type DrawCrossing, type DrawCrossover, type DrawIndustry, type DrawSignal, type DrawTrack, type DrawTurnout, ENDPLATE_FASCIA_CLEAR_INCHES, ENDPLATE_LEAD_INCHES, type EditorBranch, type EditorControlPoint, type EditorCpSignal, type EditorCrossing, type EditorIndustry, type EditorState, type EditorTrack, type EditorTurnout, type EndplateBConfig, type EndplatePose, type EndplateTrackIssue, type EndplateWidthIssue, FREEMO_ENDPLATE_TRACK_FASCIA_CLEARANCE_INCHES, FREEMO_ENDPLATE_WIDTH_MIN_INCHES, FREEMO_ENDPLATE_WIDTH_RECOMMENDED_INCHES, FREEMO_TRACK_SPACING_INCHES, type FrogCasting, type GeometryType, type ImportedPart, type IndustryLabelMode, type IndustrySpot, MAIN2_TRACK_ID, MAIN_TRACK_ID, type ModuleFeatures, type ModuleFootprint, type ModuleFootprintInput, type ModuleGeometryInput, type ModuleSchematicDoc, type ModuleTrackRow, N_CAR_LENGTH_INCHES, N_SCALE_RATIO, type OutlineFace, type PartAngle, type PartDimension, type PartEnd, type PartSegment, RAIL_GAUGE_INCHES, type ReturnLoopGeometry, type ReturnLoopShape, type SchematicBlock, type SchematicControlPoint, type SchematicCrossing, type SchematicEndplate, type SchematicEndplateTrack, type SchematicIndustry, type SchematicSection, type SchematicSignal, type SchematicTrack, type SchematicTurnout, type SectionAdjacency, type SectionFootprint, type SectionRelativePos, type SignalFacing, type SignalSide, TURNOUT_LEAD_INCHES_PER_FROG, type TrackConfig, type TrackPart, type TrackRole, type TurnoutClosure, type TurnoutKind, WHOLE_MODULE_SECTION_ID, asModuleSchematic, benchworkBand, benchworkOutline, buildCrossover, buildPassingSiding, buildTransition, carCapacity, checkEndplateWidth, deriveEndplatePoses, divergeSideForHand, docToState, emptyEditorState, endplateFaceSegments, endplateLead, endplateTrackOffsetFor, endplateTrackOffsetInches, endplateWidthInches, frogCasting, frogNumberFromName, fromSectionRelative, geometryTurnDegrees, importedPartToTrackPart, inchesToScaleFeet, isLoopDoc, isTransitionTurnout, leadInchesForSize, mergeImportedParts, moduleCenterline, moduleFeatures, moduleFootprint, moduleLengthFromSections, moduleSections, nextId, parseXtpLibrary, partOutlineAtFrog, poseNeedsManual, poseOverridesFromDoc, remapPos, returnLoop, sampleBenchworkOutline, samplePartSegments, samplePath, scaleFeetToInches, sectionAdjacency, sectionBand, sectionBreaksFromSections, sectionComponents, sectionFootprints, sectionNeighbours, sectionSpans, sectionSpansOrWhole, sectionedCenterline, sectionedEndPose, sliceCenterline, stateToDoc, toSectionRelative, trackMeetsEndplateIssues, trackPart, trackPath, turnoutClosure, turnoutPartForSize };
package/dist/index.js CHANGED
@@ -1473,6 +1473,32 @@ function turnoutClosure(size, opts = {}) {
1473
1473
  }
1474
1474
  };
1475
1475
  }
1476
+ function frogCasting(cl, opts = {}) {
1477
+ const g = opts.gaugeInches ?? RAIL_GAUGE_INCHES;
1478
+ const w = opts.reachInches ?? g * 1.5;
1479
+ const fw = opts.flangewayInches ?? g * 0.12;
1480
+ const m = cl.frogSlope;
1481
+ const lead = cl.lead;
1482
+ const apex = { x: lead, y: g / 2 };
1483
+ const point = [
1484
+ { x: lead + w, y: g / 2 },
1485
+ apex,
1486
+ { x: lead + w, y: g / 2 + m * w }
1487
+ ];
1488
+ const wings = [
1489
+ [
1490
+ { x: lead - w, y: g / 2 - fw },
1491
+ { x: lead - w * 0.35, y: g / 2 - fw },
1492
+ { x: lead + w * 0.35, y: g / 2 - fw * 0.5 }
1493
+ ],
1494
+ [
1495
+ { x: lead - w, y: g / 2 + m * -w + fw },
1496
+ { x: lead - w * 0.35, y: g / 2 + m * -w * 0.35 + fw },
1497
+ { x: lead + w * 0.35, y: g / 2 + m * w * 0.35 + fw * 0.5 }
1498
+ ]
1499
+ ];
1500
+ return { point, wings, apex };
1501
+ }
1476
1502
  function divergeSideForHand(kind, stubDir, flipped) {
1477
1503
  if (kind !== "left" && kind !== "right") return 0;
1478
1504
  const s = (stubDir >= 0 ? 1 : -1) * (flipped ? -1 : 1);
@@ -1539,7 +1565,7 @@ function moduleFeatures(doc) {
1539
1565
  if (parentLane === 0) {
1540
1566
  const [from, to] = ext;
1541
1567
  const far = Math.abs(to - sw.pos) >= Math.abs(from - sw.pos) ? to : from;
1542
- const s = divergeSideForHand(sw.kind, far - sw.pos);
1568
+ const s = divergeSideForHand(sw.kind, far - sw.pos, sw.flipped);
1543
1569
  sign = s !== 0 ? s : Math.sign(trk.lane) || 1;
1544
1570
  } else {
1545
1571
  sign = Math.sign(parentLane) || 1;
@@ -1986,6 +2012,6 @@ function poseOverridesFromDoc(doc) {
1986
2012
  return out;
1987
2013
  }
1988
2014
 
1989
- export { ATLAS_CODE55_N, BUILT_IN_TRACK_PARTS, CODE55_RAIL_HEIGHT_INCHES, ENDPLATE_FASCIA_CLEAR_INCHES, ENDPLATE_LEAD_INCHES, FREEMO_ENDPLATE_TRACK_FASCIA_CLEARANCE_INCHES, FREEMO_ENDPLATE_WIDTH_MIN_INCHES, FREEMO_ENDPLATE_WIDTH_RECOMMENDED_INCHES, FREEMO_TRACK_SPACING_INCHES, MAIN2_TRACK_ID, MAIN_TRACK_ID, N_CAR_LENGTH_INCHES, N_SCALE_RATIO, RAIL_GAUGE_INCHES, TURNOUT_LEAD_INCHES_PER_FROG, WHOLE_MODULE_SECTION_ID, asModuleSchematic, benchworkBand, benchworkOutline, buildCrossover, buildPassingSiding, buildTransition, carCapacity, checkEndplateWidth, deriveEndplatePoses, divergeSideForHand, docToState, emptyEditorState, endplateFaceSegments, endplateLead, endplateTrackOffsetFor, endplateTrackOffsetInches, endplateWidthInches, frogNumberFromName, fromSectionRelative, geometryTurnDegrees, importedPartToTrackPart, inchesToScaleFeet, isLoopDoc, isTransitionTurnout, leadInchesForSize, mergeImportedParts, moduleCenterline, moduleFeatures, moduleFootprint, moduleLengthFromSections, moduleSections, nextId, parseXtpLibrary, partOutlineAtFrog, poseNeedsManual, poseOverridesFromDoc, remapPos, returnLoop, sampleBenchworkOutline, samplePartSegments, samplePath, scaleFeetToInches, sectionAdjacency, sectionBand, sectionBreaksFromSections, sectionComponents, sectionFootprints, sectionNeighbours, sectionSpans, sectionSpansOrWhole, sectionedCenterline, sectionedEndPose, sliceCenterline, stateToDoc, toSectionRelative, trackMeetsEndplateIssues, trackPart, trackPath, turnoutClosure, turnoutPartForSize };
2015
+ export { ATLAS_CODE55_N, BUILT_IN_TRACK_PARTS, CODE55_RAIL_HEIGHT_INCHES, ENDPLATE_FASCIA_CLEAR_INCHES, ENDPLATE_LEAD_INCHES, FREEMO_ENDPLATE_TRACK_FASCIA_CLEARANCE_INCHES, FREEMO_ENDPLATE_WIDTH_MIN_INCHES, FREEMO_ENDPLATE_WIDTH_RECOMMENDED_INCHES, FREEMO_TRACK_SPACING_INCHES, MAIN2_TRACK_ID, MAIN_TRACK_ID, N_CAR_LENGTH_INCHES, N_SCALE_RATIO, RAIL_GAUGE_INCHES, TURNOUT_LEAD_INCHES_PER_FROG, WHOLE_MODULE_SECTION_ID, asModuleSchematic, benchworkBand, benchworkOutline, buildCrossover, buildPassingSiding, buildTransition, carCapacity, checkEndplateWidth, deriveEndplatePoses, divergeSideForHand, docToState, emptyEditorState, endplateFaceSegments, endplateLead, endplateTrackOffsetFor, endplateTrackOffsetInches, endplateWidthInches, frogCasting, frogNumberFromName, fromSectionRelative, geometryTurnDegrees, importedPartToTrackPart, inchesToScaleFeet, isLoopDoc, isTransitionTurnout, leadInchesForSize, mergeImportedParts, moduleCenterline, moduleFeatures, moduleFootprint, moduleLengthFromSections, moduleSections, nextId, parseXtpLibrary, partOutlineAtFrog, poseNeedsManual, poseOverridesFromDoc, remapPos, returnLoop, sampleBenchworkOutline, samplePartSegments, samplePath, scaleFeetToInches, sectionAdjacency, sectionBand, sectionBreaksFromSections, sectionComponents, sectionFootprints, sectionNeighbours, sectionSpans, sectionSpansOrWhole, sectionedCenterline, sectionedEndPose, sliceCenterline, stateToDoc, toSectionRelative, trackMeetsEndplateIssues, trackPart, trackPath, turnoutClosure, turnoutPartForSize };
1990
2016
  //# sourceMappingURL=index.js.map
1991
2017
  //# sourceMappingURL=index.js.map