diff options
Diffstat (limited to 'hammer/mapalignedbox.h')
| -rw-r--r-- | hammer/mapalignedbox.h | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/hammer/mapalignedbox.h b/hammer/mapalignedbox.h new file mode 100644 index 0000000..cf1b330 --- /dev/null +++ b/hammer/mapalignedbox.h @@ -0,0 +1,78 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#ifndef MAPALIGNEDBOX_H +#define MAPALIGNEDBOX_H +#pragma once + + +#include "MapHelper.h" + + +class CHelperInfo; +class CRender2D; +class CRender3D; + + +#define MAX_KEYNAME_SIZE 32 + + +class CMapAlignedBox : public CMapHelper +{ + public: + + DECLARE_MAPCLASS(CMapAlignedBox,CMapHelper) + + // + // Factory for building from a list of string parameters. + // + static CMapClass *Create(CHelperInfo *pInfo, CMapEntity *pParent); + + // + // Construction/destruction: + // + CMapAlignedBox(void); + CMapAlignedBox(Vector& pfMins, Vector& pfMaxs); + CMapAlignedBox(const char *pMinsKeyName, const char *pMaxsKeyName); + ~CMapAlignedBox(void); + + virtual void CalcBounds(BOOL bFullUpdate = FALSE); + + virtual CMapClass *Copy(bool bUpdateDependencies); + virtual CMapClass *CopyFrom(CMapClass *pFrom, bool bUpdateDependencies); + + virtual void Render2D(CRender2D *pRender); + virtual void Render3D(CRender3D *pRender); + + int SerializeRMF(std::fstream &File, BOOL bRMF); + int SerializeMAP(std::fstream &File, BOOL bRMF); + + bool IsVisualElement(void) { return !m_bWireframe; } + + const char* GetDescription() { return("Aligned box"); } + + virtual void OnParentKeyChanged( const char* key, const char* value ); + + protected: + + //void UpdateBox(const Vector &vecMins, const Vector &vecMaxs); + + bool m_bWireframe; // Whether we render as a wireframe box when the entity is selected. + + // Determines whether we use the key names to get the box size + // or m_fMins/m_fMaxs. + bool m_bUseKeyName; + + char m_MinsKeyName[MAX_KEYNAME_SIZE]; + char m_MaxsKeyName[MAX_KEYNAME_SIZE]; + + Vector m_Mins; + Vector m_Maxs; +}; + + +#endif // MAPALIGNEDBOX_H |