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.
|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include "HTrackerCommon.h"
|
|
|
|
|
|
#include "HTrackerHandleCalculator.h"
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>HTracker<65>ı任<C4B1><E4BBBB><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
class HTrackerTransform
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
HTrackerTransform();
|
|
|
|
|
|
void Init(int handle, const CRect & boundRect, CPoint mousePt);
|
|
|
|
|
|
void Draging(CPoint mousePt);
|
|
|
|
|
|
void EndDrag();
|
|
|
|
|
|
Gdiplus::Matrix * GetMatrix();
|
|
|
|
|
|
//<2F><><EFBFBD>ñ任<C3B1><E4BBBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void SetKind(HTRACKER_TRANSFORM_KIND kind);
|
|
|
|
|
|
protected:
|
|
|
|
|
|
void SetFixedPoints();
|
|
|
|
|
|
void Scale(CPoint & point);
|
|
|
|
|
|
void Move(CPoint & point);
|
|
|
|
|
|
bool IsCanMove(const CPoint& nPrevPoint, const CPoint& nCurPoint);
|
|
|
|
|
|
void Rotate(CPoint & point);
|
|
|
|
|
|
void Shear(CPoint & point);
|
|
|
|
|
|
private:
|
|
|
|
|
|
bool m_bDrag;
|
|
|
|
|
|
int m_handle;
|
|
|
|
|
|
CPoint m_StartPoint; //<2F><>ʼ<EFBFBD><CABC>קʱ<D7A7><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ꡣ
|
|
|
|
|
|
CRect m_boundRect; //tracker<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
CPoint m_FixedSrc;
|
|
|
|
|
|
CPoint m_FixedDest;
|
|
|
|
|
|
bool m_bCanMoved;
|
|
|
|
|
|
int m_nAllowMovePixel;
|
|
|
|
|
|
Gdiplus::Matrix m_Transform;
|
|
|
|
|
|
Gdiplus::REAL m_StartPhi;
|
|
|
|
|
|
HTrackerHandleCalculator m_calculator;
|
|
|
|
|
|
HTRACKER_TRANSFORM_KIND m_kind;
|
|
|
|
|
|
};
|
|
|
|
|
|
|