csgo-2018-source/fow/fow_horizontalslice.h

40 lines
1.0 KiB
C
Raw Normal View History

2021-07-25 12:11:47 +08:00
//========= Copyright <20> 1996-2009, Valve Corporation, All rights reserved. ============//
//
// Purpose: used to cross section maps ( i.e. displacements ) to do fast occlusion against
//
// $NoKeywords: $
//=====================================================================================//
#ifndef FOW_HORIZONTALSLICE_H
#define FOW_HORIZONTALSLICE_H
#if defined( COMPILER_MSVC )
#pragma once
#endif
#include "utlvector.h"
#include "utlspheretree.h"
#include "mathlib/vector.h"
#include "fow_lineoccluder.h"
class CFoW;
class CFoW_Viewer;
class CFoW_HorizontalSlice
{
public:
CFoW_HorizontalSlice( void );
// clears the sphere tree of all line occluders
void Clear( void );
// adds a line occluder to the sphere tree
void AddHorizontalOccluder( CFoW_LineOccluder *pLineOccluder );
// tests the viewer against all line occluders that are near the viewer
void ObstructViewer( CFoW *pFoW, CFoW_Viewer *pViewer );
private:
CUtlSphereTree m_SphereTree; // spherical tree to quickly find line occulders near a given point
};
#endif // FOW_HORIZONTALSLICE_H