diff options
author | Oliver Schinagl <oliver@schinagl.nl> | 2008-01-10 20:52:19 (GMT) |
---|---|---|
committer | Oliver Schinagl <oliver@schinagl.nl> | 2008-01-10 20:52:19 (GMT) |
commit | a003a02f8ae4f5bc14cbed9249b0fbfefdd2fd07 (patch) | |
tree | 8f3f61a0b2371a122c90835466895a45d4f7659a /Smoke/fluids.c | |
parent | f9e23896d3525e3dfe710585f6a88858cb88f8c6 (diff) | |
download | 2iv35-a003a02f8ae4f5bc14cbed9249b0fbfefdd2fd07.zip 2iv35-a003a02f8ae4f5bc14cbed9249b0fbfefdd2fd07.tar.gz 2iv35-a003a02f8ae4f5bc14cbed9249b0fbfefdd2fd07.tar.bz2 |
fx or vy get/setters added. mem probs fixed
Diffstat (limited to 'Smoke/fluids.c')
-rw-r--r-- | Smoke/fluids.c | 32 |
1 files changed, 15 insertions, 17 deletions
diff --git a/Smoke/fluids.c b/Smoke/fluids.c index 89308b0..01ca443 100644 --- a/Smoke/fluids.c +++ b/Smoke/fluids.c @@ -75,15 +75,17 @@ void fluids_init_simulation(int n, struct vis_data_arrays *vis_data) for (i = 0; i < HISTORY_SIZE; i++) { vis_data->history_frame[i] = (fftw_real *)malloc(dim1); - vis_data->history_scalars[i] = (struct fftw_real_xy *)malloc(dim *sizeof(struct fftw_real_xy)); + vis_data->history_scalars[i].x = (fftw_real *)malloc(dim1); + vis_data->history_scalars[i].y = (fftw_real *)malloc(dim1); } fluids_reset_simulation(); - vis_data->rho = rho; + vis_data->rho = (fftw_real *)malloc(dim2); vis_data->force = (fftw_real *)malloc(dim2); vis_data->vel = (fftw_real *)malloc(dim1); - vis_data->scalars = (struct fftw_real_xy *)malloc(dim *sizeof(struct fftw_real_xy)); + vis_data->scalars.x = (fftw_real *)malloc(dim1); + vis_data->scalars.y = (fftw_real *)malloc(dim1); vis_data->div_force = (fftw_real *)malloc(dim2); vis_data->div_vel = (fftw_real *)malloc(dim1); vis_data->height = (fftw_real *)malloc(dim2); @@ -354,9 +356,9 @@ float par_der(float vp1, float v, fftw_real cell) return (vp1 - v / cell); } -struct fftw_real_xy_p get_scalar_frames(struct vis_data_arrays *vis_data, int dataset) +struct fftw_real_xy get_scalar_frames(struct vis_data_arrays *vis_data, int dataset) { - struct fftw_real_xy_p return_value; + struct fftw_real_xy return_value; switch(dataset) { @@ -423,7 +425,7 @@ void setup_arrays(struct vis_data_arrays *vis_data) int idx, i, j; float scale_min, scale_max; fftw_real *frame_smoke, *frame_streamlines; - struct fftw_real_xy_p scalar_frames_glyphs, scalar_frames_streamlines; + struct fftw_real_xy scalar_frames_glyphs, scalar_frames_streamlines; int dataset; @@ -448,16 +450,16 @@ void setup_arrays(struct vis_data_arrays *vis_data) vis_data->rho[idx] = rho[idx]; vis_data->vel[idx] = vec_len2f(vx[idx], vy[idx]); vis_data->force[idx] = vec_len2f(fx[idx], fy[idx]); - vis_data->scalars[idx].x = scalar_frames_glyphs.x[idx]; - vis_data->scalars[idx].y = scalar_frames_glyphs.y[idx]; + vis_data->scalars.x[idx] = scalar_frames_glyphs.x[idx]; + vis_data->scalars.y[idx] = scalar_frames_glyphs.y[idx]; vis_data->div_vel[idx] = par_der(vx[idx + 1], vx[idx], wn) + par_der(vy[idx + 1], vy[idx], wn); vis_data->div_force[idx] = par_der(fx[idx + 1], fx[idx], hn) + par_der(fy[idx + 1], fy[idx], hn); vis_data->history_frame[fluids_hisdex][idx] = frame_streamlines[idx]; -// vis_data->history_scalars[fluids_hisdex].x[idx] = scalar_frames_streamlines.x[idx]; -// vis_data->history_scalars[fluids_hisdex].y[idx] = scalar_frames_streamlines.y[idx]; + vis_data->history_scalars[fluids_hisdex].x[idx] = scalar_frames_streamlines.x[idx]; + vis_data->history_scalars[fluids_hisdex].y[idx] = scalar_frames_streamlines.y[idx]; vis_data->height[idx] = calculate_height_plot(heightplots_get_dataset(), idx); - // vis_data->normals[idx] = calculate_normal_vector(vis_data->height, idx, i, j); + vis_data->normals[idx] = calculate_normal_vector(vis_data->height, idx, i, j); if (frame_smoke[idx] < scale_min && frame_smoke[idx] > FLT_MIN) scale_min = frame_smoke[idx]; if (frame_smoke[idx] > scale_max) scale_max = frame_smoke[idx]; @@ -483,7 +485,6 @@ void fluids_calculate_one_simulation_step(struct vis_data_arrays *vis_data) { int dataset; fftw_real *frame; - struct fftw_real_xy_p scalar_frames; if (fluids_calculate) { set_forces(); @@ -503,20 +504,17 @@ void fluids_calculate_one_simulation_step(struct vis_data_arrays *vis_data) heightplots_set_frame(vis_data->height); normals_set_frame(vis_data->normals); - dataset = glyphs_get_dataset_color(); frame = get_vector_frame(vis_data, dataset); glyphs_set_frame_color(frame); - - dataset = glyphs_get_dataset_direction(); - scalar_frames = get_scalar_frames(vis_data, dataset); - glyphs_set_frames_direction(scalar_frames); + glyphs_set_frames_direction(vis_data->scalars); dataset = isolines_get_dataset(); frame = get_vector_frame(vis_data, dataset); isolines_set_frame(frame); streamlines_set_history(vis_data->history_frame); + streamlines_set_history_scalars(vis_data->history_scalars); } //------ VISUALIZATION CODE STARTS HERE ----------------------------------------------------------------- |