You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nmWATI/Include/iPlot/iPlotCurveT/Objects/ZxObjCurve.h

80 lines
1.8 KiB
C

#pragma once
#include "ZxObjCurveBase.h"
class I_PLOTCURVE_T_EXPORT ZxObjCurve : public ZxObjCurveBase
{
Q_OBJECT
ZX_DECLARE_DYNAMIC
public:
ZxObjCurve();
ZxObjCurve(const QString& sName,
ZxSubAxisX* pAxisX, ZxSubAxisY* pAxisY);
~ZxObjCurve(void);
virtual void init(const QString& sName,
ZxSubAxisX* pAxisX, ZxSubAxisY* pAxisY);
// 封装
virtual void initTools();
// 选择from to
virtual bool selectRowRanges(int nFrom, int nTo);
// 根据鼠标位置xPos获取在线上的位置点
virtual bool getPointByX(float& xPos, QPointF& ptPos);
public:
// 一点选中边界是的移动策略
enum CurveMoveMode
{
MM_Free = 0, //单条移动
MM_Point_Free, //线模式
MM_Line_Free, //线模式
MM_Self_WithP, //与压力计同步
MM_Whole_Hori, //整体水平移动(竖直不动)
MM_Whole_Vert, //整体竖直移动(水平不动,暂时不用)
MM_Whole_Free //整体移动
};
protected:
// 设置图元对象的属性标志
virtual void initFlags();
// // 击中
// virtual bool hitTest(const QPointF& pt);
// // 击中后ButtonUp后的处理
// // pt1:鼠标Down点pt2鼠标Up点
// virtual bool runMove(const QPointF& pt1,
// const QPointF& pt2);
public:
virtual void paintBack(QPainter* painter, const ZxPaintParam& param);
virtual void drawPoint(QPainter* painter, QPointF arrPoints[], int nCount, ZxDot& dot);
virtual void onSerialize(ZxSerializer* ser);
virtual void onDeserialize(ZxSerializer* ser);
virtual void fillPtyPano(IxPtyPano* sheet);
public:
void setMoveMode(int nMoveMode);
int getMoveMode() const;
protected:
// 移动模式,仅仅对于竖线而言
CurveMoveMode m_oMoveMode;
};