BWAPI
SPAR/AIModule/SparAIModule/PerceptualState/Locations/Dynamic/RectangularGroupDynamicLocation.h
Go to the documentation of this file.
00001 #pragma once
00002 #include "GroupDynamicLocation.h"
00003 #include "../Static/Arbitrary/RectangularLocation.h"
00004 
00005 class RectangularGroupDynamicLocation : public GroupDynamicLocation
00006 {
00007 public:
00008   RectangularGroupDynamicLocation(const PersistentUnitGroup* group, int halfAdditionalLengthX, int halfAdditionalLengthY)
00009     : GroupDynamicLocation(group)
00010     , m_halfAdditionalLengthX(halfAdditionalLengthX)
00011     , m_halfAdditionalLengthY(halfAdditionalLengthY)
00012   {
00013   }
00014 
00015   RectangularGroupDynamicLocation(const PersistentUnitGroup* group)
00016     : GroupDynamicLocation(group)
00017     , m_halfAdditionalLengthX(DANGER_DISTANCE)
00018     , m_halfAdditionalLengthY(DANGER_DISTANCE)
00019   {
00020   }
00021 
00022   virtual bool isInLocation(BWAPI::Position position) const
00023   {
00024     if (m_group->size() == 0)
00025       return false;
00026     else
00027       return RectangularLocation::getBoundingBox<PersistentUnitGroup>(m_group).expand(DANGER_DISTANCE, DANGER_DISTANCE).isInLocation(position);
00028   }
00029 
00030   RectangularLocation getRectangularLocation() const
00031   {
00032     return RectangularLocation::getBoundingBox<PersistentUnitGroup>(m_group);
00033   }
00034 
00035   RectangularLocation getExpandedRectangularLocation() const
00036   {
00037     return RectangularLocation::getBoundingBox<PersistentUnitGroup>(m_group).expand(DANGER_DISTANCE, DANGER_DISTANCE);
00038   }
00039 protected:
00040   virtual void output(std::ostream& out) const
00041   {
00042     out << "DynamicRectangle(" << m_group->getName() << ", " << m_halfAdditionalLengthX << ", " << m_halfAdditionalLengthY << ")";
00043   }
00044 
00045   const int m_halfAdditionalLengthX;
00046   const int m_halfAdditionalLengthY;
00047 };
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines