@ifc-lite/drawing-2d 1.4.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.
Files changed (158) hide show
  1. package/LICENSE +373 -0
  2. package/dist/drawing-generator.d.ts +80 -0
  3. package/dist/drawing-generator.d.ts.map +1 -0
  4. package/dist/drawing-generator.js +281 -0
  5. package/dist/drawing-generator.js.map +1 -0
  6. package/dist/edge-extractor.d.ts +47 -0
  7. package/dist/edge-extractor.d.ts.map +1 -0
  8. package/dist/edge-extractor.js +204 -0
  9. package/dist/edge-extractor.js.map +1 -0
  10. package/dist/gpu-section-cutter.d.ts +42 -0
  11. package/dist/gpu-section-cutter.d.ts.map +1 -0
  12. package/dist/gpu-section-cutter.js +405 -0
  13. package/dist/gpu-section-cutter.js.map +1 -0
  14. package/dist/graphic-overrides/index.d.ts +10 -0
  15. package/dist/graphic-overrides/index.d.ts.map +1 -0
  16. package/dist/graphic-overrides/index.js +8 -0
  17. package/dist/graphic-overrides/index.js.map +1 -0
  18. package/dist/graphic-overrides/presets.d.ts +22 -0
  19. package/dist/graphic-overrides/presets.d.ts.map +1 -0
  20. package/dist/graphic-overrides/presets.js +283 -0
  21. package/dist/graphic-overrides/presets.js.map +1 -0
  22. package/dist/graphic-overrides/rule-engine.d.ts +64 -0
  23. package/dist/graphic-overrides/rule-engine.d.ts.map +1 -0
  24. package/dist/graphic-overrides/rule-engine.js +438 -0
  25. package/dist/graphic-overrides/rule-engine.js.map +1 -0
  26. package/dist/graphic-overrides/types.d.ts +200 -0
  27. package/dist/graphic-overrides/types.d.ts.map +1 -0
  28. package/dist/graphic-overrides/types.js +5 -0
  29. package/dist/graphic-overrides/types.js.map +1 -0
  30. package/dist/hatch-generator.d.ts +76 -0
  31. package/dist/hatch-generator.d.ts.map +1 -0
  32. package/dist/hatch-generator.js +282 -0
  33. package/dist/hatch-generator.js.map +1 -0
  34. package/dist/hidden-line.d.ts +64 -0
  35. package/dist/hidden-line.d.ts.map +1 -0
  36. package/dist/hidden-line.js +318 -0
  37. package/dist/hidden-line.js.map +1 -0
  38. package/dist/index.d.ts +44 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +109 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/line-merger.d.ts +35 -0
  43. package/dist/line-merger.d.ts.map +1 -0
  44. package/dist/line-merger.js +265 -0
  45. package/dist/line-merger.js.map +1 -0
  46. package/dist/math.d.ts +90 -0
  47. package/dist/math.d.ts.map +1 -0
  48. package/dist/math.js +284 -0
  49. package/dist/math.js.map +1 -0
  50. package/dist/openings/index.d.ts +7 -0
  51. package/dist/openings/index.d.ts.map +1 -0
  52. package/dist/openings/index.js +10 -0
  53. package/dist/openings/index.js.map +1 -0
  54. package/dist/openings/opening-filter.d.ts +61 -0
  55. package/dist/openings/opening-filter.d.ts.map +1 -0
  56. package/dist/openings/opening-filter.js +244 -0
  57. package/dist/openings/opening-filter.js.map +1 -0
  58. package/dist/openings/opening-relationship-builder.d.ts +35 -0
  59. package/dist/openings/opening-relationship-builder.d.ts.map +1 -0
  60. package/dist/openings/opening-relationship-builder.js +121 -0
  61. package/dist/openings/opening-relationship-builder.js.map +1 -0
  62. package/dist/openings/opening-utils.d.ts +55 -0
  63. package/dist/openings/opening-utils.d.ts.map +1 -0
  64. package/dist/openings/opening-utils.js +128 -0
  65. package/dist/openings/opening-utils.js.map +1 -0
  66. package/dist/polygon-builder.d.ts +62 -0
  67. package/dist/polygon-builder.d.ts.map +1 -0
  68. package/dist/polygon-builder.js +261 -0
  69. package/dist/polygon-builder.js.map +1 -0
  70. package/dist/section-cutter.d.ts +49 -0
  71. package/dist/section-cutter.d.ts.map +1 -0
  72. package/dist/section-cutter.js +220 -0
  73. package/dist/section-cutter.js.map +1 -0
  74. package/dist/sheet/frame-renderer.d.ts +28 -0
  75. package/dist/sheet/frame-renderer.d.ts.map +1 -0
  76. package/dist/sheet/frame-renderer.js +199 -0
  77. package/dist/sheet/frame-renderer.js.map +1 -0
  78. package/dist/sheet/frame-types.d.ts +57 -0
  79. package/dist/sheet/frame-types.d.ts.map +1 -0
  80. package/dist/sheet/frame-types.js +88 -0
  81. package/dist/sheet/frame-types.js.map +1 -0
  82. package/dist/sheet/index.d.ts +26 -0
  83. package/dist/sheet/index.d.ts.map +1 -0
  84. package/dist/sheet/index.js +12 -0
  85. package/dist/sheet/index.js.map +1 -0
  86. package/dist/sheet/paper-sizes.d.ts +36 -0
  87. package/dist/sheet/paper-sizes.d.ts.map +1 -0
  88. package/dist/sheet/paper-sizes.js +252 -0
  89. package/dist/sheet/paper-sizes.js.map +1 -0
  90. package/dist/sheet/scale-bar-renderer.d.ts +29 -0
  91. package/dist/sheet/scale-bar-renderer.d.ts.map +1 -0
  92. package/dist/sheet/scale-bar-renderer.js +287 -0
  93. package/dist/sheet/scale-bar-renderer.js.map +1 -0
  94. package/dist/sheet/scale-bar-types.d.ts +82 -0
  95. package/dist/sheet/scale-bar-types.d.ts.map +1 -0
  96. package/dist/sheet/scale-bar-types.js +66 -0
  97. package/dist/sheet/scale-bar-types.js.map +1 -0
  98. package/dist/sheet/sheet-types.d.ts +84 -0
  99. package/dist/sheet/sheet-types.d.ts.map +1 -0
  100. package/dist/sheet/sheet-types.js +77 -0
  101. package/dist/sheet/sheet-types.js.map +1 -0
  102. package/dist/sheet/title-block-renderer.d.ts +44 -0
  103. package/dist/sheet/title-block-renderer.d.ts.map +1 -0
  104. package/dist/sheet/title-block-renderer.js +335 -0
  105. package/dist/sheet/title-block-renderer.js.map +1 -0
  106. package/dist/sheet/title-block-types.d.ts +100 -0
  107. package/dist/sheet/title-block-types.d.ts.map +1 -0
  108. package/dist/sheet/title-block-types.js +174 -0
  109. package/dist/sheet/title-block-types.js.map +1 -0
  110. package/dist/styles.d.ts +77 -0
  111. package/dist/styles.d.ts.map +1 -0
  112. package/dist/styles.js +347 -0
  113. package/dist/styles.js.map +1 -0
  114. package/dist/styling/index.d.ts +7 -0
  115. package/dist/styling/index.d.ts.map +1 -0
  116. package/dist/styling/index.js +10 -0
  117. package/dist/styling/index.js.map +1 -0
  118. package/dist/styling/layer-mapping.d.ts +57 -0
  119. package/dist/styling/layer-mapping.d.ts.map +1 -0
  120. package/dist/styling/layer-mapping.js +303 -0
  121. package/dist/styling/layer-mapping.js.map +1 -0
  122. package/dist/styling/line-styles.d.ts +49 -0
  123. package/dist/styling/line-styles.d.ts.map +1 -0
  124. package/dist/styling/line-styles.js +123 -0
  125. package/dist/styling/line-styles.js.map +1 -0
  126. package/dist/styling/line-weights.d.ts +61 -0
  127. package/dist/styling/line-weights.d.ts.map +1 -0
  128. package/dist/styling/line-weights.js +183 -0
  129. package/dist/styling/line-weights.js.map +1 -0
  130. package/dist/svg-exporter.d.ts +63 -0
  131. package/dist/svg-exporter.d.ts.map +1 -0
  132. package/dist/svg-exporter.js +278 -0
  133. package/dist/svg-exporter.js.map +1 -0
  134. package/dist/symbols/door-symbol.d.ts +82 -0
  135. package/dist/symbols/door-symbol.d.ts.map +1 -0
  136. package/dist/symbols/door-symbol.js +390 -0
  137. package/dist/symbols/door-symbol.js.map +1 -0
  138. package/dist/symbols/index.d.ts +8 -0
  139. package/dist/symbols/index.d.ts.map +1 -0
  140. package/dist/symbols/index.js +11 -0
  141. package/dist/symbols/index.js.map +1 -0
  142. package/dist/symbols/symbol-renderer.d.ts +29 -0
  143. package/dist/symbols/symbol-renderer.d.ts.map +1 -0
  144. package/dist/symbols/symbol-renderer.js +173 -0
  145. package/dist/symbols/symbol-renderer.js.map +1 -0
  146. package/dist/symbols/symbol-utils.d.ts +48 -0
  147. package/dist/symbols/symbol-utils.d.ts.map +1 -0
  148. package/dist/symbols/symbol-utils.js +129 -0
  149. package/dist/symbols/symbol-utils.js.map +1 -0
  150. package/dist/symbols/window-symbol.d.ts +57 -0
  151. package/dist/symbols/window-symbol.d.ts.map +1 -0
  152. package/dist/symbols/window-symbol.js +209 -0
  153. package/dist/symbols/window-symbol.js.map +1 -0
  154. package/dist/types.d.ts +443 -0
  155. package/dist/types.d.ts.map +1 -0
  156. package/dist/types.js +31 -0
  157. package/dist/types.js.map +1 -0
  158. package/package.json +53 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scale-bar-renderer.js","sourceRoot":"","sources":["../../src/sheet/scale-bar-renderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Scale Bar Types
