BWAPI
|
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 };