📄 displayer.h
字号:
#ifndef _DISPLAYER_H_
#define _DISPLAYER_H_
#include "SoccerDoctor.h"
#include "LogPlayer.h"
#include "ObjectDetailDialog.h" // CObjectDetailDialog
#include "DrawingBox.h" // CDrawingBox
#include "PresentDialog.h" // CPresentDialog
#include "VisualObject.h" // CVisualObject
#include "HintWindow.h" // CHintWindow
#include "DisplayGDIObjects.h" // CDisplayGDIObjects
#include "DisplaySettings.h" // CDisplaySettings
#include "DisplayDefines.h" // CDisplayDefines
#include "analyzer.h" // CAnalyzer
#include <list> // list
// CDisplayer dialog
enum DisplayerCommand{
CmdStamina,
CmdKickmargin,
CmdViewarea,
CmdEnlarge,
CmdReduce,
CmdNumber,
CmdVelocity,
CmdSelect,
CmdSelectNone,
CmdFullscreen,
CmdOffsideLine,
CmdBallDetail,
CmdPassCourse
};
class CMainFrame;
class CDisplayer : public CDialog
{
DECLARE_DYNAMIC(CDisplayer)
public:
CDisplayer(CWnd* pParent = NULL); // standard constructor
virtual ~CDisplayer();
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnContextMenu(CWnd* /*pWnd*/, CPoint /*point*/);
afx_msg void OnPaint();
afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
void init(CMainFrame* pMainFrame) { _pMainFrame = pMainFrame; }
virtual BOOL PreTranslateMessage(MSG* pMsg);
void showLogplay(bool value) { m_bShowLogplay = value; }
void doFullScreen();
void OnObjectDetails();
void OnDrawingTools();
void OnToolboxPresent();
void OnDeleteVisualObject();
const cycle_info_t* getCycleInfo() const { return _pCycleInfo; }
bool DeliverMessage(MSG* pMsg); // 把消息发送给MainFrame
void SetDisplayInfo(const cycle_info_t *pInfo);
void DoCommand(DisplayerCommand cmd,int value=0);
bool GetStatus(DisplayerCommand cmd);
CPoint getSelectedPoint() const { return _selectedPoint; }
int getSelectedSide() const ;
UINT getSelectedNum() const ;
// GDI objects
// Brushes
CBrush* getBlackBrush() const { return _GDIObjects.getBlackBrush(); }
CBrush* getRedBrush() const { return _GDIObjects.getRedBrush(); }
CBrush* getWhiteBrush() const { return _GDIObjects.getWhiteBrush(); }
CBrush* getPinkBrush() const { return _GDIObjects.getPinkBrush(); }
CBrush* getYellowBrush() const { return _GDIObjects.getYellowBrush(); }
CBrush* getBlueBrush() const { return _GDIObjects.getBlueBrush(); }
CBrush* getPurpleBrush() const { return _GDIObjects.getPurpleBrush(); }
// Pens
CPen* getBlackPen() const { return _GDIObjects.getBlackPen(); }
CPen* getWhitePen() const { return _GDIObjects.getWhitePen(); }
CPen* getRedPen() const { return _GDIObjects.getRedPen(); }
CPen* getPinkPen() const { return _GDIObjects.getPinkPen(); }
// Fonts
CFont* getHeadingFont() const { return _GDIObjects.getHeadingFont(); }
CFont* getScoreFont() const { return _GDIObjects.getScoreFont(); }
CFont* getPlayerFont() const { return _GDIObjects.getPlayerFont(); }
CFont* getTimeFont() const { return _GDIObjects.getTimeFont(); }
// Screen <-> Field transform
UINT FieldX2ScreenX(double x);
UINT FieldY2ScreenY(double y);
double ScreenX2FieldX(long x);
double ScreenY2FieldY(long y);
// Dialog Data
enum { IDD = IDD_DISPLAYER };
protected:
DECLARE_MESSAGE_MAP()
virtual void OnCancel();
virtual void OnOK();
private:
CDisplayDefines::disp_showinfo_t _CurrentShowInfo;
CDisplayGDIObjects _GDIObjects;
CDisplaySettings _Settings;
//
CObjectDetailDialog* getObjectDetailDialog();
CDrawingBox* getDrawingBox();
CPresentDialog* getPresentDialog();
const cycle_info_t* _pCycleInfo;
CDC m_FieldDC;
CDC m_SoccerDC;
CBitmap m_FieldBitmap;
CBitmap m_SoccerBitmap;
CRect m_clientRect;
double m_dScale;
int CoordX(double x);
int CoordY(double y);
double NormalizeAngleRad(double& angle);
void DrawField(CDC *pDc);
void DrawBanner(CDC *pDC);
void DrawPlayers(CDC *pDC);
void DrawAPlayer(CDC *pDC,const CDisplayDefines::disp_player_t& Player,UINT iPlayer);
void DrawSightPlayers(CDC *pDC,SightLog *pPlayer);
void DrawSoccer(CDC *pDC);
void DrawBall(CDC *pDC);
void DrawVisualObjects(CDC *pDC);
void DrawPresent(CDC *pDC);
void DrawOffsideLine(CDC *pDC);
void DrawControlCourse(CDC *pDC);
void DeleteAllDC();
CString TeamLName();
CString TeamRName();
UINT TeamLScore();
UINT TeamRScore();
short GameTime();
char PlayMode();
double PlayerSize(short type);
double KickMargin(short type);
UINT m_nDebug;
bool m_bShowLogplay; // 用来表示当前是在播放log还是monitor
void EnlargePlayer();
void ReducePlayer();
void ViewNumber();
void ViewStamina();
void ViewVelocity();
void ViewKickmargin();
void ViewViewarea();
void ViewOffsideLine();
void ViewBallDetail();
void ViewPassCourse();
void SelectObject(int value);
// 用于monitor的各种参数
CPoint _selectedPoint;
CMainFrame* _pMainFrame;
CObjectDetailDialog* _pObjectDetailDialog; // 用来显示物体属性的框框
CDrawingBox* _pDrawingBox; // 一些绘图工具的集和
CPresentDialog* _pPresentDlg; // 可视显示动作分析
std::list<CVisualObject*> _VisualObjects;
typedef std::list<CVisualObject*>::iterator VOIterator;
// control course
std::vector<BasicBehaviorEvent> _ControlEvents;
typedef std::vector<BasicBehaviorEvent>::iterator CEIterator;
int _CurrentControlSide;
// HintWindow
CHintWindow* _pHintWindow;
CHintWindow* getHintWindow();
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -