BWAPI
|
00001 #pragma once 00002 #include "UnitDynamicLocation.h" 00003 #include "../Static/Arbitrary/CircularLocation.h" 00004 00005 class CircularUnitDynamicLocation : public UnitDynamicLocation 00006 { 00007 public: 00008 CircularUnitDynamicLocation(BWAPI::Unit* unit, int radius) 00009 : UnitDynamicLocation(unit) 00010 , m_radius(radius) 00011 { 00012 } 00013 00014 CircularUnitDynamicLocation(BWAPI::Unit* unit) 00015 : UnitDynamicLocation(unit) 00016 , m_radius(DANGER_DISTANCE) 00017 { 00018 } 00019 00020 CircularLocation getCircularLocation() const 00021 { 00022 return CircularLocation(m_unit->getPosition(), m_radius); 00023 } 00024 00025 virtual bool isInLocation(BWAPI::Position position) const 00026 { 00027 return CircularLocation(m_unit->getPosition(), m_radius).isInLocation(position); 00028 } 00029 00030 protected: 00031 virtual void output(std::ostream& out) const 00032 { 00033 out << "DynamicCircle(" << *m_unit << ", " << m_radius << ")"; 00034 } 00035 00036 const int m_radius; 00037 };