91 lines
1.3 KiB
Plaintext
91 lines
1.3 KiB
Plaintext
@startuml
|
|
|
|
class GUI{
|
|
This is a singleton
|
|
---
|
|
- ImageContainer _currentImage
|
|
- ImageManipulation[] _imageManipulations
|
|
+ none initialise()
|
|
}
|
|
|
|
|
|
class ImageContainer{
|
|
- imagedata _imageData
|
|
+ none loadImage(path: str)
|
|
+ imagedata getImage()
|
|
+ pair<int,int> getDimensions()
|
|
}
|
|
|
|
abstract class ImageManipulation{
|
|
+none manipulateImage(ImageContainer, Parameters)
|
|
+str[] getParameters()
|
|
+str getManipulationName()
|
|
}
|
|
|
|
abstract class Filters{
|
|
list[ImageManipulation] getFilters()
|
|
}
|
|
|
|
class LiveFilters{
|
|
}
|
|
|
|
class PostFilters{
|
|
}
|
|
|
|
class CropImage{
|
|
- str _name
|
|
}
|
|
|
|
class GreyScaleImage{
|
|
- str _name
|
|
}
|
|
|
|
class SmoothImage{
|
|
- str _name
|
|
}
|
|
|
|
class RotateImage{
|
|
- str _name
|
|
}
|
|
|
|
class HSVImage{
|
|
- str _name
|
|
}
|
|
|
|
class HueShiftImage{
|
|
- str _name
|
|
}
|
|
|
|
class GeoFilter{
|
|
- str _name
|
|
}
|
|
|
|
class GeoLocation{
|
|
str getUserCurrentTown()
|
|
}
|
|
|
|
class FaceRecognition{
|
|
pair[int,int] getFaceCentre(ImageContainer)
|
|
}
|
|
|
|
GUI ..> ImageContainer
|
|
GUI ..> LiveFilters
|
|
GUI ..> PostFilters
|
|
LiveFilters ..|> Filters
|
|
PostFilters ..|> Filters
|
|
Filters ..> ImageManipulation
|
|
|
|
FaceRecognition ..> ImageContainer
|
|
|
|
GeoFilter ..> GeoLocation
|
|
|
|
CropImage ..|> ImageManipulation
|
|
GreyScaleImage ..|> ImageManipulation
|
|
SmoothImage ..|> ImageManipulation
|
|
RotateImage ..|> ImageManipulation
|
|
HSVImage ..|> ImageManipulation
|
|
HueShiftImage ..|> ImageManipulation
|
|
GeoFilter ..|> ImageManipulation
|
|
|
|
|
|
@enduml |