⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 displayer.h

📁 The application wizard has created this SoccerDoctor application for you. This application not onl
💻 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 + -