aves/plugins/aves_model/lib/src/editor/enums.dart
Thibault Deckers b1920dbe1c lab: transform
2023-05-14 12:50:08 +02:00

66 lines
2.3 KiB
Dart

enum EditorAction { transform }
enum CropAspectRatio { free, original, square, ar_16_9, ar_4_3 }
enum TransformActivity { none, pan, resize, straighten }
enum TransformOrientation { normal, rotate90, rotate180, rotate270, transverse, flipVertical, transpose, flipHorizontal }
extension ExtraTransformOrientation on TransformOrientation {
TransformOrientation flipHorizontally() {
switch (this) {
case TransformOrientation.normal:
return TransformOrientation.flipHorizontal;
case TransformOrientation.rotate90:
return TransformOrientation.transverse;
case TransformOrientation.rotate180:
return TransformOrientation.flipVertical;
case TransformOrientation.rotate270:
return TransformOrientation.transpose;
case TransformOrientation.transverse:
return TransformOrientation.rotate90;
case TransformOrientation.flipVertical:
return TransformOrientation.rotate180;
case TransformOrientation.transpose:
return TransformOrientation.rotate270;
case TransformOrientation.flipHorizontal:
return TransformOrientation.normal;
}
}
bool get isFlipped {
switch (this) {
case TransformOrientation.normal:
case TransformOrientation.rotate90:
case TransformOrientation.rotate180:
case TransformOrientation.rotate270:
return false;
case TransformOrientation.transverse:
case TransformOrientation.flipVertical:
case TransformOrientation.transpose:
case TransformOrientation.flipHorizontal:
return true;
}
}
TransformOrientation rotateClockwise() {
switch (this) {
case TransformOrientation.normal:
return TransformOrientation.rotate90;
case TransformOrientation.rotate90:
return TransformOrientation.rotate180;
case TransformOrientation.rotate180:
return TransformOrientation.rotate270;
case TransformOrientation.rotate270:
return TransformOrientation.normal;
case TransformOrientation.transverse:
return TransformOrientation.flipHorizontal;
case TransformOrientation.flipVertical:
return TransformOrientation.transverse;
case TransformOrientation.transpose:
return TransformOrientation.flipVertical;
case TransformOrientation.flipHorizontal:
return TransformOrientation.transpose;
}
}
}