Skip to content

Commit 28cc028

Browse files
committed
Minor fixes and README update
1 parent 80e8e54 commit 28cc028

File tree

5 files changed

+12
-29
lines changed

5 files changed

+12
-29
lines changed

cvat-canvas/README.md

+2-7
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,6 @@ Canvas itself handles:
3232
### API Methods
3333

3434
```ts
35-
enum Rotation {
36-
ANTICLOCKWISE90,
37-
CLOCKWISE90,
38-
}
39-
4035
interface DrawData {
4136
enabled: boolean;
4237
shapeType?: string;
@@ -74,7 +69,7 @@ Canvas itself handles:
7469
setZLayer(zLayer: number | null): void;
7570
setup(frameData: any, objectStates: any[]): void;
7671
activate(clientID: number, attributeID?: number): void;
77-
rotate(rotation: Rotation, remember?: boolean): void;
72+
rotate(frameAngle: number): void;
7873
focus(clientID: number, padding?: number): void;
7974
fit(): void;
8075
grid(stepX: number, stepY: number): void;
@@ -142,7 +137,7 @@ Standard JS events are used.
142137
canvas.fitCanvas();
143138

144139
// Next you can use its API methods. For example:
145-
canvas.rotate(window.Canvas.Rotation.CLOCKWISE90);
140+
canvas.rotate(270);
146141
canvas.draw({
147142
enabled: true,
148143
shapeType: 'rectangle',

cvat-canvas/src/typescript/canvasModel.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ export class CanvasModelImpl extends MasterImpl implements CanvasModel {
343343

344344
public rotate(rotationAngle: number): void {
345345
if (this.data.angle !== rotationAngle) {
346-
this.data.angle = rotationAngle;
346+
this.data.angle = (360 + Math.floor((rotationAngle) / 90) * 90) % 360;
347347
this.fit();
348348
}
349349
}

cvat-ui/src/components/annotation-page/standard-workspace/canvas-wrapper.tsx

+6-18
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ interface Props {
3333
selectedStatesID: number[];
3434
annotations: any[];
3535
frameData: any;
36-
frameAngles: number[];
36+
frameAngle: number;
3737
frame: number;
3838
opacity: number;
3939
colorBy: ColorBy;
@@ -102,7 +102,7 @@ export default class CanvasWrapperComponent extends React.PureComponent<Props> {
102102
gridColor,
103103
gridOpacity,
104104
frameData,
105-
frameAngles,
105+
frameAngle,
106106
annotations,
107107
canvasInstance,
108108
sidebarCollapsed,
@@ -173,8 +173,8 @@ export default class CanvasWrapperComponent extends React.PureComponent<Props> {
173173
canvasInstance.setZLayer(curZLayer);
174174
}
175175

176-
if (prevProps.frameAngles !== frameAngles) {
177-
this.rotate();
176+
if (prevProps.frameAngle !== frameAngle) {
177+
canvasInstance.rotate(frameAngle);
178178
}
179179

180180
this.activateOnCanvas();
@@ -333,28 +333,16 @@ export default class CanvasWrapperComponent extends React.PureComponent<Props> {
333333
const {
334334
annotations,
335335
frameData,
336+
frameAngle,
336337
canvasInstance,
337338
} = this.props;
338339

339340
if (frameData !== null) {
340341
canvasInstance.setup(frameData, annotations);
341-
this.rotate();
342+
canvasInstance.rotate(frameAngle);
342343
}
343344
}
344345

345-
private rotate(): void {
346-
const {
347-
frame,
348-
frameAngles,
349-
canvasInstance,
350-
jobInstance,
351-
} = this.props;
352-
353-
const frameAngle = frameAngles[frame - jobInstance.startFrame];
354-
355-
canvasInstance.rotate(frameAngle);
356-
}
357-
358346
private initialSetup(): void {
359347
const {
360348
grid,

cvat-ui/src/containers/annotation-page/standard-workspace/canvas-wrapper.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ interface StateToProps {
4141
selectedStatesID: number[];
4242
annotations: any[];
4343
frameData: any;
44-
frameAngles: number[];
44+
frameAngle: number;
4545
frame: number;
4646
opacity: number;
4747
colorBy: ColorBy;
@@ -141,7 +141,7 @@ function mapStateToProps(state: CombinedState): StateToProps {
141141
canvasInstance,
142142
jobInstance,
143143
frameData,
144-
frameAngles,
144+
frameAngle: frameAngles[frame - jobInstance.startFrame],
145145
frame,
146146
activatedStateID,
147147
selectedStatesID,

cvat-ui/src/reducers/annotation-reducer.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ export default (state = defaultState, action: AnyAction): AnnotationState => {
135135
number,
136136
data,
137137
},
138-
frameAngles: Array(job.stopFrame - job.startFrame).fill(0),
138+
frameAngles: Array(job.stopFrame - job.startFrame + 1).fill(0),
139139
},
140140
drawing: {
141141
...state.drawing,

0 commit comments

Comments
 (0)