virtual void GetPerceived( const IGameObject* pPerceiver, IAUDynArray<ObjectId>& objects ) const
	{
		objects.Clear();
		AUVec3f center = pPerceiver->GetEntity()->GetPosition();
		m_workingData.clear();

		// Fill working array with results
		for (int i=0; i<EGO_COUNT; ++i)
		{
			float radius = m_pGlobalParameters->go[pPerceiver->GetGameObjectType()].perceptionDist[i];

			DoGetPerceived( m_Objects[i], pPerceiver, center, radius );
		}
		
		DoAddToArray(objects);
	}
	virtual void GetPerceived( const IGameObject* pPerceiver, EGameObject perceivedType, IAUDynArray<ObjectId>& objects ) const
	{
		objects.Clear();
		DoAddPerceived( pPerceiver, perceivedType, objects );
	}