//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // //===========================================================================// #ifndef DEFORMATIONS_H #define DEFORMATIONS_H #ifdef _WIN32 #pragma once #endif #include "../tier0/platform.h" // nonlinear transformations which may be applied to model vertices when // rendering. must be powers of two enum DeformationType_t { DEFORMATION_CLAMP_TO_BOX_IN_WORLDSPACE = 1, // minxyz.minsoftness / maxxyz.maxsoftness }; struct DeformationBase_t // base class. don't use this { DeformationType_t m_eType; }; struct BoxDeformation_t : DeformationBase_t { // don't change the layout without changing code in shaderapidx8!!!! Vector m_SourceMins; // cube to clamp within float m_flPad0; Vector m_SourceMaxes; float m_flPad1; Vector m_ClampMins; float m_flPad2; Vector m_ClampMaxes; float m_flPad3; FORCEINLINE BoxDeformation_t(void) { m_eType = DEFORMATION_CLAMP_TO_BOX_IN_WORLDSPACE; // invalid cube m_SourceMins.Init(0, 0, 0); m_SourceMaxes.Init(-1, -1, -1); // no clamp m_ClampMins.Init(-FLT_MAX, -FLT_MAX, -FLT_MAX); m_ClampMaxes.Init(FLT_MAX, FLT_MAX, FLT_MAX); } }; #endif