mirror of
https://github.com/Mauler125/r5sdk.git
synced 2025-02-09 19:15:03 +01:00
65 lines
2.1 KiB
C++
65 lines
2.1 KiB
C++
//====== Copyright <20> 1996-2005, Valve Corporation, All rights reserved. =======//
|
||
//
|
||
// Purpose:
|
||
//
|
||
// $NoKeywords: $
|
||
//
|
||
//=============================================================================//
|
||
|
||
#ifndef ENGINE_IENGINETRACE_H
|
||
#define ENGINE_IENGINETRACE_H
|
||
#ifdef _WIN32
|
||
#pragma once
|
||
#endif
|
||
#include "..\gametrace.h"
|
||
#include "..\ihandleentity.h"
|
||
#include "ICollideable.h"
|
||
|
||
//-----------------------------------------------------------------------------
|
||
// The standard trace filter... NOTE: Most normal traces inherit from CTraceFilter!!!
|
||
//-----------------------------------------------------------------------------
|
||
enum TraceType_t
|
||
{
|
||
TRACE_EVERYTHING = 0,
|
||
TRACE_WORLD_ONLY, // NOTE: This does *not* test static props!!!
|
||
TRACE_ENTITIES_ONLY, // NOTE: This version will *not* test static props
|
||
TRACE_EVERYTHING_FILTER_PROPS, // NOTE: This version will pass the IHandleEntity for props through the filter, unlike all other filters
|
||
};
|
||
|
||
//-----------------------------------------------------------------------------
|
||
// Classes are expected to inherit these + implement the ShouldHitEntity method
|
||
//-----------------------------------------------------------------------------
|
||
abstract_class ITraceFilter
|
||
{
|
||
public:
|
||
virtual ~ITraceFilter() {};
|
||
virtual bool ShouldHitEntity(IHandleEntity* pEntity, int contentsMask) = 0;
|
||
virtual TraceType_t GetTraceType() const = 0;
|
||
virtual bool Unknown() const = 0;
|
||
};
|
||
|
||
class CTraceFilter : public ITraceFilter
|
||
{
|
||
public:
|
||
//virtual TraceType_t GetTraceType() const
|
||
//{
|
||
// return TRACE_EVERYTHING;
|
||
//}
|
||
};
|
||
|
||
//-----------------------------------------------------------------------------
|
||
//
|
||
//-----------------------------------------------------------------------------
|
||
abstract_class IEngineTrace
|
||
{
|
||
public:
|
||
virtual void stub_0() const = 0;
|
||
virtual void stub_1() const = 0;
|
||
virtual void ClipRayToCollideable(const Ray_t& ray, unsigned int fMask, ICollideable* pEntity, trace_t* pTrace) = 0;
|
||
virtual void TraceRayFiltered(const Ray_t& ray, unsigned int fMask, ITraceFilter* pTracefilter, trace_t* pTrace) = 0;
|
||
virtual void TraceRay(const Ray_t& ray, unsigned int fMask, trace_t* pTrace) = 0;
|
||
};
|
||
|
||
|
||
#endif // ENGINE_IENGINETRACE_H
|