Skip to content

Commit

Permalink
Fixed wrong issue position when create a quick issue on a rotated sha…
Browse files Browse the repository at this point in the history
…pe (#5162)

* Fixed wrong issue position when create a quick issue on a rotated shape

* Updated changelog
  • Loading branch information
bsekachev authored Oct 25, 2022
1 parent 9cf2989 commit 0b12a77
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 40 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ non-ascii paths while adding files from "Connected file share" (issue #4428)
- Restoring CVAT in case of React-renderning fail (<https://github.com/opencv/cvat/pull/5134>)
- Deleted frames become restored if a user deletes frames from another job of the same task
(<https://github.com/opencv/cvat/pull/5138>)
- Wrong issue position when create a quick issue on a rotated shape (<https://github.com/opencv/cvat/pull/5162>)
- Skeleton points exported out of order in the COCO Keypoints format
(<https://github.com/opencv/cvat/issues/5048>)
- Changing an object causes current z layer to be set to the maximum (<https://github.com/opencv/cvat/pull/5145>)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
// Copyright (C) 2021-2022 Intel Corporation
// Copyright (C) 2022 CVAT.ai Corporation
//
// SPDX-License-Identifier: MIT

Expand Down Expand Up @@ -105,49 +106,41 @@ export default function CanvasContextMenu(props: Props): JSX.Element | null {
left={left}
latestComments={latestComments}
onClick={(param: MenuInfo) => {
const [state] = objectStates.filter(
(_state: any): boolean => _state.clientID === contextMenuClientID,
);
if (param.key === ReviewContextMenuKeys.OPEN_ISSUE) {
if (state) {
let { points } = state;
if (['ellipse', 'rectangle'].includes(state.shapeType)) {
const [cx, cy] = state.shapeType === 'ellipse' ? state.points : [
(state.points[0] + state.points[2]) / 2,
(state.points[1] + state.points[3]) / 2,
];
const [rx, ry] = [state.points[2] - cx, cy - state.points[3]];
points = state.shapeType === 'ellipse' ? [
state.points[0] - rx,
state.points[1] - ry,
state.points[0] + rx,
state.points[1] + ry,
] : state.points;
const state = objectStates.find((_state: any): boolean => _state.clientID === contextMenuClientID);
if (state) {
let { points } = state;
if (['ellipse', 'rectangle'].includes(state.shapeType)) {
const [cx, cy] = state.shapeType === 'ellipse' ? state.points : [
(state.points[0] + state.points[2]) / 2,
(state.points[1] + state.points[3]) / 2,
];
const [rx, ry] = [state.points[2] - cx, cy - state.points[3]];
points = state.shapeType === 'ellipse' ? [
state.points[0] - rx,
state.points[1] - ry,
state.points[0] + rx,
state.points[1] + ry,
] : state.points;

points = [
[points[0], points[1]],
[points[2], points[1]],
[points[2], points[3]],
[points[0], points[3]],
].map(([x, y]: number[]) => rotatePoint(x, y, state.rotation, cx, cy)).flat();
}
points = [
[points[0], points[1]],
[points[2], points[1]],
[points[2], points[3]],
[points[0], points[3]],
].map(([x, y]: number[]) => rotatePoint(x, y, state.rotation, cx, cy)).flat();
}

if (param.key === ReviewContextMenuKeys.OPEN_ISSUE) {
onStartIssue(points);
}
} else if (param.key === ReviewContextMenuKeys.QUICK_ISSUE_POSITION) {
if (state) {
openIssue(state.points, consts.QUICK_ISSUE_INCORRECT_POSITION_TEXT);
}
} else if (param.key === ReviewContextMenuKeys.QUICK_ISSUE_ATTRIBUTE) {
if (state) {
openIssue(state.points, consts.QUICK_ISSUE_INCORRECT_ATTRIBUTE_TEXT);
}
} else if (
param.keyPath.length === 2 &&
param.keyPath[1] === ReviewContextMenuKeys.QUICK_ISSUE_FROM_LATEST
) {
if (state) {
openIssue(state.points, latestComments[+param.keyPath[0]]);
} else if (param.key === ReviewContextMenuKeys.QUICK_ISSUE_POSITION) {
openIssue(points, consts.QUICK_ISSUE_INCORRECT_POSITION_TEXT);
} else if (param.key === ReviewContextMenuKeys.QUICK_ISSUE_ATTRIBUTE) {
openIssue(points, consts.QUICK_ISSUE_INCORRECT_ATTRIBUTE_TEXT);
} else if (
param.keyPath.length === 2 &&
param.keyPath[1] === ReviewContextMenuKeys.QUICK_ISSUE_FROM_LATEST
) {
openIssue(points, latestComments[+param.keyPath[0]]);
}
}
}}
Expand Down

0 comments on commit 0b12a77

Please sign in to comment.