|
|
#pragma once
|
|
|
#include "ItemCurve.h"
|
|
|
#include "ItemArc.h"
|
|
|
#include "ItemSelectElement.h"
|
|
|
|
|
|
namespace NItem
|
|
|
{
|
|
|
class CItemCurveArc :
|
|
|
public CItemCurve
|
|
|
{
|
|
|
public:
|
|
|
CItemCurveArc(CSigmaDoc * ppDoc);
|
|
|
virtual ~CItemCurveArc(void);
|
|
|
|
|
|
protected:
|
|
|
CItemArc* m_pArc;
|
|
|
|
|
|
public:
|
|
|
void OnLButtonDown(CDC *pDC, UINT nFlags, CPoint point, int vk) override;
|
|
|
int OnMouseMove(CDC* pDC, UINT nFlags, CPoint point) override;//, BYTE*& destBuffer, int& destLen);
|
|
|
void OnLButtonUp(CDC* pDC, UINT nFlags, CPoint point, int vk) override;
|
|
|
virtual void SetCurveState(int state, CDC * pDC);
|
|
|
int loop;
|
|
|
BOOL IsArcState(void);
|
|
|
};
|
|
|
|
|
|
class CItemCurveSpline :
|
|
|
public CItemCurveArc
|
|
|
{
|
|
|
public:
|
|
|
CItemCurveSpline(CSigmaDoc * ppDoc);
|
|
|
virtual ~CItemCurveSpline(void);
|
|
|
|
|
|
public:
|
|
|
void OnDraw(CXyDC* pDC) override;
|
|
|
void OnLButtonDown(CDC *pDC, UINT nFlags, CPoint point, int vk) override;
|
|
|
|
|
|
int OnMouseMove(CDC* pDC, UINT nFlags, CPoint point) override;
|
|
|
void OnLButtonUp(CDC *pDc, UINT nFlags, CPoint point, int vk) override;
|
|
|
virtual void SetCurveState(int state, CDC * pDC);
|
|
|
virtual void AppendPoint(void);
|
|
|
void clearSplineData();
|
|
|
BOOL OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) override;
|
|
|
void EraseAuxiliarySpline(CDC * pScreenDC);
|
|
|
void DrawAssistant(CDC * pDC, int mouseX, int mouseY) override;
|
|
|
virtual void AutoClose(void);
|
|
|
virtual POSITION NextCurve(void);
|
|
|
virtual void Undo(void);
|
|
|
virtual void Redo(void);
|
|
|
virtual BOOL IsCanUndo(void);
|
|
|
virtual BOOL IsCanRedo(void);
|
|
|
void DrawSpline(CXyDC* pDC);
|
|
|
void DrawSplineTail(CXyDC* pDC);
|
|
|
void GetSplineRealPoints(CDC *pDC);
|
|
|
void RedrawSplineHead(CXyDC* pDC);
|
|
|
void DrawSplineBody(CXyDC* pDC);
|
|
|
void GetHeadRealPoints(CXyDC* pDC);
|
|
|
void DrawHeadRealPoints(CXyDC * pDC);
|
|
|
|
|
|
BOOL IsSplineState(void);
|
|
|
void RemoveTail(void);
|
|
|
void DrawRealLine(CXyDC * pDC);
|
|
|
BOOL IsOnlyPointListTail(void);
|
|
|
virtual void OnCancel(void) override;
|
|
|
protected:
|
|
|
void CopyPreRealPoints();
|
|
|
void CopySplineHeads(int n);
|
|
|
void CopySplineTails(int n);
|
|
|
BOOL m_bAuxiliarySplineRedraw;
|
|
|
CPointList m_spPointList;//ȫ<><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߽ڵ<DFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
private:
|
|
|
int m_nSplineNodes;
|
|
|
int m_mSmoothStepFactor;
|
|
|
CPointList m_spRealPointList;//ȫ<><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD>߶ε<DFB6><CEB5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
CPointList m_spPreRealPointList;
|
|
|
CPointList m_spCalcPointList;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵļ<DFB5><C4BC><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5>б<EFBFBD>
|
|
|
CPointList m_spHeadRealPointList;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD>߶ε<DFB6><CEB5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
};
|
|
|
|
|
|
class CItemCurveMerge :
|
|
|
public CItemCurveSpline
|
|
|
{
|
|
|
public:
|
|
|
CItemCurveMerge(CSigmaDoc * ppDoc);
|
|
|
virtual ~CItemCurveMerge(void);
|
|
|
|
|
|
void OnLButtonDown(CDC *pDC, UINT nFlags, CPoint point, int vk) override;
|
|
|
int OnMouseMove(CDC *pDC, UINT nFlags, CPoint point) override;// , BYTE*& destBuffer, int& destLen);
|
|
|
void OnLButtonUp(CDC *pDC, UINT nFlags, CPoint point, int vk) override;
|
|
|
void DrawAssistant(CDC * pDC, int mouseX, int mouseY) override;
|
|
|
virtual BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
|
|
|
void EndCurve();
|
|
|
void AddCurve();
|
|
|
void AutoClose(void);
|
|
|
void ChangeMergeState();
|
|
|
virtual void OnCancel(void) override;
|
|
|
virtual void SetCurveState(int state, CDC * pDC) override;
|
|
|
protected:
|
|
|
void EreaseOldLine();
|
|
|
void DrawLine(dfPoint pt1, dfPoint pt2);
|
|
|
void MergeElement(POSITION pos, CPoint2D& dp);
|
|
|
CItemSelectElement * m_pItemSelect;
|
|
|
CPointList m_ptDisposableList;
|
|
|
public:
|
|
|
BOOL IsMergeState(void);
|
|
|
};
|
|
|
|
|
|
}; |