bool RobotTestBackend::OnButtonToggle(const string& button,int checked) { if(button=="draw_expanded") { SetDrawExpanded(checked); SendRefresh(); return true; } else if(button=="output_ros") { if(checked) { //initialize ROS if not initialized if(ros_status == 0) { if(ROSInit()) { ros_status = 1; bool res = ROSPublishTransforms(*world); if(!res) printf("Error publishing transforms?\n"); } else ros_status = -1; } } if(!GenericBackendBase::OnButtonToggle(button,checked)) { cout<<"RobotTestBackend: Unknown button: "<<button<<endl; return false; } } else if(!GenericBackendBase::OnButtonToggle(button,checked)) { cout<<"RobotTestBackend: Unknown button: "<<button<<endl; return false; } return true; }
bool ResourceGUIBackend::OnCommand(const string& cmd,const string& args) { if(cmd == "set_resource") { resources->Select(args); return true; } else if(cmd == "get_resource") { stringstream ss; ss<<resources->selected->Identifier(); SendCommand("current_resource",ss.str()); return true; } else if(cmd == "set_resource_name") { if(resources->selected) resources->selected->resource->name = args; printf("Updating name to %s\n",args.c_str()); } else if(cmd == "delete_resource") { resources->DeleteSelected(); } else if(cmd == "add_resource") { string type,name; stringstream ss(args); if(!SafeInputString(ss,type)) { cout<<"Error reading resource type from args \""<<args<<"\""<<endl; return true; } if(!SafeInputString(ss,name)) { cout<<"Error reading resource name from args \""<<args<<"\""<<endl; return true; } last_added = Add(name,type); } else if(cmd == "load_resource") { if(LoadNew(args)) { SendCommand("new_resource",last_added->Identifier()); } } else if(cmd == "save_resource") { SaveCur(args); } else if(cmd == "load_resource_dir") { if(LoadAll(args)) { SendCommand("refresh_resources",""); } } else if(cmd == "save_resource_dir") { SaveAll(args); } else if(cmd == "convert") { ResourcePtr r=CurrentResource(); ResourcePtr res = CastResource(r,args.c_str()); if(!res) { fprintf(stderr,"Conversion failed\n"); return true; } Add(res); SetLastActive(); } else if(cmd == "extract") { ResourcePtr r=CurrentResource(); if(!r) return true; vector<ResourcePtr> res = ExtractResources(r,args.c_str()); for(size_t i=0;i<res.size();i++){ Add(res[i]); } if(!res.empty()) SetLastActive(); } else if(cmd == "set_path_time") { stringstream ss(args); double time; ss>>time; SetPathTime(time); SendRefresh(); }