| ▼NBuffer | A synchronising buffer and results structure |
| CPopResult | Result when calling Buffer::pop() |
| CBuffer | A synchronising buffer to be used as a communication mechanism between threads |
| ▼NGUI | All code related to the graphical user interface for PosturePerfection |
| CButton | Subclass of QPushButton that allows having a title and subtitle within the button |
| CLabel | Subclass of QLabel that allows having a title and subtitle within the label |
| CMainWindow | Allows for navigation around the application from the main page by letting the user navigate to the data page, settings page and fullscreen page from the main window |
| ▼NIIR | Perform IIR filtering to smoothen the output results |
| CNodes | Taps inside the second-order IIR filter |
| CSmoothingSettings | Settings for an IIR filter. Wraps the second-order section coefficients for an IIR filter |
| CIIR2ndOrderFilter | Second-order IIR filter stage, for use with the IIRFilter |
| CIIRFilter | An IIR filter that can be initialised with SOS coefficients |
| ▼NInference | Uses TensorFlow Lite to perform pose estimation on a given image frame to detect noteworthy joints |
| CInferenceCore | A wrapper to make running inference easier |
| CResult | Intermediate result of pose estimation |
| CCoordinate | Indicates position and confidence in positioning of a body part node |
| CInferenceResults | Results of running the model for all body parts |
| ▼NPipeline | Components of the pipeline at the core of the system |
| CFramerateSetting | Parameters relevant to the currently set frame rate |
| CFramerateSettings | Class to maintain the currently set frame rate and any related settings |
| CPreprocessedFrame | Contains the id of the frame within the pipeline, as well as the raw image and the preprocessed_image. A struct of this type is created for every input image after it has been passed through the PreProcessing::PreProcessor, before being sent to the Inference::InferenceCore |
| CRawFrame | A frame as returned by the FrameGenerator |
| CFrameGenerator | Class to maintain access to the cv::VideoCapture used as the input video stream. This class makes use of the CppTimer wrapper created here to regularly capture input frames at the set frame rate |
| CCoreResults | Contains the id of the frame within the pipeline, as well as the raw image and the results of running inference on that image. A struct of this type is created for every input image after it has been passed through the InferenceCore, before being sent to the PostProcessor |
| CPipeline | Frame-by-frame pipeline to process video |
| ▼NPostProcessing | Smoothen the results of inference and average body parts since the system assumes a side-on profile |
| CCoordinate | Indicates position and trustworthiness of a body part node |
| CProcessedResults | The PostProcessing::Coordinate of each body part |
| CPostProcessor | Process the output of an Inference::InferenceCore |
| ▼NPostureEstimating | Responsible for analysing the results of pose estimation to determine any posture changes which must be relayed to the user |
| CConnectedJoint | A representation of a body part |
| CPose | The representation of a human's pose, containing all the expected ConnectedJoint |
| CPoseStatus | Representation of user's pose for use by the pipeline processing |
| CDelayTimer | Simple timer which just has the running flag set when running and unset when not running |
| CMessageTimer | Broadcasts a message using RemoteNotify::Broadcast after a time is elapsed |
| CStopTimer | Timer which countdowns and stops a PostureEstimating::MessageTimer if countdown ends |
| CPostureEstimator | This class handles representations of the user's pose and calculates any updates to their pose that is required |
| ▼NPreProcessing | Responsible for resizing and normalising the input image to a structure suitable for TensorFlow Lite |
| CPreProcessedImage | A structure of the pre processed image |
| CPreProcessor | Pre-process the input image before passing to Inference::InferenceCore |