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 | 7x 7x 7x 7x | import { Types, utilities as csUtils } from '@cornerstonejs/core'; import { InterpolationROIAnnotation } from '../../../types/ToolSpecificAnnotationTypes'; /** * Creates a new annotation instance given the tool data, based on the referenced tool * data type. * Note that this object takes ownership of the polyline and handlePoints data, that is, * directly assigns them internally to the result. * * @param polyline - data for the polyline, owned hereafter by the annotation * @param handlePoints - data for the edit handles, if any, owned hereafter by the annotation * @param referencedToolData - for base data for the new tool */ export default function createPolylineToolData( polyline, handlePoints, referencedToolData ) { const annotation: InterpolationROIAnnotation = csUtils.deepMerge( { data: {}, metadata: {}, }, referencedToolData ); Object.assign(annotation, { highlighted: false, invalidated: true, autoGenerated: true, annotationUID: undefined, cachedStats: {}, childAnnotationUIDs: [], parentAnnotationUID: undefined, }); Object.assign(annotation.data, { handles: { points: handlePoints.points || handlePoints || [], /** * The interpolation sources contains the source points used for interpolating * to generate the new handles. This allows performing other types of * interpolation to generate the new handles, such as livewire. */ interpolationSources: handlePoints.sources, activeHandleIndex: null, textBox: { hasMoved: false, worldPosition: <Types.Point3>[0, 0, 0], worldBoundingBox: { topLeft: <Types.Point3>[0, 0, 0], topRight: <Types.Point3>[0, 0, 0], bottomLeft: <Types.Point3>[0, 0, 0], bottomRight: <Types.Point3>[0, 0, 0], }, }, }, contour: { ...referencedToolData.data.contour, polyline, }, }); return annotation; } |