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 | import type { Types } from '@cornerstonejs/core';
import type { Annotation } from '../../types/AnnotationTypes';
export type BidirectionalData = {
majorAxis: [Types.Point3, Types.Point3];
minorAxis: [Types.Point3, Types.Point3];
maxMajor: number;
maxMinor: number;
segmentIndex: number;
label?: string;
color?: string | number[];
referencedImageId: string;
sliceIndex: number;
};
/**
* Creates data suitable for the BidirectionalTool from the basic bidirectional
* data object.
*/
export default function createBidirectionalToolData(
bidirectionalData: BidirectionalData,
viewport
): Annotation {
const { majorAxis, minorAxis, label = '', sliceIndex } = bidirectionalData;
const [major0, major1] = majorAxis;
const [minor0, minor1] = minorAxis;
const points = [major0, major1, minor0, minor1];
const bidirectionalToolData = {
highlighted: true,
invalidated: true,
metadata: {
toolName: 'Bidirectional',
// Get a view reference for the slice this applies to, not the currently
// displayed slice. This will fill in the remaining data for that slice
...viewport.getViewReference({ sliceIndex }),
},
data: {
handles: {
points,
textBox: {
hasMoved: false,
worldPosition: [0, 0, 0] as Types.Point3,
worldBoundingBox: {
topLeft: [0, 0, 0] as Types.Point3,
topRight: [0, 0, 0] as Types.Point3,
bottomLeft: [0, 0, 0] as Types.Point3,
bottomRight: [0, 0, 0] as Types.Point3,
},
},
activeHandleIndex: null,
},
label,
cachedStats: {},
},
isLocked: false,
isVisible: true,
};
return bidirectionalToolData;
}
|