mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-09 02:09:35 +00:00
1
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
//========= 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
|
||||
Reference in New Issue
Block a user