#ifndef __T_CURVE_H__ #define __T_CURVE_H__ #include "imgtools.h" #define MAX_ANCHOR_POINTS 4 // endpoints the user selects (buttondown). class CCurveTool : public CRubberTool { DECLARE_DYNAMIC(CCurveTool) protected: POINT m_PolyPoints[MAX_ANCHOR_POINTS]; CRect m_cRectBounding; int m_iNumAnchorPoints; void AdjustBoundingRect(void); void AddPoint(POINT ptNewPoint); void SetCurrentPoint(POINT ptNewPoint); BOOL DrawCurve(CDC* pDC); virtual void AdjustPointsForConstraint(MTI *pmti); virtual void PreProcessPoints(MTI *pmti); public: CCurveTool(); ~CCurveTool(); virtual void Render(CDC* pDC, CRect& rect, BOOL bDraw, BOOL bCommit, BOOL bCtrlDown); virtual void OnStartDrag(CImgWnd* pImgWnd, MTI* pmti ); virtual void OnEndDrag(CImgWnd* pImgWnd, MTI* pmti ); virtual void OnDrag(CImgWnd* pImgWnd, MTI* pmti ); virtual void OnCancel(CImgWnd* pImgWnd); virtual void EndMultiptOperation(BOOL bAbort = FALSE); virtual void OnActivate( BOOL bActivate ); BOOL CanEndMultiptOperation(MTI* pmti ); }; #endif // __T_CURVE_H__