You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.5 KiB
55 lines
1.5 KiB
//========= 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
|
|
|