NAP
sequencecurvetrackview_guiactions.h
1 #include <utility>
2 
3 #pragma once
4 
5 namespace nap
6 {
8  // Sequence Curve Track Actions
10 
11  namespace sequenceguiactions
12  {
16  class NAPAPI HoveringControlPoint : public TrackAction
17  {
18  RTTI_ENABLE(TrackAction)
19  public:
27  HoveringControlPoint(std::string trackID, std::string segmentID, int controlPointIndex, int curveIndex)
28  : TrackAction(std::move(trackID)), mSegmentID(std::move(segmentID)), mControlPointIndex(controlPointIndex), mCurveIndex(curveIndex)
29  {}
30 
31 
32  std::string mSegmentID;
35  };
36 
41  {
42  RTTI_ENABLE(TrackAction)
43  public:
53  DraggingControlPoint(std::string trackID, std::string segmentID, int controlPointIndex, int curveIndex, float newTime, float newValue)
54  : TrackAction(std::move(trackID)), mSegmentID(std::move(segmentID)), mControlPointIndex(controlPointIndex),
55  mCurveIndex(curveIndex), mNewTime(newTime), mNewValue(newValue)
56  {}
57 
58 
59  std::string mSegmentID;
62  float mNewTime;
63  float mNewValue;
64  };
65 
69  class NAPAPI HoveringTanPoint : public TrackAction
70  {
71  RTTI_ENABLE(TrackAction)
72  public:
78  HoveringTanPoint(std::string trackID, std::string tanPointID)
79  : TrackAction(std::move(trackID)), mTanPointID(std::move(tanPointID))
80  {}
81 
82 
83  std::string mTanPointID;
84  };
85 
89  class NAPAPI HoveringCurve : public TrackAction
90  {
91  RTTI_ENABLE(TrackAction)
92  public:
99  HoveringCurve(std::string trackId, std::string segmentID, int curveIndex)
100  : TrackAction(std::move(trackId)), mSegmentID(std::move(segmentID)), mCurveIndex(curveIndex)
101  {}
102 
103 
104  std::string mSegmentID;
106  };
107 
108 
112  class NAPAPI InsertingCurvePoint : public TrackAction
113  {
114  RTTI_ENABLE(TrackAction)
115  public:
123  InsertingCurvePoint(std::string trackID, std::string segmentID, int selectedCurve, float pos)
124  : TrackAction(std::move(trackID)), mSegmentID(std::move(segmentID)), mSelectedIndex(selectedCurve), mPos(pos)
125  {}
126 
127  bool mOpened = false;
128  std::string mSegmentID;
130  float mPos;
131  };
132 
133 
138  template<typename T>
140  {
141  RTTI_ENABLE(TrackAction)
142  public:
154  CurvePointActionPopup(const std::string& trackID, std::string segmentID, int controlPointIndex, int curveIndex, float value, float time, T minimum, T maximum)
155  : TrackAction(trackID), mSegmentID(std::move(segmentID)),
156  mControlPointIndex(controlPointIndex), mCurveIndex(curveIndex),
157  mValue(value), mMinimum(minimum), mMaximum(maximum), mTime(time)
158  {}
159 
160  bool mOpened = false;
161  std::string mSegmentID;
164  float mValue;
167  float mTime;
168  };
169 
170 
174  class NAPAPI CurveTypePopup : public TrackAction
175  {
176  RTTI_ENABLE(TrackAction)
177  public:
186  CurveTypePopup(std::string trackID, std::string segmentID, int index, float pos, ImVec2 windowPos) :
187  TrackAction(std::move(trackID)), mSegmentID(std::move(segmentID)), mCurveIndex(index), mPos(pos), mWindowPos(windowPos)
188  {}
189 
190  bool mOpened = false;
191  std::string mSegmentID;
193  float mPos;
194  ImVec2 mWindowPos;
195  };
196 
200  class NAPAPI DraggingTanPoint : public TrackAction
201  {
202  RTTI_ENABLE(TrackAction)
203  public:
212  DraggingTanPoint(std::string trackID, std::string segmentID, int controlPointIndex, int curveIndex, sequencecurveenums::ETanPointTypes type)
213  : TrackAction(std::move(trackID)), mSegmentID(std::move(segmentID)), mControlPointIndex(controlPointIndex), mCurveIndex(curveIndex), mType(type)
214  {}
215 
216 
217  std::string mSegmentID;
221 
222  float mNewValue = 0.0f;
223  float mNewTime = 0.0f;
224  };
225 
226 
230  class NAPAPI EditingTanPointPopup : public TrackAction
231  {
232  RTTI_ENABLE(TrackAction)
233  public:
244  EditingTanPointPopup(std::string trackID, std::string segmentID, int controlPointIndex, int curveIndex, sequencecurveenums::ETanPointTypes type, float value, float time)
245  : TrackAction(std::move(trackID)), mSegmentID(std::move(segmentID)), mControlPointIndex(controlPointIndex), mCurveIndex(curveIndex), mType(type), mValue(value), mTime(time)
246  {}
247 
248  bool mOpened = false;
249  std::string mSegmentID;
253  float mValue;
254  float mTime;
255  };
256 
257 
261  class NAPAPI EditingCurveSegment : public TrackAction
262  {
263  RTTI_ENABLE(TrackAction)
264  public:
277  EditingCurveSegment(std::string trackID, std::string segmentID, const rttr::type &segmentType, double startTime, double duration, std::string label, const RGBAColorFloat& color, bool moveNextSegments, bool segmentLocked)
278  : TrackAction(std::move(trackID)), mSegmentID(std::move(segmentID)), mSegmentType(segmentType), mStartTime(startTime), mDuration(duration), mColor(color), mSegmentLabel(std::move(label)), mMoveNextSegments(moveNextSegments), mSegmentLocked(segmentLocked)
279  {}
280 
281  bool mOpened = false;
282  std::string mSegmentID;
283  rttr::type mSegmentType;
284  double mStartTime;
285  double mDuration;
286  std::string mSegmentLabel;
288  bool mMoveNextSegments = false;
289  bool mSegmentLocked = false;
290  };
291 
292 
297  template<typename T>
299  {
300  RTTI_ENABLE(TrackAction)
301  public:
312  EditingSegmentCurveValue(const std::string& trackId, std::string segmentID,sequencecurveenums::ESegmentValueTypes type, int curveIndex, T value, T minimum, T maximum)
313  : TrackAction(trackId), mSegmentID(std::move(segmentID)), mType(type), mCurveIndex(curveIndex), mValue(value), mMinimum(minimum), mMaximum(maximum)
314  {}
315 
316  bool mOpened = false;
317  std::string mSegmentID;
323  };
324 
329  template<typename T>
331  {
332  RTTI_ENABLE(TrackAction)
333  public:
340  ChangeMinMaxCurve(const std::string &trackID, T newMin, T newMax)
341  : TrackAction(trackID), mNewMin(newMin), mNewMax(newMax)
342  {}
343 
344 
347  };
348 
352  class NAPAPI HoveringSegmentValue : public TrackAction
353  {
354  RTTI_ENABLE(TrackAction)
355  public:
363  HoveringSegmentValue(std::string trackId, std::string segmentID, sequencecurveenums::ESegmentValueTypes type, int curveIndex)
364  : TrackAction(std::move(trackId)), mSegmentID(std::move(segmentID)), mType(type), mCurveIndex(curveIndex)
365  {}
366 
367 
368  std::string mSegmentID;
371  };
372 
377  {
378  RTTI_ENABLE(TrackAction)
379  public:
388  DraggingSegmentValue(std::string trackId, std::string segmentID, sequencecurveenums::ESegmentValueTypes type, int curveIndex, float newValue)
389  : TrackAction(std::move(trackId)), mSegmentID(std::move(segmentID)), mType(type), mCurveIndex(curveIndex), mNewValue(newValue)
390  {}
391 
392 
393  std::string mSegmentID;
396  float mNewValue;
397  };
398  }
399 }
nap::sequenceguiactions::DraggingControlPoint::mSegmentID
std::string mSegmentID
Definition: sequencecurvetrackview_guiactions.h:59
nap::sequenceguiactions::CurvePointActionPopup::mOpened
bool mOpened
Definition: sequencecurvetrackview_guiactions.h:160
nap::sequenceguiactions::HoveringTanPoint
Definition: sequencecurvetrackview_guiactions.h:69
nap::sequenceguiactions::CurveTypePopup::mWindowPos
ImVec2 mWindowPos
Definition: sequencecurvetrackview_guiactions.h:194
nap::sequenceguiactions::EditingTanPointPopup
Definition: sequencecurvetrackview_guiactions.h:230
nap::sequencecurveenums::ETanPointTypes
ETanPointTypes
Definition: sequencecurveenums.h:13
nap::sequenceguiactions::EditingTanPointPopup::mValue
float mValue
Definition: sequencecurvetrackview_guiactions.h:253
nap::sequenceguiactions::DraggingControlPoint::mNewValue
float mNewValue
Definition: sequencecurvetrackview_guiactions.h:63
nap::sequenceguiactions::CurveTypePopup::CurveTypePopup
CurveTypePopup(std::string trackID, std::string segmentID, int index, float pos, ImVec2 windowPos)
Definition: sequencecurvetrackview_guiactions.h:186
nap::sequenceguiactions::DraggingTanPoint
Definition: sequencecurvetrackview_guiactions.h:200
nap::sequenceguiactions::CurvePointActionPopup::mTime
float mTime
Definition: sequencecurvetrackview_guiactions.h:167
nap::sequenceguiactions::EditingCurveSegment::EditingCurveSegment
EditingCurveSegment(std::string trackID, std::string segmentID, const rttr::type &segmentType, double startTime, double duration, std::string label, const RGBAColorFloat &color, bool moveNextSegments, bool segmentLocked)
Definition: sequencecurvetrackview_guiactions.h:277
nap::sequenceguiactions::EditingCurveSegment::mSegmentID
std::string mSegmentID
Definition: sequencecurvetrackview_guiactions.h:282
nap::sequenceguiactions::DraggingTanPoint::DraggingTanPoint
DraggingTanPoint(std::string trackID, std::string segmentID, int controlPointIndex, int curveIndex, sequencecurveenums::ETanPointTypes type)
Definition: sequencecurvetrackview_guiactions.h:212
nap::sequenceguiactions::HoveringControlPoint::HoveringControlPoint
HoveringControlPoint(std::string trackID, std::string segmentID, int controlPointIndex, int curveIndex)
Definition: sequencecurvetrackview_guiactions.h:27
nap::sequencecurveenums::ESegmentValueTypes
ESegmentValueTypes
Definition: sequencecurveenums.h:18
nap::sequenceguiactions::HoveringCurve::mSegmentID
std::string mSegmentID
Definition: sequencecurvetrackview_guiactions.h:104
nap::RGBAColor< float >
nap::sequenceguiactions::CurveTypePopup::mSegmentID
std::string mSegmentID
Definition: sequencecurvetrackview_guiactions.h:191
nap::sequenceguiactions::DraggingSegmentValue::mCurveIndex
int mCurveIndex
Definition: sequencecurvetrackview_guiactions.h:395
nap::sequenceguiactions::CurveTypePopup::mPos
float mPos
Definition: sequencecurvetrackview_guiactions.h:193
nap::sequenceguiactions::CurvePointActionPopup::mMaximum
T mMaximum
Definition: sequencecurvetrackview_guiactions.h:166
nap::sequenceguiactions::CurvePointActionPopup::mControlPointIndex
int mControlPointIndex
Definition: sequencecurvetrackview_guiactions.h:162
nap::sequenceguiactions::CurvePointActionPopup::mMinimum
T mMinimum
Definition: sequencecurvetrackview_guiactions.h:165
nap::sequenceguiactions::CurveTypePopup
Definition: sequencecurvetrackview_guiactions.h:174
nap::sequenceguiactions::DraggingTanPoint::mCurveIndex
int mCurveIndex
Definition: sequencecurvetrackview_guiactions.h:219
nap::sequenceguiactions::DraggingSegmentValue::mSegmentID
std::string mSegmentID
Definition: sequencecurvetrackview_guiactions.h:393
nap::sequenceguiactions::EditingSegmentCurveValue::mMaximum
T mMaximum
Definition: sequencecurvetrackview_guiactions.h:322
nap::sequenceguiactions::EditingSegmentCurveValue
Definition: sequencecurvetrackview_guiactions.h:298
nap::sequenceguiactions::HoveringControlPoint
Definition: sequencecurvetrackview_guiactions.h:16
nap::sequenceguiactions::EditingSegmentCurveValue::mCurveIndex
int mCurveIndex
Definition: sequencecurvetrackview_guiactions.h:319
nap::sequenceguiactions::EditingCurveSegment::mDuration
double mDuration
Definition: sequencecurvetrackview_guiactions.h:285
nap::sequenceguiactions::HoveringSegmentValue::mCurveIndex
int mCurveIndex
Definition: sequencecurvetrackview_guiactions.h:370
nap::sequenceguiactions::EditingTanPointPopup::mTime
float mTime
Definition: sequencecurvetrackview_guiactions.h:254
nap::sequenceguiactions::HoveringSegmentValue::HoveringSegmentValue
HoveringSegmentValue(std::string trackId, std::string segmentID, sequencecurveenums::ESegmentValueTypes type, int curveIndex)
Definition: sequencecurvetrackview_guiactions.h:363
nap::sequenceguiactions::HoveringSegmentValue
Definition: sequencecurvetrackview_guiactions.h:352
nap::sequenceguiactions::InsertingCurvePoint::mSelectedIndex
int mSelectedIndex
Definition: sequencecurvetrackview_guiactions.h:129
nap::sequenceguiactions::DraggingControlPoint::mControlPointIndex
int mControlPointIndex
Definition: sequencecurvetrackview_guiactions.h:60
nap::sequenceguiactions::DraggingTanPoint::mSegmentID
std::string mSegmentID
Definition: sequencecurvetrackview_guiactions.h:217
nap::sequenceguiactions::DraggingControlPoint::mCurveIndex
int mCurveIndex
Definition: sequencecurvetrackview_guiactions.h:61
nap::sequenceguiactions::DraggingSegmentValue::mNewValue
float mNewValue
Definition: sequencecurvetrackview_guiactions.h:396
nap::sequenceguiactions::HoveringCurve
Definition: sequencecurvetrackview_guiactions.h:89
nap::sequenceguiactions::EditingSegmentCurveValue::mMinimum
T mMinimum
Definition: sequencecurvetrackview_guiactions.h:321
nap::sequenceguiactions::EditingTanPointPopup::mControlPointIndex
int mControlPointIndex
Definition: sequencecurvetrackview_guiactions.h:250
nap::sequenceguiactions::DraggingSegmentValue::DraggingSegmentValue
DraggingSegmentValue(std::string trackId, std::string segmentID, sequencecurveenums::ESegmentValueTypes type, int curveIndex, float newValue)
Definition: sequencecurvetrackview_guiactions.h:388
nap::sequenceguiactions::CurvePointActionPopup::mSegmentID
std::string mSegmentID
Definition: sequencecurvetrackview_guiactions.h:161
nap::sequenceguiactions::ChangeMinMaxCurve::mNewMin
T mNewMin
Definition: sequencecurvetrackview_guiactions.h:345
nap::sequenceguiactions::DraggingTanPoint::mType
sequencecurveenums::ETanPointTypes mType
Definition: sequencecurvetrackview_guiactions.h:220
nap::sequenceguiactions::EditingSegmentCurveValue::mType
sequencecurveenums::ESegmentValueTypes mType
Definition: sequencecurvetrackview_guiactions.h:318
nap::sequenceguiactions::CurvePointActionPopup::mCurveIndex
int mCurveIndex
Definition: sequencecurvetrackview_guiactions.h:163
nap::sequenceguiactions::HoveringTanPoint::mTanPointID
std::string mTanPointID
Definition: sequencecurvetrackview_guiactions.h:83
nap::sequenceguiactions::DraggingControlPoint::mNewTime
float mNewTime
Definition: sequencecurvetrackview_guiactions.h:62
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:154
nap::sequenceguiactions::CurveTypePopup::mCurveIndex
int mCurveIndex
Definition: sequencecurvetrackview_guiactions.h:192
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:312
nap::sequenceguiactions::EditingCurveSegment::mSegmentType
rttr::type mSegmentType
Definition: sequencecurvetrackview_guiactions.h:283
nap::sequenceguiactions::CurvePointActionPopup::mValue
float mValue
Definition: sequencecurvetrackview_guiactions.h:164
nap::sequenceguiactions::EditingTanPointPopup::mSegmentID
std::string mSegmentID
Definition: sequencecurvetrackview_guiactions.h:249
nap::sequenceguiactions::ChangeMinMaxCurve::mNewMax
T mNewMax
Definition: sequencecurvetrackview_guiactions.h:346
nap::sequenceguiactions::InsertingCurvePoint::mPos
float mPos
Definition: sequencecurvetrackview_guiactions.h:130
nap::sequenceguiactions::HoveringTanPoint::HoveringTanPoint
HoveringTanPoint(std::string trackID, std::string tanPointID)
Definition: sequencecurvetrackview_guiactions.h:78
nap::sequenceguiactions::ChangeMinMaxCurve
Definition: sequencecurvetrackview_guiactions.h:330
nap::sequenceguiactions::DraggingControlPoint::DraggingControlPoint
DraggingControlPoint(std::string trackID, std::string segmentID, int controlPointIndex, int curveIndex, float newTime, float newValue)
Definition: sequencecurvetrackview_guiactions.h:53
nap::sequenceguiactions::TrackAction
Definition: sequenceeditorguiactions.h:89
nap::sequenceguiactions::CurvePointActionPopup
Definition: sequencecurvetrackview_guiactions.h:139
nap::sequenceguiactions::HoveringCurve::mCurveIndex
int mCurveIndex
Definition: sequencecurvetrackview_guiactions.h:105
nap::sequenceguiactions::InsertingCurvePoint::mSegmentID
std::string mSegmentID
Definition: sequencecurvetrackview_guiactions.h:128
nap::sequenceguiactions::HoveringControlPoint::mControlPointIndex
int mControlPointIndex
Definition: sequencecurvetrackview_guiactions.h:33
nap::sequenceguiactions::EditingCurveSegment
Definition: sequencecurvetrackview_guiactions.h:261
nap
Definition: templateapp.h:17
nap::sequenceguiactions::EditingSegmentCurveValue::mSegmentID
std::string mSegmentID
Definition: sequencecurvetrackview_guiactions.h:317
nap::sequenceguiactions::DraggingTanPoint::mControlPointIndex
int mControlPointIndex
Definition: sequencecurvetrackview_guiactions.h:218
nap::sequenceguiactions::DraggingControlPoint
Definition: sequencecurvetrackview_guiactions.h:40
nap::sequenceguiactions::ChangeMinMaxCurve::ChangeMinMaxCurve
ChangeMinMaxCurve(const std::string &trackID, T newMin, T newMax)
Definition: sequencecurvetrackview_guiactions.h:340
nap::sequenceguiactions::InsertingCurvePoint::InsertingCurvePoint
InsertingCurvePoint(std::string trackID, std::string segmentID, int selectedCurve, float pos)
Definition: sequencecurvetrackview_guiactions.h:123
nap::sequenceguiactions::EditingCurveSegment::mStartTime
double mStartTime
Definition: sequencecurvetrackview_guiactions.h:284
nap::sequenceguiactions::InsertingCurvePoint
Definition: sequencecurvetrackview_guiactions.h:112
nap::sequenceguiactions::EditingTanPointPopup::mType
sequencecurveenums::ETanPointTypes mType
Definition: sequencecurvetrackview_guiactions.h:252
nap::sequenceguiactions::EditingCurveSegment::mSegmentLabel
std::string mSegmentLabel
Definition: sequencecurvetrackview_guiactions.h:286
nap::sequenceguiactions::EditingTanPointPopup::mCurveIndex
int mCurveIndex
Definition: sequencecurvetrackview_guiactions.h:251
nap::sequenceguiactions::HoveringControlPoint::mCurveIndex
int mCurveIndex
Definition: sequencecurvetrackview_guiactions.h:34
nap::sequenceguiactions::HoveringCurve::HoveringCurve
HoveringCurve(std::string trackId, std::string segmentID, int curveIndex)
Definition: sequencecurvetrackview_guiactions.h:99
nap::sequenceguiactions::HoveringSegmentValue::mSegmentID
std::string mSegmentID
Definition: sequencecurvetrackview_guiactions.h:368
nap::sequenceguiactions::DraggingSegmentValue
Definition: sequencecurvetrackview_guiactions.h:376
nap::sequenceguiactions::EditingSegmentCurveValue::mOpened
bool mOpened
Definition: sequencecurvetrackview_guiactions.h:316
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:244
nap::sequenceguiactions::HoveringControlPoint::mSegmentID
std::string mSegmentID
Definition: sequencecurvetrackview_guiactions.h:32
nap::sequenceguiactions::EditingSegmentCurveValue::mValue
T mValue
Definition: sequencecurvetrackview_guiactions.h:320
nap::sequenceguiactions::DraggingSegmentValue::mType
sequencecurveenums::ESegmentValueTypes mType
Definition: sequencecurvetrackview_guiactions.h:394
nap::sequenceguiactions::EditingCurveSegment::mColor
RGBAColorFloat mColor
Definition: sequencecurvetrackview_guiactions.h:287
nap::sequenceguiactions::HoveringSegmentValue::mType
sequencecurveenums::ESegmentValueTypes mType
Definition: sequencecurvetrackview_guiactions.h:369