Copy the vanilla engine from dwg-dxf-viewer-sample verbatim (#1): - src/engine/viewer2d/* (Viewer2D.js incl. the 2.5D view, parsers, acadrust-dwg WASM, cadSpaces, slugText, linParser/linData, fixDwgKoreanText, ...) - src/engine/{layerPanel,panelUtils,propertyInspector,optionsStore}.ts The relative layout is kept (engine/viewer2d next to the panel files), so not even import paths changed; `diff -r --strip-trailing-cr` against the sample is empty. public/ (NanumGothic, samples, licenses, module map) is copied as is. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
54 lines
2.3 KiB
TypeScript
54 lines
2.3 KiB
TypeScript
/* tslint:disable */
|
||
/* eslint-disable */
|
||
|
||
export function parse_dwg(bytes: Uint8Array): any;
|
||
|
||
/**
|
||
* The same parseResult as [`parse_dwg`], returned as a JSON string for the
|
||
* caller to hand to `JSON.parse`. Prefer this on anything but small drawings.
|
||
*
|
||
* Materializing the whole result as a `serde_json::Value` is what makes big
|
||
* files unopenable. The tree costs ~150× the DWG on the heap (a 19 MB drawing
|
||
* peaks near 2 GB), and the wasm allocator's per-allocation cost rises with the
|
||
* live heap, so conversion goes quadratic — measured 352 s in wasm for work
|
||
* that takes 2.5 s natively. Converting one entity at a time and appending its
|
||
* JSON text keeps the live heap flat and the cost linear.
|
||
*/
|
||
export function parse_dwg_json(bytes: Uint8Array): string;
|
||
|
||
export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
|
||
|
||
export interface InitOutput {
|
||
readonly memory: WebAssembly.Memory;
|
||
readonly parse_dwg: (a: number, b: number) => [number, number, number];
|
||
readonly parse_dwg_json: (a: number, b: number) => [number, number, number, number];
|
||
readonly __wbindgen_malloc: (a: number, b: number) => number;
|
||
readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
|
||
readonly __wbindgen_externrefs: WebAssembly.Table;
|
||
readonly __externref_table_dealloc: (a: number) => void;
|
||
readonly __wbindgen_free: (a: number, b: number, c: number) => void;
|
||
readonly __wbindgen_start: () => void;
|
||
}
|
||
|
||
export type SyncInitInput = BufferSource | WebAssembly.Module;
|
||
|
||
/**
|
||
* Instantiates the given `module`, which can either be bytes or
|
||
* a precompiled `WebAssembly.Module`.
|
||
*
|
||
* @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated.
|
||
*
|
||
* @returns {InitOutput}
|
||
*/
|
||
export function initSync(module: { module: SyncInitInput } | SyncInitInput): InitOutput;
|
||
|
||
/**
|
||
* If `module_or_path` is {RequestInfo} or {URL}, makes a request and
|
||
* for everything else, calls `WebAssembly.instantiate` directly.
|
||
*
|
||
* @param {{ module_or_path: InitInput | Promise<InitInput> }} module_or_path - Passing `InitInput` directly is deprecated.
|
||
*
|
||
* @returns {Promise<InitOutput>}
|
||
*/
|
||
export default function __wbg_init (module_or_path?: { module_or_path: InitInput | Promise<InitInput> } | InitInput | Promise<InitInput>): Promise<InitOutput>;
|