#ifndef FormWave_H #define FormWave_H #include #include #include #include "BaseFun.h" #include "MemRdWt.h" #pragma execution_character_set("utf-8") namespace Ui { class FormWave; } class FormTrack; class FormInfo; class FormWave : public QWidget { Q_OBJECT public: explicit FormWave(QWidget *parent = nullptr, QString strSlfName="", QString strWellName="", QString strTrackName="", QString strLineName=""); ~FormWave(); void initGeometry(QString strUuid, int nscale, double fW, int nH); void setDepthY(float fy1, float fy2); //改变深度更新绘图 void updateDepthY(float fy1, float fy2); bool LoadFromSLF_wave(); bool SaveToSLF_LogMud(); void changeColor(int nidx, int ncolorNum); private: Ui::FormWave *ui; protected: void paintEvent(QPaintEvent *event); virtual void wheelEvent(QWheelEvent *event); void DrawWave(QPainter* pdc, QRectF mrt); double GetData(int i, int j, char *buffer); double GetData(int repCode, char *buffer, int repLen = 0); void SetData(int repCode, char *buffer, double yy); bool IsFiniteNumber(float v) { return qIsFinite(v) != 0; } public: QString m_strUuid; QString m_strSlfName; QString m_strWellName; QString m_strTrackName; QString m_strLineName; QWidget *m_parent; FormTrack *m_formTrack = NULL; FormInfo* m_pInfo = NULL; float m_iY1, m_iY2; int m_iScale = 200; double m_wellTop = 0.0; double m_dTopDepth = 0.0; QSharedMemory m_sharedMemory; PFLOATPROPERTY m_vMD; PFLOATPROPERTY m_vProperty; MyDataTypeEnum vVdl; Slf_WAVE waveinfo; float m_SDep, m_EDep, m_Rlev; float m_PlotSdep = 0.0f; int m_nSamples; //每深度间隔的数据点 int m_PointNum; QVector valMin, valMax; double m_TopDepth; double m_BottomDepth; QVector selfcolorrank; QColor m_Color[256]; //定义颜色数组 char m_strValue[200]; int CtrlCurve = 0; int PickFlag = 0; float m_fTopY = 0.0f; float m_fDepthLowerY = 0.0f; float m_fAddY = 29.0f; int schemIndex = 1; int colornum = 256; public: //void DrawWave(QPainter* pdc, QRectF mrt1); public slots: void s_ResizeDepth(QString strUuid, int nHeight, float fDepthLowerY); //斜井三图一表 void s_ChangeTvdProperty(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strGroup, QString strProperty, QVariant variant); //滚动条 void vertScrollBarChanged(QString strUuid, double value, double low, double upper); void vertScrollBarChanged_Print(QString strUuid, int iNum, int iHeightOfScreen); void vertScrollBarChanged_setGeometry(QString strUuid, double value, double low, double upper, int ndepth); }; #endif // FormWave_H