diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /hammer/faceedit_materialpage.h | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'hammer/faceedit_materialpage.h')
| -rw-r--r-- | hammer/faceedit_materialpage.h | 172 |
1 files changed, 172 insertions, 0 deletions
diff --git a/hammer/faceedit_materialpage.h b/hammer/faceedit_materialpage.h new file mode 100644 index 0000000..6fd59ef --- /dev/null +++ b/hammer/faceedit_materialpage.h @@ -0,0 +1,172 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//=============================================================================// + +#ifndef FACEEDIT_MATERIALPAGE_H +#define FACEEDIT_MATERIALPAGE_H +#ifdef _WIN32 +#pragma once +#endif + +#include "resource.h" +#include "TextureBox.h" +#include "IEditorTexture.h" +#include "wndTex.h" +#include "MapFace.h" +#include "materialdlg.h" + +class CMapSolid; + + +// Flags for the Apply function +#define FACE_APPLY_MATERIAL 0x01 +#define FACE_APPLY_MAPPING 0x02 +#define FACE_APPLY_LIGHTMAP_SCALE 0x04 +#define FACE_APPLY_ALIGN_EDGE 0x08 // NOT included in FACE_APPLY_ALL! +#define FACE_APPLY_CONTENTS_DATA 0x10 +#define FACE_APPLY_ALL FACE_APPLY_MATERIAL | FACE_APPLY_MAPPING | FACE_APPLY_LIGHTMAP_SCALE + + +class CFaceEditMaterialPage : public CPropertyPage +{ + + DECLARE_DYNAMIC( CFaceEditMaterialPage ); + +public: + + enum + { + MATERIALPAGETOOL_NONE = 0, + MATERIALPAGETOOL_MATERIAL, + MATERIALPAGETOOL_SMOOTHING_GROUP + }; + + //========================================================================= + // + // Creation/Destruction + // + CFaceEditMaterialPage(); + ~CFaceEditMaterialPage(); + + void Init( void ); + + //========================================================================= + // + // Update + // + void ClickFace( CMapSolid *pSolid, int faceIndex, int cmd, int clickMode = -1 ); // primary interface update call + void Apply( CMapFace *pOnlyFace, int flags ); + + void NotifyGraphicsChanged( void ); + void UpdateDialogData( CMapFace *pFace = NULL ); + + void SetMaterialPageTool( unsigned short iMaterialTool ); + unsigned short GetMaterialPageTool( void ) { return m_iMaterialTool; } + + // Called when a new material is detected. + void NotifyNewMaterial( IEditorTexture *pTex ); + + //========================================================================= + // + // Dialog Data + // + //{{AFX_DATA( CFaceEditMaterialPage ) + enum { IDD = IDD_FACEEDIT }; + //}}AFX_DATA + + //========================================================================= + // + // Virtual Overrides + // + //{{AFX_VIRTUAL( CFaceEditMaterialPage ) + BOOL OnSetActive( void ); + virtual BOOL PreTranslateMessage( MSG *pMsg ); + //}}AFX_VIRTUAL + + //========================================================================= + // + // Face Attributes + // + struct FaceAttributeInfo_t + { + unsigned int uControlID; // Control ID of corresponding checkbox. + unsigned int *puAttribute; // Pointer to bit flags attribute being modified. + unsigned int uFlag; // Bit flag(s) to set in the above attribute. + }; + + static unsigned int m_FaceContents; + static unsigned int m_FaceSurface; + +protected: + + CEdit m_shiftX; + CEdit m_shiftY; + CEdit m_scaleX; + CEdit m_scaleY; + CEdit m_rotate; + CEdit m_cLightmapScale; + CButton m_cHideMask; + CButton m_cExpand; + wndTex m_texture; + + BOOL m_bInitialized; + BOOL m_bHideMask; + BOOL m_bIgnoreResize; + BOOL m_bTreatAsOneFace; // whether to consider all selected faces as one face. + + FaceOrientation_t m_eOrientation; // The orientation of the lifted face. + + IEditorTexture *m_pCurTex; + wndTex m_TexturePic; + CTextureBox m_TextureList; + CComboBox m_TextureGroupList; + + unsigned short m_iMaterialTool; + CFaceSmoothingDlg m_FaceSmoothDlg; + + void SetReadOnly( bool bIsReadOnly ); + + //========================================================================= + // + // Texture Browser/Update + // + void SelectTexture( LPCSTR pszTextureName ); + void UpdateTexture( void ); + + //========================================================================= + // + // Texture Alignement + // + void AlignToView( CMapFace *pFace ); + void CopyTCoordSystem( const CMapFace *pFrom, CMapFace *pTo ); + void GetAllFaceExtents( Extents_t Extents ); + + //========================================================================= + // + // Message Map + // + //{{AFX_MSG( CFaceEditMaterialPage ) + afx_msg void OnButtonApply( void ); + afx_msg BOOL OnAlign(UINT uCmd); + afx_msg void OnHideMask(); + afx_msg BOOL OnJustify( UINT uCmd ); + afx_msg void OnMode(); + afx_msg void OnVScroll( UINT nSBCode, UINT nPos, CScrollBar *pScrollBar ); + afx_msg void OnDeltaPosFloatSpin( NMHDR* pNMHDR, LRESULT* pResult ); + afx_msg void OnSize( UINT, int, int ); + afx_msg void OnSelChangeTexture( void ); + afx_msg void OnCheckUnCheck( void ); + afx_msg void OnTreatAsOne( void ); + afx_msg void OnReplace( void ); + afx_msg BOOL OnSwitchMode( UINT id ); + afx_msg void OnBrowse( void ); + afx_msg void OnChangeTextureGroup( void ); + afx_msg void OnButtonSmoothingGroups( void ); + //}}AFX_MSG + + DECLARE_MESSAGE_MAP() +}; + +#endif // FACEEDIT_MATERIALPAGE_H |