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

📄 display_x11.c

📁 robocup rcssmonitor-11.1.1.zip
💻 C
📖 第 1 页 / 共 2 页
字号:
    myobj->mark_col_change();    myobj->mark_pos_change();  }  else    myobj= static_cast<D_XArcs*>(d_obj); //dynamic_cast should also work, but it doesn't <- why?  //here we have the assumption num= myobj->pp.max_size; i.e. the it is not allowed to change the number of arcs  if (myobj->col_change) {     myobj->col_change= false;    myobj->XColor_pixel= AGetColor(col);  }  if (myobj->area_number != area_number) {     myobj->area_number= area_number;     copy_2_XArcs(myobj->aa.tab, num, vec);  }  ASetForeground(myobj->XColor_pixel);  XFillArcs(disp,pixmap,gc,myobj->aa.tab,num);}  //specifies an arc with absolute begin in ang1 and absolute!!! end in ang2, the path goes from ang1 to ang2 couterclockwisevoid DisplayX11::draw_circlearc(DisplayObject * d_obj, const RGBcolor & col, const CircleArc2d & circlearc){  D_XArc *myobj;  if (!d_obj) {    myobj= &d_xarc;    myobj->mark_col_change();    myobj->mark_pos_change();  }  else    myobj= static_cast<D_XArc*>(d_obj); //dynamic_cast should also work, but it doesn't <- why?  if (myobj->col_change) {     myobj->col_change= false;    myobj->XColor_pixel= AGetColor(col);  }  if (myobj->area_number != area_number) {     myobj->area_number= area_number;    copy_2_XArc(myobj->a,circlearc);  }  ASetForeground(myobj->XColor_pixel);  XDrawArc(disp,pixmap,gc,           myobj->a.x,           myobj->a.y,           myobj->a.width,           myobj->a.height,           myobj->a.angle1,myobj->a.angle2);}void DisplayX11::draw_circlearcs(DisplayObject * d_obj, const RGBcolor & col, int num, const CircleArc2d * vec){  D_XArcs *myobj;  if (!d_obj) {    if (d_xarcs.aa.max_size < num)      d_xarcs.aa.set_max_size(num);    d_xarcs.aa.set_cur_size(num);    myobj= &d_xarcs;    myobj->mark_col_change();    myobj->mark_pos_change();  }  else    myobj= static_cast<D_XArcs*>(d_obj); //dynamic_cast should also work, but it doesn't <- why?  //here we have the assumption num= myobj->pp.max_size; i.e. the it is not allowed to change the number of arcs  if (myobj->col_change) {     myobj->col_change= false;    myobj->XColor_pixel= AGetColor(col);  }  if (myobj->area_number != area_number) {     myobj->area_number= area_number;     copy_2_XArcs(myobj->aa.tab, num, vec);  }  ASetForeground(myobj->XColor_pixel);  XDrawArcs(disp,pixmap,gc,myobj->aa.tab,num);}void DisplayX11::fill_circlearc(DisplayObject * d_obj, const RGBcolor & col, const CircleArc2d & circlearc){  D_XArc *myobj;  if (!d_obj) {    myobj= &d_xarc;    myobj->mark_col_change();    myobj->mark_pos_change();  }  else    myobj= static_cast<D_XArc*>(d_obj); //dynamic_cast should also work, but it doesn't <- why?  if (myobj->col_change) {     myobj->col_change= false;    myobj->XColor_pixel= AGetColor(col);  }  if (myobj->area_number != area_number) {     myobj->area_number= area_number;     copy_2_XArc(myobj->a,circlearc);  }  ASetForeground(myobj->XColor_pixel);  XFillArc(disp,pixmap,gc,           myobj->a.x,           myobj->a.y,           myobj->a.width,           myobj->a.height,           myobj->a.angle1,myobj->a.angle2);}void DisplayX11::fill_circlearcs(DisplayObject * d_obj, const RGBcolor & col, int num, const CircleArc2d * vec){  D_XArcs *myobj;  if (!d_obj) {    if (d_xarcs.aa.max_size < num)      d_xarcs.aa.set_max_size(num);    d_xarcs.aa.set_cur_size(num);    myobj= &d_xarcs;    myobj->mark_col_change();    myobj->mark_pos_change();  }  else    myobj= static_cast<D_XArcs*>(d_obj); //dynamic_cast should also work, but it doesn't <- why?  //here we have the assumption num= myobj->pp.max_size; i.e. the it is not allowed to change the number of arcs  if (myobj->col_change) {     myobj->col_change= false;    myobj->XColor_pixel= AGetColor(col);  }  if (myobj->area_number != area_number) {     myobj->area_number= area_number;     copy_2_XArcs(myobj->aa.tab, num, vec);  }  ASetForeground(myobj->XColor_pixel);  XFillArcs(disp,pixmap,gc,myobj->aa.tab,num);}//all boudary points of the polygon are treated as absolute coordinatesvoid DisplayX11::draw_polyline(DisplayObject * d_obj, const RGBcolor & col, int num, const Point2d * vec){  D_XPoints *myobj;  if (!d_obj) {    if (d_xpoints.pp.max_size < num)      d_xpoints.pp.set_max_size(num);    d_xpoints.pp.set_cur_size(num);    myobj= &d_xpoints;    myobj->mark_col_change();    myobj->mark_pos_change();  }  else    myobj= static_cast<D_XPoints*>(d_obj); //dynamic_cast should also work, but it doesn't <- why?  //here we have the assumption num= myobj->pp.max_size; i.e. the it is not allowed to change the number of points  if (myobj->col_change) {     myobj->col_change= false;    myobj->XColor_pixel= AGetColor(col);  }  if (myobj->area_number != area_number) {     myobj->area_number= area_number;     copy_2_XPoints(myobj->pp.tab, num, vec);  }  ASetForeground(myobj->XColor_pixel);  XDrawLines(disp,pixmap,gc,myobj->pp.tab,num,CoordModeOrigin);}void DisplayX11::draw_polygon(DisplayObject * d_obj, const RGBcolor & col, int num, const Point2d * vec) {  D_XPoints *myobj;  if (!d_obj) {    if (d_xpoints.pp.max_size < num+1)      d_xpoints.pp.set_max_size(num+1);    d_xpoints.pp.set_cur_size(num+1);    myobj= &d_xpoints;    myobj->mark_col_change();    myobj->mark_pos_change();  }  else    myobj= static_cast<D_XPoints*>(d_obj); //dynamic_cast should also work, but it doesn't <- why?  //here we have the assumption num= myobj->pp.max_size; i.e. the it is not allowed to change the number of points  if (myobj->col_change) {     myobj->col_change= false;    myobj->XColor_pixel= AGetColor(col);  }  if (myobj->area_number != area_number) {     myobj->area_number= area_number;     copy_2_XPoints(myobj->pp.tab, num, vec, vec[0]);  }  ASetForeground(myobj->XColor_pixel);  XDrawLines(disp,pixmap,gc,myobj->pp.tab,num+1,CoordModeOrigin);}void DisplayX11::fill_polygon(DisplayObject * d_obj, const RGBcolor & col, int num, const Point2d * vec){  D_XPoints *myobj;  if (!d_obj) {    if (d_xpoints.pp.max_size < num)      d_xpoints.pp.set_max_size(num);    d_xpoints.pp.set_cur_size(num);    myobj= &d_xpoints;    myobj->mark_col_change();    myobj->mark_pos_change();  }  else    myobj= static_cast<D_XPoints*>(d_obj); //dynamic_cast should also work, but it doesn't <- why?  //here we have the assumption num= myobj->pp.max_size; i.e. the it is not allowed to change the number of points  if (myobj->col_change) {     myobj->col_change= false;    myobj->XColor_pixel= AGetColor(col);  }  if (myobj->area_number != area_number) {     myobj->area_number= area_number;     copy_2_XPoints(myobj->pp.tab, num, vec);  }  ASetForeground(myobj->XColor_pixel);  XFillPolygon(disp,pixmap,gc,myobj->pp.tab,num,Complex,CoordModeOrigin);}void DisplayX11::draw_string(DisplayObject * d_obj, const RGBcolor & col, const Point2d & pos, int len, const char * str) {  D_XPoint *myobj;  if (!d_obj) {    myobj= &d_xpoint;    myobj->mark_col_change();    myobj->mark_pos_change();  }  else    myobj= static_cast<D_XPoint*>(d_obj); //dynamic_cast should also work, but it doesn't <- why?  if (myobj->col_change) {     myobj->col_change= false;    myobj->XColor_pixel= AGetColor(col);  }  if (myobj->area_number != area_number) {     myobj->area_number= area_number;     copy_2_XPoint(myobj->p,pos);  }  ASetForeground(myobj->XColor_pixel);  XDrawPoint(disp,pixmap,gc, myobj->p.x, myobj->p.y );  XDrawString(disp,pixmap,gc,              myobj->p.x,              myobj->p.y,              str,              len);}void DisplayX11::set_background_color(const RGBcolor & col) {  XSetBackground(disp, gc, AGetColor(col) );}void DisplayX11::copy_2_XPoints(XPoint * dest,int num,const Point2d * vec) const  {  for (int i= 0; i<num; i++)     copy_2_XPoint(dest[i],vec[i]);}void DisplayX11::copy_2_XPoints(XPoint * dest,int num,const Point2d * vec, const Point2d & point) const  {  for (int i= 0; i<num; i++)     copy_2_XPoint(dest[i],vec[i]);  copy_2_XPoint(dest[num],point);}void DisplayX11::copy_2_XSegments(XSegment * dest,int num, const Line2d * vec) const  {  for (int i= 0; i<num; i++)     copy_2_XSegment(dest[i],vec[i]);}void DisplayX11::copy_2_XArcs(XArc * dest,int num, const Circle2d * vec) const  {  for (int i= 0; i<num; i++)     copy_2_XArc(dest[i],vec[i]);}void DisplayX11::copy_2_XArcs(XArc * dest,int num,const CircleArc2d * vec) const  {  for (int i= 0; i<num; i++)     copy_2_XArc(dest[i],vec[i]);}

⌨️ 快捷键说明

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