Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | 7526x 7526x 7526x 7526x 1858x 5668x 5668x | import {
ActorRenderMode,
BaseVolumeViewport,
StackViewport,
Enums,
type Types,
} from '@cornerstonejs/core';
import {
canRenderVolumeViewportLabelmapAsImage,
isSliceRenderingEnabled,
} from './labelmapImageMapperSupport';
export type ViewportLabelmapRenderMode = 'image' | 'volume' | 'unsupported';
export default function getViewportLabelmapRenderMode(
viewport: Types.IViewport,
options?: {
useSliceRendering?: boolean;
}
): ViewportLabelmapRenderMode {
const compatibilityViewport = viewport as Types.IViewport & {
getCurrentImageId?: () => string;
getDefaultActor?: () => Types.ActorEntry | undefined;
getVolumeId?: () => string | undefined;
type?: string;
};
const useSliceRendering = isSliceRenderingEnabled(options);
Iif (useSliceRendering && canRenderVolumeViewportLabelmapAsImage(viewport)) {
return 'image';
}
if (viewport instanceof BaseVolumeViewport) {
return 'volume';
}
Eif (viewport instanceof StackViewport) {
return 'image';
}
const defaultActor =
typeof compatibilityViewport.getDefaultActor === 'function'
? compatibilityViewport.getDefaultActor()
: undefined;
const actorMapper = defaultActor?.actorMapper as
| {
renderMode?: Types.ActorRenderMode;
}
| undefined;
const renderMode = actorMapper?.renderMode;
if (
renderMode === ActorRenderMode.VTK_VOLUME ||
renderMode === ActorRenderMode.VTK_VOLUME_SLICE
) {
return 'volume';
}
if (renderMode === ActorRenderMode.CPU_VOLUME) {
return 'volume';
}
if (
renderMode === ActorRenderMode.VTK_IMAGE ||
renderMode === ActorRenderMode.CPU_IMAGE
) {
return 'image';
}
const actorClassName =
typeof defaultActor?.actor?.getClassName === 'function'
? defaultActor.actor.getClassName()
: undefined;
if (actorClassName === 'vtkVolume') {
return 'volume';
}
if (actorClassName === 'vtkImageSlice') {
return 'image';
}
if (actorClassName === 'CanvasActor') {
const defaultActorRenderMode = actorMapper?.renderMode;
if (defaultActorRenderMode === ActorRenderMode.CPU_VOLUME) {
return 'volume';
}
return 'image';
}
if (compatibilityViewport.type === Enums.ViewportType.PLANAR_NEXT) {
if (compatibilityViewport.getVolumeId?.()) {
return 'volume';
}
return typeof compatibilityViewport.getCurrentImageId === 'function'
? 'image'
: 'unsupported';
}
return typeof compatibilityViewport.getCurrentImageId === 'function'
? 'image'
: 'unsupported';
}
|