-
Notifications
You must be signed in to change notification settings - Fork 0
Architecture
https://capstone.cse.sc.edu/milestone/architecture/
The Models for your app. These could be UML class diagrams, or just models with attributes (with type) and descriptions (in English).
The UML of the graphics aspect of the program can be found here.
The UML of the undo aspect can be found here.
The UML of the main activity can be found here and can be cross referenced here.
How will your app maintain state? in memory? or database? or both? Note this in your Model Classes.
The app will maintain state by via singleton classes, the most notable (largest) being those that extend QMainWindow, the basic interfacing container, and handlers written by team members. These handlers will include a brush handler, vector handler, image support handler, OpenCV handler, and IO + data handler. Other handlers may come along later in development to meet needs.
Brush (raster) handler:
- brush color
- brush patterning
- spray options
- brush filtering (via internal singleton)
- brush (size and shape, via internal single ton)
Image support handler:
- zoom (in/out)
- rotation (-90, 90, 180)
- mirroring (vertical, horizontal)
- UI offset calculation functions
- etc (potential future of others)
OpenCV handler:
- Object tracking based on color
- etc (potential future of others)
IO + data handler:
- file IO (open, open recent, save, save as, import, export)
- undo and redo stacks
- additional file IO (video parsing, seeking, etc)
- etc (potential future of others)
UI handler:
- UI QObject pointer upkeep via map and delete list
- etc (potential future of others)
If you are using a db-backend (say firebase) then include the Database schema: set of tables/documents with list of attributes and their types.
List of common queries you expect will be needed. Do any of then need to join tables?
No databases will be used for this project
The Views of your app: name, describe, link each (actual hyperlink) to its image in your Detailed Design milestone if application. Typically, one page in the app is composed of multiple View elements.
Menu bar:
- A Basic Menu Bar at the top of the application
- Given by QT. No custom widget needed
Editor Selector:
- A selector to switch between the vector selector and the brush brush
- More that likely a basic button
Brush Selector:
- A list of brushes
- Also contains buttons for brush editor dialogues
Radial Profiler:
- Pulls up the radial profiler dialog to edit the radial brush
- Custom dialog needed
- Will be a type of button
Patter Profiler:
- Pulls up the dialogue for the pattern profiler to edit the pattern brush
- Custom dialog needed
- Will be a type of button
Brush Designer:
- Pulls up the dialogue for the brush designer to make basic custom brushes
- Custom dialog needed
- Will be a type of button
Brush Color Editor:
- Edits the color of the brush
- Does have just a few more options than its counterpart for the vector brush so it needed to be a separate view. Can pull up QT dialog to change brush color
Timeline:
- Shows the frames of videos for you to select.
Paint Area:
- Area to edit frame
Editor Selector:
- A selector to switch between the vector selector and the brush brush
Vector Brush Selector:
- Selects shape for vector brush
Vector Color Editor:
- Edits the color of the vector brush
- Has slightly less features than the raster brush editor
- Can pull up QT dialog to change brush color
Radial Brush Editor Dialog:
Falloff Preview:
- Shows the falloff
Color Selector:
- can use QT dialog
Transmogrify:
- Alters radial falloff
- Can use QT sliders
Custom dialog needed
Not enough options to warrant another user of Design Options view
Filter Dialog:
Image Preview
- Displays of preview of the image with the applied filter
- Difference from image view as they show the selected start frame to the selected in frame Filter Selector
- A list of different filters
- more than like all types of buttons.
Custom dialog needed
Pattern Brush Editor and Brush Design Editor Dialogs:
Design Options
- Design Options stay the same between both the pattern designer and the brush designer so it is best to make it its own view and implement it into the dialogues that way.
Pattern Editor
- Basic editor for the pattern brushes
Brush Design Editor
- Basic editor for brush designs
Both will need custom dialogs
Import and Export Dialogs:
Image View
- Differs from image preview as it displays the start frame and stop frame
- Used in both dialogs
Import Options
- Options for importing
Export Options
- Options for exporting
Both will need custom dialogs