BWAPI
SPAR/AIModule/SparAIModule/PerceptualState/Locations/Static/Arbitrary/CircularLocation.h
Go to the documentation of this file.
00001 #pragma once
00002 #include "../StaticLocation.h"
00003 
00004 class CircularLocation : public Location
00005 {
00006 public:
00007   CircularLocation(BWAPI::Position center, int radius)
00008     : Location()
00009     , m_center(center)
00010     , m_radius(radius)
00011   {
00012   }
00013 
00014   virtual bool isInLocation(BWAPI::Position position) const
00015   {
00016     const double distance = m_center.getDistance(position);
00017     return (distance <= static_cast<double>(m_radius));
00018   }
00019 
00020   virtual BWAPI::Position getCurrentCenter() const
00021   {
00022     return m_center;
00023   }
00024 
00025   int getRadius() const
00026   {
00027     return m_radius;
00028   }
00029 protected:
00030   virtual void output(std::ostream& out) const
00031   {
00032     out << "Circle(" << m_center << ", " << m_radius << ")";
00033   }
00034 
00035   const BWAPI::Position m_center;
00036   const int m_radius;
00037 };
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines