@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.
- package/LICENSE +373 -0
- package/dist/drawing-generator.d.ts +80 -0
- package/dist/drawing-generator.d.ts.map +1 -0
- package/dist/drawing-generator.js +281 -0
- package/dist/drawing-generator.js.map +1 -0
- package/dist/edge-extractor.d.ts +47 -0
- package/dist/edge-extractor.d.ts.map +1 -0
- package/dist/edge-extractor.js +204 -0
- package/dist/edge-extractor.js.map +1 -0
- package/dist/gpu-section-cutter.d.ts +42 -0
- package/dist/gpu-section-cutter.d.ts.map +1 -0
- package/dist/gpu-section-cutter.js +405 -0
- package/dist/gpu-section-cutter.js.map +1 -0
- package/dist/graphic-overrides/index.d.ts +10 -0
- package/dist/graphic-overrides/index.d.ts.map +1 -0
- package/dist/graphic-overrides/index.js +8 -0
- package/dist/graphic-overrides/index.js.map +1 -0
- package/dist/graphic-overrides/presets.d.ts +22 -0
- package/dist/graphic-overrides/presets.d.ts.map +1 -0
- package/dist/graphic-overrides/presets.js +283 -0
- package/dist/graphic-overrides/presets.js.map +1 -0
- package/dist/graphic-overrides/rule-engine.d.ts +64 -0
- package/dist/graphic-overrides/rule-engine.d.ts.map +1 -0
- package/dist/graphic-overrides/rule-engine.js +438 -0
- package/dist/graphic-overrides/rule-engine.js.map +1 -0
- package/dist/graphic-overrides/types.d.ts +200 -0
- package/dist/graphic-overrides/types.d.ts.map +1 -0
- package/dist/graphic-overrides/types.js +5 -0
- package/dist/graphic-overrides/types.js.map +1 -0
- package/dist/hatch-generator.d.ts +76 -0
- package/dist/hatch-generator.d.ts.map +1 -0
- package/dist/hatch-generator.js +282 -0
- package/dist/hatch-generator.js.map +1 -0
- package/dist/hidden-line.d.ts +64 -0
- package/dist/hidden-line.d.ts.map +1 -0
- package/dist/hidden-line.js +318 -0
- package/dist/hidden-line.js.map +1 -0
- package/dist/index.d.ts +44 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +109 -0
- package/dist/index.js.map +1 -0
- package/dist/line-merger.d.ts +35 -0
- package/dist/line-merger.d.ts.map +1 -0
- package/dist/line-merger.js +265 -0
- package/dist/line-merger.js.map +1 -0
- package/dist/math.d.ts +90 -0
- package/dist/math.d.ts.map +1 -0
- package/dist/math.js +284 -0
- package/dist/math.js.map +1 -0
- package/dist/openings/index.d.ts +7 -0
- package/dist/openings/index.d.ts.map +1 -0
- package/dist/openings/index.js +10 -0
- package/dist/openings/index.js.map +1 -0
- package/dist/openings/opening-filter.d.ts +61 -0
- package/dist/openings/opening-filter.d.ts.map +1 -0
- package/dist/openings/opening-filter.js +244 -0
- package/dist/openings/opening-filter.js.map +1 -0
- package/dist/openings/opening-relationship-builder.d.ts +35 -0
- package/dist/openings/opening-relationship-builder.d.ts.map +1 -0
- package/dist/openings/opening-relationship-builder.js +121 -0
- package/dist/openings/opening-relationship-builder.js.map +1 -0
- package/dist/openings/opening-utils.d.ts +55 -0
- package/dist/openings/opening-utils.d.ts.map +1 -0
- package/dist/openings/opening-utils.js +128 -0
- package/dist/openings/opening-utils.js.map +1 -0
- package/dist/polygon-builder.d.ts +62 -0
- package/dist/polygon-builder.d.ts.map +1 -0
- package/dist/polygon-builder.js +261 -0
- package/dist/polygon-builder.js.map +1 -0
- package/dist/section-cutter.d.ts +49 -0
- package/dist/section-cutter.d.ts.map +1 -0
- package/dist/section-cutter.js +220 -0
- package/dist/section-cutter.js.map +1 -0
- package/dist/sheet/frame-renderer.d.ts +28 -0
- package/dist/sheet/frame-renderer.d.ts.map +1 -0
- package/dist/sheet/frame-renderer.js +199 -0
- package/dist/sheet/frame-renderer.js.map +1 -0
- package/dist/sheet/frame-types.d.ts +57 -0
- package/dist/sheet/frame-types.d.ts.map +1 -0
- package/dist/sheet/frame-types.js +88 -0
- package/dist/sheet/frame-types.js.map +1 -0
- package/dist/sheet/index.d.ts +26 -0
- package/dist/sheet/index.d.ts.map +1 -0
- package/dist/sheet/index.js +12 -0
- package/dist/sheet/index.js.map +1 -0
- package/dist/sheet/paper-sizes.d.ts +36 -0
- package/dist/sheet/paper-sizes.d.ts.map +1 -0
- package/dist/sheet/paper-sizes.js +252 -0
- package/dist/sheet/paper-sizes.js.map +1 -0
- package/dist/sheet/scale-bar-renderer.d.ts +29 -0
- package/dist/sheet/scale-bar-renderer.d.ts.map +1 -0
- package/dist/sheet/scale-bar-renderer.js +287 -0
- package/dist/sheet/scale-bar-renderer.js.map +1 -0
- package/dist/sheet/scale-bar-types.d.ts +82 -0
- package/dist/sheet/scale-bar-types.d.ts.map +1 -0
- package/dist/sheet/scale-bar-types.js +66 -0
- package/dist/sheet/scale-bar-types.js.map +1 -0
- package/dist/sheet/sheet-types.d.ts +84 -0
- package/dist/sheet/sheet-types.d.ts.map +1 -0
- package/dist/sheet/sheet-types.js +77 -0
- package/dist/sheet/sheet-types.js.map +1 -0
- package/dist/sheet/title-block-renderer.d.ts +44 -0
- package/dist/sheet/title-block-renderer.d.ts.map +1 -0
- package/dist/sheet/title-block-renderer.js +335 -0
- package/dist/sheet/title-block-renderer.js.map +1 -0
- package/dist/sheet/title-block-types.d.ts +100 -0
- package/dist/sheet/title-block-types.d.ts.map +1 -0
- package/dist/sheet/title-block-types.js +174 -0
- package/dist/sheet/title-block-types.js.map +1 -0
- package/dist/styles.d.ts +77 -0
- package/dist/styles.d.ts.map +1 -0
- package/dist/styles.js +347 -0
- package/dist/styles.js.map +1 -0
- package/dist/styling/index.d.ts +7 -0
- package/dist/styling/index.d.ts.map +1 -0
- package/dist/styling/index.js +10 -0
- package/dist/styling/index.js.map +1 -0
- package/dist/styling/layer-mapping.d.ts +57 -0
- package/dist/styling/layer-mapping.d.ts.map +1 -0
- package/dist/styling/layer-mapping.js +303 -0
- package/dist/styling/layer-mapping.js.map +1 -0
- package/dist/styling/line-styles.d.ts +49 -0
- package/dist/styling/line-styles.d.ts.map +1 -0
- package/dist/styling/line-styles.js +123 -0
- package/dist/styling/line-styles.js.map +1 -0
- package/dist/styling/line-weights.d.ts +61 -0
- package/dist/styling/line-weights.d.ts.map +1 -0
- package/dist/styling/line-weights.js +183 -0
- package/dist/styling/line-weights.js.map +1 -0
- package/dist/svg-exporter.d.ts +63 -0
- package/dist/svg-exporter.d.ts.map +1 -0
- package/dist/svg-exporter.js +278 -0
- package/dist/svg-exporter.js.map +1 -0
- package/dist/symbols/door-symbol.d.ts +82 -0
- package/dist/symbols/door-symbol.d.ts.map +1 -0
- package/dist/symbols/door-symbol.js +390 -0
- package/dist/symbols/door-symbol.js.map +1 -0
- package/dist/symbols/index.d.ts +8 -0
- package/dist/symbols/index.d.ts.map +1 -0
- package/dist/symbols/index.js +11 -0
- package/dist/symbols/index.js.map +1 -0
- package/dist/symbols/symbol-renderer.d.ts +29 -0
- package/dist/symbols/symbol-renderer.d.ts.map +1 -0
- package/dist/symbols/symbol-renderer.js +173 -0
- package/dist/symbols/symbol-renderer.js.map +1 -0
- package/dist/symbols/symbol-utils.d.ts +48 -0
- package/dist/symbols/symbol-utils.d.ts.map +1 -0
- package/dist/symbols/symbol-utils.js +129 -0
- package/dist/symbols/symbol-utils.js.map +1 -0
- package/dist/symbols/window-symbol.d.ts +57 -0
- package/dist/symbols/window-symbol.d.ts.map +1 -0
- package/dist/symbols/window-symbol.js +209 -0
- package/dist/symbols/window-symbol.js.map +1 -0
- package/dist/types.d.ts +443 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +31 -0
- package/dist/types.js.map +1 -0
- 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"}
|