Пример #1
0
/* Procedure associated with the cancel button. */
void cancel_sigmabutton_callback(Widget w, XtPointer client_data,
                                   XmSelectionBoxCallbackStruct *call_data){
  
    action=SELECT;
    refresh_action();
    deactivate_sigma_dialog();
}
Пример #2
0
void activate_version_dialog(Widget w, XtPointer client_data,
                             XmAnyCallbackStruct *call_data) {
  selection = VERSION;
  action = SELECT;
  refresh_action();
  XtManageChild(version_dialog);
}
Пример #3
0
/* Procedure associated with the ok button. */
void ok_sigmabutton_callback(Widget w, XtPointer client_data,
                               XmSelectionBoxCallbackStruct *call_data){
    float sigma;
	 char *value;

    /* Get sigma value from user's selection */
	 XmStringGetLtoR(call_data->value, XmSTRING_DEFAULT_CHARSET, &value);

	 sigma = atof(value);

    if ( atoi(value) < 0.5 || atoi(value) > 20 )
      XBell(XtDisplay(w),100);
    else
      switch (filter) {
	case f1: gaussian_filter(sigma); break;
	case f2: dgaussian_filter(sigma); break;
	case f3: d2gaussian_filter(sigma); break;
	case f4: dgaux_gauy_filter(sigma); break;
	case f5: dgauy_gaux_filter(sigma); break;
	case f6: total_gradient_filter(sigma); break;
	case f7: gradient_x_y_filter(sigma); break;
	default: break;
      }

    action=SELECT;
    refresh_action();	
}
Пример #4
0
void activate_merge_dialog(Widget w, XtPointer client_data,
			    XmAnyCallbackStruct *call_data)
{
    selection = SPLIT_MERGE;
    action = CLICK;
    refresh_action();
    XtManageChild(merge_dialog);
}
Пример #5
0
void activate_split_dialog(Widget w, XtPointer client_data,
			    XmAnyCallbackStruct *call_data)
{
    if (file_not_loaded) return;
    selection = SPLIT_MERGE;
    action = CLICK;
    refresh_action();
    XtManageChild(split_dialog);
}
Пример #6
0
/*Definition of gradient_x_y functions*/
void activate_gradient_x_y_dialog(Widget w, XtPointer client_data, 
                               XmAnyCallbackStruct *call_data){
  if (file_not_loaded) return;
  selection = GRADIENTXY;
  filter = f7;
  action = SIGMAVALUE;
  refresh_action();
  XtManageChild(sigma_dialog);
}
Пример #7
0
/*Definition of dgauy_gaux functions*/
void activate_dgauy_gaux_dialog(Widget w, XtPointer client_data, 
                               XmAnyCallbackStruct *call_data){
  if (file_not_loaded) return;
  selection = DGAUYGAUX;
  filter = f5;
  action = SIGMAVALUE;
  refresh_action();
  XtManageChild(sigma_dialog);
}
Пример #8
0
/*Definition of total_gradient functions*/
void activate_total_gradient_dialog(Widget w, XtPointer client_data, 
                               XmAnyCallbackStruct *call_data){
int a,b;
FILE *p_file;
  if (yhs_files_open == 0 || yhs_filename[0] == 0 || yhs_files_open > 19 || running == 1) return;
  selection = TOTALGRADIENT;
  filter = f6;
  action = SIGMAVALUE;
  refresh_action();
  if((p_file = fopen(yhs_filename1,"r")) == NULL)
    {
        fprintf(stderr, "Cannot open: %s\n",yhs_filename1);
        exit(1);
    }
    for (a=0;a<512;a++){
    for (b=0;b<512;b++)
    { array1[a][b]=getc(p_file);array2[a][b]=0; }}
    fclose(p_file);
  XtManageChild(sigma_dialog);
}
Пример #9
0
/* Function definition */
void activate_ctomass_callback(Widget w, XtPointer client_data, 
                            XmAnyCallbackStruct *call_data)
{
	int i, j;
	long kk;
	float *ii,  *jj ;
	unsigned long val = 134L;

	if (file_not_loaded) return;

  	selection = CTOMASS;
  	action = SELECT;
  	refresh_action();

	

/*      Calculate the coordinates of the center of mass of the region(s)
	marked with the value VAL. Return as (II,JJ).                   */


	kk = 0;
	*ii = 0.0;      *jj = 0.0;
	for (i=0; i<IMAGE_WIDTH; i++) {
	   for (j=0; j<IMAGE_HEIGHT; j++) {
		if (XGetPixel(theXImage_1,i,j) == val) {
			*ii += (float)i;        *jj += (float)j;
			kk += 1;
			
		}
	   }
	}

	if (kk==0) {
		return;
	}
	*ii = *ii/(float)kk;            *jj = *jj/(float)kk;
	
	printf("Center of Mass = %f\n , %f\n", *ii, *jj);
}
Пример #10
0
int main(int argc, char **argv)
{
  ROBOT_SPECIFICATIONS     robot_specifications_data;
  PROGRAM_STATE            program_state_data;
  ROBOT_STATE              robot_state_data;
  ACTION                   action_data;
  SENSATION                sensation_data;

  ROBOT_SPECIFICATIONS_PTR robot_specifications = &robot_specifications_data;
  PROGRAM_STATE_PTR        program_state        = &program_state_data;
  ROBOT_STATE_PTR          robot_state          = &robot_state_data;
  ACTION_PTR               action               = &action_data;
  SENSATION_PTR            sensation            = &sensation_data;

  struct timeval TCX_waiting_time = {0, 0};

  robot_specifications->is_initialized = 0;
  program_state->is_initialized        = 0;
  robot_state->is_initialized          = 0;
  action->is_initialized               = 0;
  sensation->is_initialized            = 0;
  allGlobal.is_initialized             = 0;

  signal(SIGTERM, &interrupt_handler); /* kill interupt handler */
  signal(SIGINT,  &interrupt_handler); /* control-C interupt handler */
#if 0
  signal(SIGALRM, &alarm_handler);	/* handler for regular interrupts */
#endif  

  bParamList = bParametersAddEntry(bParamList, "robot", "name", "B21");
  bParamList = bParametersAddEntry(bParamList, "", "TCXHOST", "localhost");
  bParamList  = bParametersAddEntry(bParamList, "", "fork", "yes");

  /* add some parameter files */
  bParamList = bParametersAddFile (bParamList, "etc/beeSoft.ini");

  /* add some enviroment variables */
  bParamList = bParametersAddEnv(bParamList, "", "TCXHOST");

  bParamList = bParametersAddArray(bParamList, "", argc, argv);

  bParametersFillParams(bParamList);

  check_commandline_parameters(argc, argv, ALL);
  init_program(ALL);
  if (!load_parameters(RHINO_INIT_NAME, ALL))
    exit(-1);
  allocate_memory(ALL);
  /*save_parameters(RHINO_INIT_NAME, ALL);*/
  init_graphics(ALL);
  connect_to_tcx(ALL);
  G_display_switch(TITLE_BUTTON, 1);
#if 0
  alarm((unsigned) robot_specifications->alarm_interval); /* set up alarm */
#endif
  tcx_reset_joystick(ALL); 


  for (;!program_state->quit;){
    program_state->something_happened = 0;
    
    if (program_state->tcx_autoconnect)
      connect_to_tcx(ALL);

    if (test_mouse(ALL))       program_state->something_happened = 1;
    
    if (refresh_action(ALL))   program_state->something_happened = 1;

    if (initiate_action(ALL))  program_state->something_happened = 1;

    /* if (terminate_action(ALL)) program_state->something_happened = 1; */
    

    if (program_state->tcx_initialized){
      TCX_waiting_time.tv_sec   = 0;
      TCX_waiting_time.tv_usec  = 0;
      tcxRecvLoop((void *) &TCX_waiting_time);
    }

    if (!program_state->something_happened){
      block_waiting_time.tv_sec  = 1;
      block_waiting_time.tv_usec = 0;
      block_wait(&block_waiting_time, program_state->tcx_initialized,
		 program_state->graphics_initialized);  
    }

#ifdef TOURGUIDE_VERSION
    tourguide_check_for_timeout(ALL);
#endif /* TOURGUIDE_VERSION */

  }



  /* close_log_file(ALL);*/
  /*  if (program_state->tcx_initialized)
      tcxCloseAll();*/
  G_display_switch(TITLE_BUTTON, 2);
  fprintf(stderr, "\nGood-bye.\n");
  sleep(1);
  exit(0);

}