NAP
sequencecurvetrackview_guiactions.h
1 #pragma once
2 
3 namespace nap
4 {
6  // Sequence Curve Track Actions
8 
9  namespace sequenceguiactions
10  {
14  class NAPAPI HoveringControlPoint : public TrackAction
15  {
16  RTTI_ENABLE(TrackAction)
17  public:
25  HoveringControlPoint(std::string trackID, std::string segmentID, int controlPointIndex, int curveIndex)
26  : TrackAction(std::move(trackID)), mSegmentID(std::move(segmentID)), mControlPointIndex(controlPointIndex), mCurveIndex(curveIndex)
27  {}
28 
29 
30  std::string mSegmentID;
33  };
34 
39  {
40  RTTI_ENABLE(TrackAction)
41  public:
51  DraggingControlPoint(std::string trackID, std::string segmentID, int controlPointIndex, int curveIndex, float newTime, float newValue)
52  : TrackAction(std::move(trackID)), mSegmentID(std::move(segmentID)), mControlPointIndex(controlPointIndex),
53  mCurveIndex(curveIndex), mNewTime(newTime), mNewValue(newValue)
54  {}
55 
56 
57  std::string mSegmentID;
60  float mNewTime;
61  float mNewValue;
62  };
63 
67  class NAPAPI HoveringTanPoint : public TrackAction
68  {
69  RTTI_ENABLE(TrackAction)
70  public:
76  HoveringTanPoint(std::string trackID, std::string tanPointID)
77  : TrackAction(std::move(trackID)), mTanPointID(std::move(tanPointID))
78  {}
79 
80 
81  std::string mTanPointID;
82  };
83 
87  class NAPAPI HoveringCurve : public TrackAction
88  {
89  RTTI_ENABLE(TrackAction)
90  public:
97  HoveringCurve(std::string trackId, std::string segmentID, int curveIndex)
98  : TrackAction(std::move(trackId)), mSegmentID(std::move(segmentID)), mCurveIndex(curveIndex)
99  {}
100 
101 
102  std::string mSegmentID;
104  };
105 
106 
110  class NAPAPI InsertingCurvePoint : public TrackAction
111  {
112  RTTI_ENABLE(TrackAction)
113  public:
121  InsertingCurvePoint(std::string trackID, std::string segmentID, int selectedCurve, float pos)
122  : TrackAction(std::move(trackID)), mSegmentID(std::move(segmentID)), mSelectedIndex(selectedCurve), mPos(pos)
123  {}
124 
125  bool mOpened = false;
126  std::string mSegmentID;
128  float mPos;
129  };
130 
131 
136  template<typename T>
138  {
139  RTTI_ENABLE(TrackAction)
140  public:
152  CurvePointActionPopup(const std::string& trackID, std::string segmentID, int controlPointIndex, int curveIndex, float value, float time, T minimum, T maximum)
153  : TrackAction(trackID), mSegmentID(std::move(segmentID)),
154  mControlPointIndex(controlPointIndex), mCurveIndex(curveIndex),
155  mValue(value), mMinimum(minimum), mMaximum(maximum), mTime(time)
156  {}
157 
158  bool mOpened = false;
159  std::string mSegmentID;
162  float mValue;
165  float mTime;
166  };
167 
168 
172  class NAPAPI CurveTypePopup : public TrackAction
173  {
174  RTTI_ENABLE(TrackAction)
175  public:
184  CurveTypePopup(std::string trackID, std::string segmentID, int index, float pos, ImVec2 windowPos) :
185  TrackAction(std::move(trackID)), mSegmentID(std::move(segmentID)), mCurveIndex(index), mPos(pos), mWindowPos(windowPos)
186  {}
187 
188  bool mOpened = false;
189  std::string mSegmentID;
191  float mPos;
192  ImVec2 mWindowPos;
193  };
194 
198  class NAPAPI DraggingTanPoint : public TrackAction
199  {
200  RTTI_ENABLE(TrackAction)
201  public:
210  DraggingTanPoint(std::string trackID, std::string segmentID, int controlPointIndex, int curveIndex, sequencecurveenums::ETanPointTypes type)
211  : TrackAction(std::move(trackID)), mSegmentID(std::move(segmentID)), mControlPointIndex(controlPointIndex), mCurveIndex(curveIndex), mType(type)
212  {}
213 
214 
215  std::string mSegmentID;
219 
220  float mNewValue = 0.0f;
221  float mNewTime = 0.0f;
222  };
223 
224 
228  class NAPAPI EditingTanPointPopup : public TrackAction
229  {
230  RTTI_ENABLE(TrackAction)
231  public:
242  EditingTanPointPopup(std::string trackID, std::string segmentID, int controlPointIndex, int curveIndex, sequencecurveenums::ETanPointTypes type, float value, float time)
243  : TrackAction(std::move(trackID)), mSegmentID(std::move(segmentID)), mControlPointIndex(controlPointIndex), mCurveIndex(curveIndex), mType(type), mValue(value), mTime(time)
244  {}
245 
246  bool mOpened = false;
247  std::string mSegmentID;
251  float mValue;
252  float mTime;
253  };
254 
255 
259  class NAPAPI EditingCurveSegment : public TrackAction
260  {
261  RTTI_ENABLE(TrackAction)
262  public:
272  EditingCurveSegment(std::string trackID, std::string segmentID, const rttr::type &segmentType, double startTime, double duration, std::string label)
273  : TrackAction(trackID), mSegmentID(segmentID), mSegmentType(segmentType), mStartTime(startTime), mDuration(duration), mSegmentLabel(label)
274  {}
275 
276  bool mOpened = false;
277  std::string mSegmentID;
278  rttr::type mSegmentType;
279  double mStartTime;
280  double mDuration;
281  std::string mSegmentLabel;
282  };
283 
284 
289  template<typename T>
291  {
292  RTTI_ENABLE(TrackAction)
293  public:
304  EditingSegmentCurveValue(const std::string& trackId, std::string segmentID,sequencecurveenums::ESegmentValueTypes type, int curveIndex, T value, T minimum, T maximum)
305  : TrackAction(trackId), mSegmentID(std::move(segmentID)), mType(type), mCurveIndex(curveIndex), mValue(value), mMinimum(minimum), mMaximum(maximum)
306  {}
307 
308  bool mOpened = false;
309  std::string mSegmentID;
315  };
316 
321  template<typename T>
323  {
324  RTTI_ENABLE(TrackAction)
325  public:
332  ChangeMinMaxCurve(const std::string &trackID, T newMin, T newMax)
333  : TrackAction(trackID), mNewMin(newMin), mNewMax(newMax)
334  {}
335 
336 
339  };
340 
344  class NAPAPI HoveringSegmentValue : public TrackAction
345  {
346  RTTI_ENABLE(TrackAction)
347  public:
355  HoveringSegmentValue(std::string trackId, std::string segmentID, sequencecurveenums::ESegmentValueTypes type, int curveIndex)
356  : TrackAction(std::move(trackId)), mSegmentID(std::move(segmentID)), mType(type), mCurveIndex(curveIndex)
357  {}
358 
359 
360  std::string mSegmentID;
363  };
364 
369  {
370  RTTI_ENABLE(TrackAction)
371  public:
380  DraggingSegmentValue(std::string trackId, std::string segmentID, sequencecurveenums::ESegmentValueTypes type, int curveIndex, float newValue)
381  : TrackAction(std::move(trackId)), mSegmentID(std::move(segmentID)), mType(type), mCurveIndex(curveIndex), mNewValue(newValue)
382  {}
383 
384 
385  std::string mSegmentID;
388  float mNewValue;
389  };
390  }
391 }
nap::sequenceguiactions::DraggingControlPoint::mSegmentID
std::string mSegmentID
Definition: sequencecurvetrackview_guiactions.h:57
nap::sequenceguiactions::CurvePointActionPopup::mOpened
bool mOpened
Definition: sequencecurvetrackview_guiactions.h:158
nap::sequenceguiactions::HoveringTanPoint
Definition: sequencecurvetrackview_guiactions.h:67
nap::sequenceguiactions::CurveTypePopup::mWindowPos
ImVec2 mWindowPos
Definition: sequencecurvetrackview_guiactions.h:192
nap::sequenceguiactions::EditingTanPointPopup
Definition: sequencecurvetrackview_guiactions.h:228
nap::sequencecurveenums::ETanPointTypes
ETanPointTypes
Definition: sequencecurveenums.h:13
nap::sequenceguiactions::EditingTanPointPopup::mValue
float mValue
Definition: sequencecurvetrackview_guiactions.h:251
nap::sequenceguiactions::DraggingControlPoint::mNewValue
float mNewValue
Definition: sequencecurvetrackview_guiactions.h:61
nap::sequenceguiactions::CurveTypePopup::CurveTypePopup
CurveTypePopup(std::string trackID, std::string segmentID, int index, float pos, ImVec2 windowPos)
Definition: sequencecurvetrackview_guiactions.h:184
nap::sequenceguiactions::DraggingTanPoint
Definition: sequencecurvetrackview_guiactions.h:198
nap::sequenceguiactions::CurvePointActionPopup::mTime
float mTime
Definition: sequencecurvetrackview_guiactions.h:165
nap::sequenceguiactions::EditingCurveSegment::mSegmentID
std::string mSegmentID
Definition: sequencecurvetrackview_guiactions.h:277
nap::sequenceguiactions::DraggingTanPoint::DraggingTanPoint
DraggingTanPoint(std::string trackID, std::string segmentID, int controlPointIndex, int curveIndex, sequencecurveenums::ETanPointTypes type)
Definition: sequencecurvetrackview_guiactions.h:210
nap::sequenceguiactions::HoveringControlPoint::HoveringControlPoint
HoveringControlPoint(std::string trackID, std::string segmentID, int controlPointIndex, int curveIndex)
Definition: sequencecurvetrackview_guiactions.h:25
nap::sequencecurveenums::ESegmentValueTypes
ESegmentValueTypes
Definition: sequencecurveenums.h:18
nap::sequenceguiactions::HoveringCurve::mSegmentID
std::string mSegmentID
Definition: sequencecurvetrackview_guiactions.h:102
nap::sequenceguiactions::CurveTypePopup::mSegmentID
std::string mSegmentID
Definition: sequencecurvetrackview_guiactions.h:189
nap::sequenceguiactions::DraggingSegmentValue::mCurveIndex
int mCurveIndex
Definition: sequencecurvetrackview_guiactions.h:387
nap::sequenceguiactions::CurveTypePopup::mPos
float mPos
Definition: sequencecurvetrackview_guiactions.h:191
nap::sequenceguiactions::CurvePointActionPopup::mMaximum
T mMaximum
Definition: sequencecurvetrackview_guiactions.h:164
nap::sequenceguiactions::CurvePointActionPopup::mControlPointIndex
int mControlPointIndex
Definition: sequencecurvetrackview_guiactions.h:160
nap::sequenceguiactions::CurvePointActionPopup::mMinimum
T mMinimum
Definition: sequencecurvetrackview_guiactions.h:163
nap::sequenceguiactions::CurveTypePopup
Definition: sequencecurvetrackview_guiactions.h:172
nap::sequenceguiactions::DraggingTanPoint::mCurveIndex
int mCurveIndex
Definition: sequencecurvetrackview_guiactions.h:217
nap::sequenceguiactions::DraggingSegmentValue::mSegmentID
std::string mSegmentID
Definition: sequencecurvetrackview_guiactions.h:385
nap::sequenceguiactions::EditingSegmentCurveValue::mMaximum
T mMaximum
Definition: sequencecurvetrackview_guiactions.h:314
nap::sequenceguiactions::EditingSegmentCurveValue
Definition: sequencecurvetrackview_guiactions.h:290
nap::sequenceguiactions::HoveringControlPoint
Definition: sequencecurvetrackview_guiactions.h:14
nap::sequenceguiactions::EditingSegmentCurveValue::mCurveIndex
int mCurveIndex
Definition: sequencecurvetrackview_guiactions.h:311
nap::sequenceguiactions::EditingCurveSegment::mDuration
double mDuration
Definition: sequencecurvetrackview_guiactions.h:280
nap::sequenceguiactions::HoveringSegmentValue::mCurveIndex
int mCurveIndex
Definition: sequencecurvetrackview_guiactions.h:362
nap::sequenceguiactions::EditingTanPointPopup::mTime
float mTime
Definition: sequencecurvetrackview_guiactions.h:252
nap::sequenceguiactions::HoveringSegmentValue::HoveringSegmentValue
HoveringSegmentValue(std::string trackId, std::string segmentID, sequencecurveenums::ESegmentValueTypes type, int curveIndex)
Definition: sequencecurvetrackview_guiactions.h:355
nap::sequenceguiactions::HoveringSegmentValue
Definition: sequencecurvetrackview_guiactions.h:344
nap::sequenceguiactions::InsertingCurvePoint::mSelectedIndex
int mSelectedIndex
Definition: sequencecurvetrackview_guiactions.h:127
nap::sequenceguiactions::DraggingControlPoint::mControlPointIndex
int mControlPointIndex
Definition: sequencecurvetrackview_guiactions.h:58
nap::sequenceguiactions::DraggingTanPoint::mSegmentID
std::string mSegmentID
Definition: sequencecurvetrackview_guiactions.h:215
nap::sequenceguiactions::DraggingControlPoint::mCurveIndex
int mCurveIndex
Definition: sequencecurvetrackview_guiactions.h:59
nap::sequenceguiactions::DraggingSegmentValue::mNewValue
float mNewValue
Definition: sequencecurvetrackview_guiactions.h:388
nap::sequenceguiactions::HoveringCurve
Definition: sequencecurvetrackview_guiactions.h:87
nap::sequenceguiactions::EditingSegmentCurveValue::mMinimum
T mMinimum
Definition: sequencecurvetrackview_guiactions.h:313
nap::sequenceguiactions::EditingTanPointPopup::mControlPointIndex
int mControlPointIndex
Definition: sequencecurvetrackview_guiactions.h:248
nap::sequenceguiactions::DraggingSegmentValue::DraggingSegmentValue
DraggingSegmentValue(std::string trackId, std::string segmentID, sequencecurveenums::ESegmentValueTypes type, int curveIndex, float newValue)
Definition: sequencecurvetrackview_guiactions.h:380
nap::sequenceguiactions::CurvePointActionPopup::mSegmentID
std::string mSegmentID
Definition: sequencecurvetrackview_guiactions.h:159
nap::sequenceguiactions::ChangeMinMaxCurve::mNewMin
T mNewMin
Definition: sequencecurvetrackview_guiactions.h:337
nap::sequenceguiactions::DraggingTanPoint::mType
sequencecurveenums::ETanPointTypes mType
Definition: sequencecurvetrackview_guiactions.h:218
nap::sequenceguiactions::EditingSegmentCurveValue::mType
sequencecurveenums::ESegmentValueTypes mType
Definition: sequencecurvetrackview_guiactions.h:310
nap::sequenceguiactions::CurvePointActionPopup::mCurveIndex
int mCurveIndex
Definition: sequencecurvetrackview_guiactions.h:161
nap::sequenceguiactions::HoveringTanPoint::mTanPointID
std::string mTanPointID
Definition: sequencecurvetrackview_guiactions.h:81
nap::sequenceguiactions::DraggingControlPoint::mNewTime
float mNewTime
Definition: sequencecurvetrackview_guiactions.h:60
nap::sequenceguiactions::CurvePointActionPopup::CurvePointActionPopup
CurvePointActionPopup(const std::string &trackID, std::string segmentID, int controlPointIndex, int curveIndex, float value, float time, T minimum, T maximum)
Definition: sequencecurvetrackview_guiactions.h:152
nap::sequenceguiactions::CurveTypePopup::mCurveIndex
int mCurveIndex
Definition: sequencecurvetrackview_guiactions.h:190
nap::sequenceguiactions::EditingSegmentCurveValue::EditingSegmentCurveValue
EditingSegmentCurveValue(const std::string &trackId, std::string segmentID, sequencecurveenums::ESegmentValueTypes type, int curveIndex, T value, T minimum, T maximum)
Definition: sequencecurvetrackview_guiactions.h:304
nap::sequenceguiactions::EditingCurveSegment::mSegmentType
rttr::type mSegmentType
Definition: sequencecurvetrackview_guiactions.h:278
nap::sequenceguiactions::CurvePointActionPopup::mValue
float mValue
Definition: sequencecurvetrackview_guiactions.h:162
nap::sequenceguiactions::EditingTanPointPopup::mSegmentID
std::string mSegmentID
Definition: sequencecurvetrackview_guiactions.h:247
nap::sequenceguiactions::ChangeMinMaxCurve::mNewMax
T mNewMax
Definition: sequencecurvetrackview_guiactions.h:338
nap::sequenceguiactions::InsertingCurvePoint::mPos
float mPos
Definition: sequencecurvetrackview_guiactions.h:128
nap::sequenceguiactions::HoveringTanPoint::HoveringTanPoint
HoveringTanPoint(std::string trackID, std::string tanPointID)
Definition: sequencecurvetrackview_guiactions.h:76
nap::sequenceguiactions::ChangeMinMaxCurve
Definition: sequencecurvetrackview_guiactions.h:322
nap::sequenceguiactions::DraggingControlPoint::DraggingControlPoint
DraggingControlPoint(std::string trackID, std::string segmentID, int controlPointIndex, int curveIndex, float newTime, float newValue)
Definition: sequencecurvetrackview_guiactions.h:51
nap::sequenceguiactions::TrackAction
Definition: sequenceeditorguiactions.h:86
nap::sequenceguiactions::CurvePointActionPopup
Definition: sequencecurvetrackview_guiactions.h:137
nap::sequenceguiactions::HoveringCurve::mCurveIndex
int mCurveIndex
Definition: sequencecurvetrackview_guiactions.h:103
nap::sequenceguiactions::InsertingCurvePoint::mSegmentID
std::string mSegmentID
Definition: sequencecurvetrackview_guiactions.h:126
nap::sequenceguiactions::HoveringControlPoint::mControlPointIndex
int mControlPointIndex
Definition: sequencecurvetrackview_guiactions.h:31
nap::sequenceguiactions::EditingCurveSegment
Definition: sequencecurvetrackview_guiactions.h:259
nap
Definition: templateapp.h:17
nap::sequenceguiactions::EditingSegmentCurveValue::mSegmentID
std::string mSegmentID
Definition: sequencecurvetrackview_guiactions.h:309
nap::sequenceguiactions::DraggingTanPoint::mControlPointIndex
int mControlPointIndex
Definition: sequencecurvetrackview_guiactions.h:216
nap::sequenceguiactions::DraggingControlPoint
Definition: sequencecurvetrackview_guiactions.h:38
nap::sequenceguiactions::ChangeMinMaxCurve::ChangeMinMaxCurve
ChangeMinMaxCurve(const std::string &trackID, T newMin, T newMax)
Definition: sequencecurvetrackview_guiactions.h:332
nap::sequenceguiactions::InsertingCurvePoint::InsertingCurvePoint
InsertingCurvePoint(std::string trackID, std::string segmentID, int selectedCurve, float pos)
Definition: sequencecurvetrackview_guiactions.h:121
nap::sequenceguiactions::EditingCurveSegment::mStartTime
double mStartTime
Definition: sequencecurvetrackview_guiactions.h:279
nap::sequenceguiactions::InsertingCurvePoint
Definition: sequencecurvetrackview_guiactions.h:110
nap::sequenceguiactions::EditingTanPointPopup::mType
sequencecurveenums::ETanPointTypes mType
Definition: sequencecurvetrackview_guiactions.h:250
nap::sequenceguiactions::EditingCurveSegment::mSegmentLabel
std::string mSegmentLabel
Definition: sequencecurvetrackview_guiactions.h:281
nap::sequenceguiactions::EditingTanPointPopup::mCurveIndex
int mCurveIndex
Definition: sequencecurvetrackview_guiactions.h:249
nap::sequenceguiactions::HoveringControlPoint::mCurveIndex
int mCurveIndex
Definition: sequencecurvetrackview_guiactions.h:32
nap::sequenceguiactions::HoveringCurve::HoveringCurve
HoveringCurve(std::string trackId, std::string segmentID, int curveIndex)
Definition: sequencecurvetrackview_guiactions.h:97
nap::sequenceguiactions::HoveringSegmentValue::mSegmentID
std::string mSegmentID
Definition: sequencecurvetrackview_guiactions.h:360
nap::sequenceguiactions::DraggingSegmentValue
Definition: sequencecurvetrackview_guiactions.h:368
nap::sequenceguiactions::EditingSegmentCurveValue::mOpened
bool mOpened
Definition: sequencecurvetrackview_guiactions.h:308
nap::sequenceguiactions::EditingTanPointPopup::EditingTanPointPopup
EditingTanPointPopup(std::string trackID, std::string segmentID, int controlPointIndex, int curveIndex, sequencecurveenums::ETanPointTypes type, float value, float time)
Definition: sequencecurvetrackview_guiactions.h:242
nap::sequenceguiactions::HoveringControlPoint::mSegmentID
std::string mSegmentID
Definition: sequencecurvetrackview_guiactions.h:30
nap::sequenceguiactions::EditingSegmentCurveValue::mValue
T mValue
Definition: sequencecurvetrackview_guiactions.h:312
nap::sequenceguiactions::DraggingSegmentValue::mType
sequencecurveenums::ESegmentValueTypes mType
Definition: sequencecurvetrackview_guiactions.h:386
nap::sequenceguiactions::EditingCurveSegment::EditingCurveSegment
EditingCurveSegment(std::string trackID, std::string segmentID, const rttr::type &segmentType, double startTime, double duration, std::string label)
Definition: sequencecurvetrackview_guiactions.h:272
nap::sequenceguiactions::HoveringSegmentValue::mType
sequencecurveenums::ESegmentValueTypes mType
Definition: sequencecurvetrackview_guiactions.h:361