@ifc-lite/export 4.9.0 → 4.11.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/affected-set.d.ts +9 -0
- package/dist/affected-set.d.ts.map +1 -0
- package/dist/affected-set.js +72 -0
- package/dist/affected-set.js.map +1 -0
- package/dist/declared-property-type.d.ts +7 -0
- package/dist/declared-property-type.d.ts.map +1 -1
- package/dist/declared-property-type.js +26 -0
- package/dist/declared-property-type.js.map +1 -1
- package/dist/edit-ownership.d.ts +7 -0
- package/dist/edit-ownership.d.ts.map +1 -0
- package/dist/edit-ownership.js +95 -0
- package/dist/edit-ownership.js.map +1 -0
- package/dist/entity-subgraph.d.ts +11 -3
- package/dist/entity-subgraph.d.ts.map +1 -1
- package/dist/entity-subgraph.js +54 -11
- package/dist/entity-subgraph.js.map +1 -1
- package/dist/grid-placement-dependents.d.ts +4 -0
- package/dist/grid-placement-dependents.d.ts.map +1 -0
- package/dist/grid-placement-dependents.js +71 -0
- package/dist/grid-placement-dependents.js.map +1 -0
- package/dist/grid-reference-context.d.ts +6 -0
- package/dist/grid-reference-context.d.ts.map +1 -0
- package/dist/grid-reference-context.js +68 -0
- package/dist/grid-reference-context.js.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/dist/step-coordinate-options.d.ts +8 -0
- package/dist/step-coordinate-options.d.ts.map +1 -1
- package/dist/step-export-types.d.ts +4 -0
- package/dist/step-export-types.d.ts.map +1 -1
- package/dist/step-export-types.js.map +1 -1
- package/dist/step-exporter.d.ts.map +1 -1
- package/dist/step-exporter.js +7 -7
- package/dist/step-exporter.js.map +1 -1
- package/dist/step-map-unit-normalization.d.ts +3 -5
- package/dist/step-map-unit-normalization.d.ts.map +1 -1
- package/dist/step-map-unit-normalization.js +12 -8
- package/dist/step-map-unit-normalization.js.map +1 -1
- package/dist/step-map-unit.d.ts +3 -78
- package/dist/step-map-unit.d.ts.map +1 -1
- package/dist/step-map-unit.js +33 -195
- package/dist/step-map-unit.js.map +1 -1
- package/dist/step-native-set-record.d.ts +6 -0
- package/dist/step-native-set-record.d.ts.map +1 -0
- package/dist/step-native-set-record.js +30 -0
- package/dist/step-native-set-record.js.map +1 -0
- package/dist/step-pass-builder.d.ts.map +1 -1
- package/dist/step-pass-builder.js +2 -0
- package/dist/step-pass-builder.js.map +1 -1
- package/dist/step-property-set-collection.d.ts.map +1 -1
- package/dist/step-property-set-collection.js +24 -8
- package/dist/step-property-set-collection.js.map +1 -1
- package/dist/step-property-set-generators.d.ts +8 -2
- package/dist/step-property-set-generators.d.ts.map +1 -1
- package/dist/step-property-set-generators.js +26 -10
- package/dist/step-property-set-generators.js.map +1 -1
- package/dist/step-property-set-readers.d.ts.map +1 -1
- package/dist/step-property-set-readers.js +15 -0
- package/dist/step-property-set-readers.js.map +1 -1
- package/dist/step-property-sets.d.ts +3 -4
- package/dist/step-property-sets.d.ts.map +1 -1
- package/dist/step-property-sets.js +61 -19
- package/dist/step-property-sets.js.map +1 -1
- package/dist/step-type-owned-quantities.d.ts +34 -0
- package/dist/step-type-owned-quantities.d.ts.map +1 -0
- package/dist/step-type-owned-quantities.js +222 -0
- package/dist/step-type-owned-quantities.js.map +1 -0
- package/dist/step-vertical-datum-normalization.d.ts +17 -0
- package/dist/step-vertical-datum-normalization.d.ts.map +1 -0
- package/dist/step-vertical-datum-normalization.js +52 -0
- package/dist/step-vertical-datum-normalization.js.map +1 -0
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-property-set-readers.d.ts","sourceRoot":"","sources":["../src/step-property-set-readers.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAqB,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACzF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAe,MAAM,wBAAwB,CAAC;AAE5E,OAAO,EAAsB,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAErF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"step-property-set-readers.d.ts","sourceRoot":"","sources":["../src/step-property-set-readers.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ import { findLengthUnitReference, normalizeMapUnitName } from './step-map-unit.j
|
|
|
7
7
|
import { authoredEntityRefs } from './effective-index.js';
|
|
8
8
|
import { HAS_PROPERTY_SETS_SLOT } from './type-owned-psets.js';
|
|
9
9
|
import { firstWrittenOwnerHistoryRef } from './schema-converter-owner-history.js';
|
|
10
|
+
import { nativeSetLine, decodeNativeSetLine } from './step-native-set-record.js';
|
|
10
11
|
/** `OwnerHistory` is slot 1 on every `IfcRoot` subtype, all schemas. */
|
|
11
12
|
const OWNER_HISTORY_SLOT = 1;
|
|
12
13
|
/**
|
|
@@ -128,6 +129,20 @@ export function getPropertyIdsInSet(ctx, psetId) {
|
|
|
128
129
|
* relation instead (#2012).
|
|
129
130
|
*/
|
|
130
131
|
export function getTypeOwnedHasPropertySetIds(ctx, entityId, effective) {
|
|
132
|
+
const named = ctx.mutationView?.getAttributeMutationsForEntity?.(entityId) ?? [];
|
|
133
|
+
const positional = ctx.mutationView?.getPositionalMutationsForEntity?.(entityId);
|
|
134
|
+
if (named.some(mutation => mutation.name === 'HasPropertySets') || positional?.has(HAS_PROPERTY_SETS_SLOT)) {
|
|
135
|
+
const schema = ctx.dataStore.schemaVersion;
|
|
136
|
+
const sourceSchema = schema === 'IFC2X3' || schema === 'IFC4X3' || schema === 'IFC5' ? schema : 'IFC4';
|
|
137
|
+
const line = nativeSetLine(ctx, entityId, sourceSchema, new Map(named.map(mutation => [mutation.name, mutation.value])));
|
|
138
|
+
const ids = decodeNativeSetLine(line, entityId).attributes[HAS_PROPERTY_SETS_SLOT];
|
|
139
|
+
if (ids === null)
|
|
140
|
+
return [];
|
|
141
|
+
if (!Array.isArray(ids) || ids.some(id => typeof id !== 'number' || !Number.isSafeInteger(id) || id <= 0)) {
|
|
142
|
+
throw new Error('Current native HasPropertySets references are unreadable');
|
|
143
|
+
}
|
|
144
|
+
return ids.filter((id) => typeof id === 'number');
|
|
145
|
+
}
|
|
131
146
|
if (effective.isOverlayCreated(entityId)) {
|
|
132
147
|
const authored = ctx.mutationView?.getNewEntity(entityId)?.attributes?.[HAS_PROPERTY_SETS_SLOT];
|
|
133
148
|
return authoredEntityRefs(overlaySlotValue(ctx, entityId, HAS_PROPERTY_SETS_SLOT, authored));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-property-set-readers.js","sourceRoot":"","sources":["../src/step-property-set-readers.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAmB/D,OAAO,EAAE,eAAe,EAAqB,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAyB,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAA6B,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AA+
|
|
1
|
+
{"version":3,"file":"step-property-set-readers.js","sourceRoot":"","sources":["../src/step-property-set-readers.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,10 +5,9 @@ import type { ExportPass, StepExportOptions } from './step-exporter.js';
|
|
|
5
5
|
* `pass.entities`, and point every affected type object's `HasPropertySets` at
|
|
6
6
|
* the property sets this export just generated.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
* the
|
|
10
|
-
*
|
|
11
|
-
* only after the quantity-set loop has run.
|
|
8
|
+
* Property and quantity generation both precede the shared type-object rewrite:
|
|
9
|
+
* HasPropertySets must name the replacement IDs from both generators (#7355).
|
|
10
|
+
* The caller flushes rewrittenEntityLines only after this function returns.
|
|
12
11
|
*/
|
|
13
12
|
export declare function generatePropertyAndQuantitySetEntities(pass: ExportPass, options: StepExportOptions, ctx: PropertySetContext): void;
|
|
14
13
|
//# sourceMappingURL=step-property-sets.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-property-sets.d.ts","sourceRoot":"","sources":["../src/step-property-sets.ts"],"names":[],"mappings":"AAmCA,OAAO,EAAE,KAAK,kBAAkB,EAAsB,MAAM,gCAAgC,CAAC;AAE7F,OAAO,KAAK,EAAE,UAAU,EAAuB,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"step-property-sets.d.ts","sourceRoot":"","sources":["../src/step-property-sets.ts"],"names":[],"mappings":"AAmCA,OAAO,EAAE,KAAK,kBAAkB,EAAsB,MAAM,gCAAgC,CAAC;AAE7F,OAAO,KAAK,EAAE,UAAU,EAAuB,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAM7F;;;;;;;;GAQG;AACH,wBAAgB,sCAAsC,CACpD,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,iBAAiB,EAC1B,GAAG,EAAE,kBAAkB,GACtB,IAAI,CA4NN"}
|
|
@@ -29,15 +29,16 @@ import { applySourceLineMutationsReported } from './step-attribute-mutations.js'
|
|
|
29
29
|
import { nominateDeliveredInPlaceEdits } from './in-place-nomination.js';
|
|
30
30
|
import { getPropertySetName } from './step-property-set-readers.js';
|
|
31
31
|
import { generatePropertySetEntities, generateQuantitySetEntities } from './step-property-set-generators.js';
|
|
32
|
+
import { generateTypeQuantityCopy } from './step-type-owned-quantities.js';
|
|
33
|
+
import { convertStepLine } from './schema-converter.js';
|
|
32
34
|
/**
|
|
33
35
|
* Write the generated property-set and quantity-set records into
|
|
34
36
|
* `pass.entities`, and point every affected type object's `HasPropertySets` at
|
|
35
37
|
* the property sets this export just generated.
|
|
36
38
|
*
|
|
37
|
-
*
|
|
38
|
-
* the
|
|
39
|
-
*
|
|
40
|
-
* only after the quantity-set loop has run.
|
|
39
|
+
* Property and quantity generation both precede the shared type-object rewrite:
|
|
40
|
+
* HasPropertySets must name the replacement IDs from both generators (#7355).
|
|
41
|
+
* The caller flushes rewrittenEntityLines only after this function returns.
|
|
41
42
|
*/
|
|
42
43
|
export function generatePropertyAndQuantitySetEntities(pass, options, ctx) {
|
|
43
44
|
// Generate new property entities for mutations (these REPLACE the skipped ones)
|
|
@@ -59,16 +60,64 @@ export function generatePropertyAndQuantitySetEntities(pass, options, ctx) {
|
|
|
59
60
|
pass.modifications.recordEmitted(entityId, 'property-set');
|
|
60
61
|
generatedTypeOwnedPsetIds.set(entityId, newEntities.generatedTypeOwnedPsetIds);
|
|
61
62
|
}
|
|
63
|
+
// Type quantity generation precedes the shared HasPropertySets rewrite (#7355).
|
|
64
|
+
for (const { entityId, qsets, sourceSets } of pass.newQuantitySets) {
|
|
65
|
+
if (!pass.willBeEmitted(entityId))
|
|
66
|
+
continue;
|
|
67
|
+
const typeOwned = pass.typeOwnedQuantityIdsByEntity.has(entityId);
|
|
68
|
+
qsets.forEach((qset, index) => {
|
|
69
|
+
const source = sourceSets?.[index];
|
|
70
|
+
const generated = source
|
|
71
|
+
? generateTypeQuantityCopy(pass, options, ctx, entityId, qset, source)
|
|
72
|
+
: generateQuantitySetEntities(ctx, entityId, [qset], pass.willBeEmitted, pass.effective, options.guidRandom, typeOwned);
|
|
73
|
+
// Generated quantity records are written in the source schema's layout.
|
|
74
|
+
// One conversion site serves occurrence, new Type and copied Type sets (#7378).
|
|
75
|
+
const lines = pass.converting ? generated.lines.map(line => {
|
|
76
|
+
const converted = convertStepLine(line, pass.sourceSchema, pass.schema, options.guidRandom, pass.slotFill, pass.withheldRefIds, pass.ifc4Slots, pass.enums);
|
|
77
|
+
if (converted === null)
|
|
78
|
+
throw new Error('Generated quantity definition is unsupported in the target schema');
|
|
79
|
+
return converted;
|
|
80
|
+
}) : generated.lines;
|
|
81
|
+
pass.entities.push(...lines);
|
|
82
|
+
pass.newEntityCount += generated.count;
|
|
83
|
+
if (generated.lines.length > 0)
|
|
84
|
+
pass.modifications.recordEmitted(entityId, 'quantity-set');
|
|
85
|
+
if (typeOwned) {
|
|
86
|
+
const id = 'setId' in generated ? generated.setId : generated.generatedSetIds[0];
|
|
87
|
+
if (id !== undefined) {
|
|
88
|
+
if (source)
|
|
89
|
+
pass.typeOwnedQuantityIdsByEntity.get(entityId)?.set(source.setId, id);
|
|
90
|
+
else
|
|
91
|
+
pass.addedTypeOwnedQuantityIds.get(entityId)?.push(id);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
}
|
|
62
96
|
// Point every affected type object's HasPropertySets at the psets this
|
|
63
97
|
// export generated. One loop, because a type whose affected psets produced
|
|
64
98
|
// no replacement content (a deletion) needs exactly the same resolution
|
|
65
99
|
// with an empty replacement map.
|
|
66
|
-
|
|
100
|
+
const typeOwners = new Set([...pass.typeOwnedPsetNamesByEntity.keys(), ...pass.typeOwnedQuantityIdsByEntity.keys()]);
|
|
101
|
+
for (const entityId of typeOwners) {
|
|
102
|
+
const typeOwnedPsetNames = pass.typeOwnedPsetNamesByEntity.get(entityId) ?? new Set();
|
|
103
|
+
const modificationKinds = [];
|
|
104
|
+
if (pass.typeOwnedPsetNamesByEntity.has(entityId))
|
|
105
|
+
modificationKinds.push('property-set');
|
|
106
|
+
if (pass.typeOwnedQuantityIdsByEntity.has(entityId))
|
|
107
|
+
modificationKinds.push('quantity-set');
|
|
67
108
|
// `entityId` here is a TYPE object rather than an element; `willBeEmitted`
|
|
68
109
|
// resolves either the same way (#2030).
|
|
69
110
|
if (!pass.willBeEmitted(entityId))
|
|
70
111
|
continue;
|
|
71
|
-
const
|
|
112
|
+
const propertyResolved = resolveTypeOwnedPsetIds(pass.typeOwnedPsetIdsByEntity.get(entityId) ?? [], typeOwnedPsetNames, generatedTypeOwnedPsetIds.get(entityId) ?? new Map(), (psetId) => getPropertySetName(ctx, psetId));
|
|
113
|
+
const quantityReplacements = pass.typeOwnedQuantityIdsByEntity.get(entityId);
|
|
114
|
+
const resolved = propertyResolved.flatMap(id => {
|
|
115
|
+
if (!quantityReplacements?.has(id))
|
|
116
|
+
return [id];
|
|
117
|
+
const replacement = quantityReplacements.get(id);
|
|
118
|
+
return replacement === null || replacement === undefined ? [] : [replacement];
|
|
119
|
+
});
|
|
120
|
+
resolved.push(...(pass.addedTypeOwnedQuantityIds.get(entityId) ?? []));
|
|
72
121
|
if (pass.effective.isOverlayCreated(entityId)) {
|
|
73
122
|
// No source line to rewrite: the new-entities pass writes this record
|
|
74
123
|
// from its authored payload, so the list rides in as a slot override.
|
|
@@ -118,7 +167,8 @@ export function generatePropertyAndQuantitySetEntities(pass, options, ctx) {
|
|
|
118
167
|
// The line above IS the report, so the ledger must not add a second,
|
|
119
168
|
// vaguer one blaming the delta format for a drop the format did not
|
|
120
169
|
// cause.
|
|
121
|
-
|
|
170
|
+
for (const kind of modificationKinds)
|
|
171
|
+
pass.modifications.acknowledgeUndelivered(entityId, kind);
|
|
122
172
|
continue;
|
|
123
173
|
}
|
|
124
174
|
const { line, repointed } = rewriteTypeOwnedPsetLine(mutated.text, resolved);
|
|
@@ -142,7 +192,8 @@ export function generatePropertyAndQuantitySetEntities(pass, options, ctx) {
|
|
|
142
192
|
// property-set edit that put this host in the loop; the rest of the
|
|
143
193
|
// line delivers whichever in-place edits the pipeline applied to it.
|
|
144
194
|
if (changed) {
|
|
145
|
-
|
|
195
|
+
for (const kind of modificationKinds)
|
|
196
|
+
pass.modifications.recordEmitted(entityId, kind);
|
|
146
197
|
recordSourceLineDelivery(pass.modifications, entityId, mutated);
|
|
147
198
|
// `rewrittenEntityIds` made the source-iteration pass skip this
|
|
148
199
|
// host, so this line is the ONLY place a full export can see its
|
|
@@ -163,7 +214,8 @@ export function generatePropertyAndQuantitySetEntities(pass, options, ctx) {
|
|
|
163
214
|
// the affected psets produced replacement content, the property-set pass
|
|
164
215
|
// above has already recorded the emission, and an emission outranks an
|
|
165
216
|
// acknowledgement.)
|
|
166
|
-
|
|
217
|
+
for (const kind of modificationKinds)
|
|
218
|
+
pass.modifications.acknowledgeUndelivered(entityId, kind);
|
|
167
219
|
// `line` is byte-for-byte what the source-iteration pass would have
|
|
168
220
|
// written, so emit it wherever that pass would have run. Under
|
|
169
221
|
// `deltaOnly` it does not run, and a line the mutation pipeline left
|
|
@@ -185,15 +237,5 @@ export function generatePropertyAndQuantitySetEntities(pass, options, ctx) {
|
|
|
185
237
|
nominateDeliveredInPlaceEdits(pass.modifications, entityId, mutated, pass.inPlaceNominees);
|
|
186
238
|
}
|
|
187
239
|
}
|
|
188
|
-
// Generate new quantity entities for mutations
|
|
189
|
-
for (const { entityId, qsets } of pass.newQuantitySets) {
|
|
190
|
-
if (!pass.willBeEmitted(entityId))
|
|
191
|
-
continue;
|
|
192
|
-
const newEntities = generateQuantitySetEntities(ctx, entityId, qsets, pass.willBeEmitted, pass.effective, options.guidRandom);
|
|
193
|
-
pass.entities.push(...newEntities.lines);
|
|
194
|
-
pass.newEntityCount += newEntities.count;
|
|
195
|
-
if (newEntities.lines.length > 0)
|
|
196
|
-
pass.modifications.recordEmitted(entityId, 'quantity-set');
|
|
197
|
-
}
|
|
198
240
|
}
|
|
199
241
|
//# sourceMappingURL=step-property-sets.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-property-sets.js","sourceRoot":"","sources":["../src/step-property-sets.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,gCAAgC,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAA2B,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAC7F,OAAO,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"step-property-sets.js","sourceRoot":"","sources":["../src/step-property-sets.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type IfcEntity } from '@ifc-lite/parser';
|
|
2
|
+
import type { Quantity, QuantitySet } from '@ifc-lite/data';
|
|
3
|
+
import type { ExportPass, StepExportOptions } from './step-export-types.js';
|
|
4
|
+
import { type PropertySetContext } from './step-property-set-readers.js';
|
|
5
|
+
import type { SharedSetDetachments } from './step-pset-copy-on-write.js';
|
|
6
|
+
/** Native atoms are retained independently of the lossy numeric quantity projection. */
|
|
7
|
+
export interface TypeQuantitySource {
|
|
8
|
+
readonly setId: number;
|
|
9
|
+
readonly line: string;
|
|
10
|
+
readonly entity: IfcEntity;
|
|
11
|
+
readonly members: readonly number[];
|
|
12
|
+
readonly quantities?: readonly Quantity[];
|
|
13
|
+
readonly unitSymbols?: ReadonlyMap<string, string | undefined>;
|
|
14
|
+
readonly unitTypes?: ReadonlyMap<string, string | undefined>;
|
|
15
|
+
}
|
|
16
|
+
/** Use canonical full-base claims; only unchanged relationship-owned siblings can pass through. */
|
|
17
|
+
export declare function projectTypeQuantityEdits(pass: ExportPass, ctx: PropertySetContext, entityId: number, qsetNames: ReadonlySet<string>, relationships: readonly {
|
|
18
|
+
relId: number;
|
|
19
|
+
psetId: number;
|
|
20
|
+
}[]): {
|
|
21
|
+
qsets: QuantitySet[];
|
|
22
|
+
};
|
|
23
|
+
/** Associate regenerated instances with their canonical source identity, not merely their name. */
|
|
24
|
+
export declare function collectTypeQuantitySources(pass: ExportPass, ctx: PropertySetContext, entityId: number, qsets: readonly QuantitySet[], affectedNames: ReadonlySet<string>, detachments: SharedSetDetachments): {
|
|
25
|
+
qsets: QuantitySet[];
|
|
26
|
+
sourceSets: Array<TypeQuantitySource | undefined>;
|
|
27
|
+
};
|
|
28
|
+
/** Copy edited atoms only. Untouched units, Formula and opaque physical quantities retain their IDs. */
|
|
29
|
+
export declare function generateTypeQuantityCopy(pass: ExportPass, options: StepExportOptions, ctx: PropertySetContext, entityId: number, qset: QuantitySet, source: TypeQuantitySource): {
|
|
30
|
+
lines: string[];
|
|
31
|
+
count: number;
|
|
32
|
+
setId: number;
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=step-type-owned-quantities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-type-owned-quantities.d.ts","sourceRoot":"","sources":["../src/step-type-owned-quantities.ts"],"names":[],"mappings":"AAIA,OAAO,EAAwI,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxL,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAA+D,KAAK,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACtI,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAMzE,wFAAwF;AACxF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IAC1C,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC/D,QAAQ,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC9D;AAED,mGAAmG;AACnG,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,EAC3F,aAAa,EAAE,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,GAC1D;IAAE,KAAK,EAAE,WAAW,EAAE,CAAA;CAAE,CAuD1B;AAED,mGAAmG;AACnG,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,WAAW,EAAE,EAC1F,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,oBAAoB,GACpE;IAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAAC,UAAU,EAAE,KAAK,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAA;CAAE,CAwD7E;AAQD,wGAAwG;AACxG,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,EAAE,kBAAkB,EACrE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,kBAAkB,GAC9D;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAgEnD"}
|
|
@@ -0,0 +1,222 @@
|
|
|
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
|
+
import { extractTypeEntityOwnQuantities, getInheritanceChainAcrossSchemas, getAttributeNamesForSchema, getAttributeTypeForSchema, measureUnit } from '@ifc-lite/parser';
|
|
5
|
+
import { generateGlobalId, getTypeOwnedHasPropertySetIds, findUnitId } from './step-property-set-readers.js';
|
|
6
|
+
import { readStepSlots, replaceStepArgument } from './step-argument-parser.js';
|
|
7
|
+
import { quantityTypeToIfcType, toStepReal } from './step-serialization.js';
|
|
8
|
+
import { generateQuantityAtom } from './step-property-set-generators.js';
|
|
9
|
+
import { nativeSetLine, decodeNativeSetLine } from './step-native-set-record.js';
|
|
10
|
+
/** Use canonical full-base claims; only unchanged relationship-owned siblings can pass through. */
|
|
11
|
+
export function projectTypeQuantityEdits(pass, ctx, entityId, qsetNames, relationships) {
|
|
12
|
+
const mutationView = ctx.mutationView;
|
|
13
|
+
const ownIds = new Set(getTypeOwnedHasPropertySetIds(ctx, entityId, pass.effective));
|
|
14
|
+
const ownBase = extractTypeEntityOwnQuantities(ctx.dataStore, entityId, mutationView).map(set => ({
|
|
15
|
+
name: set.name, globalId: set.globalId, quantities: set.quantities.map(q => ({ name: q.name, type: q.type, value: q.value, unit: q.explicitUnit })),
|
|
16
|
+
}));
|
|
17
|
+
const sourceBase = extractTypeEntityOwnQuantities(ctx.dataStore, entityId);
|
|
18
|
+
const relatedBase = [];
|
|
19
|
+
const nativeEditIds = new Set([...(mutationView.getAttributeOverrideEntityIds?.() ?? []),
|
|
20
|
+
...pass.modifiedAttributes.keys(), ...(mutationView.getTombstones?.() ?? [])]);
|
|
21
|
+
for (const { relId, psetId } of relationships) {
|
|
22
|
+
if (ownIds.has(psetId))
|
|
23
|
+
continue;
|
|
24
|
+
const currentQuantitySet = !pass.effective.isDeleted(psetId) && pass.effective.typeOf(psetId) === 'IFCELEMENTQUANTITY';
|
|
25
|
+
// @raw-entity-enumeration-ok original source type detects a related quantity set retyped/deleted in the effective view, so the unsupported edit cannot bypass refusal
|
|
26
|
+
if (!currentQuantitySet && ctx.dataStore.entityIndex.byId.get(psetId)?.type !== 'IFCELEMENTQUANTITY')
|
|
27
|
+
continue;
|
|
28
|
+
const native = decodeNativeSetLine(nativeSetLine(ctx, psetId, pass.sourceSchema, pass.modifiedAttributes.get(psetId), pass.warnings), psetId);
|
|
29
|
+
const name = native.attributes[2];
|
|
30
|
+
if (typeof name !== 'string' || !qsetNames.has(name))
|
|
31
|
+
continue;
|
|
32
|
+
const activeEdit = mutationView.getQuantityMutation === undefined
|
|
33
|
+
|| mutationView.isQuantitySetDeleted?.(entityId, name)
|
|
34
|
+
|| mutationView.getMutations().some(row => row.entityId === entityId && row.psetName === name
|
|
35
|
+
&& typeof row.propName === 'string' && mutationView.getQuantityMutation(entityId, name, row.propName));
|
|
36
|
+
if (!activeEdit)
|
|
37
|
+
continue;
|
|
38
|
+
const source = typeof native.attributes[0] === 'string'
|
|
39
|
+
? sourceBase.find(set => set.globalId === native.attributes[0]) : undefined;
|
|
40
|
+
const nativeMembers = native.attributes[5];
|
|
41
|
+
if (!source || !source.globalId || source.name !== name
|
|
42
|
+
|| sourceBase.filter(set => set.globalId === source.globalId).length !== 1
|
|
43
|
+
|| ownBase.some(set => set.globalId === source.globalId)
|
|
44
|
+
|| !currentQuantitySet || nativeEditIds.has(relId) || nativeEditIds.has(psetId) || !Array.isArray(nativeMembers)
|
|
45
|
+
|| nativeMembers.some(id => typeof id !== 'number' || pass.effective.isDeleted(id) || nativeEditIds.has(id))) {
|
|
46
|
+
throw new Error('Relationship-attached Type quantity edits are unsupported');
|
|
47
|
+
}
|
|
48
|
+
// @raw-entity-enumeration-ok original unit type complements the effective type when an active edit retypes a source unit away from its schema family; both bases trigger refusal
|
|
49
|
+
if (source.quantities.some(quantity => quantity.explicitUnit !== undefined)
|
|
50
|
+
&& [...nativeEditIds].some(id => [
|
|
51
|
+
pass.effective.typeOf(id), ctx.dataStore.entityIndex.byId.get(id)?.type,
|
|
52
|
+
].some(type => getInheritanceChainAcrossSchemas(type ?? '').some(parent => [
|
|
53
|
+
'IfcNamedUnit', 'IfcDerivedUnit', 'IfcDerivedUnitElement', 'IfcMeasureWithUnit', 'IfcDimensionalExponents',
|
|
54
|
+
].includes(parent))))) {
|
|
55
|
+
throw new Error('Relationship-attached Type quantity edits are unsupported');
|
|
56
|
+
}
|
|
57
|
+
relatedBase.push({ name: source.name, globalId: source.globalId,
|
|
58
|
+
quantities: source.quantities.map(q => ({ name: q.name, type: q.type, value: q.value, unit: q.explicitUnit })) });
|
|
59
|
+
}
|
|
60
|
+
const projected = mutationView.getQuantitiesForEntity(entityId, () => [...ownBase, ...relatedBase], true);
|
|
61
|
+
for (const set of relatedBase) {
|
|
62
|
+
const replacement = projected.find(candidate => candidate.globalId === set.globalId);
|
|
63
|
+
if (!replacement || JSON.stringify(replacement.quantities) !== JSON.stringify(set.quantities)) {
|
|
64
|
+
throw new Error('Relationship-attached Type quantity edits are unsupported');
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
const relatedGuids = new Set(relatedBase.map(set => set.globalId));
|
|
68
|
+
return { qsets: projected.filter(set => !relatedGuids.has(set.globalId)) };
|
|
69
|
+
}
|
|
70
|
+
/** Associate regenerated instances with their canonical source identity, not merely their name. */
|
|
71
|
+
export function collectTypeQuantitySources(pass, ctx, entityId, qsets, affectedNames, detachments) {
|
|
72
|
+
const ids = getTypeOwnedHasPropertySetIds(ctx, entityId, pass.effective);
|
|
73
|
+
pass.typeOwnedPsetIdsByEntity.set(entityId, ids);
|
|
74
|
+
const raw = new Map();
|
|
75
|
+
const replacements = new Map();
|
|
76
|
+
for (const id of ids) {
|
|
77
|
+
if (pass.effective.typeOf(id) !== 'IFCELEMENTQUANTITY')
|
|
78
|
+
continue;
|
|
79
|
+
const line = nativeSetLine(ctx, id, pass.sourceSchema, pass.modifiedAttributes.get(id), pass.warnings);
|
|
80
|
+
const entity = decodeNativeSetLine(line, id);
|
|
81
|
+
const name = entity.attributes[2];
|
|
82
|
+
if (typeof name !== 'string' || !affectedNames.has(name))
|
|
83
|
+
continue;
|
|
84
|
+
const members = entity.attributes[5];
|
|
85
|
+
if (!Array.isArray(members) || members.some(ref => typeof ref !== 'number')) {
|
|
86
|
+
throw new Error(`Type quantity set #${id} has unreadable native members`);
|
|
87
|
+
}
|
|
88
|
+
const sources = raw.get(name) ?? [];
|
|
89
|
+
sources.push({ setId: id, line, entity, members: members });
|
|
90
|
+
raw.set(name, sources);
|
|
91
|
+
if (ctx.mutationView?.isQuantitySetDeleted?.(entityId, name)) {
|
|
92
|
+
replacements.set(id, null);
|
|
93
|
+
detachments.withholdTypeOwned(id, entityId);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
const canonical = extractTypeEntityOwnQuantities(ctx.dataStore, entityId, ctx.mutationView ?? undefined);
|
|
97
|
+
const byGuid = new Map();
|
|
98
|
+
for (const sources of raw.values())
|
|
99
|
+
for (const source of sources) {
|
|
100
|
+
const guid = source.entity.attributes[0];
|
|
101
|
+
if (typeof guid !== 'string' || !guid || byGuid.has(guid))
|
|
102
|
+
throw new Error('Native type quantity definition identity is missing or ambiguous');
|
|
103
|
+
byGuid.set(guid, source);
|
|
104
|
+
}
|
|
105
|
+
const selected = [];
|
|
106
|
+
const activeSets = [];
|
|
107
|
+
const seen = new Set();
|
|
108
|
+
for (const qset of qsets) {
|
|
109
|
+
const source = qset.globalId ? byGuid.get(qset.globalId) : undefined;
|
|
110
|
+
if (qset.globalId && (!source || seen.has(qset.globalId)))
|
|
111
|
+
throw new Error(`Projected type quantity identity ${qset.globalId} is missing or ambiguous among ${[...byGuid.keys()].join(',')}`);
|
|
112
|
+
if (!source && raw.has(qset.name))
|
|
113
|
+
throw new Error('Projected type quantity identity cannot be associated with its native definition');
|
|
114
|
+
if (qset.globalId)
|
|
115
|
+
seen.add(qset.globalId);
|
|
116
|
+
const base = canonical.find(set => set.globalId === qset.globalId);
|
|
117
|
+
const quantities = base?.quantities.map(q => ({ name: q.name, type: q.type, value: q.value, unit: q.explicitUnit })) ?? [];
|
|
118
|
+
if (source && JSON.stringify(quantities) === JSON.stringify(qset.quantities.map(q => ({ name: q.name, type: q.type, value: q.value, unit: q.unit }))))
|
|
119
|
+
continue;
|
|
120
|
+
if (source) {
|
|
121
|
+
replacements.set(source.setId, null);
|
|
122
|
+
detachments.withholdTypeOwned(source.setId, entityId);
|
|
123
|
+
// Removing the last numeric member drops only this instance's ownership;
|
|
124
|
+
// opaque native members still require a retained copied definition.
|
|
125
|
+
const opaque = source.members.some(id => !getInheritanceChainAcrossSchemas(pass.effective.typeOf(id) ?? '').includes('IfcPhysicalSimpleQuantity'));
|
|
126
|
+
if (qset.quantities.length === 0 && !opaque)
|
|
127
|
+
continue;
|
|
128
|
+
}
|
|
129
|
+
activeSets.push(qset);
|
|
130
|
+
selected.push(source ? { ...source, quantities, unitSymbols: new Map(base?.quantities.map(q => [q.name, q.explicitUnit]) ?? []), unitTypes: new Map(base?.quantities.map(q => [q.name, q.explicitUnitType]) ?? []) } : undefined);
|
|
131
|
+
}
|
|
132
|
+
pass.typeOwnedQuantityIdsByEntity.set(entityId, replacements);
|
|
133
|
+
pass.addedTypeOwnedQuantityIds.set(entityId, []);
|
|
134
|
+
pass.rewrittenEntityIds.add(entityId);
|
|
135
|
+
return { qsets: activeSets, sourceSets: selected };
|
|
136
|
+
}
|
|
137
|
+
function replaced(line, slot, value) {
|
|
138
|
+
const result = replaceStepArgument(line, slot, value);
|
|
139
|
+
if (result === null)
|
|
140
|
+
throw new Error('Type quantity copy cannot preserve its native STEP slots');
|
|
141
|
+
return result;
|
|
142
|
+
}
|
|
143
|
+
/** Copy edited atoms only. Untouched units, Formula and opaque physical quantities retain their IDs. */
|
|
144
|
+
export function generateTypeQuantityCopy(pass, options, ctx, entityId, qset, source) {
|
|
145
|
+
const lines = [];
|
|
146
|
+
const memberIds = [];
|
|
147
|
+
const usedNames = new Set();
|
|
148
|
+
const remaining = new Map(qset.quantities.map(quantity => [quantity.name, quantity]));
|
|
149
|
+
for (const id of source.members) {
|
|
150
|
+
if (!pass.willBeEmitted(id) || pass.withheldRefIds.has(id))
|
|
151
|
+
continue;
|
|
152
|
+
const line = nativeSetLine(ctx, id, pass.sourceSchema, pass.modifiedAttributes.get(id), pass.warnings);
|
|
153
|
+
const entity = decodeNativeSetLine(line, id);
|
|
154
|
+
const name = typeof entity.attributes[0] === 'string' ? entity.attributes[0] : null;
|
|
155
|
+
const first = name !== null && !usedNames.has(name);
|
|
156
|
+
if (name !== null)
|
|
157
|
+
usedNames.add(name);
|
|
158
|
+
const quantity = name === null ? undefined : qset.quantities.find(q => q.name === name);
|
|
159
|
+
const base = name === null ? undefined : source.quantities?.find(q => q.name === name);
|
|
160
|
+
const simple = getInheritanceChainAcrossSchemas(entity.type).includes('IfcPhysicalSimpleQuantity');
|
|
161
|
+
if (simple && first && base && !quantity)
|
|
162
|
+
continue;
|
|
163
|
+
if (name !== null)
|
|
164
|
+
remaining.delete(name);
|
|
165
|
+
const changed = first && quantity && (!base || quantity.type !== base.type || quantity.value !== base.value || quantity.unit !== base.unit);
|
|
166
|
+
if (!changed || !quantity) {
|
|
167
|
+
memberIds.push(id);
|
|
168
|
+
continue;
|
|
169
|
+
}
|
|
170
|
+
const mutation = ctx.mutationView?.getQuantityMutation(entityId, qset.name, quantity.name);
|
|
171
|
+
const targetType = quantityTypeToIfcType(quantity.type);
|
|
172
|
+
if (!getInheritanceChainAcrossSchemas(entity.type).includes('IfcPhysicalSimpleQuantity')) {
|
|
173
|
+
throw new Error(`Type quantity #${id} requires an explicit native entity edit`);
|
|
174
|
+
}
|
|
175
|
+
const retainedUnitType = name === null ? undefined : source.unitTypes?.get(name);
|
|
176
|
+
if (!mutation?.unitRemoved && retainedUnitType
|
|
177
|
+
&& (mutation?.unit === undefined || mutation.unit === source.unitSymbols?.get(name ?? ''))) {
|
|
178
|
+
const valueAttribute = getAttributeNamesForSchema(targetType, pass.sourceSchema)[3];
|
|
179
|
+
const valueType = valueAttribute ? getAttributeTypeForSchema(targetType, valueAttribute, pass.sourceSchema) : undefined;
|
|
180
|
+
const expectedUnit = valueType ? measureUnit(valueType) : undefined;
|
|
181
|
+
if (!expectedUnit || expectedUnit.kind !== 'typed' || expectedUnit.unitType !== retainedUnitType) {
|
|
182
|
+
throw new Error(`Type quantity #${id} unit dimension is incompatible with ${targetType}`);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
let copy = replaced(line, 3, toStepReal(quantity.value));
|
|
186
|
+
// Omitted unit intent retains the native reference, including non-length units.
|
|
187
|
+
if (mutation?.unitRemoved)
|
|
188
|
+
copy = replaced(copy, 2, '$');
|
|
189
|
+
else if (mutation?.unit !== undefined) {
|
|
190
|
+
if (name === null || mutation.unit !== source.unitSymbols?.get(name)) {
|
|
191
|
+
const unitId = targetType === 'IFCQUANTITYLENGTH' ? findUnitId(ctx, mutation.unit, pass.effective) : null;
|
|
192
|
+
if (unitId === null)
|
|
193
|
+
throw new Error(`Type quantity #${id} unit edit cannot resolve a native reference`);
|
|
194
|
+
copy = replaced(copy, 2, `#${unitId}`);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
const newId = ctx.allocateExpressId();
|
|
198
|
+
const slots = readStepSlots(copy);
|
|
199
|
+
if (!slots)
|
|
200
|
+
throw new Error('Type quantity edited copy has invalid native slots');
|
|
201
|
+
copy = `#${newId}=${targetType}(${slots.slots.join(',')});`;
|
|
202
|
+
lines.push(copy);
|
|
203
|
+
memberIds.push(newId);
|
|
204
|
+
}
|
|
205
|
+
for (const quantity of remaining.values()) {
|
|
206
|
+
const atom = generateQuantityAtom(ctx, quantity, pass.effective, true);
|
|
207
|
+
lines.push(atom.line);
|
|
208
|
+
memberIds.push(atom.id);
|
|
209
|
+
}
|
|
210
|
+
if (memberIds.length === 0)
|
|
211
|
+
throw new Error('An empty native type quantity copy cannot be emitted');
|
|
212
|
+
const setId = ctx.allocateExpressId();
|
|
213
|
+
// Every edited copy receives a fresh root GlobalId, matching regenerated
|
|
214
|
+
// occurrence sets; the source GlobalId only associates the edit with its
|
|
215
|
+
// verified native definition (#7378).
|
|
216
|
+
let setLine = replaced(source.line, 0, `'${generateGlobalId(options.guidRandom)}'`);
|
|
217
|
+
setLine = replaced(setLine, 5, `(${memberIds.map(id => `#${id}`).join(',')})`);
|
|
218
|
+
lines.push(setLine.replace(/^\s*#\d+\s*=/, `#${setId}=`));
|
|
219
|
+
// Source-schema records; the caller converts every generated quantity line once.
|
|
220
|
+
return { lines, count: lines.length, setId };
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=step-type-owned-quantities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-type-owned-quantities.js","sourceRoot":"","sources":["../src/step-type-owned-quantities.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ExportPass } from './step-export-types.js';
|
|
2
|
+
/** Count an emitted georeferencing edit once in the export's modification ledger. */
|
|
3
|
+
export declare function recordGeoreferencingEdit(pass: ExportPass, id: number): void;
|
|
4
|
+
/**
|
|
5
|
+
* Write a recognized `IfcProjectedCRS.VerticalDatum` that names a sea-level
|
|
6
|
+
* datum (e.g. 'EVRS2007') as EGM2008 height on the *emitted* model (#7356).
|
|
7
|
+
*
|
|
8
|
+
* Cesium ion applies a geoid only for vertical CRS codes it has a model for:
|
|
9
|
+
* live uploads shifted heights by the local EGM2008 separation for
|
|
10
|
+
* 'EPSG:3855', and not at all for 'EVRS2007', 'EPSG:5621' or a compound
|
|
11
|
+
* name, which left a sea-level model one geoid separation (48 m) too low.
|
|
12
|
+
* Only EVRS2007 and EGM2008 names are admitted. Explicit EPSG codes,
|
|
13
|
+
* ellipsoidal names and unrecognized text stay as authored. The authored datum's own offset from EGM2008
|
|
14
|
+
* (typically decimetres) remains; heights themselves are never rewritten.
|
|
15
|
+
*/
|
|
16
|
+
export declare function normalizeVerticalDatumToEgm2008(pass: ExportPass): void;
|
|
17
|
+
//# sourceMappingURL=step-vertical-datum-normalization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-vertical-datum-normalization.d.ts","sourceRoot":"","sources":["../src/step-vertical-datum-normalization.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AASzD,qFAAqF;AACrF,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAO3E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAgBtE"}
|