Navigator_tool.cpp

Go to the documentation of this file.
00001 
00002 #include <Navigator_tool.h>
00003 
00004 #define PI 3.14259
00005 
00006 
00007 Navigator_tool::Navigator_tool()
00008 {
00009   kt=0;
00010   N_speed = 260;
00011   start_t=0.0;
00012   end_t=1.0;
00013   X_screen = 640;
00014   Y_screen = 480;
00015   percent_x = 0.65;
00016   percent_y = 0.65;
00017 
00018   dist_obs  = -84;
00019   dist_obs2 = -1;
00020   dist_obs3 = -1;
00021   dist_obs4 = -1;
00022 
00023   current_view = 1;
00024   selection_mode = 0;
00025   selected_joint = -1;
00026   view_selection_mode = 0;
00027 
00028   skeleton_shown=0;
00029 }
00030 
00031 
00032 
00033 Navigator_tool::~Navigator_tool()
00034 {
00035 }
00036 
00037 int Navigator_tool::set_tr_x(double _tr_x)
00038 {tr_x = _tr_x;return 0;}
00039 int Navigator_tool::set_tr_y(double _tr_y)
00040 {tr_y = _tr_y;return 0;}
00041 int Navigator_tool::set_tr_z(double _tr_z)
00042 {tr_z = _tr_z;return 0;}
00043 double Navigator_tool::get_tr_x()
00044 {return tr_x;}
00045 double Navigator_tool::get_tr_y()
00046 {return tr_y;}
00047 double Navigator_tool::get_tr_z()
00048 {return tr_z;}
00049 
00050 int Navigator_tool::set_tr2_x(double _tr2_x)
00051 {tr2_x = _tr2_x;return 0;}
00052 int Navigator_tool::set_tr2_y(double _tr2_y)
00053 {tr2_y = _tr2_y;return 0;}
00054 int Navigator_tool::set_tr2_z(double _tr2_z)
00055 {tr2_z = _tr2_z;return 0;}
00056 double Navigator_tool::get_tr2_x()
00057 {return tr2_x;}
00058 double Navigator_tool::get_tr2_y()
00059 {return tr2_y;}
00060 double Navigator_tool::get_tr2_z()
00061 {return tr2_z;}
00062 
00063 
00064 int Navigator_tool::set_tr3_x(double _tr3_x)
00065 {tr3_x = _tr3_x;return 0;}
00066 int Navigator_tool::set_tr3_y(double _tr3_y)
00067 {tr3_y = _tr3_y;return 0;}
00068 int Navigator_tool::set_tr3_z(double _tr3_z)
00069 {tr3_z = _tr3_z;return 0;}
00070 double Navigator_tool::get_tr3_x()
00071 {return tr3_x;}
00072 double Navigator_tool::get_tr3_y()
00073 {return tr3_y;}
00074 double Navigator_tool::get_tr3_z()
00075 {return tr3_z;}
00076 
00077 
00078 int Navigator_tool::set_tr4_x(double _tr4_x)
00079 {tr4_x = _tr4_x;return 0;}
00080 int Navigator_tool::set_tr4_y(double _tr4_y)
00081 {tr4_y = _tr4_y;return 0;}
00082 int Navigator_tool::set_tr4_z(double _tr4_z)
00083 {tr4_z = _tr4_z;return 0;}
00084 double Navigator_tool::get_tr4_x()
00085 {return tr4_x;}
00086 double Navigator_tool::get_tr4_y()
00087 {return tr4_y;}
00088 double Navigator_tool::get_tr4_z()
00089 {return tr4_z;}
00090 
00091 
00092 
00093 
00094 int Navigator_tool::set_theta_1(double _theta_1)
00095 {theta_1=_theta_1;return 0;}
00096 int Navigator_tool::set_theta_2(double _theta_2)
00097 {theta_2=_theta_2;return 0;}
00098 double Navigator_tool::get_theta_1()
00099 {return theta_1;}
00100 double Navigator_tool::get_theta_2()
00101 {return theta_2;}
00102 
00103 int Navigator_tool::set_width(double _width)
00104 {width=_width;return 0;}
00105 int Navigator_tool::set_height(double _height)
00106 {height=_height;return 0;}
00107 double Navigator_tool::get_width()
00108 {return width;}
00109 double Navigator_tool::get_height()
00110 {return height;}
00111 
00112 int Navigator_tool::set_dist_obs(double _dist_obs)
00113 {dist_obs=_dist_obs;return 0;};
00114 double Navigator_tool::get_dist_obs()
00115 {return dist_obs;}
00116 
00117 int Navigator_tool::set_dist_obs2(double _dist_obs2)
00118 {dist_obs2=_dist_obs2;return 0;};
00119 double Navigator_tool::get_dist_obs2()
00120 {return dist_obs2;}
00121 
00122 int Navigator_tool::set_dist_obs3(double _dist_obs3)
00123 {dist_obs3=_dist_obs3;return 0;};
00124 double Navigator_tool::get_dist_obs3()
00125 {return dist_obs3;}
00126 
00127 int Navigator_tool::set_dist_obs4(double _dist_obs4)
00128 {dist_obs4=_dist_obs4;return 0;};
00129 double Navigator_tool::get_dist_obs4()
00130 {return dist_obs4;}
00131 
00132 
00133 int Navigator_tool::set_left_b(int _left_b)
00134 {left_b=_left_b;return 0;}
00135 int Navigator_tool::set_right_b(int _right_b)
00136 {right_b=_right_b;return 0;}
00137 int Navigator_tool::get_left_b()
00138 {return left_b;}
00139 int Navigator_tool::get_right_b()
00140 {return right_b;}
00141 
00142 int Navigator_tool::set_x_prec(int _x_prec)
00143 {x_prec=_x_prec;return 0;}
00144 int Navigator_tool::set_y_prec(int _y_prec)
00145 {y_prec=_y_prec;return 0;}
00146 int Navigator_tool::get_x_prec()
00147 {return x_prec;}
00148 int Navigator_tool::get_y_prec()
00149 {return y_prec;}
00150 
00151 int Navigator_tool::set_sel_x(double _sel_x)
00152 {sel_x=_sel_x;return 0;}
00153 int Navigator_tool::set_sel_y(double _sel_y)
00154 {sel_y=_sel_y;return 0;}
00155 int Navigator_tool::set_sel_z(double _sel_z)
00156 {sel_z=_sel_z;return 0;}
00157 double Navigator_tool::get_sel_x()
00158 {return sel_x;}
00159 double Navigator_tool::get_sel_y()
00160 {return sel_y;}
00161 double Navigator_tool::get_sel_z()
00162 {return sel_z;}
00163 
00164 int Navigator_tool::increase_sel_x(double d_x)
00165 {sel_x+=d_x;return 0;}
00166 int Navigator_tool::increase_sel_y(double d_y)
00167 {sel_y+=d_y;return 0;}
00168 int Navigator_tool::increase_sel_z(double d_z)
00169 {sel_z+=d_z;return 0;}
00170 
00171 
00172 
00173 
00174 
00175 int Navigator_tool::increase_theta_1(double d_theta)
00176 {
00177   theta_1 += d_theta;
00178   return 0;
00179 }
00180 
00181 int Navigator_tool::increase_theta_2(double d_theta)
00182 {
00183   theta_2 += d_theta;
00184   return 0;
00185 }
00186 
00187 int Navigator_tool::increase_dist_obs(double factor)
00188 {
00189   dist_obs += (abs(dist_obs)+1)*factor;
00190   if(dist_obs>=0)
00191     dist_obs=0;
00192   return 0;
00193 }
00194 int Navigator_tool::increase_dist_obs2(double factor)
00195 {
00196   dist_obs2 += (abs(dist_obs2)+1)*factor;
00197   if(dist_obs2>=0)
00198     dist_obs2=0;
00199   return 0;
00200 }
00201 int Navigator_tool::increase_dist_obs3(double factor)
00202 {
00203   dist_obs3 += (abs(dist_obs3)+1)*factor;
00204   if(dist_obs3>=0)
00205     dist_obs3=0;
00206   return 0;
00207 }
00208 int Navigator_tool::increase_dist_obs4(double factor)
00209 {
00210   dist_obs4 += (abs(dist_obs4)+1)*factor;
00211   if(dist_obs4>=0)
00212     dist_obs4=0;
00213   return 0;
00214 }
00215 
00216 
00217 
00218 int Navigator_tool::go_forward(double d_L)
00219 {
00220   tr_x -= d_L*sin(theta_2*PI/180)*cos(theta_1*PI/180);
00221   tr_y += d_L*                    sin(theta_1*PI/180);
00222   tr_z += d_L*cos(theta_2*PI/180)*cos(theta_1*PI/180);
00223 
00224   return 0;
00225 }
00226 
00227 int Navigator_tool::go_backward(double d_L)
00228 {
00229   tr_x += d_L*sin(theta_2*PI/180)*cos(theta_1*PI/180);
00230   tr_y -= d_L*                    sin(theta_1*PI/180);
00231   tr_z -= d_L*cos(theta_2*PI/180)*cos(theta_1*PI/180);
00232   
00233   return 0;
00234 }
00235 
00236 int Navigator_tool::go_right(double d_L)
00237 {
00238 
00239   tr_x -= d_L*cos(theta_2*PI/180)*cos(theta_1*PI/180);
00240   tr_y -= d_L*0;
00241   tr_z -= d_L*sin(theta_2*PI/180)*cos(theta_1*PI/180);
00242 
00243   return 0;
00244 }
00245 
00246 int Navigator_tool::go_left(double d_L)
00247 {
00248   tr_x += d_L*cos(theta_2*PI/180)*cos(theta_1*PI/180);
00249   tr_y -= d_L*0;
00250   tr_z += d_L*sin(theta_2*PI/180)*cos(theta_1*PI/180);
00251 
00252   return 0;
00253 }
00254 
00255 int Navigator_tool::go_up(double d_L)
00256 {
00257   tr_x -= d_L*sin(theta_2*PI/180)*sin(theta_1*PI/180);
00258   tr_y -= d_L*                    cos(theta_1*PI/180);
00259   tr_z += d_L*cos(theta_2*PI/180)*sin(theta_1*PI/180);
00260   
00261   return 0;
00262 }
00263 
00264 int Navigator_tool::go_down(double d_L)
00265 {
00266   tr_x += d_L*sin(theta_2*PI/180)*sin(theta_1*PI/180);
00267   tr_y += d_L*                    cos(theta_1*PI/180);
00268   tr_z -= d_L*cos(theta_2*PI/180)*sin(theta_1*PI/180);
00269 
00270   return 0;
00271 }
00272 
00273 int Navigator_tool::increase_time()
00274 {++kt;return 0;}
00275 
00276 int Navigator_tool::get_counter()
00277 {return kt;}
00278 
00279 
00280 double Navigator_tool::get_time()
00281 {
00282   //double start_t=0.28;
00283   //double end_t = 1.4;
00284 
00285   double y=(double)(kt%(int)N_speed)/(double)(N_speed+1);
00286   double u = start_t + y*(end_t-start_t);
00287   //double u = 0.001 + y*0.998;
00288   return u;
00289 }
00290 
00291 
00292 int Navigator_tool::set_screen_size(int _X_screen,int _Y_screen)
00293 {
00294   X_screen = _X_screen;
00295   Y_screen = _Y_screen;
00296   return 0;
00297 }
00298 int Navigator_tool::get_X_screen() const
00299 {return X_screen;}
00300 int Navigator_tool::get_Y_screen() const
00301 {return Y_screen;}
00302 
00303 double Navigator_tool::get_screen_ratio() const
00304 {
00305   return (double)X_screen/(double)Y_screen;
00306 }
00307 
00308 int Navigator_tool::set_percent_x(double _percent_x)
00309 {percent_x = _percent_x;return 0;}
00310 int Navigator_tool::set_percent_y(double _percent_y)
00311 {percent_y = _percent_y;return 0;}
00312 double Navigator_tool::get_percent_x() const
00313 {return percent_x;}
00314 double Navigator_tool::get_percent_y() const
00315 {return percent_y;}
00316 
00317 
00318 int Navigator_tool::set_current_view(int _current_view)
00319 {current_view = _current_view;return 0;}
00320 int Navigator_tool::get_current_view() const
00321 {return current_view;}
00322 
00323 int Navigator_tool::get_selection_mode() const
00324 {return selection_mode;return 0;}
00325 int Navigator_tool::set_selection_mode(int mode)
00326 {selection_mode = mode;return 0;}
00327 
00328 int Navigator_tool::set_selected_joint(int _selected_joint)
00329 {selected_joint = _selected_joint;return 0;}
00330 int Navigator_tool::get_selected_joint() const
00331 {return selected_joint;}
00332 
00333 int Navigator_tool::get_view_selection_mode() const
00334 {return view_selection_mode;}
00335 int Navigator_tool::set_view_selection_mode(int _view_selection_mode)
00336 {view_selection_mode = _view_selection_mode;return 0;}
00337 
00338 int Navigator_tool::get_rotation_mode() const
00339 {return rotation_mode;}
00340 int Navigator_tool::set_rotation_mode(int _rotation_mode)
00341 {rotation_mode=_rotation_mode;return 0;}
00342 
00343 
00344 int Navigator_tool::set_N_speed(int _N_speed)
00345 {
00346   N_speed=_N_speed;
00347   return 0;
00348 }
00349 
00350 int Navigator_tool::get_N_speed() const
00351 {return (int)N_speed;}
00352 
00353 V_3D Navigator_tool::get_current_position() const
00354 {
00355   V_3D current;
00356 
00357   current[0] = tr_x-dist_obs*sin(theta_2*PI/180)*cos(theta_1*PI/180);
00358   current[1] = tr_y+dist_obs                    *sin(theta_1*PI/180);
00359   current[2] = tr_z+dist_obs*cos(theta_2*PI/180)*cos(theta_1*PI/180);
00360 
00361   return current;
00362 }
00363 
00364 int Navigator_tool::is_skeleton_shown() const{return skeleton_shown;}
00365 int Navigator_tool::set_skeleton_shown(int is_shown){skeleton_shown=is_shown;return 0;}

Generated on Mon Mar 30 16:55:54 2009 by  doxygen 1.5.6