@bldrs-ai/conway 0.7.766 → 0.8.782
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/README.md +30 -31
- package/compiled/dependencies/conway-geom/Dist/ConwayGeomWasmNode.js +1 -1
- package/compiled/dependencies/conway-geom/Dist/ConwayGeomWasmWeb.js +1 -1
- package/compiled/dependencies/conway-geom/interface/conway_geometry.d.ts +19 -0
- package/compiled/dependencies/conway-geom/interface/conway_geometry.d.ts.map +1 -1
- package/compiled/dependencies/conway-geom/interface/conway_geometry.js +31 -0
- package/compiled/dependencies/conway-geom/interface/geometry_object.d.ts +4 -0
- package/compiled/dependencies/conway-geom/interface/geometry_object.d.ts.map +1 -1
- package/compiled/dependencies/conway-geom/interface/parameters/params_get_boolean_result.d.ts +1 -0
- package/compiled/dependencies/conway-geom/interface/parameters/params_get_boolean_result.d.ts.map +1 -1
- package/compiled/dependencies/conway-geom/interface/parse_buffer.d.ts +11 -0
- package/compiled/dependencies/conway-geom/interface/parse_buffer.d.ts.map +1 -0
- package/compiled/dependencies/conway-geom/interface/parse_buffer.js +1 -0
- package/compiled/src/AP214E3_2010/ap214_command_line_main.js +11 -13
- package/compiled/src/AP214E3_2010/ap214_geometry_extraction.js +0 -1
- package/compiled/src/AP214E3_2010/ap214_geometry_extraction.test.js +15 -13
- package/compiled/src/AP214E3_2010/ap214_step_model.d.ts.map +1 -1
- package/compiled/src/AP214E3_2010/ap214_step_model.test.js +12 -1
- package/compiled/src/AP214E3_2010/ap214_step_parser.d.ts.map +1 -1
- package/compiled/src/core/canonical_mesh.d.ts +1 -1
- package/compiled/src/core/canonical_mesh.d.ts.map +1 -1
- package/compiled/src/core/geometry_aggregator.test.js +7 -7
- package/compiled/src/core/packed_mesh.test.js +4 -4
- package/compiled/src/ifc/ifc_command_line_main.js +17 -16
- package/compiled/src/ifc/ifc_geometry_extraction.d.ts +6 -4
- package/compiled/src/ifc/ifc_geometry_extraction.d.ts.map +1 -1
- package/compiled/src/ifc/ifc_geometry_extraction.js +107 -102
- package/compiled/src/ifc/ifc_geometry_extraction.test.js +4 -4
- package/compiled/src/ifc/ifc_model_geometry.d.ts +4 -0
- package/compiled/src/ifc/ifc_model_geometry.d.ts.map +1 -1
- package/compiled/src/ifc/ifc_model_geometry.js +13 -0
- package/compiled/src/ifc/ifc_property_extraction.test.js +12 -1
- package/compiled/src/ifc/ifc_regression_main.js +5 -3
- package/compiled/src/ifc/ifc_scene_builder.test.js +11 -8
- package/compiled/src/ifc/ifc_step_model.d.ts +1 -0
- package/compiled/src/ifc/ifc_step_model.d.ts.map +1 -1
- package/compiled/src/ifc/ifc_step_model.js +1 -0
- package/compiled/src/ifc/ifc_step_model.test.js +12 -1
- package/compiled/src/ifc/ifc_step_parser.d.ts +1 -0
- package/compiled/src/ifc/ifc_step_parser.d.ts.map +1 -1
- package/compiled/src/ifc/ifc_step_parser.js +1 -0
- package/compiled/src/step/parsing/step_deserialization_functions.d.ts +1 -1
- package/compiled/src/step/parsing/step_deserialization_functions.d.ts.map +1 -1
- package/compiled/src/step/parsing/step_deserialization_functions.js +1 -1
- package/compiled/src/step/parsing/step_parser.d.ts +1 -1
- package/compiled/src/step/parsing/step_parser.d.ts.map +1 -1
- package/compiled/src/step/parsing/step_parser.js +3 -3
- package/compiled/src/step/parsing/step_vtable_builder.d.ts +4 -3
- package/compiled/src/step/parsing/step_vtable_builder.d.ts.map +1 -1
- package/compiled/src/step/parsing/step_vtable_builder.js +5 -4
- package/compiled/src/step/step_entity_base.d.ts +27 -2
- package/compiled/src/step/step_entity_base.d.ts.map +1 -1
- package/compiled/src/step/step_entity_base.js +77 -15
- package/compiled/src/step/step_entity_internal_reference.d.ts +1 -0
- package/compiled/src/step/step_entity_internal_reference.d.ts.map +1 -1
- package/compiled/src/step/step_external_mapping.test.js +12 -1
- package/compiled/src/step/step_model_base.d.ts.map +1 -1
- package/compiled/src/step/step_model_base.js +1 -0
- package/compiled/src/version/version.js +1 -1
- package/compiled/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -1
- package/compiled/src/examples/browser.d.ts +0 -3
- package/compiled/src/examples/browser.d.ts.map +0 -1
- package/compiled/src/examples/browser.js +0 -388
- package/compiled/src/examples/validator.d.ts +0 -8
- package/compiled/src/examples/validator.d.ts.map +0 -1
- package/compiled/src/examples/validator.js +0 -378
|
@@ -20,6 +20,7 @@ export default class IfcStepParser extends StepParser<EntityTypesIfc> {
|
|
|
20
20
|
/**
|
|
21
21
|
* Parse data to the model
|
|
22
22
|
*
|
|
23
|
+
* @param wasmModule A conway-geom wasm module environnment for this.
|
|
23
24
|
* @param input The parsing buffer, set to user data, to read.
|
|
24
25
|
* @return {[ParseResult, IfcStepModel | undefined]} The parse result as well as the model,
|
|
25
26
|
* if it can be extracted.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ifc_step_parser.d.ts","sourceRoot":"","sources":["../../../src/ifc/ifc_step_parser.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,2BAA2B,CAAA;AACrD,OAAO,UAAU,EAAE,EAAC,WAAW,EAAC,MAAM,6BAA6B,CAAA;AACnE,OAAO,cAAc,MAAM,iCAAiC,CAAA;AAE5D,OAAO,YAAY,MAAM,kBAAkB,CAAA;AAE3C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,UAAU,CAAE,cAAc,CAAE;IACrE;;OAEG;;IAKH;;;;;OAKG;IACH,gBAAuB,QAAQ,gBAAsB;IAErD
|
|
1
|
+
{"version":3,"file":"ifc_step_parser.d.ts","sourceRoot":"","sources":["../../../src/ifc/ifc_step_parser.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,2BAA2B,CAAA;AACrD,OAAO,UAAU,EAAE,EAAC,WAAW,EAAC,MAAM,6BAA6B,CAAA;AACnE,OAAO,cAAc,MAAM,iCAAiC,CAAA;AAE5D,OAAO,YAAY,MAAM,kBAAkB,CAAA;AAE3C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,UAAU,CAAE,cAAc,CAAE;IACrE;;OAEG;;IAKH;;;;;OAKG;IACH,gBAAuB,QAAQ,gBAAsB;IAErD;;;;;;;OAOG;IACI,gBAAgB,CACnB,KAAK,EAAE,aAAa,GAAI,CAAC,WAAW,EAAE,YAAY,GAAG,SAAS,CAAC;CAKpE"}
|
|
@@ -14,6 +14,7 @@ export default class IfcStepParser extends StepParser {
|
|
|
14
14
|
/**
|
|
15
15
|
* Parse data to the model
|
|
16
16
|
*
|
|
17
|
+
* @param wasmModule A conway-geom wasm module environnment for this.
|
|
17
18
|
* @param input The parsing buffer, set to user data, to read.
|
|
18
19
|
* @return {[ParseResult, IfcStepModel | undefined]} The parse result as well as the model,
|
|
19
20
|
* if it can be extracted.
|
|
@@ -89,7 +89,7 @@ export declare function stepExtractArrayBegin(buffer: Uint8Array, cursor: number
|
|
|
89
89
|
* @param endCursor The last position accessible for this read in the buffer.
|
|
90
90
|
* @return {number} Returns a negative number on termination/error
|
|
91
91
|
* matching the values in IncermentalParseEndState, or the new cursor
|
|
92
|
-
* if there is a value in .
|
|
92
|
+
* if there is a value in the token.
|
|
93
93
|
*/
|
|
94
94
|
export declare function stepExtractArrayToken(buffer: Uint8Array, cursor: number, endCursor: number): number;
|
|
95
95
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step_deserialization_functions.d.ts","sourceRoot":"","sources":["../../../../src/step/parsing/step_deserialization_functions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"step_deserialization_functions.d.ts","sourceRoot":"","sources":["../../../../src/step/parsing/step_deserialization_functions.ts"],"names":[],"mappings":"AAiCA;;;;;;GAMG;AACH,wBAAgB,GAAG,CAAE,CAAC,EAAI,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,EAAE,YAAY,EAAE,CAAC,GAAI,CAAC,CAE9E;AAGD;;;;;GAKG;AACH,wBAAgB,OAAO,CAAE,CAAC,EAAI,SAAS,EAAE,CAAC,EAAE,GAAG,IAAI,GAAG,SAAS,GAAI,MAAM,CAExE;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAE,CAAC,EAAI,SAAS,EAAE,CAAC,EAAE,GAAG,IAAI,GAAG,SAAS,GAAI,MAAM,CAEvE;AAGD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAC/B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAUvC;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC7B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAI,MAAM,GAAG,SAAS,CAM1C;AAGD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAC9B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAI,OAAO,GAAG,IAAI,GAAG,SAAS,CAwBlD;AAGD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAC9B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAI,OAAO,GAAG,SAAS,CAgB3C;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CACrB,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAK,MAAM,CA2E/B;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACjC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAI,MAAM,CA0B9B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACjC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAI,MAAM,CA0C9B;AAED;;;;;;;;;GASG;AACH,wBAAiB,gBAAgB,CAC7B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAI,gBAAgB,CAAE,MAAM,CAAE,CAkGlD;AAGD;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACtC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAI,MAAM,GAAG,SAAS,CA4C1C;AAID;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAChC,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAK,MAAM,GAAG,SAAS,CAsC3C;AAED,QAAA,MAAM,eAAe,8JAAkC,CAAA;AAEvD,OAAO,EAAE,eAAe,EAAE,CAAA;AAE1B,QAAA,MAAM,iBAAiB,iGAAoC,CAAA;AAE3D,OAAO,EAAE,iBAAiB,EAAE,CAAA;AAE5B,QAAA,MAAM,iBAAiB,4FAAiC,CAAA;AAExD,OAAO,EAAE,iBAAiB,EAAE,CAAA"}
|
|
@@ -233,7 +233,7 @@ export function stepExtractArrayBegin(buffer, cursor, endCursor) {
|
|
|
233
233
|
* @param endCursor The last position accessible for this read in the buffer.
|
|
234
234
|
* @return {number} Returns a negative number on termination/error
|
|
235
235
|
* matching the values in IncermentalParseEndState, or the new cursor
|
|
236
|
-
* if there is a value in .
|
|
236
|
+
* if there is a value in the token.
|
|
237
237
|
*/
|
|
238
238
|
export function stepExtractArrayToken(buffer, cursor, endCursor) {
|
|
239
239
|
let previousCursor;
|
|
@@ -82,7 +82,7 @@ export default class StepParser<TypeIDType> extends StepHeaderParser {
|
|
|
82
82
|
* @return {[IndexMark, number] | undefined} The vtable slice or undefined if it's not
|
|
83
83
|
* defined due to an error.
|
|
84
84
|
*/
|
|
85
|
-
extractDataEntry(input: Uint8Array, cursor: number, endCursor: number, vtableBuilder: StepVtableBuilder): [IndexMark, number] | undefined;
|
|
85
|
+
extractDataEntry(input: Uint8Array, cursor: number, endCursor: number, vtableBuilder: StepVtableBuilder): [IndexMark, number, number] | undefined;
|
|
86
86
|
/**
|
|
87
87
|
* Parse the data block of a step file, indexing it.,
|
|
88
88
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step_parser.d.ts","sourceRoot":"","sources":["../../../../src/step/parsing/step_parser.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,2BAA2B,CAAA;AAEjD,OAAO,aAAa,MAAM,8BAA8B,CAAA;AAaxD,OAAO,iBAAiB,EAAE,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAGpE,MAAM,WAAW,kBAAkB,CAAC,UAAU;IAE5C,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAA;CACpD;AAED,MAAM,WAAW,oBAAoB,CAAC,UAAU,CAAE,SAAQ,kBAAkB,CAAC,UAAU,CAAC;IAEtF,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED,MAAM,WAAW,cAAc,CAAC,UAAU,CAAE,SAAQ,kBAAkB,CAAC,UAAU,CAAC;IAEhF,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,SAAS,CAAC,UAAU;IAEnC,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,EAAE,CAAA;CAEvC;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,GAAG,CAAA;CACX;AAID;;GAEG;AAGH,oBAAY,WAAW;IAErB,QAAQ,IAAI;IACZ,UAAU,IAAI;IACd,YAAY,IAAI;IAChB,YAAY,IAAI;IAChB,YAAY,IAAI;CACjB;AAyBD,MAAM,MAAM,gBAAgB,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,CAAA;AAC/E,MAAM,MAAM,uBAAuB,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,CAAA;AAEtF,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC7B;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;AAIzD;;GAEG;AACH,qBAAa,gBAAgB;IAE3B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAkB;IAE3C;;;;OAIG;IACH,WAAkB,QAAQ,IAAI,gBAAgB,CAQ7C;IAED;;;;;OAKG;IACI,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,iBAAiB;CA0L5D;AACD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU,CAAC,UAAU,CAAE,SAAQ,gBAAgB;IAQtD,OAAO,CAAC,QAAQ,CAAC,MAAM;IANnC;;;;;OAKG;gBAC0B,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAKpE;;;;;;;;;;;;;OAaG;IACI,gBAAgB,CACnB,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,iBAAiB,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,SAAS;IA+
|
|
1
|
+
{"version":3,"file":"step_parser.d.ts","sourceRoot":"","sources":["../../../../src/step/parsing/step_parser.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,2BAA2B,CAAA;AAEjD,OAAO,aAAa,MAAM,8BAA8B,CAAA;AAaxD,OAAO,iBAAiB,EAAE,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAGpE,MAAM,WAAW,kBAAkB,CAAC,UAAU;IAE5C,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAA;CACpD;AAED,MAAM,WAAW,oBAAoB,CAAC,UAAU,CAAE,SAAQ,kBAAkB,CAAC,UAAU,CAAC;IAEtF,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED,MAAM,WAAW,cAAc,CAAC,UAAU,CAAE,SAAQ,kBAAkB,CAAC,UAAU,CAAC;IAEhF,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,SAAS,CAAC,UAAU;IAEnC,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,EAAE,CAAA;CAEvC;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,GAAG,CAAA;CACX;AAID;;GAEG;AAGH,oBAAY,WAAW;IAErB,QAAQ,IAAI;IACZ,UAAU,IAAI;IACd,YAAY,IAAI;IAChB,YAAY,IAAI;IAChB,YAAY,IAAI;CACjB;AAyBD,MAAM,MAAM,gBAAgB,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,CAAA;AAC/E,MAAM,MAAM,uBAAuB,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,CAAA;AAEtF,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC7B;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;AAIzD;;GAEG;AACH,qBAAa,gBAAgB;IAE3B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAkB;IAE3C;;;;OAIG;IACH,WAAkB,QAAQ,IAAI,gBAAgB,CAQ7C;IAED;;;;;OAKG;IACI,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,iBAAiB;CA0L5D;AACD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU,CAAC,UAAU,CAAE,SAAQ,gBAAgB;IAQtD,OAAO,CAAC,QAAQ,CAAC,MAAM;IANnC;;;;;OAKG;gBAC0B,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAKpE;;;;;;;;;;;;;OAaG;IACI,gBAAgB,CACnB,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,iBAAiB,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS;IA+D9E;;;;;OAKG;IACI,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,gBAAgB,CAAC,UAAU,CAAC;IA2XzE;;;;;;OAMG;IACI,gBAAgB,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC;CAiarF"}
|
|
@@ -238,7 +238,7 @@ export default class StepParser extends StepHeaderParser {
|
|
|
238
238
|
}
|
|
239
239
|
if (cursor === endCursor) {
|
|
240
240
|
if (stackDepth === 1) {
|
|
241
|
-
return vtableBuilder.complete();
|
|
241
|
+
return vtableBuilder.complete(cursor);
|
|
242
242
|
}
|
|
243
243
|
else {
|
|
244
244
|
return;
|
|
@@ -267,7 +267,7 @@ export default class StepParser extends StepHeaderParser {
|
|
|
267
267
|
break;
|
|
268
268
|
}
|
|
269
269
|
else if (readChar === SEMICOLON) {
|
|
270
|
-
return vtableBuilder.complete();
|
|
270
|
+
return vtableBuilder.complete(cursor - 1);
|
|
271
271
|
// Will effectively terminate if this is the end of the entity,
|
|
272
272
|
// or simply end the inline entity/container case otherwise.
|
|
273
273
|
}
|
|
@@ -281,7 +281,7 @@ export default class StepParser extends StepHeaderParser {
|
|
|
281
281
|
}
|
|
282
282
|
}
|
|
283
283
|
}
|
|
284
|
-
return vtableBuilder.complete();
|
|
284
|
+
return vtableBuilder.complete(cursor);
|
|
285
285
|
}
|
|
286
286
|
/**
|
|
287
287
|
* Parse the data block of a step file, indexing it.,
|
|
@@ -37,9 +37,10 @@ export default class StepVtableBuilder {
|
|
|
37
37
|
* Complete a row of vtable entries in the buffer, returning the index mark of the vtable run +
|
|
38
38
|
* the number of entries.
|
|
39
39
|
*
|
|
40
|
-
* @return {[IndexMark, number]} The index mark (i.e. location in the buffer this run
|
|
41
|
-
*
|
|
40
|
+
* @return {[IndexMark, number, number]} The index mark (i.e. location in the buffer this run
|
|
41
|
+
* exists),
|
|
42
|
+
* the number of entries, and the last cursor position.
|
|
42
43
|
*/
|
|
43
|
-
complete(): [IndexMark, number];
|
|
44
|
+
complete(endCursor: number): [IndexMark, number, number];
|
|
44
45
|
}
|
|
45
46
|
//# sourceMappingURL=step_vtable_builder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step_vtable_builder.d.ts","sourceRoot":"","sources":["../../../../src/step/parsing/step_vtable_builder.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAE/B;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,UAAU,CAAQ;IAE1B;;;;;OAKG;IACH,IAAW,MAAM,IAAI,WAAW,CAE/B;IAED;;;;OAIG;gBACU,kBAAkB,GAAE,MAAW;IAM5C;;;;;OAKG;IACI,KAAK,CAAE,UAAU,GAAE,OAAe,GAAI,IAAI;IAWjD;;;;OAIG;IACI,IAAI,CAAE,OAAO,EAAE,MAAM,GAAK,IAAI;IAcrC
|
|
1
|
+
{"version":3,"file":"step_vtable_builder.d.ts","sourceRoot":"","sources":["../../../../src/step/parsing/step_vtable_builder.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAE/B;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,UAAU,CAAQ;IAE1B;;;;;OAKG;IACH,IAAW,MAAM,IAAI,WAAW,CAE/B;IAED;;;;OAIG;gBACU,kBAAkB,GAAE,MAAW;IAM5C;;;;;OAKG;IACI,KAAK,CAAE,UAAU,GAAE,OAAe,GAAI,IAAI;IAWjD;;;;OAIG;IACI,IAAI,CAAE,OAAO,EAAE,MAAM,GAAK,IAAI;IAcrC;;;;;;;OAOG;IACI,QAAQ,CAAE,SAAS,EAAE,MAAM,GAAI,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;CAOlE"}
|
|
@@ -55,12 +55,13 @@ export default class StepVtableBuilder {
|
|
|
55
55
|
* Complete a row of vtable entries in the buffer, returning the index mark of the vtable run +
|
|
56
56
|
* the number of entries.
|
|
57
57
|
*
|
|
58
|
-
* @return {[IndexMark, number]} The index mark (i.e. location in the buffer this run
|
|
59
|
-
*
|
|
58
|
+
* @return {[IndexMark, number, number]} The index mark (i.e. location in the buffer this run
|
|
59
|
+
* exists),
|
|
60
|
+
* the number of entries, and the last cursor position.
|
|
60
61
|
*/
|
|
61
|
-
complete() {
|
|
62
|
+
complete(endCursor) {
|
|
62
63
|
const indexMark = this.indexMark_;
|
|
63
64
|
this.indexMark_ = this.bufferMark_;
|
|
64
|
-
return [indexMark, this.indexMark_ - indexMark];
|
|
65
|
+
return [indexMark, this.indexMark_ - indexMark, endCursor];
|
|
65
66
|
}
|
|
66
67
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ParseBuffer } from '../../dependencies/conway-geom/interface/parse_buffer';
|
|
1
2
|
import { Entity } from '../core/entity';
|
|
2
3
|
import { EntityDescription, EntityFieldsDescription } from '../core/entity_description';
|
|
3
4
|
import { EntityFieldDescription } from '../core/entity_field_description';
|
|
@@ -84,8 +85,8 @@ export default abstract class StepEntityBase<EntityTypeIDs extends number> imple
|
|
|
84
85
|
* @param optional Whether this is a potentially optional field
|
|
85
86
|
* @return {number | null | undefined} The extracted number.
|
|
86
87
|
*/
|
|
87
|
-
extractNumber(
|
|
88
|
-
extractNumber(
|
|
88
|
+
extractNumber(vtableOffset: number, optional: true): number | null;
|
|
89
|
+
extractNumber(vtableOffset: number, optional: false): number;
|
|
89
90
|
/**
|
|
90
91
|
* Extract a string at the particular vtable offset (i.e. the position
|
|
91
92
|
* in the matching step object).
|
|
@@ -247,6 +248,15 @@ export default abstract class StepEntityBase<EntityTypeIDs extends number> imple
|
|
|
247
248
|
* Make it so this particular object is not held in the cache.
|
|
248
249
|
*/
|
|
249
250
|
invalidate(): void;
|
|
251
|
+
/**
|
|
252
|
+
* Extract a parse buffer at a particular vtable offset.
|
|
253
|
+
*
|
|
254
|
+
* @param offset
|
|
255
|
+
* @param buffer
|
|
256
|
+
* @param optional
|
|
257
|
+
* @return {boolean} True if this extracts, false (usually because this is optional)
|
|
258
|
+
*/
|
|
259
|
+
extractParseBuffer(offset: number, result: ParseBuffer, nativeBuffer: Uint8Array, optional: boolean): boolean;
|
|
250
260
|
/**
|
|
251
261
|
* Extract a number at the particular vtable offset (i.e. the position
|
|
252
262
|
* in the matching step object).
|
|
@@ -279,6 +289,14 @@ export default abstract class StepEntityBase<EntityTypeIDs extends number> imple
|
|
|
279
289
|
* @return {Uint8Array} The buffer for this.
|
|
280
290
|
*/
|
|
281
291
|
protected get buffer(): Uint8Array;
|
|
292
|
+
/**
|
|
293
|
+
* Get both the buffer offset and end cursor for
|
|
294
|
+
* a particular vtable offset.
|
|
295
|
+
*
|
|
296
|
+
* @param vtableOffset The vtable offset to get the cursor/endcursor for.
|
|
297
|
+
* @return {[number,number]} The cursor and end cursor in the read buffer.
|
|
298
|
+
*/
|
|
299
|
+
protected getOffsetAndEndCursor(vtableOffset: number): [number, number];
|
|
282
300
|
/**
|
|
283
301
|
* Get the buffer cursor for a particular offset.
|
|
284
302
|
*
|
|
@@ -286,6 +304,13 @@ export default abstract class StepEntityBase<EntityTypeIDs extends number> imple
|
|
|
286
304
|
* @return {number} The cursor.
|
|
287
305
|
*/
|
|
288
306
|
protected getOffsetCursor(offset: number): number;
|
|
307
|
+
/**
|
|
308
|
+
* Get the buffer cursor for a particular offset.
|
|
309
|
+
*
|
|
310
|
+
* @param offset The offset in the v-table.
|
|
311
|
+
* @return {number} The cursor.
|
|
312
|
+
*/
|
|
313
|
+
protected getEndCursor(offset: number): number;
|
|
289
314
|
/**
|
|
290
315
|
* Construct this with the local ID, internal reference and
|
|
291
316
|
* the model.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step_entity_base.d.ts","sourceRoot":"","sources":["../../../src/step/step_entity_base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AACvF,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AAYzE,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAA;AACzE,OAAO,2BAC+B,MAAM,kCAAkC,CAAA;AAC9E,OAAO,aAAa,MAAM,mBAAmB,CAAA;AAG7C,aAAK,YAAY;IACf,OAAO,IAAI;IACX,MAAM,IAAA;IACN,KAAK,IAAA;IACL,IAAI,IAAA;IACJ,IAAI,IAAA;IACJ,GAAG,IAAA;IACH,KAAK,IAAA;IACL,SAAS,IAAA;IACT,OAAO,IAAA;IACP,QAAQ,IAAA;CACT;AA0BD;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,cAAc,CAAC,aAAa,SAAS,MAAM,CAAE,YAAW,MAAM;
|
|
1
|
+
{"version":3,"file":"step_entity_base.d.ts","sourceRoot":"","sources":["../../../src/step/step_entity_base.ts"],"names":[],"mappings":"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"}
|
|
@@ -116,15 +116,16 @@ export default class StepEntityBase {
|
|
|
116
116
|
return `#${this.expressID ?? `inline(${this.localID})`}`;
|
|
117
117
|
}
|
|
118
118
|
// eslint-disable-next-line no-dupe-class-members, require-jsdoc
|
|
119
|
-
extractNumber(
|
|
120
|
-
|
|
119
|
+
extractNumber(vtableOffset, optional) {
|
|
120
|
+
this.guaranteeVTable();
|
|
121
|
+
const [cursor, endCursor] = this.getOffsetAndEndCursor(vtableOffset);
|
|
121
122
|
const buffer = this.buffer;
|
|
122
|
-
const endCursor = buffer.length;
|
|
123
123
|
const value = stepExtractNumber(buffer, cursor, endCursor);
|
|
124
124
|
if (value === void 0) {
|
|
125
125
|
if (!optional) {
|
|
126
126
|
throw new Error('Value in STEP was incorrectly typed');
|
|
127
127
|
}
|
|
128
|
+
const buffer = this.buffer;
|
|
128
129
|
if (!this.model.nullOnErrors && stepExtractOptional(buffer, cursor, endCursor) !== null) {
|
|
129
130
|
throw new Error('Value in STEP was incorrectly typed');
|
|
130
131
|
}
|
|
@@ -134,9 +135,8 @@ export default class StepEntityBase {
|
|
|
134
135
|
}
|
|
135
136
|
// eslint-disable-next-line no-dupe-class-members, require-jsdoc
|
|
136
137
|
extractString(offset, optional) {
|
|
137
|
-
const cursor = this.
|
|
138
|
+
const [cursor, endCursor] = this.getOffsetAndEndCursor(offset);
|
|
138
139
|
const buffer = this.buffer;
|
|
139
|
-
const endCursor = buffer.length;
|
|
140
140
|
const value = stepExtractString(buffer, cursor, endCursor);
|
|
141
141
|
if (value === void 0) {
|
|
142
142
|
if (!optional) {
|
|
@@ -151,9 +151,8 @@ export default class StepEntityBase {
|
|
|
151
151
|
}
|
|
152
152
|
// eslint-disable-next-line no-dupe-class-members, require-jsdoc
|
|
153
153
|
extractLogical(offset, optional) {
|
|
154
|
-
const cursor = this.
|
|
154
|
+
const [cursor, endCursor] = this.getOffsetAndEndCursor(offset);
|
|
155
155
|
const buffer = this.buffer;
|
|
156
|
-
const endCursor = buffer.length;
|
|
157
156
|
const value = stepExtractLogical(buffer, cursor, endCursor);
|
|
158
157
|
if (value === void 0) {
|
|
159
158
|
if (!optional) {
|
|
@@ -290,9 +289,8 @@ export default class StepEntityBase {
|
|
|
290
289
|
*/
|
|
291
290
|
// eslint-disable-next-line no-dupe-class-members, require-jsdoc
|
|
292
291
|
extractLambda(offset, extractor, optional) {
|
|
293
|
-
const cursor = this.
|
|
292
|
+
const [cursor, endCursor] = this.getOffsetAndEndCursor(offset);
|
|
294
293
|
const buffer = this.buffer;
|
|
295
|
-
const endCursor = buffer.length;
|
|
296
294
|
const value = extractor(buffer, cursor, endCursor);
|
|
297
295
|
if (value === void 0) {
|
|
298
296
|
if (!optional) {
|
|
@@ -319,9 +317,8 @@ export default class StepEntityBase {
|
|
|
319
317
|
*/
|
|
320
318
|
// eslint-disable-next-line no-dupe-class-members, require-jsdoc
|
|
321
319
|
extractElement(offset, optional, entityConstructor) {
|
|
322
|
-
const cursor = this.
|
|
320
|
+
const [cursor, endCursor] = this.getOffsetAndEndCursor(offset);
|
|
323
321
|
const buffer = this.buffer;
|
|
324
|
-
const endCursor = buffer.length;
|
|
325
322
|
const model = this.model;
|
|
326
323
|
const expressID = stepExtractReference(buffer, cursor, endCursor);
|
|
327
324
|
const value = expressID !== void 0 ? model.getElementByExpressID(expressID) :
|
|
@@ -369,9 +366,8 @@ export default class StepEntityBase {
|
|
|
369
366
|
}
|
|
370
367
|
// eslint-disable-next-line no-dupe-class-members, require-jsdoc
|
|
371
368
|
extractBinary(vtableOffset, optional) {
|
|
372
|
-
const cursor = this.
|
|
369
|
+
const [cursor, endCursor] = this.getOffsetAndEndCursor(vtableOffset);
|
|
373
370
|
const buffer = this.buffer;
|
|
374
|
-
const endCursor = buffer.length;
|
|
375
371
|
const value = stepExtractBinary(buffer, cursor, endCursor);
|
|
376
372
|
if (value === void 0) {
|
|
377
373
|
if (!optional) {
|
|
@@ -391,6 +387,34 @@ export default class StepEntityBase {
|
|
|
391
387
|
this.internalReference_.entity =
|
|
392
388
|
void 0;
|
|
393
389
|
}
|
|
390
|
+
/**
|
|
391
|
+
* Extract a parse buffer at a particular vtable offset.
|
|
392
|
+
*
|
|
393
|
+
* @param offset
|
|
394
|
+
* @param buffer
|
|
395
|
+
* @param optional
|
|
396
|
+
* @return {boolean} True if this extracts, false (usually because this is optional)
|
|
397
|
+
*/
|
|
398
|
+
extractParseBuffer(offset, result, nativeBuffer, optional) {
|
|
399
|
+
this.guaranteeVTable();
|
|
400
|
+
const internalReference = this.internalReference_;
|
|
401
|
+
if (offset >= internalReference.vtableCount) {
|
|
402
|
+
throw new Error('Couldn\'t read field due to too few fields in record');
|
|
403
|
+
}
|
|
404
|
+
const buffer = this.buffer;
|
|
405
|
+
const vtableSlot = internalReference.vtableIndex + offset;
|
|
406
|
+
const cursor = internalReference.vtable[vtableSlot];
|
|
407
|
+
const nextSlot = vtableSlot + 1;
|
|
408
|
+
const endCursor = nextSlot < internalReference.vtableCount ?
|
|
409
|
+
(internalReference.vtable[nextSlot] - 1) :
|
|
410
|
+
internalReference.endCursor;
|
|
411
|
+
if (optional && stepExtractOptional(buffer, cursor, endCursor) === null) {
|
|
412
|
+
return false;
|
|
413
|
+
}
|
|
414
|
+
const dataPtr = result.resize(endCursor - cursor);
|
|
415
|
+
nativeBuffer.set(buffer.subarray(cursor, endCursor), dataPtr);
|
|
416
|
+
return true;
|
|
417
|
+
}
|
|
394
418
|
/**
|
|
395
419
|
* Extract a number at the particular vtable offset (i.e. the position
|
|
396
420
|
* in the matching step object).
|
|
@@ -405,9 +429,8 @@ export default class StepEntityBase {
|
|
|
405
429
|
*/
|
|
406
430
|
// eslint-disable-next-line no-dupe-class-members, require-jsdoc
|
|
407
431
|
extractBoolean(offset, optional) {
|
|
408
|
-
const cursor = this.
|
|
432
|
+
const [cursor, endCursor] = this.getOffsetAndEndCursor(offset);
|
|
409
433
|
const buffer = this.buffer;
|
|
410
|
-
const endCursor = buffer.length;
|
|
411
434
|
const value = stepExtractBoolean(buffer, cursor, endCursor);
|
|
412
435
|
if (value === void 0) {
|
|
413
436
|
if (!optional) {
|
|
@@ -429,6 +452,27 @@ export default class StepEntityBase {
|
|
|
429
452
|
get buffer() {
|
|
430
453
|
return this.internalReference_.buffer;
|
|
431
454
|
}
|
|
455
|
+
/**
|
|
456
|
+
* Get both the buffer offset and end cursor for
|
|
457
|
+
* a particular vtable offset.
|
|
458
|
+
*
|
|
459
|
+
* @param vtableOffset The vtable offset to get the cursor/endcursor for.
|
|
460
|
+
* @return {[number,number]} The cursor and end cursor in the read buffer.
|
|
461
|
+
*/
|
|
462
|
+
getOffsetAndEndCursor(vtableOffset) {
|
|
463
|
+
this.guaranteeVTable();
|
|
464
|
+
const internalReference = this.internalReference_;
|
|
465
|
+
if (vtableOffset >= internalReference.vtableCount) {
|
|
466
|
+
throw new Error('Couldn\'t read field due to too few fields in record');
|
|
467
|
+
}
|
|
468
|
+
const vtableSlot = internalReference.vtableIndex + vtableOffset;
|
|
469
|
+
return [
|
|
470
|
+
internalReference.vtable[vtableSlot],
|
|
471
|
+
((vtableOffset + 1) !== internalReference.vtableCount) ?
|
|
472
|
+
(internalReference.vtable[vtableSlot + 1] - 1) :
|
|
473
|
+
internalReference.endCursor,
|
|
474
|
+
];
|
|
475
|
+
}
|
|
432
476
|
/**
|
|
433
477
|
* Get the buffer cursor for a particular offset.
|
|
434
478
|
*
|
|
@@ -444,6 +488,24 @@ export default class StepEntityBase {
|
|
|
444
488
|
const vtableSlot = internalReference.vtableIndex + offset;
|
|
445
489
|
return internalReference.vtable[vtableSlot];
|
|
446
490
|
}
|
|
491
|
+
/**
|
|
492
|
+
* Get the buffer cursor for a particular offset.
|
|
493
|
+
*
|
|
494
|
+
* @param offset The offset in the v-table.
|
|
495
|
+
* @return {number} The cursor.
|
|
496
|
+
*/
|
|
497
|
+
getEndCursor(offset) {
|
|
498
|
+
const internalReference = this.internalReference_;
|
|
499
|
+
++offset;
|
|
500
|
+
if (offset === internalReference.vtableCount) {
|
|
501
|
+
return internalReference.endCursor;
|
|
502
|
+
}
|
|
503
|
+
if (offset > internalReference.vtableCount) {
|
|
504
|
+
throw new Error('Couldn\'t read field due to too few fields in record');
|
|
505
|
+
}
|
|
506
|
+
const vtableSlot = internalReference.vtableIndex + offset;
|
|
507
|
+
return internalReference.vtable[vtableSlot];
|
|
508
|
+
}
|
|
447
509
|
/**
|
|
448
510
|
* Construct this with the local ID, internal reference and
|
|
449
511
|
* the model.
|
|
@@ -8,6 +8,7 @@ import StepEntityBase from './step_entity_base';
|
|
|
8
8
|
export default interface StepEntityInternalReference<EntityTypeIDs extends number> extends StepIndexEntryBase<EntityTypeIDs> {
|
|
9
9
|
vtableIndex?: IndexMark;
|
|
10
10
|
vtableCount?: number;
|
|
11
|
+
endCursor?: number;
|
|
11
12
|
buffer?: Uint8Array;
|
|
12
13
|
vtable?: Uint32Array;
|
|
13
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step_entity_internal_reference.d.ts","sourceRoot":"","sources":["../../../src/step/step_entity_internal_reference.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAC,SAAS,EAAC,MAAM,+BAA+B,CAAA;AACvD,OAAO,cAAc,MAAM,oBAAoB,CAAA;AAE/C;;;GAGG;AACH,MAAM,CAAC,OAAO,WAAW,2BAA2B,CAAE,aAAa,SAAS,MAAM,CAAG,SACnF,kBAAkB,CAAE,aAAa,CAAE;IACnC,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,kCAAkC,CACjD,aAAa,SAAS,MAAM,EAC5B,UAAU,SAAS,cAAc,CAAE,aAAa,CAAE,CAAG,SACrD,2BAA2B,CAAE,aAAa,CAAE;IAC5C,MAAM,CAAC,EAAE,UAAU,CAAA;CACpB"}
|
|
1
|
+
{"version":3,"file":"step_entity_internal_reference.d.ts","sourceRoot":"","sources":["../../../src/step/step_entity_internal_reference.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAC,SAAS,EAAC,MAAM,+BAA+B,CAAA;AACvD,OAAO,cAAc,MAAM,oBAAoB,CAAA;AAE/C;;;GAGG;AACH,MAAM,CAAC,OAAO,WAAW,2BAA2B,CAAE,aAAa,SAAS,MAAM,CAAG,SACnF,kBAAkB,CAAE,aAAa,CAAE;IACnC,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,kCAAkC,CACjD,aAAa,SAAS,MAAM,EAC5B,UAAU,SAAS,cAAc,CAAE,aAAa,CAAE,CAAG,SACrD,2BAA2B,CAAE,aAAa,CAAE;IAC5C,MAAM,CAAC,EAAE,UAAU,CAAA;CACpB"}
|
|
@@ -1,15 +1,23 @@
|
|
|
1
1
|
/* eslint-disable camelcase */
|
|
2
|
-
import { describe, expect, test } from '@jest/globals';
|
|
2
|
+
import { beforeAll, describe, expect, test } from '@jest/globals';
|
|
3
3
|
import AP214StepExternalMapping from '../AP214E3_2010/ap214_step_external_mapping';
|
|
4
4
|
import AP214StepParser from '../AP214E3_2010/ap214_step_parser';
|
|
5
5
|
import ParsingBuffer from '../parsing/parsing_buffer';
|
|
6
6
|
import { ParseResult } from './parsing/step_parser';
|
|
7
7
|
import { geometric_representation_context, parametric_representation_context, representation_context, } from '../AP214E3_2010/AP214E3_2010_gen';
|
|
8
|
+
import { ConwayGeometry } from '../../dependencies/conway-geom';
|
|
8
9
|
const parser = AP214StepParser.Instance;
|
|
9
10
|
// eslint-disable-next-line max-len
|
|
10
11
|
const externalMappingString = '#42 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT(\'2D SPACE\',\'\' ) );';
|
|
11
12
|
const externalMappingStringBuffer = new TextEncoder().encode(externalMappingString);
|
|
12
13
|
const EXTERNAL_REFERENCE_EXPRESS_ID = 42;
|
|
14
|
+
const conwayGeometry = new ConwayGeometry();
|
|
15
|
+
/**
|
|
16
|
+
* Intialize conway geom.
|
|
17
|
+
*/
|
|
18
|
+
async function initializeConwayGeom() {
|
|
19
|
+
await conwayGeometry.initialize();
|
|
20
|
+
}
|
|
13
21
|
/**
|
|
14
22
|
* Test for extracting an external mapping.
|
|
15
23
|
*
|
|
@@ -38,6 +46,9 @@ function extractExternalMapping() {
|
|
|
38
46
|
return true;
|
|
39
47
|
}
|
|
40
48
|
describe('External Mapping Test', () => {
|
|
49
|
+
beforeAll(async () => {
|
|
50
|
+
await initializeConwayGeom();
|
|
51
|
+
});
|
|
41
52
|
test('extractExternalMapping()', () => {
|
|
42
53
|
expect(extractExternalMapping()).toBe(true);
|
|
43
54
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step_model_base.d.ts","sourceRoot":"","sources":["../../../src/step/step_model_base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD,OAAO,cAAc,MAAM,oBAAoB,CAAA;AAC/C,OAAO,gBAAgB,MAAM,sBAAsB,CAAA;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAE5D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,qBAAqB,EAAE,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAA;AAChG,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AAKlE;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,aAAa,CACzC,aAAa,SAAS,MAAM,EAC5B,UAAU,SAAS,cAAc,CAAC,aAAa,CAAC,GAAG,cAAc,CAAC,aAAa,CAAC,CAClF,YAAW,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK;aAkClB,MAAM,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"step_model_base.d.ts","sourceRoot":"","sources":["../../../src/step/step_model_base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD,OAAO,cAAc,MAAM,oBAAoB,CAAA;AAC/C,OAAO,gBAAgB,MAAM,sBAAsB,CAAA;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAE5D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,qBAAqB,EAAE,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAA;AAChG,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AAKlE;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,aAAa,CACzC,aAAa,SAAS,MAAM,EAC5B,UAAU,SAAS,cAAc,CAAC,aAAa,CAAC,GAAG,cAAc,CAAC,aAAa,CAAC,CAClF,YAAW,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK;aAkClB,MAAM,EAAE,gBAAgB,CAAE,aAAa,EAAE,UAAU,CAAE;IACrE,OAAO,CAAC,QAAQ,CAAC,OAAO;IAlC1B,kBAAyB,SAAS,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IAChE,kBAAyB,mBAAmB,EAAE,qBAAqB,CAAE,aAAa,EAAE,UAAU,CAAE,CAAA;IAEhG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAC5E,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4B;IAC1D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA4B;IAC9D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiE;IAE/F;;;;;;;OAOG;IACI,kBAAkB,EAAE,OAAO,CAAO;IAEzC;;;OAGG;IACI,YAAY,EAAE,OAAO,CAAO;IAEnC;;;;;;;OAOG;gBAEe,MAAM,EAAE,gBAAgB,CAAE,aAAa,EAAE,UAAU,CAAE,EACpD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,CAAC,aAAa,CAAC,EAAE;IA+ErF;;;;;OAKG;IACI,UAAU,CAAE,UAAU,GAAE,OAAe,GAAI,IAAI;IAuBtD;;;;;;;OAOG;IACI,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAgCpD;;;;;OAKG;IACI,mBAAmB,CAAE,OAAO,EAAE,MAAM,GAAI,IAAI;IAUnD;;;;OAIG;IACH,IAAW,cAAc,IAAI,MAAM,CAElC;IAGD;;;;OAIG;IACH,IAAW,IAAI,IAAI,MAAM,CAExB;IAED;;;;;;OAMG;IACI,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS;IAcrF;;;;;;OAMG;IACI,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAUvE;;;;OAIG;IACI,uBAAuB,CAAE,IAAI,EAAE,mBAAmB,GAAI,WAAW;IAOxE;;;;;;OAMG;IACI,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAQjE;;;;;;;OAOG;IACI,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAiCnE;;;;;;;OAOG;IACI,KAAK,CAAC,CAAC,SAAS,6BAA6B,CAAC,aAAa,CAAC,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,GAChF,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAS3C;;;;OAIG;IACI,eAAe,IAAK,GAAG,CAAE,aAAa,CAAE;IAO/C;;;;OAIG;IACI,wBAAwB,IAAK,gBAAgB,CAAE,aAAa,CAAE;IAKrE;;;;;;;OAOG;IACI,OAAO,CAAC,GAAG,KAAK,EAAE,aAAa,EAAE,GAAG,gBAAgB,CAAC,UAAU,CAAC;IAOvE;;;;;;;OAOG;IACI,kBAAkB,CAAC,GAAG,KAAK,EAAE,aAAa,EAAE,GAAG,gBAAgB,CAAC,UAAU,CAAC;IAIlF;;;;;;;;OAQG;IACK,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,UAAU,GAAE,OAAe,GAAG,gBAAgB,CAAC,UAAU,CAAC;IAyBhG;;;;;;;OAOG;IACK,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC,UAAU,CAAC;IAUrE;;;;;;OAMG;IACK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,UAAU,CAAC;CAS1D"}
|
|
@@ -120,6 +120,7 @@ export default class StepModelBase {
|
|
|
120
120
|
}
|
|
121
121
|
element.vtableIndex = extratedEntry[0];
|
|
122
122
|
element.vtableCount = extratedEntry[1];
|
|
123
|
+
element.endCursor = extratedEntry[2];
|
|
123
124
|
element.buffer = this.buffer_;
|
|
124
125
|
element.vtable = this.vtableBuilder_.buffer;
|
|
125
126
|
return true;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const versionString = 'Conway Web-Ifc Shim v0.
|
|
1
|
+
const versionString = 'Conway Web-Ifc Shim v0.8.782';
|
|
2
2
|
export { versionString };
|