2025-04-27 07:49:33 -04:00

45 lines
1.2 KiB
C++

#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__