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.

112 lines
3.0 KiB
C

1 month ago
#pragma once
#include "item.h"
namespace NItem
{
#define MESH_DEFAULT 0
#define MESH_CREATE_CONTOUR 1
#define MESH_EDIT_NODE 2 //<2F><><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5>
#define MESH_HISTOGRAM 3 //ͳ<><CDB3>ͼ
#define MESH_GET_RANGE 4 //<2F><><EFBFBD><EFBFBD><5A><D6B5>Χ,<2C>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>Чֵ
#define MESH_GRID_SMOOTH 5 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD>
class CItemMesh : public CItem
{
public:
CItemMesh(CSigmaDoc* ppDoc);
virtual ~CItemMesh(void);
//CDC* m_pDrawDC;
//virtual void OnDraw(CXyDC* pDC);
void OnLButtonDown(CDC * pDC, UINT nFlags, CPoint point, int vk) override;
int OnMouseMove(CDC * pDC, UINT nFlags, CPoint point) override;
void SetPos(POSITION pos) override;
CMesh* GetMesh(void);
void SaveAs(COne* pOne, LPCTSTR filePath, int index);
void SaveAsOnlyData(COne* pOne, LPCTSTR filePath);
wchar_t * GetInformationForGeneratingContour();
bool CreateContour(COne* pOne, char * infoString);
//BOOL InitPropertyGridMesh(CXTPPropertyGrid& grid);
bool GridPointNoExist(UINT nFlags, CPoint point);
CString GetGridValue(UINT nFlags, CPoint point);
//ƽ<><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool GridSmooth(COne* pOne, double coefficient, int smoothNumber);
void OnDraw(CXyDC* pDC) override;
void OnDraw(CXyDC* pXyDC, CDC* pDC) override;
void EditNode(CSigmaView* pView, CDC *pDC, CRect rt);
bool FindNodeLocation(CDC *pDC, CPoint point, int& locationX, int& locationY);
void Histogram(void);
void ConfirmGridBtn();
int GetEditMode(void);
CPositionList m_posAddList;
//for histogram
void SetHistogramRange(double zmin, double zmax);
int DeleteSelected(void);
void DrawNode(CXyDC* pDC);
void DrawNode(CXyDC* pDC, CRect rect);
void SetZValueOfNodeSelected(double v);
bool SetZOfGridPoint(double z, int row, int column);
void GetAreaAndValueForSelected(double minZ, double maxZ, double * areaOut, double * volumeOut);
protected:
CDC * pDrawerDC;
//for histogram
void DrawHistogram(CXyDC* pDC);
bool ParseInformationOfCreatingContour(char * infoStr);
CSize8 m_zrange; //Zֵ<5A><D6B5>Χ
BOOL m_bDrawRangeZ;
//CDlgHistogram *m_pHistogramDlg;
CColorBase color;
int typeIndex; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>ͣ<EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD>
long m_levelAlpha; //͸<><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD>0-255<35><35>
CString name;
int modeFun; //ƫ<><C6AB><EFBFBD><EFBFBD>
int GetFunctionIdea(DWORD nFunMode);
DWORD GetFunctionMode(int nFunIdea);
int m_nDimensionSel; //ά<><CEAC><EFBFBD><EFBFBD>0=2D<32><44>1=3D
BOOL m_bReversal = FALSE;
BOOL m_bRuler = FALSE;
BOOL m_bUpdateRuler = FALSE;
CPoint2D m_point;
BOOL m_bShowColorPane;
int m_RulerIdea; //<2F><>ˮƽƽ<C6BD><C6BD>ƽ<CBAE><C6BD><EFBFBD><EFBFBD>,<2C><>ֱƽ<D6B1><C6BD>,<2C><>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>
int GetRulerIdea(DWORD nMode);
DWORD GetRulerMode(int nIdea);
int m_nSelect;
//for create contour
double m_contourStep;
long m_contourMarkStep;
CString m_strLayerMark;
CString m_strLayerOther;
int m_nFaultageMode;
CString m_strFaultageFile;
CString m_strFaultageLayer;
//for node edit
BOOL m_bDrawPrevPoint;
CPoint2D m_ptPrevPoint;
void DrawFocus(CPoint2D point);
//for get Z range
CSize8 m_szInvalidateValueZ;
BOOL m_bResetZ = FALSE;
//for smooth
double m_smoothcoef; //ƽ<><C6BD>ϵ<EFBFBD><CFB5>
long m_smthtimes; //ƽ<><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CRect clientRect;
};
};