Exemplo n.º 1
0
static void CB_node_counter(FL_OBJECT *ob, long arg){
  int num_node;
  p3d_list_node* list_node;
  int i;
  pp3d_rob  robotPt;
  int max_count;
  configPt q_copy;

  robotPt = (p3d_rob*) p3d_get_desc_curid(P3D_ROBOT);
  if(XYZ_GRAPH != NULL) {
    fl_set_counter_bounds(NODE_COUNTER, 1, (double)( XYZ_GRAPH->nnode));
    num_node = (int) fl_get_counter_value(NODE_COUNTER);
    list_node = XYZ_GRAPH->nodes;
    max_count = MIN(num_node, XYZ_GRAPH->nnode);
    for(i = 1; i<max_count;i++) {
      list_node = list_node->next;
    }
    if(list_node!=NULL){
      q_copy = p3d_copy_config(robotPt,list_node->N->q);
//      p3d_set_robot_config(robotPt,q_copy);
      p3d_set_and_update_this_robot_conf_multisol(robotPt, q_copy, NULL, 0, list_node->N->iksol);
      p3d_set_robot_iksol(robotPt, list_node->N->iksol);
      //edit mokhtar création de trajectoires
      p3d_copy_config_into(robotPt, q_copy, &(robotPt->ROBOT_POS));
      p3d_copy_iksol(robotPt->cntrt_manager, list_node->N->iksol, &robotPt->ikSolPos);
      // Very strange : g3d_draw_allwin_active() must
      //be called twice to draw correctly the position of the robot
      g3d_draw_allwin_active();
      g3d_draw_allwin_active();
    }
  }else{
    fl_set_counter_bounds(NODE_COUNTER, 0, 0);
  }
}
Exemplo n.º 2
0
static void g3d_create_node_frame(void){
  char buffer[10];
  g3d_create_frame(&NODE_FRAME,FL_NO_FRAME,120,-1,"",(void**)&PATH_DEFORM_FORM,1);
  //add Node
  g3d_create_button(&ADD_NODE_BUTTON,FL_NORMAL_BUTTON,55,20,"Add Node",(void**)&NODE_FRAME,0);
  fl_set_call_back(ADD_NODE_BUTTON,CB_add_node_button,0);
  //Last Node
  g3d_create_button(&LAST_NODE_BUTTON,FL_NORMAL_BUTTON,55,20,"Last Node",(void**)&NODE_FRAME,0);
  fl_set_call_back(LAST_NODE_BUTTON,CB_last_node_button,0);
  //Replot
  g3d_create_button(&REPLOT_BUTTON,FL_NORMAL_BUTTON,55,20,"Replot",(void**)&NODE_FRAME,0);
  fl_set_call_back(REPLOT_BUTTON,CB_replot_button,0);
  //Clear
  g3d_create_button(&CLEAR_BUTTON,FL_NORMAL_BUTTON,55,20,"Clear",(void**)&NODE_FRAME,0);
  fl_set_call_back(CLEAR_BUTTON,CB_clear_button,0);
  //Node counter
  g3d_create_counter(&NODE_COUNTER,FL_NORMAL_COUNTER,100,20,"Node",(void**)&NODE_FRAME,0);
  fl_set_counter_value(NODE_COUNTER, 0);
  if(XYZ_GRAPH != NULL) {
    fl_set_counter_bounds(NODE_COUNTER, 0, (double)( XYZ_GRAPH->nnode -1));
  } else {
    fl_set_counter_bounds(NODE_COUNTER, 0, 0);
  }
  fl_set_counter_step(NODE_COUNTER, 1, 10);
  fl_set_counter_precision(NODE_COUNTER, 0);
  fl_set_call_back(NODE_COUNTER,CB_node_counter,0);
  //Plot all Check box
  g3d_create_checkbutton(&PLOT_ALL_CHECKB,FL_PUSH_BUTTON,-1,20,"Plot all",(void**)&NODE_FRAME,0);
  fl_set_object_color(PLOT_ALL_CHECKB,FL_MCOL,FL_GREEN);
  fl_set_call_back(PLOT_ALL_CHECKB,CB_plot_all_checkb,0);
  if (FLAG_IS_ALLPLOT)
    fl_set_button(PLOT_ALL_CHECKB,1);
  //Plot all input
  g3d_create_input(&PLOT_ALL_INPUT,FL_NORMAL_INPUT,40,20,"",(void**)&NODE_FRAME,0);
  sprintf(buffer, "%d", p3d_get_Nstep());
  fl_set_input(PLOT_ALL_INPUT, buffer);
  fl_set_call_back(PLOT_ALL_INPUT,CB_plot_all_input,0);
  //Filter graph
  g3d_create_checkbutton(&FILTER_GRAPH_CHECKB,FL_PUSH_BUTTON,-1,20,"Filter graph",(void**)&NODE_FRAME,0);
  fl_set_object_color(FILTER_GRAPH_CHECKB,FL_MCOL,FL_GREEN);
  fl_set_call_back(FILTER_GRAPH_CHECKB,CB_filter_graph_checkb,0);
  if (p3d_get_show_cycle_only())
    fl_set_button(FILTER_GRAPH_CHECKB,1);
  //Retract strat frame
  g3d_create_retract_strat_frame();
}
Exemplo n.º 3
0
static void CB_ndraw_counter(FL_OBJECT *ob, long arg){
  int index;

  fl_set_counter_bounds(NDRAW_COUNTER, 1,(double)p3d_get_nretract() );
  index = (int) fl_get_counter_value(NDRAW_COUNTER);
  p3d_set_num_draw_proj(index);
  g3d_plot_proj_in_form(XYZ_GRAPH);
}
Exemplo n.º 4
0
static void g3d_create_ndraw_counter(void){
  g3d_create_counter(&NDRAW_COUNTER,FL_SIMPLE_COUNTER,50,15,"ndraw",(void**)&PATH_DEFORM_FORM,1);
  fl_set_counter_value(NDRAW_COUNTER, 100);
  fl_set_counter_bounds(NDRAW_COUNTER, 1,(double)p3d_get_nretract());
  fl_set_counter_precision(NDRAW_COUNTER, 0);
  fl_set_counter_step(NDRAW_COUNTER, 1, 10);
  fl_set_call_back(NDRAW_COUNTER,CB_ndraw_counter,0);
}
Exemplo n.º 5
0
static void g3d_create_dof2_counter(void){
  p3d_rob *robotPt;

  robotPt = (p3d_rob*) p3d_get_desc_curid(P3D_ROBOT);
  g3d_create_counter(&DOF2_COUNTER,FL_SIMPLE_COUNTER,50,15,"dof2",(void**)&PATH_DEFORM_FORM,1);
  fl_set_counter_precision(DOF2_COUNTER, 0);
  fl_set_counter_bounds(DOF2_COUNTER, 0, robotPt->nb_user_dof-1);
  fl_set_counter_step(DOF2_COUNTER, 1, 1);
  fl_set_counter_value (DOF2_COUNTER,  p3d_get_dof2());
  fl_set_object_callback(DOF2_COUNTER,CB_dof2_counter,0);
}
Exemplo n.º 6
0
void
counter_reread_spec_form( FL_OBJECT * obj )
{
    double r1, r2;

    if (    get_checked_float( fl_get_input( cnt_attrib->minval ), &r1 )
         && get_checked_float( fl_get_input( cnt_attrib->maxval ), &r2 ) )
        fl_set_counter_bounds( obj, r1, r2 );

    if ( get_checked_float( fl_get_input( cnt_attrib->initialval ), &r1 ) )
         fl_set_counter_value( obj, r1 );

    if (    get_checked_float( fl_get_input( cnt_attrib->step1 ), &r1 )
         && get_checked_float( fl_get_input( cnt_attrib->step2 ), &r2 ) )
        fl_set_counter_step( obj, r1, r2 );

    redraw_the_form( 0 );
}
Exemplo n.º 7
0
FL_FORM *
counter_create_spec_form( void )
{
    if ( cnt_attrib )
        return cnt_attrib->counterattrib;

    cnt_attrib = create_form_counterattrib( );

    setup_how_return_menu( cnt_attrib->returnsetting );
    fl_set_menu_item_mode( cnt_attrib->returnsetting, 5,
                           FL_PUP_BOX | FL_PUP_GRAY );
    fl_set_menu_item_mode( cnt_attrib->returnsetting, 6,
                           FL_PUP_BOX | FL_PUP_GRAY );

    fl_set_counter_precision( cnt_attrib->prec, 0 );
    fl_set_counter_step( cnt_attrib->prec, 1, 2 );
    fl_set_counter_bounds( cnt_attrib->prec, 0, DBL_DIG );

    return cnt_attrib->counterattrib;
}
Exemplo n.º 8
0
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;
}