LiveFit
Track and plot projectiles for in-class demonstration
Public Slots | Public Member Functions | Protected Member Functions | Private Attributes | List of all members
ProjectorWindow Class Reference

A display widget for projector coordinates on the projector. More...

#include <ProjectorWindow.hpp>

Inheritance diagram for ProjectorWindow:
Inheritance graph
[legend]
Collaboration diagram for ProjectorWindow:
Collaboration graph
[legend]

Public Slots

void pushBall (TrackingBall ball)
 push a raw tracked ball to projector
 
void pushPred (KFPrediction pred)
 push a predicted ball (ie a KF prediction) to projector
 
void markDataStale ()
 mark data stale, ie ready to wipe on next track. More...
 
void clearTrack ()
 clear all data immediately
 
void toggleLockFit (bool lockFit)
 toggle whether to wait until manual clear for tracked ball
 
void toggleShowFit (bool showFit)
 toggle whether to show fit information for tracked ball
 
void toggleShowParam (bool showParam)
 toggle whether to show parametrized equations y(t), x(t)
 
void toggleShowJet (bool showJet)
 toggle whether to show jet ((dx,dy)) of tracked ball
 
void toggleColorMiss (bool colorMiss)
 toggle color difference between seen/unseen KF hits
 
void toggleVerboseKF (bool verboseKF)
 toggle verbose display [size, etc] of track/predict info
 
void toggleShowParabola (bool showParabola)
 set whether we should show the fit parabola
 
void setPointRadius (int pointRadius)
 set radius of ball track circles
 
void setPointThickness (double pointThickness)
 set thickness of ball track marks
 
void setFitThickness (double fitThickness)
 set thickness of fit parabola
 
void setFontSize (int fontSize)
 set font size for data display
 
void setColorFitLock (QString color)
 Set the after-lock fit curve color.
 
void setMinFallSpeed (int minFallSpeed)
 set minimum y-velocity for lock
 
void toggleWaitTilFall (bool waitTilFall)
 set whether we should wait until given y-velocity to lock
 
void setProjW (int w)
 set the projector width (in inches)
 
void setProjH (int h)
 set the projector height (in inches)
 

Public Member Functions

 ProjectorWindow (QWidget *parent=0)
 
QRectF relRectToWindow (QRectF rect)
 convert a relative rect in projector to window coords
 
QPointF relPointToWindow (QPointF pt)
 convert a relative point in the projector to window coords
 

Protected Member Functions

void paintEvent (QPaintEvent *ev)
 Draw the data on the projector screen widget. More...
 

Private Attributes

QSize mProjSize
 The size of the projector (in inches)
 
QList< TrackingBallmBalls
 A list of raw spotted balls in the projector.
 
QList< KFPredictionmPreds
 A list of predictions of ball location in the projector.
 
QList< KFPredictionmFitPreds
 A [sub]list of predictions which are used for the fit curve.
 
double mFitLineX [2]
 linear coefficients of x(t) equation, (b,m)
 
double mFitParabolaY [3]
 quadratic coefficients of y(t) equation, (C,B,A)
 
QList< KFPredictionmMarkedPoints
 list of points marked and selected to be solved for x(t), y(t)
 
bool mDataStale = false
 whether data should be cleared on next track
 
bool mLockFit = false
 Whether to lock the fit curve and track until manual clear.
 
int mNumPointFit
 Number of tracked points to wait for until the curve is fit.
 
bool mFitLocked = false
 Whether the fit is 'locked' for the time being, until reset either manually or after sufficient time and another track.
 
bool mWaitTilFall = false
 Whether we should wait until the ball is falling to lock/fit a curve.
 
int mMinFallSpeed
 Minimum fall speed to determine that the ball is "falling".
 
bool mFitPoints = true
 Whether we fit a degree-d curve exactly to (d+1) points, or use a regression.
 
bool mShowFit = false
 Whether we show the fit or not.
 
bool mShowParam = false
 Whether we show the parametrized equation for the fit or not.
 
bool mShowJet = false
 Whether we show (dx,dy) vectors on the display.
 
bool mColorMiss = false
 Whether we should color differently the predictions for unseen balls.
 
bool mVerboseKF = false
 Whether we should include width, height, etc from KF prediction data in display.
 
bool mShowParabola = true
 Whether we should show the fit parabola curve.
 
int mFontSize = 12
 Data display font size in pt.
 
QColor mColorFitNoLock
 The color of the fit curve projection, pre-lock.
 
QColor mColorFitLock
 The color of the fit curve projection, after lock.
 
int mPointRadius
 Radius of circles denoting tracked ball.
 
double mPointThickness
 Thickness of circle lines for balls.
 
double mFitThickness
 Thickness of the track fit parabola.
 

Detailed Description

A display widget for projector coordinates on the projector.

The idea is that this displays full screen behind the demonstration and shows the ball "where it is"

Member Function Documentation

void ProjectorWindow::markDataStale ( )
inlineslot

mark data stale, ie ready to wipe on next track.

void ProjectorWindow::paintEvent ( QPaintEvent *  ev)
protected

Draw the data on the projector screen widget.

All drawing logic for the widget goes in here!

Parameters
evThe QPaintEvent for this paint

The documentation for this class was generated from the following files: