mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-07 17:29:36 +00:00
1
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose: Data and functionality for the logical 2D view
|
||||
//
|
||||
//===========================================================================//
|
||||
|
||||
#ifndef MAPVIEWLOGICAL_H
|
||||
#define MAPVIEWLOGICAL_H
|
||||
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#include "MapView2DBase.h"
|
||||
#include "tier1/utlrbtree.h"
|
||||
#include "tier1/utlstack.h"
|
||||
|
||||
class CWnd;
|
||||
class CView;
|
||||
class CMapAtom;
|
||||
class CMapClass;
|
||||
class CMapDoc;
|
||||
class CCamera;
|
||||
class CTitleWnd;
|
||||
class CEntityConnection;
|
||||
|
||||
|
||||
class CMapViewLogical : public CMapView2DBase
|
||||
{
|
||||
public:
|
||||
// Other public methods
|
||||
virtual void Render();
|
||||
|
||||
protected:
|
||||
CMapViewLogical(); // protected constructor used by dynamic creation
|
||||
virtual ~CMapViewLogical();
|
||||
DECLARE_DYNCREATE(CMapViewLogical)
|
||||
|
||||
virtual bool IsLogical() { return true; }
|
||||
virtual void OnRenderListDirty();
|
||||
|
||||
// convert client view space to map world coordinates (2D versions for convenience)
|
||||
void WorldToClient( Vector2D &ptClient, const Vector2D &vWorld );
|
||||
void ClientToWorld( Vector2D &vWorld, const Vector2D &vClient );
|
||||
virtual void WorldToClient( Vector2D &ptClient, const Vector &vWorld );
|
||||
virtual void ClientToWorld( Vector &vWorld, const Vector2D &vClient );
|
||||
|
||||
// Performs a selection which selects an object at the point as well as entities connected to outputs.
|
||||
bool SelectAtCascading( const Vector2D &ptClient, bool bMakeFirst );
|
||||
|
||||
private:
|
||||
// timer IDs:
|
||||
enum
|
||||
{
|
||||
TIMER_CONNECTIONUPDATE = 2,
|
||||
};
|
||||
|
||||
typedef CUtlRBTree<CMapClass*, unsigned short> MapClassDict_t;
|
||||
|
||||
// Purpose: Builds up list of mapclasses to render
|
||||
void AddToRenderLists( CMapClass *pObject );
|
||||
void PopulateConnectionList( );
|
||||
|
||||
// Purpose:
|
||||
void RenderConnections(const bool bDrawSelected, const bool bAnySelected);
|
||||
|
||||
// Draws a wire from a particular point to a target
|
||||
const color32 & GetWireColor(const char *pszName, const bool bSelected, const bool bBroken, const bool bAnySelected );
|
||||
void DrawConnectingWire( float x, float y, CMapEntity *pSource, CEntityConnection *pConnection, CMapEntity *pTarget );
|
||||
|
||||
bool m_bUpdateRenderObjects; // Should I build a list of things to render?
|
||||
CUtlVector<CMapClass *> m_RenderList; // list of current rendered objects
|
||||
CUtlVector<CMapClass *> m_ConnectionList; // list of all objects which are in the render list of have connections to something in the renderlist
|
||||
CUtlStack<CMapClass *> m_ConnectionUpdate; // for iteratively determining connectivity
|
||||
MapClassDict_t m_RenderDict;
|
||||
|
||||
// Overrides
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CMapView2D)
|
||||
protected:
|
||||
virtual void OnInitialUpdate(); // first time after construct
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
// Generated message map functions
|
||||
//{{AFX_MSG(CMapView2D)
|
||||
afx_msg void OnTimer(UINT nIDEvent);
|
||||
//}}AFX_MSG
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
|
||||
#endif // MAPVIEWLOGICAL_H
|
||||
Reference in New Issue
Block a user