//left-click:test for any buttons used in this camera mode int Cam_int::down2( CEvent &e, State *&s ) { if (debug_fsa) cerr << "Cam_int::down2" << endl; DEVice_buttons *btns = (DEVice_buttons *)e._d; DEVice_2d *ptr = btns->ptr2d(); _view = e.view(); CAMdataptr data(_view->cam()->data()); RAYhit r (_view->intersect(ptr->cur())); if (r.success()) { if(r.geom()->name() == "eye_button") { s = (State *)-1; BaseJOTapp::cam_switch(e,s); } } return 0; }
int Cam_int_edit::down2( CEvent &e, State *&s ) { DEVice_buttons *btns = (DEVice_buttons *)e._d; DEVice_2d *ptr = btns->ptr2d(); _view = e.view(); CAMdataptr data(_view->cam()->data()); RAYhit r (_view->intersect(ptr->cur())); if (r.success()) { ////////////////// //Scale Button ////////////////// if(r.geom()->name() == "scale") { BaseJOTapp::deactivate_button(); if(s == &_scale) s = (State *)-1; else { BaseJOTapp::activate_button("scale"); s = &_scale; } } ////////////////// //ScaleX Button ////////////////// if(r.geom()->name() == "scalex") { BaseJOTapp::deactivate_button(); if(s == &_scalex) s = (State *)-1; else { BaseJOTapp::activate_button("scalex"); s = &_scalex; } } ////////////////// //ScaleY Button ////////////////// if(r.geom()->name() == "scaley") { BaseJOTapp::deactivate_button(); if(s == &_scaley) s = (State *)-1; else { BaseJOTapp::activate_button("scaley"); s = &_scaley; } } ////////////////// //ScaleZ Button ////////////////// if(r.geom()->name() == "scalez") { BaseJOTapp::deactivate_button(); if(s == &_scalez) s = (State *)-1; else { BaseJOTapp::activate_button("scalez"); s = &_scalez; } } ////////////////// //Rotate Button ////////////////// if(r.geom()->name() == "rotateX") { BaseJOTapp::deactivate_button(); if(s == &_rot_x) s = (State *)-1; else { BaseJOTapp::activate_button("rotateX"); s = &_rot_x; } } ////////////////// //RotateY Button ////////////////// if(r.geom()->name() == "rotateY") { BaseJOTapp::deactivate_button(); if(s == &_rot_y) s = (State *)-1; else { BaseJOTapp::activate_button("rotateY"); s = &_rot_y; } } ////////////////// //Rotate Button ////////////////// if(r.geom()->name() == "rotateZ") { BaseJOTapp::deactivate_button(); if(s == &_rot_z) s = (State *)-1; else { BaseJOTapp::activate_button("rotateZ"); s = &_rot_z; } } ///////////////// //Eye Button //////////////// else if(r.geom()->name() == "eye_button") { s = (State *)-1; BaseJOTapp::cam_switch(e,s); } } return 0; }