Difference between revisions of "UTIL EntitiesAlongRay"

From Valve Developer Community
Jump to: navigation, search
(Cleanup, Categories, etc)
m
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{wrongtitle|UTIL_EntitiesAlongRay}}
+
{{DISPLAYTITLE:UTIL_EntitiesAlongRay}}
This is a UTIL function that when supplied a [[Ray_t]] will return an integer indicating the number of entities encountered along the ray, then will enumerate and place them into an array.  
+
This is a [[UTIL]] [[function]] that when supplied a [[Ray_t]] will return an [[integer]] indicating the number of [[entity|entities]] encountered along the ray, then will enumerate and place them into an [[array]].  
  
You can either specify an array, and the size of the array, and a mask for which encountered entities will be included in the array, or you can simply supply a [[Ray_t]] and an pointer to an instance of the CFlaggedEntitiesEnum class.
+
You can either specify an array, and the size of the array, and a mask for which encountered entities will be included in the array, or you can simply supply a [[Ray_t]] and a [[pointer]] to an instance of the [[CFlaggedEntitiesEnum]] class.
  
 
== Usage ==
 
== Usage ==

Latest revision as of 23:27, 4 December 2011

This is a UTIL function that when supplied a Ray_t will return an integer indicating the number of entities encountered along the ray, then will enumerate and place them into an array.

You can either specify an array, and the size of the array, and a mask for which encountered entities will be included in the array, or you can simply supply a Ray_t and a pointer to an instance of the CFlaggedEntitiesEnum class.

Usage

int UTIL_EntitiesAlongRay( const Ray_t &ray, CFlaggedEntitiesEnum *pEnum )
int UTIL_EntitiesAlongRay( CBaseEntity **pList, int listMax, const Ray_t &ray, int flagMask )

Examples

int nCount = UTIL_EntitiesAlongRay( list, 1024, ray, FL_NPC | FL_CLIENT );
for ( int i = 0; i < nCount; i++ )
{
	if ( !IsAttractiveTarget( list[i] ) )
		continue;

	VectorSubtract( list[i]->WorldSpaceCenter(), vecStartPoint, vecDelta );
	distance = VectorNormalize( vecDelta );
	flDot = DotProduct( vecDelta, vecVelDir );
			
	if ( flDot > flMaxDot )
	{
		if ( distance < flBestDist )
		{
			pBestTarget = list[i];
			flBestDist = distance;
		}
	}
}