diff options
Diffstat (limited to 'hammer/mapsphere.h')
| -rw-r--r-- | hammer/mapsphere.h | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/hammer/mapsphere.h b/hammer/mapsphere.h new file mode 100644 index 0000000..4b8a0ae --- /dev/null +++ b/hammer/mapsphere.h @@ -0,0 +1,76 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//============================================================================= + +#ifndef MAPSPHERE_H +#define MAPSPHERE_H +#ifdef _WIN32 +#pragma once +#endif + +#include "fgdlib/WCKeyValues.h" +#include "MapHelper.h" +#include "ToolInterface.h" + + +class CToolSphere; +class CHelperInfo; +class CRender2D; +class CRender3D; +class IMesh; + + +class CMapSphere : public CMapHelper +{ + friend class CToolSphere; + + public: + + DECLARE_MAPCLASS(CMapSphere,CMapHelper) + + // + // Factory for building from a list of string parameters. + // + static CMapClass *Create(CHelperInfo *pInfo, CMapEntity *pParent); + + // + // Construction/destruction: + // + CMapSphere(void); + ~CMapSphere(void); + + virtual void CalcBounds(BOOL bFullUpdate = FALSE); + + virtual CMapClass *Copy(bool bUpdateDependencies); + virtual CMapClass *CopyFrom(CMapClass *pFrom, bool bUpdateDependencies); + + virtual void OnParentKeyChanged(const char *szKey, const char *szValue); + + virtual void Render2D(CRender2D *pRender); + virtual void Render3D(CRender3D *pRender); + + virtual int SerializeRMF(std::fstream &File, BOOL bRMF) { return(0); } + virtual int SerializeMAP(std::fstream &File, BOOL bRMF) { return(0); } + + virtual bool IsVisualElement(void) { return false; } // Only visible when the parent entity is selected. + virtual bool IsScaleable(void) { return false; } // TODO: allow for scaling the sphere by itself + virtual bool IsClutter(void) { return true; } + virtual bool IsCulledByCordon(const Vector &vecMins, const Vector &vecMaxs) { return false; } // We don't hide unless our parent hides. + + virtual CBaseTool *GetToolObject(int nHitData, bool bAttachObject ); + + virtual bool HitTest2D(CMapView2D *pView, const Vector2D &point, HitInfo_t &HitData); + + virtual const char* GetDescription() { return "Sphere helper"; } + + protected: + + void SetRadius(float flRadius); + + char m_szKeyName[KEYVALUE_MAX_KEY_LENGTH]; + float m_flRadius; +}; + +#endif // MAPSPHERE_H |