You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
2.7 KiB
100 lines
2.7 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// |
|
//============================================================================= |
|
|
|
#ifndef OVERLAYTRANS_H |
|
#define OVERLAYTRANS_H |
|
#pragma once |
|
|
|
#include "utlvector.h" |
|
#include "mathlib/vector.h" |
|
#include "mathlib/vector2d.h" |
|
#include "MapHelper.h" |
|
|
|
class IEditorTexture; |
|
class CHelperInfo; |
|
class CMapEntity; |
|
class CMapFace; |
|
|
|
struct ShoreEntityData_t |
|
{ |
|
IEditorTexture *m_pTexture; |
|
Vector2D m_vecLengthTexcoord; |
|
Vector2D m_vecWidthTexcoord; |
|
float m_flWidths[2]; |
|
}; |
|
|
|
//============================================================================= |
|
// |
|
// Overlay Transition Entity Helper |
|
// |
|
class CMapOverlayTransition : public CMapHelper |
|
{ |
|
public: |
|
|
|
DECLARE_MAPCLASS(CMapOverlayTransition,CMapHelper) |
|
|
|
CMapOverlayTransition(); |
|
~CMapOverlayTransition(); |
|
|
|
// Factory for building from a list of string parameters. |
|
static CMapClass *Create( CHelperInfo *pInfo, CMapEntity *pParent ); |
|
|
|
// Virtual/Interface Implementation. |
|
virtual void PostloadWorld( CMapWorld *pWorld ); |
|
|
|
void CalcBounds( BOOL bFullUpdate = FALSE ); |
|
|
|
virtual CMapClass *Copy( bool bUpdateDependencies ); |
|
virtual CMapClass *CopyFrom( CMapClass *pObject, bool bUpdateDependencies ); |
|
|
|
virtual void OnParentKeyChanged( const char* szKey, const char* szValue ); |
|
virtual void OnNotifyDependent( CMapClass *pObject, Notify_Dependent_t eNotifyType ); |
|
|
|
virtual void OnAddToWorld(CMapWorld *pWorld); |
|
virtual void OnRemoveFromWorld(CMapWorld *pWorld, bool bNotifyChildren); |
|
|
|
void DoTransform( const VMatrix& matrix ); |
|
|
|
void OnPaste( CMapClass *pCopy, CMapWorld *pSourceWorld, CMapWorld *pDestWorld, |
|
const CMapObjectList &OriginalList, CMapObjectList &NewList); |
|
void OnClone( CMapClass *pClone, CMapWorld *pWorld, |
|
const CMapObjectList &OriginalList, CMapObjectList &NewList ); |
|
void OnUndoRedo( void ); |
|
|
|
bool OnApply( void ); |
|
|
|
void Render3D( CRender3D *pRender ); |
|
|
|
inline virtual bool IsVisualElement( void ) { return true; } |
|
inline virtual bool ShouldRenderLast( void ) { return true; } |
|
inline const char* GetDescription() { return ( "Overlay Transition" ); } |
|
|
|
ChunkFileResult_t LoadVMF( CChunkFile *pFile ); |
|
ChunkFileResult_t SaveVMF( CChunkFile *pFile, CSaveInfo *pSaveInfo ); |
|
bool ShouldSerialize( void ) { return true; } |
|
|
|
private: |
|
|
|
bool BuildFaceCaches( void ); |
|
|
|
static ChunkFileResult_t OverlayDataCallback( CChunkFile *pFile, CMapDisp *pDisp ); |
|
static ChunkFileResult_t OverlayDataKeyCallback( const char *szKey, const char *szValue, CMapDisp *pDisp ); |
|
|
|
private: |
|
|
|
bool m_bIsWater; |
|
ShoreEntityData_t m_ShoreData; |
|
|
|
CUtlVector<CMapFace*> m_aFaceCache1; |
|
CUtlVector<CMapFace*> m_aFaceCache2; |
|
|
|
int m_nShorelineId; |
|
CUtlVector<CMapEntity*> m_aOverlayChildren; |
|
|
|
bool m_bDebugDraw; |
|
}; |
|
|
|
|
|
#endif // OVERLAYTRANS_H
|