VARIOGRAM *init_variogram(VARIOGRAM *v) { /* * initializes one variogram structure * if v is NULL, memory is allocated for the structure */ int i; if (v == NULL) v = (VARIOGRAM *) emalloc(sizeof(VARIOGRAM)); v->id = v->id1 = v->id2 = -1; v->n_models = 0; v->is_valid_covariance = 1; v->isotropic = 1; v->n_fit = 0; v->fit_is_singular = 0; v->max_range = (double) DBL_MIN; v->sum_sills = 0.0; v->measurement_error = 0.0; v->max_val = 0.0; v->min_val = 0.0; vgm_init_block_values(v); v->part = (VGM_MODEL *) emalloc(INIT_N_VGMM * sizeof(VGM_MODEL)); v->table = NULL; for (i = 0; i < INIT_N_VGMM; i++) init_variogram_part(&(v->part[i])); v->max_n_models = INIT_N_VGMM; v->SSErr = 0.0; v->ev = init_ev(); return v; }
bool Main_menu::draw_menu() { init_ev(); //render_sdl(); SDL_RenderCopy(render, texture, NULL, NULL); SDL_RenderCopy(render, m_font_newgame, NULL, &new_game_rect); SDL_RenderCopy(render, m_font_quit, NULL, &quit_rect); SDL_RenderPresent(render); while (!next) { while (SDL_PollEvent(&event)) { if (event.type == SDL_MOUSEMOTION) { SDL_GetMouseState(&px, &py); pressed = false; //std::cout << px << " " << py << std::endl; } if (event.type == SDL_MOUSEBUTTONDOWN) pressed = true; } if (px >= new_game_rect.x && px <= new_game_rect.x + new_game_rect.w && py >= new_game_rect.y && py <= new_game_rect.y + new_game_rect.h) { myfont = TTF_RenderText_Shaded(font, "New Game", backcolor, textcolor); m_font_newgame = SDL_CreateTextureFromSurface(render, myfont); if (pressed) next = true; } else { myfont = TTF_RenderText_Solid(font, "New Game", textcolor); m_font_newgame = SDL_CreateTextureFromSurface(render, myfont); } if (px >= quit_rect.x && px <= quit_rect.x + quit_rect.w && py >= quit_rect.y && py <= quit_rect.y + quit_rect.h) { quitfont = TTF_RenderText_Shaded(font, "Quit", textcolor, backcolor); m_font_quit = SDL_CreateTextureFromSurface(render, quitfont); if (pressed) { return false; } } else { quitfont = TTF_RenderText_Solid(font, "Quit", textcolor); m_font_quit = SDL_CreateTextureFromSurface(render, quitfont); } } return true; }
static SAMPLE_VGM *load_ev(SAMPLE_VGM *ev, const char *fname) { char *s = NULL, *tok; int i, size = 0, incr = 100; unsigned long l; FILE *f; f = efopen(fname, "r"); if (ev == NULL) ev = init_ev(); ev->evt = SEMIVARIOGRAM; for (i = 1; i <= 8; i++) { get_line(&s, &size, f); if (i == 6) { tok = strtok(s, " "); /* word */ tok = strtok(NULL, " "); /* cutoff */ if (read_double(tok, &(ev->cutoff))) { fclose(f); efree(s); pr_warning("file: %s, line: %d, token: %s", fname, i, tok); return NULL; } tok = strtok(NULL, " "); /* word */ tok = strtok(NULL, " "); /* word */ tok = strtok(NULL, " \n"); /* iwidth */ if (tok != NULL) { if (read_double(tok, &(ev->iwidth))) { fclose(f); efree(s); pr_warning("file: %s, line: %d, token: %s", fname, i, tok); return NULL; } } /* else part: what to do with ev->iwidth? */ } } while (get_line(&s, &size, f) != NULL) { ev->n_est++; if (ev->n_est >= ev->n_max) { ev->n_max += incr; ev->gamma = (double *) erealloc (ev->gamma, sizeof(double) * ev->n_max); ev->dist = (double *) erealloc (ev->dist, sizeof(double) * ev->n_max); ev->nh = (unsigned long *) erealloc (ev->nh, sizeof(long) * ev->n_max); } tok = strtok(s, " "); /* from */ tok = strtok(NULL, " "); /* to */ tok = strtok(NULL, " "); /* nh */ if (read_ulong(tok, &l)) { fclose(f); efree(s); pr_warning("file: %s, line: %d, token: %s", fname, ev->n_est+8, tok); return NULL; } ev->nh[ev->n_est-1] = l; tok = strtok(NULL, " "); /* dist */ if (read_double(tok, &(ev->dist[ev->n_est-1]))) { fclose(f); efree(s); pr_warning("file: %s, line: %d, token: %s", fname, ev->n_est+8, tok); return NULL; } tok = strtok(NULL, " \n"); /* semivariance or whatever */ if (read_double(tok, &(ev->gamma[ev->n_est-1]))) { fclose(f); efree(s); pr_warning("file: %s, line: %d, token: %s", fname, ev->n_est+8, tok); return NULL; } } efree(s); efclose(f); return ev; }