|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include "itemfocusrect.h"
|
|
|
|
|
|
|
|
|
|
|
|
namespace NItem
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
#define CURVE_NULL_EMBELLISH 1 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
#define CURVE_SET_EMBELLISH 2 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
#define CURVE_CONTOUR 3 //<2F><><EFBFBD>ݵ<EFBFBD>ֵ<EFBFBD><D6B5>ֵ<EFBFBD><D6B5><EFBFBD>õ<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
|
#define CURVE_AUTO_LOCATION 4 //<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><D7AE>
|
|
|
|
|
|
#define CURVE_REVERSAL 5 //<2F><><EFBFBD>߷<EFBFBD>ת˳<D7AA><CBB3>
|
|
|
|
|
|
#define CURVE_SET_NAME 6 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
#define CURVE_NAME_TO_Z 7 //<2F><><EFBFBD>Ʊ<EFBFBD>Ϊ<EFBFBD><CEAA>ֵ
|
|
|
|
|
|
#define CURVE_Z_TO_NAME 8 //<2F><>ֵ<EFBFBD><D6B5>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
|
|
|
|
|
|
#define CURVE_NAME_LOG 9 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|
|
|
|
|
#define CURVE_NAME_EXPONENTIAL 10 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡָ<C8A1><D6B8>
|
|
|
|
|
|
#define CURVE_NAME_IS_NULL 11 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
#define CURVE_ANY_NAME 12 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2B4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
#define ARC_TO_CURVE 13 //Բ<><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
#define CURVE_SMOOTH 14 //<2F>⻬<EFBFBD><E2BBAC><EFBFBD><EFBFBD>
|
|
|
|
|
|
#define CURVE_TO_WAVE 15 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
#define CURVE_OFFSET 16 //ƽ<><C6BD><EFBFBD><EFBFBD>
|
|
|
|
|
|
#define CURVE_NODE_ENCRYPT 17 //<2F><><EFBFBD>߽ڵ<DFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
#define CURVE_REDUNDANT 18 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
#define CURVE_CLOSE 19 //<2F><><EFBFBD>߱պ<DFB1><D5BA><EFBFBD>β
|
|
|
|
|
|
#define CURVE_LAYER_TO_NAME 20 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
|
|
|
|
|
|
#define CURVE_AUTO_LINK 21 //<2F><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>ӣ<EFBFBD><D3A3><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>CGM<47>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
#define CURVE_FITTING 22 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD>ָ<EFBFBD><D6B8>ɢ<EFBFBD><C9A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊһ<CEAA><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
#define CURVE_SURFACE_Z 23 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Zֵ<5A><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Zֵ
|
|
|
|
|
|
|
|
|
|
|
|
class CItemCurveProcess : public CItemFocusRect
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CItemCurveProcess(CSigmaDoc * ppDoc);
|
|
|
|
|
|
virtual ~CItemCurveProcess(void);
|
|
|
|
|
|
|
|
|
|
|
|
void OnDraw(CXyDC* pDC) override;
|
|
|
|
|
|
void OnLButtonDown(CDC *pDC, UINT nFlags, CPoint point, int vk) override;
|
|
|
|
|
|
void OnRButtonDown(UINT nFlags, CPoint point) override;
|
|
|
|
|
|
BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) override;
|
|
|
|
|
|
void DoLButtonUp(CDC *pDC) override;
|
|
|
|
|
|
//<2F><><EFBFBD>ܽڵ<DCBD>
|
|
|
|
|
|
//mode 0--<2D><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>нڵ<D0BD> 1--<2D><><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɽڵ<C9BD>
|
|
|
|
|
|
//bRounding true <20><><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD>ȡ<EFBFBD><C8A1>
|
|
|
|
|
|
bool NodeEncrypt(int mode, double step, bool bRounding, CPositionList & selectionSet);
|
|
|
|
|
|
|
|
|
|
|
|
int PolygonConnect(CPositionList& selections, CString& layerName, bool deleteOriginalCurves);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߹յ<EFBFBD>
|
|
|
|
|
|
*
|
|
|
|
|
|
* \param tolerance
|
|
|
|
|
|
* \param selectionSet
|
|
|
|
|
|
* \return
|
|
|
|
|
|
*/
|
|
|
|
|
|
bool ToRedundant(double tolerance, CPositionList & selectionSet);
|
|
|
|
|
|
//<2F>⻬<EFBFBD><E2BBAC><EFBFBD><EFBFBD>
|
|
|
|
|
|
//mode 0--B<><42><EFBFBD><EFBFBD> 1--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
bool SmoothCurve(int mode, double step, CPositionList & selecctionSet);
|
|
|
|
|
|
int SetProcessIdea(int nIdea);
|
|
|
|
|
|
CString name;
|
|
|
|
|
|
int GetProcessResult() { return m_processResult; }
|
|
|
|
|
|
void SetCurveStyle(CHowToViewCurve& curveStyle);
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<3A><>Բ<EFBFBD><D4B2>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>:step <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
// bDeletion <20>Ƿ<EFBFBD>ɾ<EFBFBD><C9BE>ԭʼԪ<CABC><D4AA>
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ֵ:
|
|
|
|
|
|
int ArcToCurve(CPositionList & select, double step);
|
|
|
|
|
|
void SetCurveName(CString curveName, CPositionList & selectionSet);
|
|
|
|
|
|
std::string FindNameIsNull(CPositionList & selecctionSet);
|
|
|
|
|
|
protected:
|
|
|
|
|
|
int SetNullEmbellish(void);
|
|
|
|
|
|
int SetEmbellish(void);
|
|
|
|
|
|
int CurveContour(void);
|
|
|
|
|
|
int AutoLocation(void);
|
|
|
|
|
|
int Reversal(void);
|
|
|
|
|
|
int SetName(void);
|
|
|
|
|
|
int NameToZ(void);
|
|
|
|
|
|
int SetZFromSurface(void);
|
|
|
|
|
|
int ZToName(void);
|
|
|
|
|
|
int LayerToName(void);
|
|
|
|
|
|
int NameLog(void);
|
|
|
|
|
|
int NameExponential(void);
|
|
|
|
|
|
int AnyName(void);
|
|
|
|
|
|
int CurveSmooth(void);
|
|
|
|
|
|
int CurveOffset(void);
|
|
|
|
|
|
int NodeEncrypt(void);
|
|
|
|
|
|
int ToRedundant(void);
|
|
|
|
|
|
int CloseCurve(void);
|
|
|
|
|
|
int ToWave(void);
|
|
|
|
|
|
|
|
|
|
|
|
POSITION SelectOneCurve(UINT nFlags, CPoint point);
|
|
|
|
|
|
|
|
|
|
|
|
int m_idea; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
|
|
|
|
|
|
CColorBase* m_pColor;
|
|
|
|
|
|
double a;
|
|
|
|
|
|
long decimal;
|
|
|
|
|
|
BOOL m_bIsE;
|
|
|
|
|
|
bool m_bIsLog;
|
|
|
|
|
|
int m_selSmooth; //ƽ<><C6BD><EFBFBD><EFBFBD><EFBFBD>ߵķ<DFB5>ʽ<EFBFBD><CABD>0ΪS<CEAA><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1ΪB<CEAA><42><EFBFBD><EFBFBD>
|
|
|
|
|
|
BOOL m_bIsDelete;
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> cycle=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,swing=<3D><><EFBFBD><EFBFBD>,dnum=һ<><D2BB><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double cycle;
|
|
|
|
|
|
double swing;
|
|
|
|
|
|
long dnum;
|
|
|
|
|
|
BOOL m_bDeleteSourveCurve;
|
|
|
|
|
|
double m_dCurveOffset;
|
|
|
|
|
|
//<2F>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
int m_nMode;
|
|
|
|
|
|
double m_dStep;
|
|
|
|
|
|
BOOL m_bInteger; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD>ȡ<EFBFBD><C8A1>
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>࣬<EFBFBD><E0A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double m_error;
|
|
|
|
|
|
int m_processResult;
|
|
|
|
|
|
CHowToViewCurve m_CurveStyle;
|
|
|
|
|
|
public:
|
|
|
|
|
|
int AutoLinkCurve(double maxError = 1E-5, bool onlySameName = false);
|
|
|
|
|
|
int GetNextLinkCurve(CPositionList& select, void* pActionList, double maxError, bool onlySameName);
|
|
|
|
|
|
int FittingCurve(void);
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
};
|