⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tags.h

📁 柯老师网站上找到的
💻 H
字号:
// Author: Satish Kumar, kkumar@isi.edu#ifndef tag_h_#define tag_h_#include <cstdlib>#include <stdlib.h>#include <stdio.h>#include <iostream.h>#include <iomanip.h>#include <assert.h>#include <tclcl.h>#include <trace.h>#include <rng.h>#define NUM_RECTANGLES 10 // Divide into 10 rectangles at each level#define TRUE 1#define FALSE 0// Structure used for caching at agentsclass TagCache {public:  int obj_name_;  int origin_time_;  double X_;  double Y_;};// Object to hold attribute value pairsclass attribs {  char *name;  char *value;  attribs *next_;};// Tag object definitionclass tag {public:  tag() { next_ = NULL;}  double x_;           // x-coordinate  double y_;           // y-coordinate  int obj_name_;  // Hierarchical object name  attribs *attributes_; // <attribute, value> pairs  tag *next_;		// Used to attach tags to a list};  // List of tags in 2-dimensional space (for now)class dbase_node {public:  dbase_node (double x_min, double x_max, double y_min, double y_max) {    assert ((x_min <= x_max) && (y_min <= y_max));    x_min_ = x_min;    x_max_ = x_max;    y_min_ = y_min;    y_max_ = y_max;    tags_list_ = NULL;    for(int i = 0; i < NUM_RECTANGLES; ++i) {      list_node_[i] = NULL;    }      };    double x_min_;  double x_max_;  double y_min_;  double y_max_;  // Divide into NUM_RECTANGLES rectangles at each level  dbase_node *list_node_[NUM_RECTANGLES];   tag *tags_list_;				};// A compressed list returned to the node. Excluded attributes for now.class compr_taglist {public:  compr_taglist() { next_ = NULL;}  int obj_name_;  compr_taglist *next_;};class tags_database : public TclObject {public:  tags_database() : tags_db_(NULL) {      num_tags_ = 0;     num_sensed_tags_ = 0;     sensed_tag_list_ = NULL;     num_freq_qry_tags_= 0;        freq_qry_tag_list_ = NULL;     rn_ = new RNG;  }  ~tags_database() {    // Need to add deletion of tree as well    delete[] sensed_tag_list_;  }  virtual int command(int argc, const char * const * argv);  void create_tags_database(double x_min, double x_max, double y_min, double y_max, int num_tags);  void Addtag(const tag *tag_);  void Deletetag(const tag *tag_);  compr_taglist *Gettags(double x, double y, double r); // Returns all tags                              // within a circle centered at (x,y) and radius r  Trace *tracetarget_;       // Trace target  void trace(char *fmt,...);				    int get_random_tag();protected:  dbase_node *tags_db_;  // interior node  int num_tags_;         // total number of tags in database  int num_sensed_tags_;  // number of tags sensed by nodes  int *sensed_tag_list_; // list of all tags sensed by nodes  int num_freq_qry_tags_;   // number of frequently queried tags	        int *freq_qry_tag_list_;  // tags that will be frequently queried  RNG *rn_;  compr_taglist *vtags_; //used to store returned tag list after search      void add_level(double x_min, double x_max, double y_min, double y_max, dbase_node *dbnode);				         void search_tags_dbase(double x, double y, double r, dbase_node *dbnode);};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -