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.
49 lines
1.4 KiB
C++
49 lines
1.4 KiB
C++
#pragma once
|
|
#include "HTrackerCommon.h"
|
|
#include "HTrackerHandleCalculator.h"
|
|
#include "HTrackerTransform.h"
|
|
#include "HTrackerDrawer.h"
|
|
|
|
class CSigmaDoc;
|
|
class TransformMotiveGraphDrawer;
|
|
class ScaleMotionGraphDrawer;
|
|
class PanMotionGraphDrawer;
|
|
|
|
class CHSimpleTracker
|
|
{
|
|
public:
|
|
enum HTRACKER_STATUS
|
|
{
|
|
HTRACKER_STATUS_HIDE,
|
|
HTRACKER_STATUS_NOT_DRAG, //δÍÏק״̬
|
|
HTRACKER_STATUS_DRAGING //ÍÏק״̬
|
|
};
|
|
public:
|
|
CHSimpleTracker();
|
|
~CHSimpleTracker();
|
|
bool Create(CSigmaDoc * pDoc, CRect boundRect);
|
|
void LButtonDown(int mouseX, int mouseY);
|
|
void MouseMove(CDC * pDC, int mouseX, int mouseY);
|
|
void LButtonUp(int mouseX, int mouseY, CDC * pDC);
|
|
void Draw(CDC * pDC);
|
|
void Reset();
|
|
HTRACKER_HANDLE_KIND HitTest(int mouseX, int mouseY);
|
|
CRect GetBoundRect();
|
|
protected:
|
|
void TranslateBoundRect(CRect & boundRectOut);
|
|
HTRACKER_TRANSFORM_KIND JudgeTransformKind(HTRACKER_HANDLE_KIND kind);
|
|
void ChangeGraphDrawer();
|
|
void ChangeHtrackerDrawerState();
|
|
private:
|
|
CRect m_boundRect;
|
|
CSigmaDoc * m_pDoc;
|
|
HTRACKER_STATUS m_status;
|
|
int m_motionCount;
|
|
HTrackerDrawer m_drawer;
|
|
TransformMotiveGraphDrawer * m_pTMGDrawer;
|
|
ScaleMotionGraphDrawer * m_pScaleMotionGraphDrawer;
|
|
PanMotionGraphDrawer * m_pPanMotionGraphDrawer;
|
|
HTRACKER_TRANSFORM_KIND m_transformKind;
|
|
HTrackerHandleCalculator m_handleCalctor;
|
|
HTrackerTransform m_trackerTransform;
|
|
}; |