mirror of
https://github.com/nillerusr/source-engine.git
synced 2024-12-22 14:16:50 +00:00
56 lines
1.5 KiB
C
56 lines
1.5 KiB
C
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||
|
//
|
||
|
// Purpose:
|
||
|
//
|
||
|
// $NoKeywords: $
|
||
|
//
|
||
|
//=============================================================================//
|
||
|
|
||
|
#ifndef IOCCLUSIONSYSTEM_H
|
||
|
#define IOCCLUSIONSYSTEM_H
|
||
|
|
||
|
#ifdef _WIN32
|
||
|
#pragma once
|
||
|
#endif
|
||
|
|
||
|
|
||
|
class Vector;
|
||
|
class VMatrix;
|
||
|
struct model_t;
|
||
|
class VPlane;
|
||
|
class CUtlBuffer;
|
||
|
|
||
|
|
||
|
//-----------------------------------------------------------------------------
|
||
|
// Occlusion system interface
|
||
|
//-----------------------------------------------------------------------------
|
||
|
class IOcclusionSystem
|
||
|
{
|
||
|
public:
|
||
|
// Activate/deactivate an occluder brush model
|
||
|
virtual void ActivateOccluder( int nOccluderIndex, bool bActive ) = 0;
|
||
|
|
||
|
// Sets the view transform
|
||
|
virtual void SetView( const Vector &vecCameraPos, float flFOV, const VMatrix &worldToCamera,
|
||
|
const VMatrix &cameraToProjection, const VPlane &nearClipPlane ) = 0;
|
||
|
|
||
|
// Test for occlusion (bounds specified in abs space)
|
||
|
virtual bool IsOccluded( const Vector &vecAbsMins, const Vector &vecAbsMaxs ) = 0;
|
||
|
|
||
|
// Sets global occlusion parameters
|
||
|
virtual void SetOcclusionParameters( float flMaxOccludeeArea, float flMinOccluderArea ) = 0;
|
||
|
virtual float MinOccluderArea() const = 0;
|
||
|
|
||
|
// Render debugging overlay
|
||
|
virtual void DrawDebugOverlays() = 0;
|
||
|
};
|
||
|
|
||
|
|
||
|
//-----------------------------------------------------------------------------
|
||
|
// Singleton accessor
|
||
|
//-----------------------------------------------------------------------------
|
||
|
IOcclusionSystem *OcclusionSystem();
|
||
|
|
||
|
|
||
|
#endif // IOCCLUSIONSYSTEM_H
|