3
+ *
4
+ * Configurable scale bar for architectural drawings:
5
+ * - Multiple visual styles
6
+ * - Metric and imperial units
7
+ * - Auto-calculation of optimal length
8
+ */
9
+ /** Scale bar style */
10
+ export type ScaleBarStyle = 'linear' | 'alternating' | 'single' | 'graphic';
11
+ /** Scale bar position relative to drawing viewport */
12
+ export type ScaleBarPosition = 'below-viewport' | 'above-viewport' | 'in-title-block' | 'custom';
13
+ /** Scale bar unit system */
14
+ export type ScaleBarUnits = 'metric' | 'imperial' | 'both';
15
+ /** Scale bar configuration */
16
+ export interface ScaleBarConfig {
17
+ /** Whether to show scale bar */
18
+ visible: boolean;
19
+ /** Scale bar style */
20
+ style: ScaleBarStyle;
21
+ /** Position */
22
+ position: ScaleBarPosition;
23
+ /** Custom position offset from default (mm) */
24
+ customOffset?: {
25
+ x: number;
26
+ y: number;
27
+ };
28
+ /** Unit system */
29
+ units: ScaleBarUnits;
30
+ /** Total length in model units (meters) */
31
+ totalLengthM: number;
32
+ /** Number of primary divisions */
33
+ primaryDivisions: number;
34
+ /** Number of subdivisions per primary division */
35
+ subdivisions: number;
36
+ /** Bar height in mm */
37
+ heightMm: number;
38
+ /** Label font size in mm */
39
+ labelFontSize: number;
40
+ /** Show unit label (e.g., "meters") */
41
+ showUnitLabel: boolean;
42
+ /** Fill color for filled segments */
43
+ fillColor: string;
44
+ /** Stroke color */
45
+ strokeColor: string;
46
+ /** Line weight */
47
+ lineWeight: number;
48
+ }
49
+ /** Default scale bar configuration */
50
+ export declare const DEFAULT_SCALE_BAR: ScaleBarConfig;
51
+ /**
52
+ * Calculate optimal scale bar length based on drawing scale
53
+ * Returns length in model units (meters)
54
+ *
55
+ * @param scaleFactor - Drawing scale factor (e.g., 100 for 1:100)
56
+ * @param maxLengthMm - Maximum length on paper in mm
57
+ */
58
+ export declare function calculateOptimalScaleBarLength(scaleFactor: number, maxLengthMm: number): number;
59
+ /**
60
+ * Calculate the number of divisions for a scale bar
61
+ * Returns optimal division count for the given length
62
+ */
63
+ export declare function calculateOptimalDivisions(totalLengthM: number): number;
64
+ /** North arrow style */
65
+ export type NorthArrowStyle = 'simple' | 'compass' | 'decorative' | 'none';
66
+ /** North arrow configuration */
67
+ export interface NorthArrowConfig {
68
+ /** Arrow style */
69
+ style: NorthArrowStyle;
70
+ /** Rotation in degrees (0 = up) */
71
+ rotation: number;
72
+ /** Position in mm from top-left of viewport */
73
+ positionMm: {
74
+ x: number;
75
+ y: number;
76
+ };
77
+ /** Size in mm */
78
+ sizeMm: number;
79
+ }
80
+ /** Default north arrow configuration */
81
+ export declare const DEFAULT_NORTH_ARROW: NorthArrowConfig;
82
+ //# sourceMappingURL=scale-bar-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scale-bar-types.d.ts","sourceRoot":"","sources":["../../src/sheet/scale-bar-types.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,sBAAsB;AACtB,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE5E,sDAAsD;AACtD,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,QAAQ,CAAC;AAEjG,4BAA4B;AAC5B,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;AAE3D,8BAA8B;AAC9B,MAAM,WAAW,cAAc;IAC7B,gCAAgC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,sBAAsB;IACtB,KAAK,EAAE,aAAa,CAAC;IACrB,eAAe;IACf,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,+CAA+C;IAC/C,YAAY,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,kBAAkB;IAClB,KAAK,EAAE,aAAa,CAAC;IACrB,2CAA2C;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,gBAAgB,EAAE,MAAM,CAAC;IACzB,kDAAkD;IAClD,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,aAAa,EAAE,OAAO,CAAC;IACvB,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,sCAAsC;AACtC,eAAO,MAAM,iBAAiB,EAAE,cAc/B,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,MAAM,CAoBR;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAMtE;AAED,wBAAwB;AACxB,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,GAAG,MAAM,CAAC;AAE3E,gCAAgC;AAChC,MAAM,WAAW,gBAAgB;IAC/B,kBAAkB;IAClB,KAAK,EAAE,eAAe,CAAC;IACvB,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,UAAU,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC,iBAAiB;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wCAAwC;AACxC,eAAO,MAAM,mBAAmB,EAAE,gBAKjC,CAAC"}
@@ -0,0 +1,66 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ /** Default scale bar configuration */
5
+ export const DEFAULT_SCALE_BAR = {
6
+ visible: true,
7
+ style: 'alternating',
8
+ position: 'below-viewport',
9
+ units: 'metric',
10
+ totalLengthM: 5, // Will be auto-calculated based on scale
11
+ primaryDivisions: 5,
12
+ subdivisions: 2,
13
+ heightMm: 3,
14
+ labelFontSize: 2.5,
15
+ showUnitLabel: true,
16
+ fillColor: '#000000',
17
+ strokeColor: '#000000',
18
+ lineWeight: 0.25,
19
+ };
20
+ /**
21
+ * Calculate optimal scale bar length based on drawing scale
22
+ * Returns length in model units (meters)
23
+ *
24
+ * @param scaleFactor - Drawing scale factor (e.g., 100 for 1:100)
25
+ * @param maxLengthMm - Maximum length on paper in mm
26
+ */
27
+ export function calculateOptimalScaleBarLength(scaleFactor, maxLengthMm) {
28
+ // Target ~60-80mm on paper for readability
29
+ const targetPaperLengthMm = Math.min(80, maxLengthMm * 0.8);
30
+ // Convert paper length to model units (meters)
31
+ const modelLength = (targetPaperLengthMm * scaleFactor) / 1000;
32
+ // Round to nice numbers for readability
33
+ const niceNumbers = [
34
+ 0.1, 0.2, 0.5, 1, 2, 5, 10, 20, 50, 100, 200, 500, 1000,
35
+ ];
36
+ for (const n of niceNumbers) {
37
+ if (n >= modelLength * 0.5 && n <= modelLength * 1.5) {
38
+ return n;
39
+ }
40
+ }
41
+ // Fall back to rounded value
42
+ return Math.round(modelLength);
43
+ }
44
+ /**
45
+ * Calculate the number of divisions for a scale bar
46
+ * Returns optimal division count for the given length
47
+ */
48
+ export function calculateOptimalDivisions(totalLengthM) {
49
+ if (totalLengthM <= 1)
50
+ return 5;
51
+ if (totalLengthM <= 5)
52
+ return 5;
53
+ if (totalLengthM <= 10)
54
+ return 5;
55
+ if (totalLengthM <= 50)
56
+ return 5;
57
+ return 5; // Default to 5 divisions
58
+ }
59
+ /** Default north arrow configuration */
60
+ export const DEFAULT_NORTH_ARROW = {
61
+ style: 'simple',
62
+ rotation: 0,
63
+ positionMm: { x: 30, y: 30 },
64
+ sizeMm: 15,
65
+ };
66
+ //# sourceMappingURL=scale-bar-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scale-bar-types.js","sourceRoot":"","sources":["../../src/sheet/scale-bar-types.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAoD/D,sCAAsC;AACtC,MAAM,CAAC,MAAM,iBAAiB,GAAmB;IAC/C,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,aAAa;IACpB,QAAQ,EAAE,gBAAgB;IAC1B,KAAK,EAAE,QAAQ;IACf,YAAY,EAAE,CAAC,EAAE,yCAAyC;IAC1D,gBAAgB,EAAE,CAAC;IACnB,YAAY,EAAE,CAAC;IACf,QAAQ,EAAE,CAAC;IACX,aAAa,EAAE,GAAG;IAClB,aAAa,EAAE,IAAI;IACnB,SAAS,EAAE,SAAS;IACpB,WAAW,EAAE,SAAS;IACtB,UAAU,EAAE,IAAI;CACjB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,8BAA8B,CAC5C,WAAmB,EACnB,WAAmB;IAEnB,2CAA2C;IAC3C,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,GAAG,GAAG,CAAC,CAAC;IAE5D,+CAA+C;IAC/C,MAAM,WAAW,GAAG,CAAC,mBAAmB,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC;IAE/D,wCAAwC;IACxC,MAAM,WAAW,GAAG;QAClB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI;KACxD,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,WAAW,GAAG,GAAG,IAAI,CAAC,IAAI,WAAW,GAAG,GAAG,EAAE,CAAC;YACrD,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACjC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,YAAoB;IAC5D,IAAI,YAAY,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAChC,IAAI,YAAY,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAChC,IAAI,YAAY,IAAI,EAAE;QAAE,OAAO,CAAC,CAAC;IACjC,IAAI,YAAY,IAAI,EAAE;QAAE,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,CAAC,CAAC,yBAAyB;AACrC,CAAC;AAiBD,wCAAwC;AACxC,MAAM,CAAC,MAAM,mBAAmB,GAAqB;IACnD,KAAK,EAAE,QAAQ;IACf,QAAQ,EAAE,CAAC;IACX,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;IAC5B,MAAM,EAAE,EAAE;CACX,CAAC"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Drawing Sheet Types
3
+ *
4
+ * Complete drawing sheet configuration combining:
5
+ * - Paper size
6
+ * - Drawing frame
7
+ * - Title block
8
+ * - Scale bar
9
+ * - North arrow
10
+ */
11
+ import type { PaperSizeDefinition } from './paper-sizes';
12
+ import type { DrawingFrame } from './frame-types';
13
+ import type { TitleBlockConfig, RevisionEntry } from './title-block-types';
14
+ import type { ScaleBarConfig, NorthArrowConfig } from './scale-bar-types';
15
+ import type { DrawingScale } from '../styles';
16
+ /** Viewport bounds in sheet coordinates (mm from sheet origin) */
17
+ export interface ViewportBounds {
18
+ /** X position from left edge of paper (mm) */
19
+ x: number;
20
+ /** Y position from top edge of paper (mm) */
21
+ y: number;
22
+ /** Viewport width (mm) */
23
+ width: number;
24
+ /** Viewport height (mm) */
25
+ height: number;
26
+ }
27
+ /** Complete drawing sheet configuration */
28
+ export interface DrawingSheet {
29
+ /** Unique sheet identifier */
30
+ id: string;
31
+ /** Sheet name for display */
32
+ name: string;
33
+ /** Paper size configuration */
34
+ paper: PaperSizeDefinition;
35
+ /** Drawing frame configuration */
36
+ frame: DrawingFrame;
37
+ /** Title block configuration */
38
+ titleBlock: TitleBlockConfig;
39
+ /** Scale bar configuration */
40
+ scaleBar: ScaleBarConfig;
41
+ /** Drawing scale */
42
+ scale: DrawingScale;
43
+ /** North arrow configuration */
44
+ northArrow: NorthArrowConfig;
45
+ /** Calculated viewport bounds (where drawing content goes) */
46
+ viewportBounds: ViewportBounds;
47
+ /** Revision history */
48
+ revisions: RevisionEntry[];
49
+ }
50
+ /** Sheet creation options */
51
+ export interface SheetCreationOptions {
52
+ /** Paper size ID (e.g., 'A3_LANDSCAPE') */
53
+ paperId?: string;
54
+ /** Frame style */
55
+ frameStyle?: string;
56
+ /** Title block layout */
57
+ titleBlockLayout?: string;
58
+ /** Drawing scale */
59
+ scale?: DrawingScale;
60
+ }
61
+ /**
62
+ * Calculate viewport bounds given sheet configuration
63
+ * The viewport is the area where the actual drawing content is placed
64
+ */
65
+ export declare function calculateViewportBounds(paper: PaperSizeDefinition, frame: DrawingFrame, titleBlock: TitleBlockConfig): ViewportBounds;
66
+ /**
67
+ * Calculate the transform needed to fit drawing content into viewport
68
+ *
69
+ * @param drawingBounds - Bounds of the 2D drawing in model units (meters)
70
+ * @param viewportBounds - Available viewport in mm
71
+ * @param scale - Drawing scale
72
+ * @returns Transform parameters for SVG
73
+ */
74
+ export declare function calculateDrawingTransform(drawingBounds: {
75
+ minX: number;
76
+ minY: number;
77
+ maxX: number;
78
+ maxY: number;
79
+ }, viewportBounds: ViewportBounds, scale: DrawingScale): {
80
+ translateX: number;
81
+ translateY: number;
82
+ scaleFactor: number;
83
+ };
84
+ //# sourceMappingURL=sheet-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sheet-types.d.ts","sourceRoot":"","sources":["../../src/sheet/sheet-types.ts"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,kEAAkE;AAClE,MAAM,WAAW,cAAc;IAC7B,8CAA8C;IAC9C,CAAC,EAAE,MAAM,CAAC;IACV,6CAA6C;IAC7C,CAAC,EAAE,MAAM,CAAC;IACV,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,2CAA2C;AAC3C,MAAM,WAAW,YAAY;IAC3B,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,KAAK,EAAE,mBAAmB,CAAC;IAC3B,kCAAkC;IAClC,KAAK,EAAE,YAAY,CAAC;IACpB,gCAAgC;IAChC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,8BAA8B;IAC9B,QAAQ,EAAE,cAAc,CAAC;IACzB,oBAAoB;IACpB,KAAK,EAAE,YAAY,CAAC;IACpB,gCAAgC;IAChC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,8DAA8D;IAC9D,cAAc,EAAE,cAAc,CAAC;IAC/B,uBAAuB;IACvB,SAAS,EAAE,aAAa,EAAE,CAAC;CAC5B;AAED,6BAA6B;AAC7B,MAAM,WAAW,oBAAoB;IACnC,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB;IACpB,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,mBAAmB,EAC1B,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,gBAAgB,GAC3B,cAAc,CA4ChB;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,aAAa,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACzE,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,YAAY,GAClB;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB,CAgCA"}
@@ -0,0 +1,77 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ /**
5
+ * Calculate viewport bounds given sheet configuration
6
+ * The viewport is the area where the actual drawing content is placed
7
+ */
8
+ export function calculateViewportBounds(paper, frame, titleBlock) {
9
+ // Frame inner edges
10
+ const frameInnerLeft = frame.margins.left + frame.margins.bindingMargin + frame.border.borderGap;
11
+ const frameInnerRight = paper.widthMm - frame.margins.right - frame.border.borderGap;
12
+ const frameInnerTop = frame.margins.top + frame.border.borderGap;
13
+ const frameInnerBottom = paper.heightMm - frame.margins.bottom - frame.border.borderGap;
14
+ let viewportX = frameInnerLeft;
15
+ let viewportY = frameInnerTop;
16
+ let viewportWidth = frameInnerRight - frameInnerLeft;
17
+ let viewportHeight = frameInnerBottom - frameInnerTop;
18
+ // Adjust for title block position
19
+ const padding = 5; // Gap between viewport and title block
20
+ switch (titleBlock.position) {
21
+ case 'bottom-right':
22
+ // Title block takes bottom-right corner
23
+ // Viewport can use full width, but may need to avoid title block area
24
+ viewportHeight = frameInnerBottom - frameInnerTop - titleBlock.heightMm - padding;
25
+ break;
26
+ case 'bottom-full':
27
+ // Title block spans full width at bottom
28
+ viewportHeight =
29
+ frameInnerBottom - frameInnerTop - titleBlock.heightMm - padding;
30
+ break;
31
+ case 'right-strip':
32
+ // Title block is a vertical strip on right
33
+ viewportWidth =
34
+ frameInnerRight - frameInnerLeft - titleBlock.widthMm - padding;
35
+ break;
36
+ }
37
+ return {
38
+ x: viewportX,
39
+ y: viewportY,
40
+ width: viewportWidth,
41
+ height: viewportHeight,
42
+ };
43
+ }
44
+ /**
45
+ * Calculate the transform needed to fit drawing content into viewport
46
+ *
47
+ * @param drawingBounds - Bounds of the 2D drawing in model units (meters)
48
+ * @param viewportBounds - Available viewport in mm
49
+ * @param scale - Drawing scale
50
+ * @returns Transform parameters for SVG
51
+ */
52
+ export function calculateDrawingTransform(drawingBounds, viewportBounds, scale) {
53
+ const drawingWidth = drawingBounds.maxX - drawingBounds.minX;
54
+ const drawingHeight = drawingBounds.maxY - drawingBounds.minY;
55
+ // Convert drawing size to paper mm at given scale
56
+ // At 1:100, 1 meter = 10mm on paper
57
+ const paperScale = 1000 / scale.factor;
58
+ const drawingWidthMm = drawingWidth * paperScale;
59
+ const drawingHeightMm = drawingHeight * paperScale;
60
+ // Calculate scale to fit in viewport (with some padding)
61
+ const paddingFactor = 0.95;
62
+ const scaleX = (viewportBounds.width * paddingFactor) / drawingWidthMm;
63
+ const scaleY = (viewportBounds.height * paddingFactor) / drawingHeightMm;
64
+ const fitScale = Math.min(scaleX, scaleY, 1); // Don't scale up beyond 1:1
65
+ const scaleFactor = paperScale * fitScale;
66
+ // Center the drawing in viewport
67
+ const finalWidthMm = drawingWidth * scaleFactor;
68
+ const finalHeightMm = drawingHeight * scaleFactor;
69
+ const translateX = viewportBounds.x +
70
+ (viewportBounds.width - finalWidthMm) / 2 -
71
+ drawingBounds.minX * scaleFactor;
72
+ const translateY = viewportBounds.y +
73
+ (viewportBounds.height - finalHeightMm) / 2 +
74
+ drawingBounds.maxY * scaleFactor; // Flip Y
75
+ return { translateX, translateY, scaleFactor };
76
+ }
77
+ //# sourceMappingURL=sheet-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sheet-types.js","sourceRoot":"","sources":["../../src/sheet/sheet-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Title Block Renderer - Generates SVG for drawing title blocks
3
+ *
4
+ * Renders:
5
+ * - Title block border and grid
6
+ * - Field labels and values
7
+ * - Company logo
8
+ * - Revision history table
9
+ */
10
+ import type { TitleBlockConfig, RevisionEntry } from './title-block-types';
11
+ import type { ScaleBarConfig, NorthArrowConfig } from './scale-bar-types';
12
+ import type { DrawingScale } from '../styles';
13
+ /** Inner bounds of the frame (where title block is positioned) */
14
+ export interface FrameInnerBounds {
15
+ x: number;
16
+ y: number;
17
+ width: number;
18
+ height: number;
19
+ }
20
+ /** Options for rendering scale bar and north arrow in title block */
21
+ export interface TitleBlockExtras {
22
+ scaleBar?: ScaleBarConfig;
23
+ northArrow?: NorthArrowConfig;
24
+ scale?: DrawingScale;
25
+ /** Effective scale factor (mm per meter) - used for scale bar when drawing is dynamically scaled */
26
+ effectiveScaleFactor?: number;
27
+ }
28
+ /** Result of title block rendering */
29
+ export interface TitleBlockRenderResult {
30
+ /** SVG elements for the title block */
31
+ svgElements: string;
32
+ /** Bounds of the title block (mm from paper origin) */
33
+ bounds: {
34
+ x: number;
35
+ y: number;
36
+ width: number;
37
+ height: number;
38
+ };
39
+ }
40
+ /**
41
+ * Render a title block to SVG
42
+ */
43
+ export declare function renderTitleBlock(config: TitleBlockConfig, frameInnerBounds: FrameInnerBounds, revisions?: RevisionEntry[], extras?: TitleBlockExtras): TitleBlockRenderResult;
44
+ //# sourceMappingURL=title-block-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"title-block-renderer.d.ts","sourceRoot":"","sources":["../../src/sheet/title-block-renderer.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAsB,MAAM,qBAAqB,CAAC;AAC/F,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,kEAAkE;AAClE,MAAM,WAAW,gBAAgB;IAC/B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qEAAqE;AACrE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,oGAAoG;IACpG,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,sCAAsC;AACtC,MAAM,WAAW,sBAAsB;IACrC,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACjE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,gBAAgB,EACxB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,GAAE,aAAa,EAAO,EAC/B,MAAM,CAAC,EAAE,gBAAgB,GACxB,sBAAsB,CAgFxB"}