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.

73 lines
2.0 KiB
C

1 month ago
#pragma once
#include "itemselectcurve.h"
#include "itemfocusrect.h"
namespace NItem
{
#define MESH_GEOLOGICAL_SECTION 1 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define MESH_VOLUME 2 //<2F><><EFBFBD><EFBFBD>
#define MESH_SET_VALUE 3 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߷<EFBFBD>Χ<EFBFBD>ڵ<EFBFBD>
#define MESH_CUT 4 //<2F><><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD>
#define MESH_LINE_VALUE 5 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
#define MESH_SCALE_Z 6 //Zֵ*ϵ<><CFB5>
#define MESH_VOLUME_MODE_SELECT 7 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽѡ<CABD><D1A1>
#define MESH_CUT_SLICE 8 //<2F>е<EFBFBD>ʱ<EFBFBD><CAB1>Ƭ
class CItemMeshProcess : public CItemSelectCurve
{
public:
CItemMeshProcess(CSigmaDoc * ppDoc);
virtual ~CItemMeshProcess(void);
virtual void DoLButtonUp(CRect8& rect);
virtual BOOL DoSelectEnd(void);
void SetProcessIdea(int nIdea);
void OnOK(void) override;
void OnCancel(void) override;;
void OnLButtonDown(CDC *pDC, UINT nFlags, CPoint point, int vk) override;;
void OnLButtonUp(CDC *pDC, UINT nFlags, CPoint point, int vk) override;;
int OnMouseMove(CDC *pDC, UINT nFlags, CPoint point) override;;
BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) override;;
BOOL OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags) override;
void ScaleZ(void);
void SetValueZ(void);
void LineValue(void);
bool CalculateVolume(CCurveEx* pCurveRange, int mode, double & zOut, double & volumeOut);
bool SetZOfSurface(CCurveEx* pCurveRange, int zMode, double zIn);
protected:
//INT_PTR DoModal(UINT nID);
int m_nIdea;
CItemFocusRect* m_pItemFocus;
double m_dValueZ;
int m_nModeSetZ; //<2F><><EFBFBD><EFBFBD>Zֵʱ<D6B5>ķ<EFBFBD>ʽ
bool SetZOfSurfaceInMode12(CCurveEx * pCurveRange, double z0, BOOL bInCurve);
void GeologicalSection(CCurveEx* pSplit);
void SetValue(CCurveEx* pCurveRange, double z0, BOOL bInCurve);
void Cut(CPositionList& select);
int Cut(CMesh* pMesh, CPositionList& select);
int LineValue(CMesh* pMesh, CPositionList& select);
int m_nLineValueMode;
double m_dLineValueStep;
void SetValueZ(int nModeSel, double z);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void Volume(CCurveEx* pCurveRange, int mode); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int m_nVolumeMode;
public:
int GetVolumeMode(void); //<2F><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD>ʲô<CAB2><C3B4><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD><CFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0=<3D><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>1=<3D>Ⱥ<EFBFBD>ͼ<EFBFBD><CDBC>
void CutSlice(void);
};
};