亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? world.hh

?? 一個機器人平臺
?? HH
字號:
/* *  Stage : a multi-robot simulator. *  Copyright (C) 2001, 2002 Richard Vaughan, Andrew Howard and Brian Gerkey. * *  This program is free software; you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation; either version 2 of the License, or *  (at your option) any later version. * *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. * *  You should have received a copy of the GNU General Public License *  along with this program; if not, write to the Free Software *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA * *//* * Desc: top level class that contains everything * Author: Richard Vaughan, Andrew Howard * Date: 7 Dec 2000 * CVS info: $Id: world.hh,v 1.22 2002/11/11 03:09:46 rtv Exp $ */#ifndef WORLD_HH#define WORLD_HH// NOTE: include <sys/types.h> FIRST, as it may have an effect on other headers#include <sys/types.h> #include <stddef.h>#include <netinet/in.h>//#include <pthread.h>//#include <sys/sem.h>//#include <sys/ipc.h>#include <limits.h>#include "replace.h" // for poll(2)#include "player.h" //from player#include "entity.hh"#include "playercommon.h"#include "matrix.hh"#include "worldfile.hh"class Library;#if INCLUDE_RTK2#include "rtk.h"#endif// World classclass CWorld{  public:     // constructor  CWorld( int argc, char** argv, Library* lib );    // Destructor  virtual ~CWorld();    // the Library class knows how to create entities given a worldfile  // token, and can find the token given a StageType number  public: Library* lib;  public: inline Library* GetLibrary( void ){ return lib; }  // we store the app command line  int argc;  char** argv;  // the main world-model data structure  public: CMatrix *matrix;    // these do nothing in the base CWorld class, but are overridden in  // CServer to control access to shared memory  virtual bool LockByte( int offset );  virtual bool UnlockByte( int offset );  // TODO - this should move to the server  public: char m_device_dir[PATH_MAX]; //device  directory name     // Properties of the underlying matrix representation  // for the world.  // The resolution is specified in pixels-per-meter.  public: double ppm;  // Object encapsulating world description file (null if there is no file)  public: CWorldFile* worldfile;  // access func  // timing  //bool m_realtime_mode;  public: double m_real_timestep; // the time between wake-up signals in msec   public: double m_sim_timestep; // the sim time increment in seconds  // change ratio of these to run stage faster or slower than real time.public: uint32_t m_step_num; // the number of cycles executed, from 0    // set the current time from the interval and step number  // returning the current time in seconds  virtual double SetClock( double interval, uint32_t step_num );    // Enable flag -- world only updates while this is set  public: bool m_enable;    // the hostname of this computer  public: char m_hostname[ HOSTNAME_SIZE ];  public: char m_hostname_short[ HOSTNAME_SIZE ];  // same thing, w/out domain  // the IP address of this computer  public: struct in_addr m_hostaddr;  void Output();  void LogOutputHeader( void );  void LogOutput( double freq,                  //double sleep_duration,                  //double avg_sleep_duration,                  unsigned int bytes_in, unsigned int bytes_out,                  unsigned int total_bytes_in, unsigned int total_bytes_out );  void ConsoleOutput( double freq,                      //double ratio, double avg_ratio,                      unsigned int bytes_in, unsigned int bytes_out,                      double avg_data );      void Ticker( void )  {    putchar( ' ' );    static int z = 0;    char c = 0;        switch( z % 4 )      {      case 0: c = '|'; break;      case 1: c = '/'; break;      case 2: c = '-'; break;      case 3: c = '\\'; break;      }        putchar( c );    putchar( '\b' );    fflush( stdout );    z++;  };    //-----------------------------------------------------------------------  // Timing  // Real time at which simulation started.  // The time according to the simulator (m_sim_time <= m_start_time).  protected: double m_start_time, m_last_time;  protected: double m_sim_time;  // the same as m_sim_time but in timeval format  public: struct timeval m_sim_timeval;     int m_log_fd; // logging file descriptor  char m_log_filename[PATH_MAX]; // path to the log file  char m_cmdline[512]; // a string copy of the command line that started stage  // Update rate (just for diagnostics)  private: double m_update_ratio;  private: double m_update_rate;    // color definitions  private: char m_color_database_filename[PATH_MAX];    // this is the root of the entity tree - all entities are children  // of root  public: static CEntity* root;  public: CEntity* GetRoot( void ){ return root; };  // pointers to all entities are also stored in a flat array  // be found by number without having to search the tree  protected: CEntity** entities;  // the number of entities stored in the array  protected: int entity_count;     // the capacity of the currently allocated array  private: int entities_size;  // return a pointer to an entity with matching id  public: CEntity* GetEntity( int i );    public: int GetEntityCount( void ){ return this->entity_count; };    // adds the pointer to the flat child_list and increments  // entity_count, returning the entity's position in the list to use  // as a unique id   public: stage_id_t RegisterEntity( CEntity *entity);    // Authentication key  public: char m_auth_key[PLAYER_KEYLEN];  // if the user is running more than one copy of stage, this number  // identifies this instance uniquely (TODO - broken)   int m_instance;  ///////////////////////////////////////////////////////////////////////////  // Configuration variables  // if true we  run the gui - a command line switch  public: bool enable_gui;  // if true  we log output to to file - a command line switch  public: bool m_log_output;  // if true we log output ot the console - a command line switch  public: bool m_console_output;  public: bool ParseCmdLine( int argv, char** argv );  // Save the world file (or ask the server to save it)  public: virtual bool Save( void );  // Load the world file (or download it from a server)  public: virtual bool Load( void );  //////////////////////////////////////////////////////////////////////  // main methods    // Initialise the world  public: virtual bool Startup();    // Shutdown the world  public: virtual bool Shutdown();    // Update everything  public: virtual void Update();  //////////////////////////////////////////////////////////////////////////  // Time functions      // Get the simulation time - Returns time in sec since simulation started  public: double GetTime();  // Get the real time - Returns time in sec since simulation started  public: double GetRealTime();  ///////////////////////////////////////////////////////////////////////////  // matrix-based world functions    // Initialise the matrix - loading the bitmap world description  private: bool InitGrids(const char *env_file);  // Update a rectangle in the matrix  // Set add = true to add the entity, set add = false to remove it.  public: void SetRectangle(double px, double py, double pth,                            double dx, double dy, CEntity* ent, bool add );  // Update a circle in the matrix  // Set add = true to add the entity, set add = false to remove it.  public: void SetCircle(double px, double py, double pr,                         CEntity* ent, bool add );      ////////////////////////////////////////////////////////////////////////  // utility methods  // entities can be created by type number or by string description  public: CEntity* CreateEntity(const char *type_str, CEntity *parent );  //public: CEntity* CreateEntity( int StageType type, CEntity *parent );    /////////////////////////////////////////////////////////////////////////////  // access methods    public:  double GetWidth( void )    { if( matrix ) return matrix->width; else return 0; };    double GetHeight( void )    { if( matrix ) return matrix->height; else return 0; };    // returns true if the given hostname matches our hostname, false otherwise  //bool CheckHostname(char* host);  // return the entity nearest the specified point, but not more than range m away,  // that has the specified parent   CEntity* GetNearestChildWithinRange( double x, double y, double range, 				       CEntity* parent );    // return the entity nearest the specified point, but not more than range m away  CEntity* GetNearestEntityWithinRange( double x, double y, double range );    // RTK STUFF ----------------------------------------------------------------#ifdef INCLUDE_RTK2  // Initialise the GUI  public: bool RtkLoad(CWorldFile *worldfile);    // Save the GUI  public: bool RtkSave(CWorldFile *worldfile);    // Start the GUI  public: bool RtkStartup();  // Stop the GUI  public: void RtkShutdown();  // Update the GUI  public: void RtkUpdate();  // Handle menu stuff  protected: void RtkMenuHandling();  // Handle the movie sub-menu.  private: void RtkUpdateMovieMenu();    // Basic GUI elements  public: rtk_app_t *app;  public: rtk_canvas_t *canvas;  // Timing info for the gui.  // [rtk_update_rate] is the update rate (Hz).  // [rtk_update_time] is the last time the gui was update (simulation time).  private: double rtk_update_rate;  private: double rtk_update_time;  // Figure for the grid  private: rtk_fig_t *fig_grid;    // The file menu  private: rtk_menu_t *file_menu;  private: rtk_menuitem_t *save_menuitem;  private: rtk_menuitem_t *exit_menuitem;  // The stills menu  private: rtk_menu_t *stills_menu;  private: rtk_menuitem_t *stills_jpeg_menuitem;  private: rtk_menuitem_t *stills_ppm_menuitem;  // Export stills info  private: int stills_series;  private: int stills_count;  // The movie menu    private: rtk_menu_t *movie_menu;  private: struct CMovieOption  {    rtk_menuitem_t *menuitem;    int speed;  };  private: int movie_option_count;  private: CMovieOption movie_options[10];  // Export movie info  private: int movie_count;  // The view menu  public: rtk_menu_t *view_menu;  private: rtk_menuitem_t *grid_item;  private: rtk_menuitem_t *walls_item;  private: rtk_menuitem_t *matrix_item;  private: rtk_menuitem_t *objects_item;  private: rtk_menuitem_t *data_item;  // The action menu  public: rtk_menu_t* action_menu;  private: rtk_menuitem_t* subscribedonly_item;  private: rtk_menuitem_t* autosubscribe_item;  public: static int autosubscribe;  typedef struct   {    rtk_menu_t *menu;    rtk_menuitem_t *items[ 1000 ]; // TODO - get rid of this fixed size buffer  } stage_menu_t;    // The view/device menu  protected: stage_menu_t device_menu;    // the view/data menu  public: stage_menu_t data_menu;    protected: void AddToMenu( stage_menu_t* menu, CEntity* ent, int check );  public:  void AddToDataMenu( CEntity* ent, int check );  public: void AddToDeviceMenu( CEntity* ent, int check );    // devices check this to see if they should display their data  public: bool ShowDeviceData( int devtype );  public: bool ShowDeviceBody( int devtype );  // Number of exported images  private: int export_count;#endif  //public: void GuiStartup( void );};#endif

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久日韩粉嫩一区二区三区| 久久精品国产免费| 成人精品国产福利| 中日韩免费视频中文字幕| 国产成人综合视频| 亚洲欧洲无码一区二区三区| 99综合电影在线视频| 亚洲欧美日韩国产手机在线| 欧美在线free| 久久99精品久久久久久国产越南| 久久精品综合网| 色综合天天综合网天天看片| 亚洲成人av电影在线| 日韩欧美国产一区在线观看| 国产一区二区三区四区五区美女 | 91久久国产最好的精华液| 同产精品九九九| 亚洲一区二区三区在线播放| 国产精品自拍在线| 91首页免费视频| 五月天激情小说综合| 欧美大片一区二区| av网站免费线看精品| 午夜a成v人精品| 久久久噜噜噜久噜久久综合| 91欧美一区二区| 日韩精品1区2区3区| 国产日韩欧美高清在线| 91国偷自产一区二区三区观看 | 久久欧美中文字幕| 99精品视频在线播放观看| 日韩av在线免费观看不卡| 中文字幕高清一区| 欧美日韩美女一区二区| 欧美成va人片在线观看| 国产视频一区在线播放| 欧美体内she精高潮| 国产在线一区二区| 一区二区三区欧美日| 久久久亚洲高清| 欧美日韩在线播放三区四区| 国产一区二区三区在线观看精品| 亚洲午夜影视影院在线观看| 国产日韩精品一区二区浪潮av| 欧美日韩午夜影院| 91蜜桃网址入口| 国产精品一区二区不卡| 亚洲成人中文在线| 亚洲日本护士毛茸茸| 欧美成人精品福利| 在线播放一区二区三区| 91色视频在线| 丁香婷婷深情五月亚洲| 麻豆国产精品777777在线| 亚洲成va人在线观看| 亚洲人亚洲人成电影网站色| 2020日本不卡一区二区视频| 制服丝袜国产精品| 欧美伦理视频网站| 欧美亚洲日本一区| 99久久精品99国产精品| 粗大黑人巨茎大战欧美成人| 国产一区久久久| 久久99精品久久久久久| 日本亚洲欧美天堂免费| 一区二区三区 在线观看视频| 国产精品免费久久久久| 国产欧美日韩视频在线观看| 欧美电视剧免费全集观看| 7777精品伊人久久久大香线蕉最新版 | 亚洲资源中文字幕| 亚洲天堂2016| 亚洲三级在线看| 亚洲欧美日韩电影| 亚洲欧美在线aaa| 中文字幕一区二区三区在线播放| 久久久不卡网国产精品一区| 久久久久久久综合日本| 久久众筹精品私拍模特| 久久午夜电影网| 国产日产欧美一区二区三区| 精品电影一区二区| 国产午夜精品一区二区三区嫩草| 精品福利一二区| 国产亚洲一区二区三区四区| 国产欧美一区二区精品久导航| 久久综合色综合88| 国产欧美一区在线| 国产精品超碰97尤物18| 亚洲乱码国产乱码精品精小说| 亚洲免费观看高清完整版在线观看| 国产精品久久久久7777按摩| 综合电影一区二区三区| 一级女性全黄久久生活片免费| 亚洲成人一区在线| 欧美aaaaaa午夜精品| 国产精品12区| 一本色道**综合亚洲精品蜜桃冫| 欧美性色黄大片| 欧美一级在线视频| 国产视频一区二区三区在线观看| 欧美高清一级片在线观看| 亚洲乱码国产乱码精品精小说| 午夜成人免费电影| 国产在线精品一区二区夜色| av在线播放一区二区三区| 日本高清视频一区二区| 制服丝袜国产精品| 日本一区二区三区免费乱视频| 亚洲天堂中文字幕| 亚洲国产精品尤物yw在线观看| 久久超级碰视频| kk眼镜猥琐国模调教系列一区二区| 欧美亚洲国产一区二区三区| 69久久夜色精品国产69蝌蚪网| 2023国产精品自拍| 一区二区三区.www| 精品一区二区三区蜜桃| 一本色道久久综合亚洲aⅴ蜜桃| 在线不卡欧美精品一区二区三区| 久久综合999| 亚洲成在人线免费| 国产成人8x视频一区二区| 欧美这里有精品| 久久久久久免费网| 亚洲国产你懂的| 成人精品gif动图一区| 91精品国产色综合久久不卡蜜臀| 欧美精品一区二区三区四区| 亚洲激情在线激情| 国产精品1024| 日韩免费成人网| 亚洲一区二区三区四区在线| 成人一区二区视频| 日韩免费在线观看| 亚洲一区二区三区中文字幕在线 | 亚洲一区二区三区激情| 国产精品一二三四区| 欧美伦理视频网站| 亚洲嫩草精品久久| 国产91露脸合集magnet| 91精品欧美福利在线观看| 中文字幕日韩一区| 国产一区二区三区精品视频| 精品视频一区二区不卡| 自拍偷自拍亚洲精品播放| 久久成人免费日本黄色| 欧美日韩激情一区| 亚洲欧美激情视频在线观看一区二区三区| 精品一区二区三区不卡| 欧美日韩国产首页在线观看| 亚洲三级电影网站| 成人视屏免费看| 国产亚洲人成网站| 国产一区二区电影| 日韩精品一区二区三区蜜臀| 日韩精品欧美精品| 欧美喷潮久久久xxxxx| 亚洲丝袜制服诱惑| 成人黄动漫网站免费app| 久久久久国产免费免费| 精品一区二区久久久| 精品国产乱码久久久久久浪潮| 秋霞午夜鲁丝一区二区老狼| 欧美美女网站色| 日韩成人午夜电影| 日韩欧美在线不卡| 日本强好片久久久久久aaa| 欧美日韩色一区| 午夜精品久久一牛影视| 5566中文字幕一区二区电影| 偷偷要91色婷婷| 欧美一级高清大全免费观看| 美女免费视频一区| 精品福利在线导航| 国产99久久久国产精品| 国产精品麻豆一区二区| 99久久精品免费看国产免费软件| 亚洲日韩欧美一区二区在线| 日本韩国精品在线| 三级久久三级久久久| 日韩限制级电影在线观看| 精品亚洲porn| 国产亚洲精品福利| 97se亚洲国产综合自在线观| 日韩伦理免费电影| 欧美日本韩国一区| 日本不卡免费在线视频| 久久你懂得1024| 99久久精品国产网站| 亚洲一区二区三区美女| 日韩视频国产视频| 国产suv精品一区二区三区| 亚洲三级电影全部在线观看高清| 精品视频在线免费| 蜜桃精品视频在线观看| 国产精品情趣视频| 欧美精品久久99久久在免费线 | 精品一区二区av| 国产精品无遮挡|