@willcgage/module-schematic 0.45.0 → 0.46.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
@@ -1067,6 +1067,11 @@ interface ModuleGeometryInput {
1067
1067
  * so endplate B lands at the end of the CHAINED boards rather than where a
1068
1068
  * single module-level geometry would have put it (#108). */
1069
1069
  sections?: SchematicSection[] | null;
1070
+ /** A balloon / return loop: the main runs out and turns back on itself, so the
1071
+ * module has ONE endplate (A). No far endplate B is derived — the chain closes
1072
+ * back near the throat, and a B there would just be a spurious plate on the
1073
+ * loop. An interchange endplate on the balloon is placed separately (#loop). */
1074
+ loop?: boolean;
1070
1075
  }
1071
1076
  /** Signed turn a module applies to the through track (CCW/left positive). */
1072
1077
  declare function geometryTurnDegrees(geometryType?: string | null, geometryDegrees?: number | null): number;
package/dist/index.d.ts CHANGED
@@ -1067,6 +1067,11 @@ interface ModuleGeometryInput {
1067
1067
  * so endplate B lands at the end of the CHAINED boards rather than where a
1068
1068
  * single module-level geometry would have put it (#108). */
1069
1069
  sections?: SchematicSection[] | null;
1070
+ /** A balloon / return loop: the main runs out and turns back on itself, so the
1071
+ * module has ONE endplate (A). No far endplate B is derived — the chain closes
1072
+ * back near the throat, and a B there would just be a spurious plate on the
1073
+ * loop. An interchange endplate on the balloon is placed separately (#loop). */
1074
+ loop?: boolean;
1070
1075
  }
1071
1076
  /** Signed turn a module applies to the through track (CCW/left positive). */
1072
1077
  declare function geometryTurnDegrees(geometryType?: string | null, geometryDegrees?: number | null): number;
package/dist/index.js CHANGED
@@ -1354,7 +1354,7 @@ function deriveEndplatePoses(geo) {
1354
1354
  trackOffsets: offsetsFor(cfg(0), half)
1355
1355
  })
1356
1356
  );
1357
- const noB = geo.geometryType === "dead_end";
1357
+ const noB = geo.geometryType === "dead_end" || geo.loop === true;
1358
1358
  const end = sectionedEndPose({ sections: geo.sections });
1359
1359
  if (!noB && end) {
1360
1360
  poses.push(