-
Notifications
You must be signed in to change notification settings - Fork 245
/
state.ts
64 lines (59 loc) · 1.47 KB
/
state.ts
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
import { IToolGroup, IToolClassReference } from '../types';
import Synchronizer from './SynchronizerManager/Synchronizer';
import svgNodeCache, { resetSvgNodeCache } from './svgNodeCache';
import cloneDeep from 'lodash.clonedeep';
interface ICornerstoneTools3dState {
isInteractingWithTool: boolean;
isMultiPartToolActive: boolean;
tools: Record<
string,
{
toolClass: IToolClassReference;
}
>;
toolGroups: Array<IToolGroup>;
synchronizers: Array<Synchronizer>;
svgNodeCache: Record<string, unknown>;
enabledElements: Array<unknown>;
handleRadius: number;
}
const defaultState: ICornerstoneTools3dState = {
isInteractingWithTool: false,
isMultiPartToolActive: false,
tools: {},
toolGroups: [],
synchronizers: [],
svgNodeCache: svgNodeCache,
// Should this be named... canvases?
enabledElements: [], // switch to Uids?
handleRadius: 6,
};
let state: ICornerstoneTools3dState = {
isInteractingWithTool: false,
isMultiPartToolActive: false,
tools: {},
toolGroups: [],
synchronizers: [],
svgNodeCache: svgNodeCache,
// Should this be named... canvases?
enabledElements: [], // switch to Uids?
handleRadius: 6,
};
function resetCornerstoneToolsState(): void {
resetSvgNodeCache();
state = {
...cloneDeep({
...defaultState,
svgNodeCache: {},
}),
svgNodeCache: {
...defaultState.svgNodeCache,
},
};
}
export {
ICornerstoneTools3dState,
resetCornerstoneToolsState,
state,
state as default,
};