25 double m_fLowerExtent = 0.0;
26 double m_fUpperExtent = 1.0;
27 bool m_bLowerExtentFixed =
false;
28 bool m_bUpperExtentFixed =
false;
33 void SetScrubberPosition(
double fPosition);
35 double GetMinCurveExtent()
const {
return m_fMinExtentValue; }
36 double GetMaxCurveExtent()
const {
return m_fMaxExtentValue; }
39 void FrameSelection();
40 void Frame(
double fOffsetX,
double fOffsetY,
double fWidth,
double fHeight);
42 QPoint MapFromScene(
const QPointF& pos)
const;
43 QPoint MapFromScene(
const plVec2d& vPos)
const {
return MapFromScene(QPointF(vPos.x, vPos.y)); }
44 QPointF MapToScene(
const QPoint& pos)
const;
47 void ClearSelection();
55 bool GetSelectedTangent(plInt32& out_iCurve, plInt32& out_iPoint,
bool& out_bLeftTangent)
const;
58 void DoubleClickEvent(
const QPointF& scenePos,
const QPointF& epsilon);
59 void DeleteControlPointsEvent();
60 void MoveControlPointsEvent(
double fMoveX,
double fMoveY);
61 void MoveTangentsEvent(
double fMoveX,
double fMoveY);
62 void BeginOperationEvent(QString sName);
63 void EndOperationEvent(
bool bCommit);
64 void ScaleControlPointsEvent(
const QPointF& centerPos,
double fScaleX,
double fScaleY);
65 void ContextMenuEvent(QPoint pos, QPointF scenePos);
66 void SelectionChangedEvent();
67 void MoveCurveEvent(plInt32 iCurve,
double fMoveY);
70 virtual void paintEvent(QPaintEvent* e)
override;
71 virtual void mousePressEvent(QMouseEvent* e)
override;
72 virtual void mouseReleaseEvent(QMouseEvent* e)
override;
73 virtual void mouseMoveEvent(QMouseEvent* e)
override;
74 virtual void mouseDoubleClickEvent(QMouseEvent* e)
override;
75 virtual void wheelEvent(QWheelEvent* e)
override;
76 virtual void keyPressEvent(QKeyEvent* e)
override;
79 enum class ClickTarget
109 void PaintCurveSegments(QPainter* painter,
float fOffsetX, plUInt8 alpha)
const;
110 void PaintOutsideAreaOverlay(QPainter* painter)
const;
111 void PaintControlPoints(QPainter* painter)
const;
112 void PaintSelectedControlPoints(QPainter* painter)
const;
113 void PaintSelectedTangentLines(QPainter* painter)
const;
114 void PaintSelectedTangentHandles(QPainter* painter)
const;
115 void PaintMultiSelectionSquare(QPainter* painter)
const;
116 void PaintScrubber(QPainter& p)
const;
117 void RenderVerticalGrid(QPainter* painter,
const QRectF& viewportSceneRect,
double fRoughGridDensity);
118 void RenderSideLinesAndText(QPainter* painter,
const QRectF& viewportSceneRect);
119 void RenderValueRanges(QPainter* painter);
120 QRectF ComputeViewportSceneRect()
const;
121 bool PickCpAt(
const QPoint& pos,
float fMaxPixelDistance,
plSelectedCurveCP& out_Result)
const;
122 ClickTarget DetectClickTarget(
const QPoint& pos);
127 void ComputeSelectionRect();
128 SelectArea WhereIsPoint(QPoint pos)
const;
129 plInt32 PickCurveAt(QPoint pos)
const;
134 EditState m_State = EditState::None;
135 plInt32 m_iDraggedCurve;
141 double m_fMinExtentValue;
142 double m_fMaxExtentValue;
143 double m_fMinValue, m_fMaxValue;
146 QPointF m_SceneTranslation;
147 QPointF m_SceneToPixelScale;
148 QPoint m_LastMousePos;
150 QBrush m_ControlPointBrush;
151 QBrush m_SelectedControlPointBrush;
152 QPen m_TangentLinePen;
153 QBrush m_TangentHandleBrush;
156 plInt32 m_iSelectedTangentCurve = -1;
157 plInt32 m_iSelectedTangentPoint = -1;
158 bool m_bSelectedTangentLeft =
false;
159 bool m_bBegunChanges =
false;
160 bool m_bFrameBeforePaint =
true;
162 QPoint m_MultiSelectionStart;
163 QRect m_MultiSelectRect;
164 QRectF m_SelectionBRect;
165 QPointF m_ScaleReferencePoint;
166 QPointF m_ScaleStartPoint;
167 QPointF m_TotalPointDrag;
168 QRubberBand* m_pRubberband =
nullptr;
170 bool m_bShowScrubber =
false;
171 double m_fScrubberPosition = 0;