11import * as Comlink from 'comlink' ;
22import { TypedArray } from '@kitware/vtk.js/types' ;
3+ import { createTypedArrayLike } from '@/src/utils' ;
34
45export interface GaussianSmoothParams {
56 sigma : number ;
@@ -237,7 +238,7 @@ function copySubVolumeBack(
237238
238239 if ( origLabel === label || origLabel === 0 ) {
239240 // eslint-disable-next-line no-param-reassign
240- ( originalData as any ) [ origIndex ] = subValue > 127.5 ? label : 0 ;
241+ originalData [ origIndex ] = subValue > 127.5 ? label : 0 ;
241242 }
242243 subIndex ++ ;
243244 }
@@ -274,9 +275,7 @@ export function gaussianSmoothLabelMapWorker(input: {
274275 }
275276
276277 if ( originalLabelCount === 0 ) {
277- const outputData = new ( originalData . constructor as any ) (
278- originalData . length
279- ) ;
278+ const outputData = createTypedArrayLike ( originalData , originalData . length ) ;
280279 for ( let i = 0 ; i < originalData . length ; i ++ ) {
281280 outputData [ i ] = originalData [ i ] ;
282281 }
@@ -291,9 +290,7 @@ export function gaussianSmoothLabelMapWorker(input: {
291290
292291 const bounds = calculateBoundingBox ( originalData , dimensions , label ) ;
293292 if ( ! bounds ) {
294- const outputData = new ( originalData . constructor as any ) (
295- originalData . length
296- ) ;
293+ const outputData = createTypedArrayLike ( originalData , originalData . length ) ;
297294 for ( let i = 0 ; i < originalData . length ; i ++ ) {
298295 outputData [ i ] = originalData [ i ] ;
299296 }
@@ -320,7 +317,7 @@ export function gaussianSmoothLabelMapWorker(input: {
320317 1.5
321318 ) ;
322319
323- const outputData = new ( originalData . constructor as any ) ( originalData . length ) ;
320+ const outputData = createTypedArrayLike ( originalData , originalData . length ) ;
324321 for ( let i = 0 ; i < originalData . length ; i ++ ) {
325322 outputData [ i ] = originalData [ i ] ;
326323 }
0 commit comments