@willcgage/module-schematic 0.64.0 → 0.65.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.cjs +13 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +21 -1
- package/dist/index.d.ts +21 -1
- package/dist/index.js +13 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1285,6 +1285,18 @@ function leadInchesForSize(size, library = BUILT_IN_TRACK_PARTS) {
|
|
|
1285
1285
|
const t = (size - lo.n) / (hi.n - lo.n);
|
|
1286
1286
|
return lo.lead + t * (hi.lead - lo.lead);
|
|
1287
1287
|
}
|
|
1288
|
+
function pastFrogInchesForSize(size, library = BUILT_IN_TRACK_PARTS) {
|
|
1289
|
+
const measured = library.filter((p) => p.kind === "turnout" && p.frogNumber != null).map((p) => ({ n: p.frogNumber, ext: partExtent(p) })).filter((p) => p.ext != null).map((p) => ({ n: p.n, past: p.ext.pastFrog })).sort((a, b) => a.n - b.n);
|
|
1290
|
+
if (!measured.length) return RAIL_GAUGE_INCHES * size;
|
|
1291
|
+
if (measured.length === 1) return measured[0].past;
|
|
1292
|
+
let i;
|
|
1293
|
+
if (size >= measured[measured.length - 1].n) i = measured.length - 2;
|
|
1294
|
+
else i = Math.max(0, measured.findIndex((p) => p.n >= size) - 1);
|
|
1295
|
+
const lo = measured[i];
|
|
1296
|
+
const hi = measured[i + 1];
|
|
1297
|
+
const t = (size - lo.n) / (hi.n - lo.n);
|
|
1298
|
+
return Math.max(0, lo.past + t * (hi.past - lo.past));
|
|
1299
|
+
}
|
|
1288
1300
|
function parseXtpLibrary(text) {
|
|
1289
1301
|
const parts = [];
|
|
1290
1302
|
let cur = null;
|
|
@@ -2181,6 +2193,7 @@ exports.parseXtpLibrary = parseXtpLibrary;
|
|
|
2181
2193
|
exports.partExtent = partExtent;
|
|
2182
2194
|
exports.partExtentForSize = partExtentForSize;
|
|
2183
2195
|
exports.partOutlineAtFrog = partOutlineAtFrog;
|
|
2196
|
+
exports.pastFrogInchesForSize = pastFrogInchesForSize;
|
|
2184
2197
|
exports.pathLengthInches = pathLengthInches;
|
|
2185
2198
|
exports.poseNeedsManual = poseNeedsManual;
|
|
2186
2199
|
exports.poseOverridesFromDoc = poseOverridesFromDoc;
|