@cornerstonejs/core
Version:
Cornerstone3D Core
28 lines (27 loc) • 1.25 kB
JavaScript
import { ViewportType } from '../../../enums/index.js';
import applyVolume3DCamera from './applyVolume3DCamera.js';
import { getVolume3DProjectionPresentation, withVolume3DProjectionPresentation, } from './volume3DProjectionPresentation.js';
import { getVolume3DProjectionSnapshot } from './volume3DProjectionSnapshot.js';
import { VOLUME3D_PROJECTION_ID, } from './Volume3DProjectionTypes.js';
export { getVolume3DProjectionSnapshot };
function isVolume3DRenderTarget(target) {
return Boolean(target &&
typeof target === 'object' &&
'vtk' in target &&
target.vtk?.renderer);
}
export const volume3DProjectionAdapter = {
id: VOLUME3D_PROJECTION_ID,
viewportTypes: [ViewportType.VOLUME_3D_NEXT],
getSnapshot: (request) => getVolume3DProjectionSnapshot(request),
getPresentation: (snapshot) => getVolume3DProjectionPresentation(snapshot),
withPresentation: (snapshot, presentation, _options) => withVolume3DProjectionPresentation(snapshot, presentation),
applyToRenderer: (snapshot, target) => {
if (!isVolume3DRenderTarget(target)) {
return;
}
applyVolume3DCamera(target, snapshot.rendererCamera, {
resetClippingRange: true,
});
},
};