aboutsummaryrefslogtreecommitdiff
path: root/mp/src/game/shared/querycache.h
diff options
context:
space:
mode:
authorNarendra Umate <[email protected]>2013-12-02 23:36:05 -0800
committerNarendra Umate <[email protected]>2013-12-02 23:36:05 -0800
commit8737f191f3b59f001a77bf6c08091109211c1c9f (patch)
treedbbf05c004d9b026f2c1f23f06600fe0add82c36 /mp/src/game/shared/querycache.h
parentUpdate .gitignore. (diff)
parentMake .xcconfigs text files too. (diff)
downloadsource-sdk-2013-8737f191f3b59f001a77bf6c08091109211c1c9f.tar.xz
source-sdk-2013-8737f191f3b59f001a77bf6c08091109211c1c9f.zip
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'mp/src/game/shared/querycache.h')
-rw-r--r--mp/src/game/shared/querycache.h198
1 files changed, 99 insertions, 99 deletions
diff --git a/mp/src/game/shared/querycache.h b/mp/src/game/shared/querycache.h
index 73c71944..774be51e 100644
--- a/mp/src/game/shared/querycache.h
+++ b/mp/src/game/shared/querycache.h
@@ -1,99 +1,99 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-// $NoKeywords: $
-//=============================================================================//
-#ifndef QUERYCACHE_H
-#define QUERYCACHE_H
-#ifdef _WIN32
-#pragma once
-#endif
-
-#include "tier0/platform.h"
-#include "mathlib/vector.h"
-
-// this system provides several piece of functionality to ai or other systems which wish to do
-// traces and other trace-like queries.
-
-// a. By maintaining a set of incrementally updated trace results, it makes it simple to have ai
-// code use hyteresis on traces as an optimization method.
-
-// b. By updating the cache entries outside of the entity think functions, the update is done in a
-// fully multi-threaded fashion
-
-
-enum EQueryType_t
-{
- EQUERY_INVALID = 0, // an invalid or unused entry
- EQUERY_TRACELINE,
- EQUERY_ENTITY_LOS_CHECK,
-
-};
-
-enum EEntityOffsetMode_t
-{
- EOFFSET_MODE_WORLDSPACE_CENTER,
- EOFFSET_MODE_EYEPOSITION,
- EOFFSET_MODE_NONE, // nop
-};
-
-
-#define QCACHE_MAXPNTS 3 // maximum number of points/entities
- // involved in a query
-
-struct QueryCacheKey_t
-{
- EQueryType_t m_Type;
- int m_nNumValidPoints;
- Vector m_Points[QCACHE_MAXPNTS];
- EHANDLE m_pEntities[QCACHE_MAXPNTS];
- EEntityOffsetMode_t m_nOffsetMode[QCACHE_MAXPNTS];
- unsigned int m_nTraceMask;
- unsigned int m_nHashIdx;
- int m_nCollisionGroup;
- ShouldHitFunc_t m_pTraceFilterFunction;
-
- float m_flMinimumUpdateInterval;
-
- void ComputeHashIndex( void );
-
- bool Matches( QueryCacheKey_t const *pNode ) const ;
-};
-
-struct QueryCacheEntry_t
-{
- QueryCacheEntry_t *m_pNext;
- QueryCacheEntry_t *m_pPrev;
- QueryCacheKey_t m_QueryParams;
- float m_flLastUpdateTime;
- bool m_bUsedSinceUpdated; // was this cell referenced?
- bool m_bSpeculativelyDone;
- bool m_bResult; // for queries with a boolean result
-
- void IssueQuery( void );
-
-};
-
-
-
-bool IsLineOfSightBetweenTwoEntitiesClear( CBaseEntity *pSrcEntity,
- EEntityOffsetMode_t nSrcOffsetMode,
- CBaseEntity *pDestEntity,
- EEntityOffsetMode_t nDestOffsetMode,
- CBaseEntity *pSkipEntity,
- int nCollisionGroup,
- unsigned int nTraceMask,
- ShouldHitFunc_t pTraceFilterCallback,
- float flMinimumUpdateInterval = 0.2
- );
-
-
-
-// call during main loop for threaded update of the query cache
-void UpdateQueryCache( void );
-
-// call on level transition or other significant step-functions
-void InvalidateQueryCache( void );
-
-#endif // querycache_h
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+#ifndef QUERYCACHE_H
+#define QUERYCACHE_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "tier0/platform.h"
+#include "mathlib/vector.h"
+
+// this system provides several piece of functionality to ai or other systems which wish to do
+// traces and other trace-like queries.
+
+// a. By maintaining a set of incrementally updated trace results, it makes it simple to have ai
+// code use hyteresis on traces as an optimization method.
+
+// b. By updating the cache entries outside of the entity think functions, the update is done in a
+// fully multi-threaded fashion
+
+
+enum EQueryType_t
+{
+ EQUERY_INVALID = 0, // an invalid or unused entry
+ EQUERY_TRACELINE,
+ EQUERY_ENTITY_LOS_CHECK,
+
+};
+
+enum EEntityOffsetMode_t
+{
+ EOFFSET_MODE_WORLDSPACE_CENTER,
+ EOFFSET_MODE_EYEPOSITION,
+ EOFFSET_MODE_NONE, // nop
+};
+
+
+#define QCACHE_MAXPNTS 3 // maximum number of points/entities
+ // involved in a query
+
+struct QueryCacheKey_t
+{
+ EQueryType_t m_Type;
+ int m_nNumValidPoints;
+ Vector m_Points[QCACHE_MAXPNTS];
+ EHANDLE m_pEntities[QCACHE_MAXPNTS];
+ EEntityOffsetMode_t m_nOffsetMode[QCACHE_MAXPNTS];
+ unsigned int m_nTraceMask;
+ unsigned int m_nHashIdx;
+ int m_nCollisionGroup;
+ ShouldHitFunc_t m_pTraceFilterFunction;
+
+ float m_flMinimumUpdateInterval;
+
+ void ComputeHashIndex( void );
+
+ bool Matches( QueryCacheKey_t const *pNode ) const ;
+};
+
+struct QueryCacheEntry_t
+{
+ QueryCacheEntry_t *m_pNext;
+ QueryCacheEntry_t *m_pPrev;
+ QueryCacheKey_t m_QueryParams;
+ float m_flLastUpdateTime;
+ bool m_bUsedSinceUpdated; // was this cell referenced?
+ bool m_bSpeculativelyDone;
+ bool m_bResult; // for queries with a boolean result
+
+ void IssueQuery( void );
+
+};
+
+
+
+bool IsLineOfSightBetweenTwoEntitiesClear( CBaseEntity *pSrcEntity,
+ EEntityOffsetMode_t nSrcOffsetMode,
+ CBaseEntity *pDestEntity,
+ EEntityOffsetMode_t nDestOffsetMode,
+ CBaseEntity *pSkipEntity,
+ int nCollisionGroup,
+ unsigned int nTraceMask,
+ ShouldHitFunc_t pTraceFilterCallback,
+ float flMinimumUpdateInterval = 0.2
+ );
+
+
+
+// call during main loop for threaded update of the query cache
+void UpdateQueryCache( void );
+
+// call on level transition or other significant step-functions
+void InvalidateQueryCache( void );
+
+#endif // querycache_h