123
This commit is contained in:
145
Editor/RenderViewport.h
Normal file
145
Editor/RenderViewport.h
Normal file
@@ -0,0 +1,145 @@
|
||||
#if !defined(AFX_RENDERVIEWPORT_H__323772B6_5A57_4867_B973_A9102FE3001B__INCLUDED_)
|
||||
#define AFX_RENDERVIEWPORT_H__323772B6_5A57_4867_B973_A9102FE3001B__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
// RenderViewport.h : header file
|
||||
//
|
||||
|
||||
#include "Viewport.h"
|
||||
|
||||
// forward declarations.
|
||||
class CBaseObject;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CRenderViewport window
|
||||
|
||||
class CRenderViewport : public CViewport
|
||||
{
|
||||
DECLARE_DYNCREATE(CRenderViewport)
|
||||
// Construction
|
||||
public:
|
||||
CRenderViewport();
|
||||
|
||||
/** Get type of this viewport.
|
||||
*/
|
||||
virtual EViewportType GetType() { return ET_ViewportCamera; }
|
||||
virtual void SetType( EViewportType type ) { assert(type == ET_ViewportCamera); };
|
||||
|
||||
// Overrides
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CRenderViewport)
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
// Implementation
|
||||
public:
|
||||
virtual ~CRenderViewport();
|
||||
|
||||
virtual void Update();
|
||||
|
||||
virtual void OnTitleMenu( CMenu &menu );
|
||||
virtual void OnTitleMenuCommand( int id );
|
||||
|
||||
void SetCamera( const CCamera &camera );
|
||||
|
||||
//! Map world space position to viewport position.
|
||||
virtual CPoint WorldToView( Vec3 wp );
|
||||
//! Map viewport position to world space position.
|
||||
virtual Vec3 ViewToWorld( CPoint vp,bool *collideWithTerrain=0,bool onlyTerrain=false );
|
||||
virtual void ViewToWorldRay( CPoint vp,Vec3 &raySrc,Vec3 &rayDir );
|
||||
virtual float GetScreenScaleFactor( const Vec3 &worldPoint );
|
||||
|
||||
virtual void DrawTextLabel( DisplayContext &dc,const Vec3& pos,float size,const CFColor& color,const char *text );
|
||||
virtual bool HitTest( CPoint point,ObjectHitInfo &hitInfo,int flags=0 );
|
||||
virtual bool IsBoundsVisible( const BBox &box ) const;
|
||||
virtual void CenterOnSelection();
|
||||
|
||||
protected:
|
||||
// Called to render stuff.
|
||||
virtual void OnRender();
|
||||
|
||||
virtual void SetViewerPos( const Vec3 &pos );
|
||||
virtual void SetViewerAngles( const Vec3 &angles );
|
||||
virtual Vec3 GetViewerPos() const;
|
||||
virtual Vec3 GetViewerAngles() const;
|
||||
|
||||
//! Get currently active camera object.
|
||||
CBaseObject* GetCameraObject() const;
|
||||
void SetCameraObject( CBaseObject *cameraObject );
|
||||
|
||||
void RenderTerrainGrid( float x1,float y1,float x2,float y2 );
|
||||
void RenderMarker();
|
||||
void RenderCursorString();
|
||||
void RenderSafeFrame();
|
||||
void ProcessKeys();
|
||||
|
||||
protected:
|
||||
void RenderAll();
|
||||
void DrawAxis();
|
||||
|
||||
virtual bool CreateRenderContext();
|
||||
virtual void DestroyRenderContext();
|
||||
|
||||
//! Assigned renderer.
|
||||
IRenderer* m_renderer;
|
||||
I3DEngine* m_engine;
|
||||
ICryCharManager* m_pAnimationSystem;
|
||||
bool m_bRenderContextCreated;
|
||||
bool m_bInRotateMode;
|
||||
bool m_bInMoveMode;
|
||||
CPoint m_mousePos;
|
||||
|
||||
float m_moveSpeed;
|
||||
|
||||
// Camera field of view.
|
||||
//float m_cameraFov;
|
||||
CCamera m_camera;
|
||||
|
||||
// Render options.
|
||||
bool m_bWireframe;
|
||||
bool m_bDisplayLabels;
|
||||
bool m_bShowSafeFrame;
|
||||
|
||||
CSize m_viewSize;
|
||||
CRect m_rcClient;
|
||||
|
||||
// Index of camera objects.
|
||||
mutable GUID m_cameraObjectId;
|
||||
bool m_bSequenceCamera;
|
||||
bool m_bUpdating;
|
||||
|
||||
int m_nPresedKeyState;
|
||||
|
||||
// Generated message map functions
|
||||
protected:
|
||||
//{{AFX_MSG(CRenderViewport)
|
||||
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
|
||||
afx_msg void OnSize(UINT nType, int cx, int cy);
|
||||
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
|
||||
afx_msg void OnPaint();
|
||||
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
|
||||
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
|
||||
afx_msg void OnMButtonDown(UINT nFlags, CPoint point);
|
||||
afx_msg void OnMButtonUp(UINT nFlags, CPoint point);
|
||||
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
|
||||
afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
|
||||
afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
|
||||
afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt);
|
||||
afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
public:
|
||||
afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
|
||||
afx_msg void OnDestroy();
|
||||
afx_msg void OnSwitchcameraDefaultcamera();
|
||||
afx_msg void OnSwitchcameraSequencecamera();
|
||||
afx_msg void OnSwitchcameraSelectedcamera();
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_RENDERVIEWPORT_H__323772B6_5A57_4867_B973_A9102FE3001B__INCLUDED_)
|
||||
Reference in New Issue
Block a user