In view cone snippet
Jump to navigation
Jump to search
Snippet
bool CMyEnt::InViewCone( const Vector &vecSpot, float flTolerance ) { //Get the direction of origin in front of us Vector vDirection = ( vecSpot - GetAbsOrigin() ); VectorNormalize( vDirection ); //Get our forward direction Vector vForward; AngleVectors( GetAbsAngles(), &vForward ); //Compute angle of both direction vectors float flDot = DotProduct( vDirection, vForward ); //Check if angle is within tolerance //-1 = opposite of forward direction //1 = matching forward direction //0 = 90 degrees 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 );