FD_dialattrib * create_form_dialattrib( void ) { FL_OBJECT *obj; FD_dialattrib *fdui = ( FD_dialattrib * ) fl_malloc( sizeof *fdui ); int old_bw = fl_get_border_width( ); fl_set_border_width( -1 ); fdui->vdata = fdui->cdata = NULL; fdui->ldata = 0; fdui->dialattrib = fl_bgn_form( FL_NO_BOX, 540, 280 ); fdui->background = obj = fl_add_box( FL_FLAT_BOX, 0, 0, 540, 280, "" ); fdui->returnsetting = obj = fl_add_menu( FL_PULLDOWN_MENU, 305, 90, 138, 24, "Return Setting" ); fl_set_object_boxtype( obj, FL_UP_BOX ); fl_set_object_callback( obj, dial_returnsetting_change, 0 ); fdui->minval = obj = fl_add_input( FL_FLOAT_INPUT, 195, 45, 92, 24, "Dial Min" ); fl_set_object_lsize( obj, FL_NORMAL_SIZE ); fl_set_object_callback( obj, dial_minmax_change, 0 ); fdui->maxval = obj = fl_add_input( FL_FLOAT_INPUT, 195, 77, 92, 24, "DialMax" ); fl_set_object_lsize( obj, FL_NORMAL_SIZE ); fl_set_object_callback( obj, dial_minmax_change, 0 ); fdui->initialval = obj = fl_add_input( FL_FLOAT_INPUT, 195, 109, 92, 24, "Initial Value" ); fl_set_object_lsize( obj, FL_NORMAL_SIZE ); fl_set_object_callback( obj, dial_initialvalue_change, 0 ); fdui->step = obj = fl_add_input( FL_FLOAT_INPUT, 195, 141, 92, 24, "Dial Step" ); fl_set_object_lsize( obj, FL_NORMAL_SIZE ); fl_set_object_callback( obj, dial_stepchange_cb, 0 ); fdui->thetai = obj = fl_add_input( FL_FLOAT_INPUT, 195, 173, 92, 24, "Min. Angle" ); fl_set_object_lsize( obj, FL_NORMAL_SIZE ); fl_set_object_callback( obj, dial_thetachange_cb, 0 ); fdui->thetaf = obj = fl_add_input( FL_FLOAT_INPUT, 195, 205, 92, 24, "Max. Angle" ); fl_set_object_lsize( obj, FL_NORMAL_SIZE ); fl_set_object_callback( obj, dial_thetachange_cb, 1 ); fdui->dir = obj = fl_add_choice( FL_NORMAL_CHOICE2, 306, 155, 134, 25, "Direction" ); fl_set_object_lalign( obj, FL_ALIGN_TOP ); fl_set_object_callback( obj, dir_cb, 0 ); obj = fl_add_labelframe( FL_ENGRAVED_FRAME, 30, 15, 480, 240, "Dial Attributes" ); fl_set_object_lcolor( obj, FL_DARKVIOLET ); fl_set_object_lsize( obj, FL_MEDIUM_SIZE ); fl_set_object_lstyle( obj, FL_TIMESBOLD_STYLE + FL_EMBOSSED_STYLE ); fl_end_form( ); fdui->dialattrib->fdui = fdui; fl_set_border_width( old_bw ); return fdui; }
/* -------------------- MAIN GROUP --------------------- */ static void g3d_create_grasp_planning_group(void) { int x, y, dy, w, h, shift; FL_OBJECT *frame= NULL, *box= NULL; frame = fl_add_labelframe(FL_ENGRAVED_FRAME, 18, 235, 185, 330, "Interface"); box = fl_add_box(FL_ENGRAVED_FRAME, 23, 250, 175, 310, ""); fl_set_object_color(box, FL_GREEN, FL_COL1); MOTIONGROUP = fl_bgn_group(); x= 30; y= 20; w= 160; h= 40; dy= h + 10; shift= 40; BT_1_OBJ = fl_add_button(FL_NORMAL_BUTTON, x, y, w, h, "Test"); BT_2_OBJ = fl_add_button(FL_NORMAL_BUTTON, x, y + dy, w, h, "SAHandRight"); BT_3_OBJ = fl_add_button(FL_NORMAL_BUTTON, x, y + 2*dy, w, h, "Double Grasp"); BT_4_OBJ = fl_add_button(FL_NORMAL_BUTTON, x, y + 3*dy, w, h, "Display grasps"); BT_5_OBJ = fl_add_button(FL_NORMAL_BUTTON, x, y + shift + 4*dy, w, h, "Selected Object: none"); BT_6_OBJ = fl_add_button(FL_NORMAL_BUTTON, x, y + shift + 5*dy, w, h, "Selected Hand Robot: none"); BT_7_OBJ = fl_add_button(FL_NORMAL_BUTTON, x, y + shift + 6*dy, w, h, "Browse Grasps"); BT_8_OBJ = fl_add_button(FL_NORMAL_BUTTON, x, y + shift + 7*dy, w, h, "Delete Grasp"); BT_9_OBJ = fl_add_button(FL_NORMAL_BUTTON, x, y + shift + 8*dy, w, h, "Add Grasp"); BT_10_OBJ = fl_add_button(FL_NORMAL_BUTTON, x, y + shift + 9*dy, w, h, "Save Grasps"); fl_set_call_back(BT_1_OBJ, CB_test, 0); fl_set_call_back(BT_2_OBJ, CB_SAHandRight, 0); fl_set_call_back(BT_3_OBJ, CB_double_grasp, 0); fl_set_call_back(BT_4_OBJ, CB_display_grasps, 0); fl_set_object_color(BT_4_OBJ,FL_MCOL,FL_GREEN); fl_set_call_back(BT_5_OBJ, CB_select_object, 0); fl_set_call_back(BT_6_OBJ, CB_select_hand_robot, 0); fl_set_call_back(BT_7_OBJ, CB_browse_grasps, 0); fl_set_call_back(BT_8_OBJ, CB_delete_grasp, 0); fl_set_call_back(BT_9_OBJ, CB_add_grasp, 0); fl_set_call_back(BT_10_OBJ, CB_save_grasps, 0); fl_end_group(); }
FD_xyplotattrib * create_form_xyplotattrib( void ) { FL_OBJECT *obj; FD_xyplotattrib *fdui = ( FD_xyplotattrib * ) fl_malloc( sizeof *fdui ); int old_bw = fl_get_border_width( ); fl_set_border_width( -1 ); fdui->vdata = fdui->cdata = NULL; fdui->ldata = 0; fdui->xyplotattrib = fl_bgn_form( FL_NO_BOX, 520, 270 ); obj = fl_add_box( FL_FLAT_BOX, 0, 0, 520, 270, "" ); obj = fl_add_labelframe( FL_ENGRAVED_FRAME, 10, 20, 500, 240, "XYPlot Attributes" ); fl_set_object_lsize( obj, FL_NORMAL_SIZE ); fl_set_object_lstyle( obj, FL_BOLD_STYLE ); fdui->xgrid = obj = fl_add_choice( FL_NORMAL_CHOICE2, 70, 60, 85, 23, "XGrid" ); fl_set_object_callback( obj, grid_change_cb, 0 ); fdui->ygrid = obj = fl_add_choice( FL_NORMAL_CHOICE2, 70, 90, 85, 23, "YGrid" ); fl_set_object_callback( obj, grid_change_cb, 0 ); fdui->xscale = obj = fl_add_choice( FL_NORMAL_CHOICE2, 70, 170, 85, 23, "XScale" ); fl_set_object_callback( obj, xscale_change_cb, 0 ); fdui->yscale = obj = fl_add_choice( FL_NORMAL_CHOICE2, 70, 210, 85, 23, "YScale" ); fl_set_object_callback( obj, yscale_change_cb, 0 ); fdui->ymajor = obj = fl_add_counter( FL_NORMAL_COUNTER, 370, 160, 115, 20, "YMajor" ); fl_set_object_callback( obj, ymajorminor_change_cb, 0 ); fl_set_counter_precision( obj, 0 ); fl_set_counter_bounds( obj, -1, 20 ); fl_set_counter_value( obj, 1 ); fl_set_counter_step( obj, 1, 2 ); fdui->yminor = obj = fl_add_counter( FL_NORMAL_COUNTER, 370, 200, 115, 20, "YMinor" ); fl_set_object_callback( obj, ymajorminor_change_cb, 0 ); fl_set_counter_precision( obj, 0 ); fl_set_counter_bounds( obj, 0, 10 ); fl_set_counter_value( obj, 1 ); fl_set_counter_step( obj, 1, 2 ); fdui->xmajor = obj = fl_add_counter( FL_NORMAL_COUNTER, 370, 70, 115, 20, "XMajor" ); fl_set_object_callback( obj, xmajorminor_change_cb, 0 ); fl_set_counter_precision( obj, 0 ); fl_set_counter_bounds( obj, -1, 20 ); fl_set_counter_value( obj, 1 ); fl_set_counter_step( obj, 1, 2 ); fdui->xminor = obj = fl_add_counter( FL_NORMAL_COUNTER, 370, 110, 115, 20, "XMinor" ); fl_set_object_callback( obj, xmajorminor_change_cb, 0 ); fl_set_counter_precision( obj, 0 ); fl_set_counter_bounds( obj, 0, 10 ); fl_set_counter_value( obj, 1 ); fl_set_counter_step( obj, 1, 2 ); fdui->xbase = obj = fl_add_input( FL_FLOAT_INPUT, 160, 170, 39, 23, "xbase" ); fl_set_object_lalign( obj, FL_ALIGN_RIGHT ); fl_set_object_callback( obj, xscale_change_cb, 0 ); fdui->ybase = obj = fl_add_input( FL_FLOAT_INPUT, 158, 210, 39, 23, "ybase" ); fl_set_object_lalign( obj, FL_ALIGN_RIGHT ); fl_set_object_callback( obj, yscale_change_cb, 0 ); fdui->how_return = obj = fl_add_menu( FL_PULLDOWN_MENU, 193, 29, 150, 22, "Return Setting" ); fl_set_object_boxtype( obj, FL_UP_BOX ); fl_set_object_callback( obj, xyplot_returnsetting_change, 0 ); fdui->gridstyle = obj = fl_add_choice( FL_NORMAL_CHOICE2, 70, 120, 85, 23, "Style" ); fl_set_object_callback( obj, gridstyle_change_cb, 0 ); fdui->mark_active = obj = fl_add_checkbutton( FL_PUSH_BUTTON, 230, 80, 100, 25, "MarkActive" ); fl_set_object_callback( obj, markactive_change_cb, 0 ); fl_end_form( ); fdui->xyplotattrib->fdui = fdui; fl_set_border_width( old_bw ); return fdui; }
static void g3d_create_genom_group(void) { int x, y, dy, w, h; FL_OBJECT *obj; obj = fl_add_labelframe(FL_ENGRAVED_FRAME, 5, 15, 140, 870, "Genom Requests"); GENOMGROUP = fl_bgn_group(); x= 15; y= 30; w= 120; h= 40; dy= h + 10; BT_SET_CARTESIAN = fl_add_button(FL_RADIO_BUTTON, x, y, w, h, "Set Cartesian"); fl_set_call_back(BT_SET_CARTESIAN, CB_set_cartesian, 1); fl_set_object_color(BT_SET_CARTESIAN,FL_MCOL,FL_GREEN); fl_set_button(BT_SET_CARTESIAN, FALSE); y+= dy; BT_GRAB_OBJECT = fl_add_button(FL_RADIO_BUTTON, x, y, w, h, "Grab Object"); fl_set_call_back(BT_GRAB_OBJECT, CB_grab_object, 1); fl_set_object_color(BT_GRAB_OBJECT,FL_MCOL,FL_GREEN); fl_set_button(BT_GRAB_OBJECT, FALSE); y+= dy; BT_RELEASE_OBJECT = fl_add_button(FL_RADIO_BUTTON, x, y, w, h, "Release Object"); fl_set_call_back(BT_RELEASE_OBJECT, CB_release_object, 1); fl_set_object_color(BT_RELEASE_OBJECT,FL_MCOL,FL_GREEN); fl_set_button(BT_RELEASE_OBJECT, FALSE); y+= dy; DELETE_GRAPHS = fl_add_button(FL_NORMAL_BUTTON, x, y, w, h, "Delete Graphs"); fl_set_call_back(DELETE_GRAPHS, CB_genomCleanRoadmap_obj, 1); y+= dy; BT_ARM_GOTO_Q_OBJ = fl_add_button(FL_NORMAL_BUTTON, x, y, w, h, "Arm Goto Q"); // BT_PLOT_Q_WRITE_FILE_OBJ= fl_add_button(FL_RADIO_BUTTON, x, y + 1*dy, w, h, "Write file and plot qi"); fl_set_call_back(BT_ARM_GOTO_Q_OBJ, CB_genomArmGotoQ_obj, 1); y+= dy; BT_ARM_EXTRACT_OBJ = fl_add_button(FL_NORMAL_BUTTON, x, y, w, h, "Arm Extract"); fl_set_call_back(BT_ARM_EXTRACT_OBJ, CB_genomArmExtract_obj, 1); y+= dy; BT_ARM_GOTO_X_OBJ = fl_add_button(FL_NORMAL_BUTTON, x, y, w, h, "Arm Goto X"); // BT_PLOT_Q_WRITE_FILE_OBJ= fl_add_button(FL_RADIO_BUTTON, x, y + 1*dy, w, h, "Write file and plot qi"); fl_set_call_back(BT_ARM_GOTO_X_OBJ, CB_genomArmGotoX_obj, 1); y+= dy; BT_FIND_GRASP_CONFIG_AND_COMP_TRAJ_OBJ = fl_add_button(FL_NORMAL_BUTTON, x, y, w, h, "Pick Up"); fl_set_call_back(BT_FIND_GRASP_CONFIG_AND_COMP_TRAJ_OBJ, CB_genomPickUp_gotoObject, 1); y+= dy; BT_PICK_UP_TAKE = fl_add_button(FL_NORMAL_BUTTON, x, y, w, h, "Take To Conf"); fl_set_call_back(BT_PICK_UP_TAKE, CB_genomPickUp_takeObject, 1); y+= dy; BT_PICK_UP_TAKE_XYZ = fl_add_button(FL_NORMAL_BUTTON, x, y, w, h, "Take To XYZ"); fl_set_call_back(BT_PICK_UP_TAKE_XYZ, CB_genomPickUp_takeObjectToXYZ, 1); y+= dy; BT_TAKE_TO_PLACE = fl_add_button(FL_NORMAL_BUTTON, x, y, w, h, "Take To Place"); fl_set_call_back(BT_TAKE_TO_PLACE, CB_genomTakeToPlace, 1); y+= dy; BT_PLACE = fl_add_button(FL_NORMAL_BUTTON, x, y, w, h, "Place From Free"); fl_set_call_back(BT_PLACE, CB_genomPlaceObject, 1); y+= dy; BT_ESCAPE_OBJECT = fl_add_button(FL_NORMAL_BUTTON, x, y, w, h, "Escape object"); fl_set_call_back(BT_ESCAPE_OBJECT, CB_genomEscapeObject, 1); y+= dy; BT_CONSTRUCTPRM = fl_add_button(FL_NORMAL_BUTTON, x, y, w, h, "Build PRM"); fl_set_call_back(BT_CONSTRUCTPRM, CB_genomArmComputePRM_obj, 0); y+= dy; BT_PLANVIAPOINTS = fl_add_button(FL_NORMAL_BUTTON, x, y, w, h, "Plan Via Conf traj"); fl_set_call_back(BT_PLANVIAPOINTS, CB_genomPlanTrajViaPoints, 0); y+= dy; BT_SEQUENCE = fl_add_button(FL_NORMAL_BUTTON, x, y, w, h, "Sequence"); fl_set_call_back(BT_SEQUENCE, CB_genomSequence, 0); #ifdef DPG y+= dy; BT_CHECKCOLONTRAJ = fl_add_button(FL_NORMAL_BUTTON, x, y, w, h, "Check Col Traj"); fl_set_call_back(BT_CHECKCOLONTRAJ, CB_checkColOnTraj, 0); y+= dy; BT_REPLANCOLTRAJ = fl_add_button(FL_NORMAL_BUTTON, x, y, w, h, "Replan Col Traj"); fl_set_call_back(BT_REPLANCOLTRAJ, CB_replanColTraj, 0); y+= dy; #endif fl_end_group(); }