diff options
Diffstat (limited to 'hammer/SmoothingGroupMgr.h')
| -rw-r--r-- | hammer/SmoothingGroupMgr.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/hammer/SmoothingGroupMgr.h b/hammer/SmoothingGroupMgr.h new file mode 100644 index 0000000..e5dcf29 --- /dev/null +++ b/hammer/SmoothingGroupMgr.h @@ -0,0 +1,45 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//=============================================================================// + +#ifndef SMOOTHINGGROUPMGR_H +#define SMOOTHINGGROUPMGR_H +#pragma once + +class CMapFace; +class CChunkFile; +class CSaveInfo; + +enum ChunkFileResult_t; + +#define MAX_SMOOTHING_GROUP_COUNT 32 +#define INVALID_SMOOTHING_GROUP 0xff + +typedef unsigned char SmoothingGroupHandle_t; + +//============================================================================= +// +// Smoothing Group Manager +// +class ISmoothingGroupMgr +{ +public: + + virtual void AddFaceToGroup( SmoothingGroupHandle_t hGroup, CMapFace *pFace ) = 0; + virtual void RemoveFaceFromGroup( SmoothingGroupHandle_t hGroup, CMapFace *pFace ) = 0; + + virtual void SetGroupSmoothingAngle( SmoothingGroupHandle_t hGroup, float flAngle ) = 0; + virtual float GetGroupSmoothingAngle( SmoothingGroupHandle_t hGroup ) = 0; + + virtual int GetFaceCountInGroup( SmoothingGroupHandle_t hGroup ) = 0; + virtual CMapFace *GetFaceFromGroup( SmoothingGroupHandle_t hGroup, int iFace ) = 0; + + virtual ChunkFileResult_t SaveVMF( CChunkFile *pFile, CSaveInfo *pSaveInfo ) = 0; + virtual ChunkFileResult_t LoadVMF( CChunkFile *pFile ) = 0; +}; + +ISmoothingGroupMgr *SmoothingGroupMgr( void ); + +#endif // SMOOTHINGGROUPMGR_H |