This repository has been archived on 2024-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
2020-08-04 13:13:01 -04:00

53 lines
1.3 KiB
C

//========= 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