In view cone snippet: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
(Added Degrees conversion method) |
||
Line 1: | Line 1: | ||
== Snippet == | |||
<pre> | <pre> | ||
bool CMyEnt::InViewCone( const Vector &vecSpot, float | bool CMyEnt::InViewCone( const Vector &vecSpot, float flTolerance ) | ||
{ | { | ||
Vector los = ( vecSpot - GetAbsOrigin() ); | Vector los = ( vecSpot - GetAbsOrigin() ); | ||
Line 8: | Line 9: | ||
Vector facingDir; | Vector facingDir; | ||
AngleVectors( GetAbsAngles(), &facingDir ); | AngleVectors( GetAbsAngles(), &facingDir ); | ||
float flDot = DotProduct( los, facingDir ); | float flDot = DotProduct( los, facingDir ); | ||
if ( flDot > | if ( flDot > flTolerance ) | ||
return true; | return true; | ||
return false; | return false; | ||
} | } | ||
</pre> | |||
== Extra == | |||
To pass in an angle of degrees, you must convert it. | |||
<pre> | |||
//90 Degrees | |||
flTolerance = cos( 90 ); | |||
bool bInCone = InViewCone( vOrigin, flTolerance ); | |||
</pre> | </pre> | ||
[[Category:Snippets]] | [[Category:Snippets]] |
Revision as of 17:05, 12 October 2009
Snippet
bool CMyEnt::InViewCone( const Vector &vecSpot, float flTolerance ) { Vector los = ( vecSpot - GetAbsOrigin() ); los.z = 0; VectorNormalize( los ); Vector facingDir; AngleVectors( GetAbsAngles(), &facingDir ); float flDot = DotProduct( los, facingDir ); if ( flDot > flTolerance ) return true; return false; }
Extra
To pass in an angle of degrees, you must convert it.
//90 Degrees flTolerance = cos( 90 ); bool bInCone = InViewCone( vOrigin, flTolerance );