9 #include "sequencetrackview.h"
10 #include "sequencetracksegmentcurve.h"
11 #include "sequencecontrollercurve.h"
12 #include "sequenceguiservice.h"
40 void handleActions()
override;
56 void drawSegmentContent(
const SequenceTrack& track,
const SequenceTrackSegment& segment,
const ImVec2& trackTopLeft,
float previousSegmentX,
float segmentWidth,
float segmentX, ImDrawList* drawList,
bool drawStartValue);
81 void drawSegmentHandler(
const SequenceTrack& track,
const SequenceTrackSegment& segment,
const ImVec2& trackTopLeft,
float segmentX,
float segmentWidth, ImDrawList* drawList);
93 void drawControlPoints(
const SequenceTrack& track,
const SequenceTrackSegment& segment,
const ImVec2& trackTopLeft,
float segmentX,
float segmentWidth, ImDrawList* drawList);
107 void drawCurves(
const SequenceTrack& track,
const SequenceTrackSegment& segment,
const ImVec2& trackTopLeft,
float previousSegmentX,
float segmentWidth,
float segmentX, ImDrawList* drawList);
126 std::ostringstream& stringStream,
129 const ImVec2& circlePoint,
int controlPointIndex,
132 ImDrawList* drawList);
137 void handleInsertSegmentPopup();
142 void handleEditSegmentPopup();
147 void handleInsertCurvePointPopup();
153 void handleCurvePointActionPopup();
159 void handleSegmentValueActionPopup();
165 void handleChangeMinMaxCurve();
170 void handleDragTanPoint();
175 void handleAssignOutputIDToTrack();
180 void handleDragSegmentHandler();
185 void handleCurveTypePopup();
190 void handleTanPointActionPopup();
195 void handleDraggingSegmentValue();
200 void handleDraggingControlPoints();
205 void handleLoadPresetPopup();
233 bool inputFloat(T&,
int precision);
239 void showInspectorContent(
const SequenceTrack& track)
override;
246 void showTrackContent(
const SequenceTrack& track,
const ImVec2& trackTopLeft)
override;
256 bool pasteClipboardSegments(
const std::string& trackId,
double time,
utility::ErrorState& errorState);
264 void pasteClipboardSegmentInto(
const std::string& trackID,
const std::string& segmentID);
271 void updateSegmentInClipboard(
const std::string& trackID,
const std::string& segmentID);
277 void updateSegmentsInClipboard(
const std::string& trackID);
280 std::unordered_map<std::string, std::vector<std::vector<ImVec2>>>
mCurveCache;
286 static std::unordered_map<rttr::type, DrawSegmentMemFunPtr> &getDrawCurveSegmentsMap();
293 namespace sequenceguiclipboard
309 :
Clipboard(segmentType), mTrackID(std::move(trackID)), mSequenceName(std::move(sequenceName))
317 void changeTrackID(
const std::string &newTrackID);
335 std::string mTrackID;
336 std::string mSequenceName;
346 void SequenceCurveTrackView::handleCurvePointActionPopup<float>();
349 void SequenceCurveTrackView::handleSegmentValueActionPopup<float>();
352 void SequenceCurveTrackView::showValue<float>(
const SequenceTrack& track,
353 const SequenceTrackSegmentCurve<float>& segment,
float x,
double time,
357 void SequenceCurveTrackView::showValue<glm::vec2>(
const SequenceTrack& track,
const SequenceTrackSegmentCurve<glm::vec2>& segment,
float x,
double time,
int curveIndex);
360 void SequenceCurveTrackView::showValue<glm::vec3>(
const SequenceTrack& track,
const SequenceTrackSegmentCurve<glm::vec3>& segment,
float x,
double time,
int curveIndex);
363 void SequenceCurveTrackView::showValue<glm::vec4>(
const SequenceTrack& track,
const SequenceTrackSegmentCurve<glm::vec4>& segment,
float x,
double time,
int curveIndex);
366 bool SequenceCurveTrackView::inputFloat<float>(
float& v,
int precision);
369 bool SequenceCurveTrackView::inputFloat<glm::vec2>(glm::vec2& v,
int precision);
372 bool SequenceCurveTrackView::inputFloat<glm::vec3>(glm::vec3& v,
int precision);
375 bool SequenceCurveTrackView::inputFloat<glm::vec4>(glm::vec4& v,
int precision);
379 #include "sequencecurvetrackview_template.h"