UNPKG

@itk-wasm/mesh-to-poly-data

Version:

Convert an ITK Mesh to a simple data structure compatible with vtkPolyData.

77 lines (62 loc) 1.9 kB
// Generated file. To retain edits, remove this comment. import { PolyData, Mesh, InterfaceTypes, PipelineOutput, PipelineInput, runPipeline } from 'itk-wasm' import PolyDataToMeshOptions from './poly-data-to-mesh-options.js' import PolyDataToMeshResult from './poly-data-to-mesh-result.js' import { getPipelinesBaseUrl } from './pipelines-base-url.js' import { getPipelineWorkerUrl } from './pipeline-worker-url.js' import { getDefaultWebWorker } from './default-web-worker.js' /** * Convert an itk::PolyData to an itk::Mesh * * @param {PolyData} polyData - Input polydata * @param {PolyDataToMeshOptions} options - options object * * @returns {Promise<PolyDataToMeshResult>} - result object */ async function polyDataToMesh( polyData: PolyData, options: PolyDataToMeshOptions = {} ) : Promise<PolyDataToMeshResult> { const desiredOutputs: Array<PipelineOutput> = [ { type: InterfaceTypes.Mesh }, ] const inputs: Array<PipelineInput> = [ { type: InterfaceTypes.PolyData, data: polyData }, ] const args = [] // Inputs const polyDataName = '0' args.push(polyDataName) // Outputs const meshName = '0' args.push(meshName) // Options args.push('--memory-io') const pipelinePath = 'poly-data-to-mesh' let workerToUse = options?.webWorker if (workerToUse === undefined) { workerToUse = await getDefaultWebWorker() } const { webWorker: usedWebWorker, returnValue, stderr, outputs } = await runPipeline(pipelinePath, args, desiredOutputs, inputs, { pipelineBaseUrl: getPipelinesBaseUrl(), pipelineWorkerUrl: getPipelineWorkerUrl(), webWorker: workerToUse, noCopy: options?.noCopy }) if (returnValue !== 0 && stderr !== "") { throw new Error(stderr) } const result = { webWorker: usedWebWorker as Worker, mesh: outputs[0]?.data as Mesh, } return result } export default polyDataToMesh