// Description:
//
// Arguments:
//
// Return:
//
void CPersonalRangeSignaling::CheckActorAngles( IActor* pActor )
{
  CRY_ASSERT( pActor != NULL );

  MapAngleSignals::iterator it = m_mapAngleSignalsSent.find( pActor->GetEntityId() );
  CAngleAlert const*        pAngle = GetAngleTo( pActor->GetEntity()->GetPos() );
  CAngleAlert const*        pOldAngle = ( (it != m_mapAngleSignalsSent.end()) ? it->second : NULL );

  if( pAngle != pOldAngle )
  {
    if( pAngle != NULL )
    {
      // Check boundary
      if( GetAngleTo(pActor->GetEntity()->GetPos(), true) != pOldAngle )
      {
        if( pOldAngle == NULL )
        {
          m_mapAngleSignalsSent.insert( std::pair < EntityId, CAngleAlert const * > (pActor->GetEntityId(), pAngle) );
        }
        else
        {
          it->second = pAngle;
        }

        SendSignal( pActor, pAngle->GetSignal(), pAngle->GetSignalData() );
      }
    }
    else
    {
      m_mapAngleSignalsSent.erase( it );
    }
  }
}
// Description:
//
// Arguments:
//
// Return:
//
bool CAngleAlert::CheckPlusBoundary( const Vec3& vPos ) const
{
    return( GetAngleTo(vPos) < m_fBoundary );
}
// Description:
//
// Arguments:
//
// Return:
//
bool CAngleAlert::Check( const Vec3& vPos ) const
{
    return( GetAngleTo(vPos) < m_fAngle );
}