VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
bdiQWidgetKeyFrameEditor.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2019 VT MAK
3  * All rights reserved.
4  ****************************************************************************/
5 
6 #pragma once
7 
8 #include <vrvFxQt/bdiQWidgetKeyFrameEditor_uic.hpp>
9 
10 #include <QGraphicsView>
11 #include <QWidget>
12 #include <QTime>
13 
14 class QGraphicsScene;
15 class FloatKeyFrame;
16 class ColorKeyFrame;
17 
18 namespace makVrv
19 {
20  class DtFxParticleDesc;
21  class KeyFrameItem;
22  class ColorKeyFrameItem;
23  class SizeKeyFrameItem;
24 
25  class DtFxParticleSystemManager;
26  class bdiQWidgetParticleSystem;
27 
28  class bdiQWidgetKeyFrameEditor : public QWidget, public Ui::bdiQWidgetKeyFrameEditor_uic
29  {
30  Q_OBJECT;
31  public:
32 
34  DtFxParticleSystemManager* manager, const char* name = 0, Qt::WindowFlags fl = 0);
35  virtual ~bdiQWidgetKeyFrameEditor();
36 
37  void set_current_t_normalized(float value);
38  void set_particle_desc(DtFxParticleDesc* particle_desc);
39 
40  virtual void showEvent(QShowEvent* e);
41  virtual void hideEvent(QHideEvent* e);
42 
43  virtual bool eventFilter(QObject* o, QEvent* e);
44  QGraphicsItem* itemAt(QGraphicsScene* scene, const QPointF& pos);
45  virtual void emit_changed();
46 
47  float get_duration() { return m_duration; }
48  virtual void set_current_keyframe(KeyFrameItem* keyframe, int force_update = 0);
49 
50  virtual void sortKeys();
51 
52  virtual void update_path();
53  float get_size_scale() {
54  return m_size_scale;
55  }
56 
57 
58  public slots:
59 
60  virtual void slot_menu_handler(QAction* action);
61  virtual void slot_edit_data();
62  virtual void slot_event_type_changed();
63  virtual void slot_read_ui();
64  virtual void slot_update_graph(int sliderVal);
65 
66  signals:
67 
68  void signal_check_save_bit();
69 
70  protected:
71 
72  void update_ticks();
73 
74  void addTicks(QGraphicsView* graphics_view, QGraphicsScene* scene, bool symetric, bool add_y_axis);
75 
76  void addYAxis(QGraphicsView* graphics_view, QGraphicsScene* scene);
77 
78  void update_events();
79 
80  float time_to_pixel(float time);
81  float pixel_to_time(int pixel);
82  KeyFrameItem* create_size_key(FloatKeyFrame* event, int x);
83 
84  KeyFrameItem* create_color_key(ColorKeyFrame* event, int x);
85 
86 
87  protected:
88  KeyFrameItem* finishKeyFrameItem(KeyFrameItem * event_item, int x);
89 
90  QGraphicsScene* m_graphics_scene_size;
91  QGraphicsScene* m_graphics_scene_color;
92 
93  QGraphicsPathItem* m_size_path;
94  QVector<QGraphicsItem*> m_tick_markers;
95  QVector<QGraphicsItem*> m_y_axis_markers;
96  QVector<QGraphicsItem*> m_events;
102  float m_duration;
103  float m_time;
105  int m_shown;
106 
107  ColorKeyFrameItem* m_current_color_item;
108  SizeKeyFrameItem* m_current_size_item;
109  KeyFrameItem* m_current_keyframe_item;
110  QGraphicsItem* m_last_clicked_item;
111  QGraphicsScene* m_active_scene;
115  };
116 };
int m_shown
Definition: bdiQWidgetKeyFrameEditor.h:105
void set_particle_desc(DtFxParticleDesc *particle_desc)
Core particle editing class.
Definition: bdiQWidgetParticleSystem.h:69
QAction * m_delete_action
Definition: bdiQWidgetKeyFrameEditor.h:98
DtFxParticleSystemManager is the manager for all the particle systems and descriptions diguy sdk comm...
Definition: DtFxParticleSystemManager.h:47
QVector< QGraphicsItem * > m_y_axis_markers
Definition: bdiQWidgetKeyFrameEditor.h:95
virtual void slot_menu_handler(QAction *action)
QGraphicsScene * m_graphics_scene_color
Definition: bdiQWidgetKeyFrameEditor.h:91
QGraphicsItem * itemAt(QGraphicsScene *scene, const QPointF &pos)
SizeKeyFrameItem * m_current_size_item
Definition: bdiQWidgetKeyFrameEditor.h:108
QVector< QGraphicsItem * > m_events
Definition: bdiQWidgetKeyFrameEditor.h:96
virtual bool eventFilter(QObject *o, QEvent *e)
virtual void set_current_keyframe(KeyFrameItem *keyframe, int force_update=0)
float m_duration
Definition: bdiQWidgetKeyFrameEditor.h:102
QAction * m_create_action
Definition: bdiQWidgetKeyFrameEditor.h:97
float m_time
Definition: bdiQWidgetKeyFrameEditor.h:103
float get_duration()
Definition: bdiQWidgetKeyFrameEditor.h:47
void addTicks(QGraphicsView *graphics_view, QGraphicsScene *scene, bool symetric, bool add_y_axis)
int m_last_y_click
Definition: bdiQWidgetKeyFrameEditor.h:101
DtFxParticleDesc * m_desc
Definition: bdiQWidgetKeyFrameEditor.h:112
bdiQWidgetKeyFrameEditor(bdiQWidgetParticleSystem *particle_editor, DtFxParticleSystemManager *manager, const char *name=0, Qt::WindowFlags fl=0)
float m_size_scale
Definition: bdiQWidgetKeyFrameEditor.h:104
ColorKeyFrameItem * m_current_color_item
Definition: bdiQWidgetKeyFrameEditor.h:107
QVector< QGraphicsItem * > m_tick_markers
Definition: bdiQWidgetKeyFrameEditor.h:94
bdiQWidgetParticleSystem * m_particle_editor
Definition: bdiQWidgetKeyFrameEditor.h:114
virtual void showEvent(QShowEvent *e)
KeyFrameItem * create_color_key(ColorKeyFrame *event, int x)
float get_size_scale()
Definition: bdiQWidgetKeyFrameEditor.h:53
virtual void hideEvent(QHideEvent *e)
QMenu * m_context_menu
Definition: bdiQWidgetKeyFrameEditor.h:99
Definition: bdiQWidgetKeyFrameEditor.h:28
int m_last_x_click
Definition: bdiQWidgetKeyFrameEditor.h:100
KeyFrameItem * m_current_keyframe_item
Definition: bdiQWidgetKeyFrameEditor.h:109
void set_current_t_normalized(float value)
virtual void slot_event_type_changed()
QGraphicsPathItem * m_size_path
Definition: bdiQWidgetKeyFrameEditor.h:93
virtual void slot_update_graph(int sliderVal)
KeyFrameItem * create_size_key(FloatKeyFrame *event, int x)
QGraphicsItem * m_last_clicked_item
Definition: bdiQWidgetKeyFrameEditor.h:110
QGraphicsScene * m_graphics_scene_size
Definition: bdiQWidgetKeyFrameEditor.h:90
KeyFrameItem * finishKeyFrameItem(KeyFrameItem *event_item, int x)
QGraphicsScene * m_active_scene
Definition: bdiQWidgetKeyFrameEditor.h:111
DtFxParticleSystemManager * m_ps_manager
Definition: bdiQWidgetKeyFrameEditor.h:113
a subclass of bdiParticleDesc, currently reimplements all of configuration file reading and writing...
Definition: DtFxParticleSystem.h:113
void addYAxis(QGraphicsView *graphics_view, QGraphicsScene *scene)

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)