@bitbybit-dev/occt-worker
Version:
Bit By Bit Developers CAD algorithms using OpenCascade Technology kernel adapted for WebWorker
171 lines (170 loc) • 7.15 kB
TypeScript
import { Inputs } from "@bitbybit-dev/occt";
import { Models } from "@bitbybit-dev/occt";
import { OCCTWorkerManager } from "../../occ-worker/occ-worker-manager";
import { IO } from "@bitbybit-dev/base/lib/api/inputs";
export declare class OCCTIO {
readonly occWorkerManager: OCCTWorkerManager;
constructor(occWorkerManager: OCCTWorkerManager);
/**
* Saves the step file
* @param inputs STEP filename and shape to be saved
* @group io
* @shortname save step
* @drawable false
*/
saveShapeSTEP(inputs: Inputs.OCCT.SaveStepDto<Inputs.OCCT.TopoDSShapePointer>): Promise<void>;
/**
* Saves the step file and returns the text value
* @param inputs STEP filename and shape to be saved
* @group io
* @shortname save step and return
* @drawable false
*/
saveShapeSTEPAndReturn(inputs: Inputs.OCCT.SaveStepDto<Inputs.OCCT.TopoDSShapePointer>): Promise<string>;
/**
* Saves the stl file
* @param inputs STL filename and shape to be saved
* @group io
* @shortname save stl
* @drawable false
*/
saveShapeStl(inputs: Inputs.OCCT.SaveStlDto<Inputs.OCCT.TopoDSShapePointer>): Promise<void>;
/**
* Saves the stl file and returns
* @param inputs STL filename and shape to be saved
* @group io
* @shortname save stl return
* @drawable false
*/
saveShapeStlAndReturn(inputs: Inputs.OCCT.SaveStlDto<Inputs.OCCT.TopoDSShapePointer>): Promise<string>;
private saveSTEP;
private saveStl;
/**
* Creates DXF paths from an OCCT shape
* Important - shapes containing wires must lie on XZ plane (Y=0) for correct 2D DXF export.
* @param inputs Shape to convert to DXF paths
* @group dxf
* @shortname shape to dxf paths
* @drawable false
*/
shapeToDxfPaths(inputs: Inputs.OCCT.ShapeToDxfPathsDto<Inputs.OCCT.TopoDSShapePointer>): Promise<IO.DxfPathDto[]>;
/**
* Adds layer and color information to DXF paths
* Important - shapes containing wires must lie on XZ plane (Y=0) for correct 2D DXF export.
* @param inputs DXF paths, layer name, and color
* @group dxf
* @shortname dxf paths with layer
* @drawable false
*/
dxfPathsWithLayer(inputs: Inputs.OCCT.DxfPathsWithLayerDto): Promise<IO.DxfPathsPartDto>;
/**
* Assembles multiple path parts into a complete DXF file.
* Important - shapes containing wires must lie on XZ plane (Y=0) for correct 2D DXF export.
* @param inputs Multiple DXF paths parts
* @group dxf
* @shortname dxf create
* @drawable false
*/
dxfCreate(inputs: Inputs.OCCT.DxfPathsPartsListDto): Promise<string>;
/**
* Convert a STEP file to glTF format (binary GLB).
*
* Uses OCCT's native RWGltf_CafWriter for fast conversion with full preservation of:
* - Assembly hierarchy (as glTF node tree)
* - Instance/product names
* - Surface colors and materials
* - Transformations
*
* The coordinate system is automatically converted from OCCT (Z-up) to glTF (Y-up).
*
* @param inputs - STEP file content and mesh precision settings. Accepts File, Blob, string, ArrayBuffer, or Uint8Array.
* @returns GLB binary data as Uint8Array (can be used directly with Three.js, Babylon.js, etc.)
* @group assembly
* @shortname step to gltf
* @drawable false
*/
convertStepToGltf(inputs: Inputs.OCCT.ConvertStepToGltfDto): Promise<Uint8Array>;
/**
* Convert a STEP file to glTF format with full control over all options.
*
* This advanced method allows fine-grained control over:
* - STEP reading options (colors, names, materials, layers, props)
* - Mesh generation options (deflection, angle, parallel, threshold)
* - glTF export options (merge faces, indices, naming, transforms)
*
* Use this for performance tuning - disable features you don't need for faster processing.
*
* @param inputs - Advanced options including STEP data, mesh settings, and glTF export settings.
* @returns GLB binary data as Uint8Array
* @group assembly
* @shortname step to gltf advanced
* @drawable false
*
* @example
* ```typescript
* // Fast conversion - only colors, no names (for large files)
* const glbData = await occt.io.convertStepToGltfAdvanced({
* stepData: stepContent,
* readColors: true,
* readNames: false, // Skip name parsing for speed
* readMaterials: true,
* readLayers: false,
* readProps: false,
* meshDeflection: 0.1,
* meshParallel: true,
* mergeFaces: true
* });
* ```
*/
convertStepToGltfAdvanced(inputs: Inputs.OCCT.ConvertStepToGltfAdvancedDto): Promise<Uint8Array>;
/**
* Convert a STEP file to glTF format (binary GLB) with explicit Draco geometry
* compression settings.
* Same fast path as `convertStepToGltf` but exposes the Draco knobs of the
* underlying native function.
* @param inputs - STEP file content, mesh precision settings and Draco knobs.
* Accepts File, Blob, string, ArrayBuffer, or Uint8Array.
* @returns GLB binary data as Uint8Array
* @group assembly
* @shortname step to gltf with draco
* @drawable false
*/
convertStepToGltfWithDraco(inputs: Inputs.OCCT.ConvertStepToGltfWithDracoDto): Promise<Uint8Array>;
/**
* Convert a STEP file to glTF format with full control over all reading,
* meshing and writer options, plus explicit Draco geometry compression
* settings.
*
* Same fast path as `convertStepToGltfAdvanced` but exposes the 8 Draco
* knobs.
*
* @param inputs - Advanced options including STEP data, mesh settings, glTF
* export settings and Draco knobs.
* @returns GLB binary data as Uint8Array
* @group assembly
* @shortname step to gltf advanced with draco
* @drawable false
*/
convertStepToGltfAdvancedWithDraco(inputs: Inputs.OCCT.ConvertStepToGltfAdvancedWithDracoDto): Promise<Uint8Array>;
/**
* Parse a STEP file and return the assembly structure as JSON.
*
* Uses OCCT's native XCAFPrs_DocumentExplorer for efficient traversal.
* Runs entirely in C++ for maximum performance.
*
* Returns an object containing an array of nodes with:
* - id: Unique path identifier for each node
* - name: Part or assembly name
* - isAssembly: Whether this is an assembly node (has children)
* - visible: Visibility flag
* - color: Surface color (if set) with r, g, b, a components
* - transform: 4x4 transformation matrix in column-major order (if not identity)
*
* @param inputs - STEP file content. Accepts File, Blob, string, ArrayBuffer, or Uint8Array.
* @returns Parsed assembly structure
* @group assembly
* @shortname parse step to json
* @drawable false
*/
parseStepToJson(inputs: Inputs.OCCT.ParseStepAssemblyToJsonDto): Promise<Models.OCCT.AssemblyJsonResult>;
}