Skip to content

Architecture

Auden Childress edited this page Oct 19, 2020 · 27 revisions

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.

Design Milestone

Main screen Views

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

Vector Main Screen

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

Dialog Views

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

Home

Personal Logs

Clone this wiki locally