33 #ifndef pqAnimationModel_h 34 #define pqAnimationModel_h 38 #include <QGraphicsScene> 41 #include <QStandardItemModel> 53 Q_PROPERTY(
ModeType mode READ mode WRITE setMode)
54 Q_PROPERTY(
int ticks READ ticks WRITE setTicks)
55 Q_PROPERTY(
double currentTime READ currentTime WRITE setCurrentTime)
56 Q_PROPERTY(
double startTime READ startTime WRITE setStartTime)
57 Q_PROPERTY(
double endTime READ endTime WRITE setEndTime)
58 Q_PROPERTY(
bool interactive READ interactive WRITE setInteractive)
107 double currentTime()
const;
115 double endTime()
const;
119 double zoomStartTime()
const;
123 double zoomEndTime()
const;
127 double zoomFactor()
const;
132 bool interactive()
const;
134 QAbstractItemModel* header();
135 QAbstractItemModel* enabledHeader();
137 void setRowHeight(
int);
138 int rowHeight()
const;
143 void positionZoom(
double zoomStartTime);
148 const QList<double>&
customTicks()
const {
return this->CustomTicks; }
154 void setEnabledHeaderToolTip(
const QString& val);
170 void setCurrentTime(
double);
174 void setStartTime(
double);
178 void setEndTime(
double);
182 void setInteractive(
bool);
187 void setTickMarks(
int num,
double* tick_marks);
192 void setTimePrecision(
int precision);
198 void setTimeNotation(
const QChar& notation);
209 void currentTimeSet(
double);
218 void trackNameChanged();
219 void enabledChanged();
222 QPolygonF timeBarPoly(
double time);
223 double positionFromTime(
double time);
224 double timeFromPosition(
double pos);
225 double timeFromTick(
int tick);
226 int tickFromTime(
double pos);
227 void drawForeground(QPainter* painter,
const QRectF& rect)
override;
234 QRectF drawTimeLabel(
double time,
const QRectF& row, QPainter* painter,
235 const QFontMetrics& metrics, QList<const QRectF*>
const& priorities);
237 void updateNewTime(QGraphicsSceneMouseEvent* mouseEvent);
238 bool hitTestCurrentTimePoly(
const QPointF& pos);
242 bool eventFilter(QObject* w, QEvent* e)
override;
244 void mouseDoubleClickEvent(QGraphicsSceneMouseEvent* mouseEvent)
override;
245 void mousePressEvent(QGraphicsSceneMouseEvent* mouseEvent)
override;
246 void mouseMoveEvent(QGraphicsSceneMouseEvent* mouseEvent)
override;
247 void mouseReleaseEvent(QGraphicsSceneMouseEvent* mouseEvent)
override;
248 void wheelEvent(QGraphicsSceneWheelEvent* wheelEvent)
override;
250 double timeToNormalizedTime(
double)
const;
251 double normalizedTimeToTime(
double)
const;
257 int currentTicks()
const;
262 double CurrentTime = 0;
263 double StartTime = 0;
265 double ZoomStartTime = 0;
266 double ZoomEndTime = 1;
267 double ZoomFactor = 1;
269 bool Interactive =
false;
271 QList<double> CustomTicks;
274 bool CurrentTimeGrabbed =
false;
275 double NewCurrentTime = 0;
276 double TimeLineGrabbedPosition = 0;
277 double OldZoomStartTime = 0;
278 bool TimeLineGrabbed =
false;
281 int CurrentKeyFrameEdge = 0;
282 QPair<double, double> InteractiveRange;
283 QList<double> SnapHints;
285 QList<pqAnimationTrack*> Tracks;
288 QStandardItemModel Header;
291 QStandardItemModel EnabledHeader;
295 QString EnabledHeaderToolTip =
"Enable/Disable Track";
297 int TimePrecision = 6;
298 QChar TimeNotation =
'g';
301 #endif // pqAnimationModel_h
const QList< double > & customTicks() const
provides access to the custom ticks set using setTickMarks() method.
ModeType
Real, Sequence or Custom mode Real mode shows no tick marks for timesteps Sequence mode shows evenly ...
pqCheckBoxPixMaps is a helper class that can used to create pixmaps for checkboxs in various states...
const QString & enabledHeaderToolTip() const