84 lines
2.5 KiB
C++
84 lines
2.5 KiB
C++
//====== Copyright © 1996-2007, Valve Corporation, All rights reserved. =======
|
|
//
|
|
// A class representing a projected "light"
|
|
//
|
|
//=============================================================================
|
|
|
|
#ifndef DMEPROJECTEDLIGHT_H
|
|
#define DMEPROJECTEDLIGHT_H
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
#include "movieobjects/dmelight.h"
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Forward declaration
|
|
//-----------------------------------------------------------------------------
|
|
struct LightDesc_t;
|
|
struct FlashlightState_t;
|
|
class CTextureReference;
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// A spot light - includes shadow mapping parameters
|
|
//-----------------------------------------------------------------------------
|
|
class CDmeProjectedLight : public CDmePointLight
|
|
{
|
|
DEFINE_ELEMENT( CDmeProjectedLight, CDmePointLight );
|
|
|
|
public:
|
|
// Sets the spotlight direction
|
|
void SetFOV( float flHorizontalFOV, float flVerticalFOV );
|
|
|
|
float GetFOVx() const { return m_flHorizontalFOV; }
|
|
float GetFOVy() const { return m_flVerticalFOV; }
|
|
const char *GetFlashlightTexture() const { return m_Texture.Get(); }
|
|
|
|
void GetFlashlightState( FlashlightState_t &flashlightState, CTextureReference &texture ) const;
|
|
|
|
private:
|
|
|
|
CDmaVar< float > m_flMinDistance;
|
|
CDmaVar< float > m_flHorizontalFOV;
|
|
CDmaVar< float > m_flVerticalFOV;
|
|
CDmaVar< float > m_flAmbientIntensity;
|
|
CDmaString m_Texture;
|
|
CDmaVar< bool > m_bCastsShadows;
|
|
CDmaVar< float > m_flRadius;
|
|
CDmaVar< float > m_flShadowDepthBias;
|
|
CDmaVar< float > m_flShadowSlopeScaleDepthBias;
|
|
CDmaVar< float > m_flShadowFilterSize;
|
|
CDmaVar< float > m_flShadowJitterSeed;
|
|
CDmaVar< Vector2D > m_vPositionJitter;
|
|
CDmaTime m_AnimationTime;
|
|
CDmaVar< float > m_flFrameRate;
|
|
|
|
CDmaVar< float > m_flShadowAtten;
|
|
CDmaVar< bool > m_bDrawShadowFrustum;
|
|
CDmaVar< float > m_flFarZAtten;
|
|
CDmaVar< float > m_flAmbientOcclusion;
|
|
|
|
// Uberlight parameters
|
|
CDmaVar< bool > m_bUberlight;
|
|
CDmaVar< float > m_flNearEdge;
|
|
CDmaVar< float > m_flFarEdge;
|
|
CDmaVar< float > m_flCutOn;
|
|
CDmaVar< float > m_flCutOff;
|
|
CDmaVar< float > m_flWidth;
|
|
CDmaVar< float > m_flWedge;
|
|
CDmaVar< float > m_flHeight;
|
|
CDmaVar< float > m_flHedge;
|
|
CDmaVar< float > m_flRoundness;
|
|
|
|
CDmaVar< bool > m_bVolumetric;
|
|
CDmaVar< float > m_flNoiseStrength;
|
|
CDmaVar< float > m_flFlashlightTime;
|
|
CDmaVar< int > m_nNumPlanes;
|
|
CDmaVar< float > m_flPlaneOffset;
|
|
CDmaVar< float > m_flVolumetricIntensity;
|
|
};
|
|
|
|
|
|
#endif // DMEPROJECTEDLIGHT_H
|