You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.3 KiB
TypeScript
86 lines
2.3 KiB
TypeScript
// Copyright (C) 2021-2022 Intel Corporation
|
|
// Copyright (C) 2023 CVAT.ai Corporation
|
|
//
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
import { connect } from 'react-redux';
|
|
import { KeyMap } from 'utils/mousetrap-react';
|
|
import { Canvas3d } from 'cvat-canvas3d-wrapper';
|
|
import {
|
|
groupObjects,
|
|
splitTrack,
|
|
mergeObjects,
|
|
pasteShapeAsync,
|
|
redrawShapeAsync,
|
|
repeatDrawShapeAsync,
|
|
resetAnnotationsGroup,
|
|
} from 'actions/annotation-actions';
|
|
import ControlsSideBarComponent from 'components/annotation-page/standard3D-workspace/controls-side-bar/controls-side-bar';
|
|
import { ActiveControl, CombinedState } from 'reducers';
|
|
|
|
interface StateToProps {
|
|
canvasInstance: Canvas3d;
|
|
activeControl: ActiveControl;
|
|
keyMap: KeyMap;
|
|
normalizedKeyMap: Record<string, string>;
|
|
labels: any[];
|
|
jobInstance: any;
|
|
}
|
|
|
|
interface DispatchToProps {
|
|
repeatDrawShape(): void;
|
|
redrawShape(): void;
|
|
pasteShape(): void;
|
|
resetGroup(): void;
|
|
groupObjects(enabled: boolean): void;
|
|
mergeObjects(enabled: boolean): void;
|
|
splitTrack(enabled: boolean): void;
|
|
}
|
|
|
|
function mapStateToProps(state: CombinedState): StateToProps {
|
|
const {
|
|
annotation: {
|
|
canvas: { instance: canvasInstance, activeControl },
|
|
job: { labels, instance: jobInstance },
|
|
},
|
|
shortcuts: { keyMap, normalizedKeyMap },
|
|
} = state;
|
|
|
|
return {
|
|
canvasInstance: canvasInstance as Canvas3d,
|
|
activeControl,
|
|
normalizedKeyMap,
|
|
keyMap,
|
|
labels,
|
|
jobInstance,
|
|
};
|
|
}
|
|
|
|
function dispatchToProps(dispatch: any): DispatchToProps {
|
|
return {
|
|
repeatDrawShape(): void {
|
|
dispatch(repeatDrawShapeAsync());
|
|
},
|
|
redrawShape(): void {
|
|
dispatch(redrawShapeAsync());
|
|
},
|
|
pasteShape(): void {
|
|
dispatch(pasteShapeAsync());
|
|
},
|
|
groupObjects(enabled: boolean): void {
|
|
dispatch(groupObjects(enabled));
|
|
},
|
|
resetGroup(): void {
|
|
dispatch(resetAnnotationsGroup());
|
|
},
|
|
mergeObjects(enabled: boolean): void {
|
|
dispatch(mergeObjects(enabled));
|
|
},
|
|
splitTrack(enabled: boolean): void {
|
|
dispatch(splitTrack(enabled));
|
|
},
|
|
};
|
|
}
|
|
|
|
export default connect(mapStateToProps, dispatchToProps)(ControlsSideBarComponent);
|