Google
Web alhem.net

Radar.h

Go to the documentation of this file.
00001 #ifndef _RADAR_H
00002 #define _RADAR_H
00003 
00004 #include "RobotObject.h"
00005 #include "MapObject.h"
00006 #include "CodeTool.h"
00007 
00008 class Map;
00009 
00010 
00011 class Radar : public RobotObject
00012 {
00013         struct SCAN {
00014                 SCAN(MapObject *p,int r,int d) : m_object(p),m_relative_angle(r),m_distance(d) {}
00015                 MapObject *m_object;
00016                 int m_relative_angle;
00017                 int m_distance;
00018         };
00019         typedef std::vector<SCAN *> scan_v;
00020 public:
00021         Radar(Robot&);
00022         ~Radar();
00023 
00024         void Tick(long usec);
00025 
00026         long get_property(int);
00027         void set_property(int,long);
00028         long call_method(int,stack_v&);
00029 
00030         // methods
00031         void Scan( Map& ,int distance ); // scan time = power / distance
00032 
00033         // set properties
00034         void SetMaxPower(int x) { m_max_power = x; }
00035         void SetMaxDistance(int x) { m_max_distance = x; }
00036         void SetChargeSpeed(int x) { m_charge_speed = x; }
00037         
00038         // get properties
00039         int GetMaxPower() { return m_max_power; }
00040         int GetMaxDistance() { return m_max_distance; }
00041         int GetPower() { return m_power; }
00042         int GetChargeSpeed() { return m_charge_speed; }
00043         scan_v& GetScanlist() { return m_scanlist; }
00044 
00045 private:
00046         // properties
00047         int m_max_power;
00048         int m_max_distance;
00049         int m_power;
00050         int m_charge_speed; // units/sec
00051         scan_v m_scanlist;
00052 };
00053 
00054 
00055 #endif // _RADAR_H

Generated for Robot World by doxygen 1.3.6

Page, code, and content Copyright (C) 2004 by Anders Hedström