summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOliver Schinagl <oliver@schinagl.nl>2007-12-14 18:02:27 (GMT)
committerOliver Schinagl <oliver@schinagl.nl>2007-12-14 18:02:27 (GMT)
commit5a422dac78479f396437b5f9c1e8efbecf2c9b0f (patch)
treeb9910125b40708a3cd496ec46312012350886a7c
parent241bfc64ed6446c295846d5ae635f6ba4e25a666 (diff)
download2iv35-5a422dac78479f396437b5f9c1e8efbecf2c9b0f.zip
2iv35-5a422dac78479f396437b5f9c1e8efbecf2c9b0f.tar.gz
2iv35-5a422dac78479f396437b5f9c1e8efbecf2c9b0f.tar.bz2
latest merge
-rw-r--r--Smoke/Makefile17
-rw-r--r--Smoke/colormap.c112
-rw-r--r--Smoke/colormap.h10
-rw-r--r--Smoke/fluids.c61
-rw-r--r--Smoke/fluids.h278
-rw-r--r--Smoke/funcs.h4
-rw-r--r--Smoke/glut.c23
-rw-r--r--Smoke/glyphs.c2
-rw-r--r--Smoke/gtk.c51
-rwxr-xr-xSmoke/smoke.binbin594570 -> 597364 bytes
-rw-r--r--Smoke/streamlines.c2
11 files changed, 246 insertions, 314 deletions
diff --git a/Smoke/Makefile b/Smoke/Makefile
index 47ac1dd..0c14305 100644
--- a/Smoke/Makefile
+++ b/Smoke/Makefile
@@ -3,10 +3,10 @@
CPP = g++
CC = gcc
-OBJ_GTK = gtk.o fluids.o glyphs.o seedpoint.o funcs.o fftw-2.1.3/fftw/config.o fftw-2.1.3/fftw/executor.o fftw-2.1.3/fftw/fftwf77.o fftw-2.1.3/fftw/fftwnd.o fftw-2.1.3/fftw/fn_1.o fftw-2.1.3/fftw/fn_2.o fftw-2.1.3/fftw/fn_3.o fftw-2.1.3/fftw/fn_4.o fftw-2.1.3/fftw/fn_5.o fftw-2.1.3/fftw/fn_6.o fftw-2.1.3/fftw/fn_7.o fftw-2.1.3/fftw/fn_8.o fftw-2.1.3/fftw/fn_9.o fftw-2.1.3/fftw/fn_10.o fftw-2.1.3/fftw/fn_11.o fftw-2.1.3/fftw/fn_12.o fftw-2.1.3/fftw/fn_13.o fftw-2.1.3/fftw/fn_14.o fftw-2.1.3/fftw/fn_15.o fftw-2.1.3/fftw/fn_16.o fftw-2.1.3/fftw/fn_32.o fftw-2.1.3/fftw/fn_64.o fftw-2.1.3/fftw/fni_1.o fftw-2.1.3/fftw/fni_2.o fftw-2.1.3/fftw/fni_3.o fftw-2.1.3/fftw/fni_4.o fftw-2.1.3/fftw/fni_5.o fftw-2.1.3/fftw/fni_6.o fftw-2.1.3/fftw/fni_7.o fftw-2.1.3/fftw/fni_8.o fftw-2.1.3/fftw/fni_9.o fftw-2.1.3/fftw/fni_10.o fftw-2.1.3/fftw/fni_11.o fftw-2.1.3/fftw/fni_12.o fftw-2.1.3/fftw/fni_13.o fftw-2.1.3/fftw/fni_14.o fftw-2.1.3/fftw/fni_15.o fftw-2.1.3/fftw/fni_16.o fftw-2.1.3/fftw/fni_32.o fftw-2.1.3/fftw/fni_64.o fftw-2.1.3/fftw/ftw_2.o fftw-2.1.3/fftw/ftw_3.o fftw-2.1.3/fftw/ftw_4.o fftw-2.1.3/fftw/ftw_5.o fftw-2.1.3/fftw/ftw_6.o fftw-2.1.3/fftw/ftw_7.o fftw-2.1.3/fftw/ftw_8.o fftw-2.1.3/fftw/ftw_9.o fftw-2.1.3/fftw/ftw_10.o fftw-2.1.3/fftw/ftw_16.o fftw-2.1.3/fftw/ftw_32.o fftw-2.1.3/fftw/ftw_64.o fftw-2.1.3/fftw/ftwi_2.o fftw-2.1.3/fftw/ftwi_3.o fftw-2.1.3/fftw/ftwi_4.o fftw-2.1.3/fftw/ftwi_5.o fftw-2.1.3/fftw/ftwi_6.o fftw-2.1.3/fftw/ftwi_7.o fftw-2.1.3/fftw/ftwi_8.o fftw-2.1.3/fftw/ftwi_9.o fftw-2.1.3/fftw/ftwi_10.o fftw-2.1.3/fftw/ftwi_16.o fftw-2.1.3/fftw/ftwi_32.o fftw-2.1.3/fftw/ftwi_64.o fftw-2.1.3/fftw/generic.o fftw-2.1.3/fftw/malloc.o fftw-2.1.3/fftw/planner.o fftw-2.1.3/fftw/putils.o fftw-2.1.3/fftw/rader.o fftw-2.1.3/fftw/timer.o fftw-2.1.3/fftw/twiddle.o fftw-2.1.3/fftw/wisdom.o fftw-2.1.3/fftw/wisdomio.o fftw-2.1.3/rfftw/fcr_1.o fftw-2.1.3/rfftw/fcr_2.o fftw-2.1.3/rfftw/fcr_3.o fftw-2.1.3/rfftw/fcr_4.o fftw-2.1.3/rfftw/fcr_5.o fftw-2.1.3/rfftw/fcr_6.o fftw-2.1.3/rfftw/fcr_7.o fftw-2.1.3/rfftw/fcr_8.o fftw-2.1.3/rfftw/fcr_9.o fftw-2.1.3/rfftw/fcr_10.o fftw-2.1.3/rfftw/fcr_11.o fftw-2.1.3/rfftw/fcr_12.o fftw-2.1.3/rfftw/fcr_13.o fftw-2.1.3/rfftw/fcr_14.o fftw-2.1.3/rfftw/fcr_15.o fftw-2.1.3/rfftw/fcr_16.o fftw-2.1.3/rfftw/fcr_32.o fftw-2.1.3/rfftw/fcr_64.o fftw-2.1.3/rfftw/fcr_128.o fftw-2.1.3/rfftw/fhb_2.o fftw-2.1.3/rfftw/fhb_3.o fftw-2.1.3/rfftw/fhb_4.o fftw-2.1.3/rfftw/fhb_5.o fftw-2.1.3/rfftw/fhb_6.o fftw-2.1.3/rfftw/fhb_7.o fftw-2.1.3/rfftw/fhb_8.o fftw-2.1.3/rfftw/fhb_9.o fftw-2.1.3/rfftw/fhb_10.o fftw-2.1.3/rfftw/fhb_16.o fftw-2.1.3/rfftw/fhb_32.o fftw-2.1.3/rfftw/fhf_2.o fftw-2.1.3/rfftw/fhf_3.o fftw-2.1.3/rfftw/fhf_4.o fftw-2.1.3/rfftw/fhf_5.o fftw-2.1.3/rfftw/fhf_6.o fftw-2.1.3/rfftw/fhf_7.o fftw-2.1.3/rfftw/fhf_8.o fftw-2.1.3/rfftw/fhf_9.o fftw-2.1.3/rfftw/fhf_10.o fftw-2.1.3/rfftw/fhf_16.o fftw-2.1.3/rfftw/fhf_32.o fftw-2.1.3/rfftw/frc_1.o fftw-2.1.3/rfftw/frc_2.o fftw-2.1.3/rfftw/frc_3.o fftw-2.1.3/rfftw/frc_4.o fftw-2.1.3/rfftw/frc_5.o fftw-2.1.3/rfftw/frc_6.o fftw-2.1.3/rfftw/frc_7.o fftw-2.1.3/rfftw/frc_8.o fftw-2.1.3/rfftw/frc_9.o fftw-2.1.3/rfftw/frc_10.o fftw-2.1.3/rfftw/frc_11.o fftw-2.1.3/rfftw/frc_12.o fftw-2.1.3/rfftw/frc_13.o fftw-2.1.3/rfftw/frc_14.o fftw-2.1.3/rfftw/frc_15.o fftw-2.1.3/rfftw/frc_16.o fftw-2.1.3/rfftw/frc_32.o fftw-2.1.3/rfftw/frc_64.o fftw-2.1.3/rfftw/frc_128.o fftw-2.1.3/rfftw/rconfig.o fftw-2.1.3/rfftw/rexec2.o fftw-2.1.3/rfftw/rexec.o fftw-2.1.3/rfftw/rfftwf77.o fftw-2.1.3/rfftw/rfftwnd.o fftw-2.1.3/rfftw/rgeneric.o fftw-2.1.3/rfftw/rplanner.o $(RES)
-OBJ_GLUT = glut.o fluids.o glyphs.o seedpoint.o funcs.o fftw-2.1.3/fftw/config.o fftw-2.1.3/fftw/executor.o fftw-2.1.3/fftw/fftwf77.o fftw-2.1.3/fftw/fftwnd.o fftw-2.1.3/fftw/fn_1.o fftw-2.1.3/fftw/fn_2.o fftw-2.1.3/fftw/fn_3.o fftw-2.1.3/fftw/fn_4.o fftw-2.1.3/fftw/fn_5.o fftw-2.1.3/fftw/fn_6.o fftw-2.1.3/fftw/fn_7.o fftw-2.1.3/fftw/fn_8.o fftw-2.1.3/fftw/fn_9.o fftw-2.1.3/fftw/fn_10.o fftw-2.1.3/fftw/fn_11.o fftw-2.1.3/fftw/fn_12.o fftw-2.1.3/fftw/fn_13.o fftw-2.1.3/fftw/fn_14.o fftw-2.1.3/fftw/fn_15.o fftw-2.1.3/fftw/fn_16.o fftw-2.1.3/fftw/fn_32.o fftw-2.1.3/fftw/fn_64.o fftw-2.1.3/fftw/fni_1.o fftw-2.1.3/fftw/fni_2.o fftw-2.1.3/fftw/fni_3.o fftw-2.1.3/fftw/fni_4.o fftw-2.1.3/fftw/fni_5.o fftw-2.1.3/fftw/fni_6.o fftw-2.1.3/fftw/fni_7.o fftw-2.1.3/fftw/fni_8.o fftw-2.1.3/fftw/fni_9.o fftw-2.1.3/fftw/fni_10.o fftw-2.1.3/fftw/fni_11.o fftw-2.1.3/fftw/fni_12.o fftw-2.1.3/fftw/fni_13.o fftw-2.1.3/fftw/fni_14.o fftw-2.1.3/fftw/fni_15.o fftw-2.1.3/fftw/fni_16.o fftw-2.1.3/fftw/fni_32.o fftw-2.1.3/fftw/fni_64.o fftw-2.1.3/fftw/ftw_2.o fftw-2.1.3/fftw/ftw_3.o fftw-2.1.3/fftw/ftw_4.o fftw-2.1.3/fftw/ftw_5.o fftw-2.1.3/fftw/ftw_6.o fftw-2.1.3/fftw/ftw_7.o fftw-2.1.3/fftw/ftw_8.o fftw-2.1.3/fftw/ftw_9.o fftw-2.1.3/fftw/ftw_10.o fftw-2.1.3/fftw/ftw_16.o fftw-2.1.3/fftw/ftw_32.o fftw-2.1.3/fftw/ftw_64.o fftw-2.1.3/fftw/ftwi_2.o fftw-2.1.3/fftw/ftwi_3.o fftw-2.1.3/fftw/ftwi_4.o fftw-2.1.3/fftw/ftwi_5.o fftw-2.1.3/fftw/ftwi_6.o fftw-2.1.3/fftw/ftwi_7.o fftw-2.1.3/fftw/ftwi_8.o fftw-2.1.3/fftw/ftwi_9.o fftw-2.1.3/fftw/ftwi_10.o fftw-2.1.3/fftw/ftwi_16.o fftw-2.1.3/fftw/ftwi_32.o fftw-2.1.3/fftw/ftwi_64.o fftw-2.1.3/fftw/generic.o fftw-2.1.3/fftw/malloc.o fftw-2.1.3/fftw/planner.o fftw-2.1.3/fftw/putils.o fftw-2.1.3/fftw/rader.o fftw-2.1.3/fftw/timer.o fftw-2.1.3/fftw/twiddle.o fftw-2.1.3/fftw/wisdom.o fftw-2.1.3/fftw/wisdomio.o fftw-2.1.3/rfftw/fcr_1.o fftw-2.1.3/rfftw/fcr_2.o fftw-2.1.3/rfftw/fcr_3.o fftw-2.1.3/rfftw/fcr_4.o fftw-2.1.3/rfftw/fcr_5.o fftw-2.1.3/rfftw/fcr_6.o fftw-2.1.3/rfftw/fcr_7.o fftw-2.1.3/rfftw/fcr_8.o fftw-2.1.3/rfftw/fcr_9.o fftw-2.1.3/rfftw/fcr_10.o fftw-2.1.3/rfftw/fcr_11.o fftw-2.1.3/rfftw/fcr_12.o fftw-2.1.3/rfftw/fcr_13.o fftw-2.1.3/rfftw/fcr_14.o fftw-2.1.3/rfftw/fcr_15.o fftw-2.1.3/rfftw/fcr_16.o fftw-2.1.3/rfftw/fcr_32.o fftw-2.1.3/rfftw/fcr_64.o fftw-2.1.3/rfftw/fcr_128.o fftw-2.1.3/rfftw/fhb_2.o fftw-2.1.3/rfftw/fhb_3.o fftw-2.1.3/rfftw/fhb_4.o fftw-2.1.3/rfftw/fhb_5.o fftw-2.1.3/rfftw/fhb_6.o fftw-2.1.3/rfftw/fhb_7.o fftw-2.1.3/rfftw/fhb_8.o fftw-2.1.3/rfftw/fhb_9.o fftw-2.1.3/rfftw/fhb_10.o fftw-2.1.3/rfftw/fhb_16.o fftw-2.1.3/rfftw/fhb_32.o fftw-2.1.3/rfftw/fhf_2.o fftw-2.1.3/rfftw/fhf_3.o fftw-2.1.3/rfftw/fhf_4.o fftw-2.1.3/rfftw/fhf_5.o fftw-2.1.3/rfftw/fhf_6.o fftw-2.1.3/rfftw/fhf_7.o fftw-2.1.3/rfftw/fhf_8.o fftw-2.1.3/rfftw/fhf_9.o fftw-2.1.3/rfftw/fhf_10.o fftw-2.1.3/rfftw/fhf_16.o fftw-2.1.3/rfftw/fhf_32.o fftw-2.1.3/rfftw/frc_1.o fftw-2.1.3/rfftw/frc_2.o fftw-2.1.3/rfftw/frc_3.o fftw-2.1.3/rfftw/frc_4.o fftw-2.1.3/rfftw/frc_5.o fftw-2.1.3/rfftw/frc_6.o fftw-2.1.3/rfftw/frc_7.o fftw-2.1.3/rfftw/frc_8.o fftw-2.1.3/rfftw/frc_9.o fftw-2.1.3/rfftw/frc_10.o fftw-2.1.3/rfftw/frc_11.o fftw-2.1.3/rfftw/frc_12.o fftw-2.1.3/rfftw/frc_13.o fftw-2.1.3/rfftw/frc_14.o fftw-2.1.3/rfftw/frc_15.o fftw-2.1.3/rfftw/frc_16.o fftw-2.1.3/rfftw/frc_32.o fftw-2.1.3/rfftw/frc_64.o fftw-2.1.3/rfftw/frc_128.o fftw-2.1.3/rfftw/rconfig.o fftw-2.1.3/rfftw/rexec2.o fftw-2.1.3/rfftw/rexec.o fftw-2.1.3/rfftw/rfftwf77.o fftw-2.1.3/rfftw/rfftwnd.o fftw-2.1.3/rfftw/rgeneric.o fftw-2.1.3/rfftw/rplanner.o $(RES)
-LINKOBJ_GLUT = fluids.o glyphs.o seedpoint.o funcs.o glut.o fftw-2.1.3/fftw/config.o fftw-2.1.3/fftw/executor.o fftw-2.1.3/fftw/fftwf77.o fftw-2.1.3/fftw/fftwnd.o fftw-2.1.3/fftw/fn_1.o fftw-2.1.3/fftw/fn_2.o fftw-2.1.3/fftw/fn_3.o fftw-2.1.3/fftw/fn_4.o fftw-2.1.3/fftw/fn_5.o fftw-2.1.3/fftw/fn_6.o fftw-2.1.3/fftw/fn_7.o fftw-2.1.3/fftw/fn_8.o fftw-2.1.3/fftw/fn_9.o fftw-2.1.3/fftw/fn_10.o fftw-2.1.3/fftw/fn_11.o fftw-2.1.3/fftw/fn_12.o fftw-2.1.3/fftw/fn_13.o fftw-2.1.3/fftw/fn_14.o fftw-2.1.3/fftw/fn_15.o fftw-2.1.3/fftw/fn_16.o fftw-2.1.3/fftw/fn_32.o fftw-2.1.3/fftw/fn_64.o fftw-2.1.3/fftw/fni_1.o fftw-2.1.3/fftw/fni_2.o fftw-2.1.3/fftw/fni_3.o fftw-2.1.3/fftw/fni_4.o fftw-2.1.3/fftw/fni_5.o fftw-2.1.3/fftw/fni_6.o fftw-2.1.3/fftw/fni_7.o fftw-2.1.3/fftw/fni_8.o fftw-2.1.3/fftw/fni_9.o fftw-2.1.3/fftw/fni_10.o fftw-2.1.3/fftw/fni_11.o fftw-2.1.3/fftw/fni_12.o fftw-2.1.3/fftw/fni_13.o fftw-2.1.3/fftw/fni_14.o fftw-2.1.3/fftw/fni_15.o fftw-2.1.3/fftw/fni_16.o fftw-2.1.3/fftw/fni_32.o fftw-2.1.3/fftw/fni_64.o fftw-2.1.3/fftw/ftw_2.o fftw-2.1.3/fftw/ftw_3.o fftw-2.1.3/fftw/ftw_4.o fftw-2.1.3/fftw/ftw_5.o fftw-2.1.3/fftw/ftw_6.o fftw-2.1.3/fftw/ftw_7.o fftw-2.1.3/fftw/ftw_8.o fftw-2.1.3/fftw/ftw_9.o fftw-2.1.3/fftw/ftw_10.o fftw-2.1.3/fftw/ftw_16.o fftw-2.1.3/fftw/ftw_32.o fftw-2.1.3/fftw/ftw_64.o fftw-2.1.3/fftw/ftwi_2.o fftw-2.1.3/fftw/ftwi_3.o fftw-2.1.3/fftw/ftwi_4.o fftw-2.1.3/fftw/ftwi_5.o fftw-2.1.3/fftw/ftwi_6.o fftw-2.1.3/fftw/ftwi_7.o fftw-2.1.3/fftw/ftwi_8.o fftw-2.1.3/fftw/ftwi_9.o fftw-2.1.3/fftw/ftwi_10.o fftw-2.1.3/fftw/ftwi_16.o fftw-2.1.3/fftw/ftwi_32.o fftw-2.1.3/fftw/ftwi_64.o fftw-2.1.3/fftw/generic.o fftw-2.1.3/fftw/malloc.o fftw-2.1.3/fftw/planner.o fftw-2.1.3/fftw/putils.o fftw-2.1.3/fftw/rader.o fftw-2.1.3/fftw/timer.o fftw-2.1.3/fftw/twiddle.o fftw-2.1.3/fftw/wisdom.o fftw-2.1.3/fftw/wisdomio.o fftw-2.1.3/rfftw/fcr_1.o fftw-2.1.3/rfftw/fcr_2.o fftw-2.1.3/rfftw/fcr_3.o fftw-2.1.3/rfftw/fcr_4.o fftw-2.1.3/rfftw/fcr_5.o fftw-2.1.3/rfftw/fcr_6.o fftw-2.1.3/rfftw/fcr_7.o fftw-2.1.3/rfftw/fcr_8.o fftw-2.1.3/rfftw/fcr_9.o fftw-2.1.3/rfftw/fcr_10.o fftw-2.1.3/rfftw/fcr_11.o fftw-2.1.3/rfftw/fcr_12.o fftw-2.1.3/rfftw/fcr_13.o fftw-2.1.3/rfftw/fcr_14.o fftw-2.1.3/rfftw/fcr_15.o fftw-2.1.3/rfftw/fcr_16.o fftw-2.1.3/rfftw/fcr_32.o fftw-2.1.3/rfftw/fcr_64.o fftw-2.1.3/rfftw/fcr_128.o fftw-2.1.3/rfftw/fhb_2.o fftw-2.1.3/rfftw/fhb_3.o fftw-2.1.3/rfftw/fhb_4.o fftw-2.1.3/rfftw/fhb_5.o fftw-2.1.3/rfftw/fhb_6.o fftw-2.1.3/rfftw/fhb_7.o fftw-2.1.3/rfftw/fhb_8.o fftw-2.1.3/rfftw/fhb_9.o fftw-2.1.3/rfftw/fhb_10.o fftw-2.1.3/rfftw/fhb_16.o fftw-2.1.3/rfftw/fhb_32.o fftw-2.1.3/rfftw/fhf_2.o fftw-2.1.3/rfftw/fhf_3.o fftw-2.1.3/rfftw/fhf_4.o fftw-2.1.3/rfftw/fhf_5.o fftw-2.1.3/rfftw/fhf_6.o fftw-2.1.3/rfftw/fhf_7.o fftw-2.1.3/rfftw/fhf_8.o fftw-2.1.3/rfftw/fhf_9.o fftw-2.1.3/rfftw/fhf_10.o fftw-2.1.3/rfftw/fhf_16.o fftw-2.1.3/rfftw/fhf_32.o fftw-2.1.3/rfftw/frc_1.o fftw-2.1.3/rfftw/frc_2.o fftw-2.1.3/rfftw/frc_3.o fftw-2.1.3/rfftw/frc_4.o fftw-2.1.3/rfftw/frc_5.o fftw-2.1.3/rfftw/frc_6.o fftw-2.1.3/rfftw/frc_7.o fftw-2.1.3/rfftw/frc_8.o fftw-2.1.3/rfftw/frc_9.o fftw-2.1.3/rfftw/frc_10.o fftw-2.1.3/rfftw/frc_11.o fftw-2.1.3/rfftw/frc_12.o fftw-2.1.3/rfftw/frc_13.o fftw-2.1.3/rfftw/frc_14.o fftw-2.1.3/rfftw/frc_15.o fftw-2.1.3/rfftw/frc_16.o fftw-2.1.3/rfftw/frc_32.o fftw-2.1.3/rfftw/frc_64.o fftw-2.1.3/rfftw/frc_128.o fftw-2.1.3/rfftw/rconfig.o fftw-2.1.3/rfftw/rexec2.o fftw-2.1.3/rfftw/rexec.o fftw-2.1.3/rfftw/rfftwf77.o fftw-2.1.3/rfftw/rfftwnd.o fftw-2.1.3/rfftw/rgeneric.o fftw-2.1.3/rfftw/rplanner.o $(RES)
-LINKOBJ_GTK = fluids.o glyphs.o seedpoint.o funcs.o gtk.o fftw-2.1.3/fftw/config.o fftw-2.1.3/fftw/executor.o fftw-2.1.3/fftw/fftwf77.o fftw-2.1.3/fftw/fftwnd.o fftw-2.1.3/fftw/fn_1.o fftw-2.1.3/fftw/fn_2.o fftw-2.1.3/fftw/fn_3.o fftw-2.1.3/fftw/fn_4.o fftw-2.1.3/fftw/fn_5.o fftw-2.1.3/fftw/fn_6.o fftw-2.1.3/fftw/fn_7.o fftw-2.1.3/fftw/fn_8.o fftw-2.1.3/fftw/fn_9.o fftw-2.1.3/fftw/fn_10.o fftw-2.1.3/fftw/fn_11.o fftw-2.1.3/fftw/fn_12.o fftw-2.1.3/fftw/fn_13.o fftw-2.1.3/fftw/fn_14.o fftw-2.1.3/fftw/fn_15.o fftw-2.1.3/fftw/fn_16.o fftw-2.1.3/fftw/fn_32.o fftw-2.1.3/fftw/fn_64.o fftw-2.1.3/fftw/fni_1.o fftw-2.1.3/fftw/fni_2.o fftw-2.1.3/fftw/fni_3.o fftw-2.1.3/fftw/fni_4.o fftw-2.1.3/fftw/fni_5.o fftw-2.1.3/fftw/fni_6.o fftw-2.1.3/fftw/fni_7.o fftw-2.1.3/fftw/fni_8.o fftw-2.1.3/fftw/fni_9.o fftw-2.1.3/fftw/fni_10.o fftw-2.1.3/fftw/fni_11.o fftw-2.1.3/fftw/fni_12.o fftw-2.1.3/fftw/fni_13.o fftw-2.1.3/fftw/fni_14.o fftw-2.1.3/fftw/fni_15.o fftw-2.1.3/fftw/fni_16.o fftw-2.1.3/fftw/fni_32.o fftw-2.1.3/fftw/fni_64.o fftw-2.1.3/fftw/ftw_2.o fftw-2.1.3/fftw/ftw_3.o fftw-2.1.3/fftw/ftw_4.o fftw-2.1.3/fftw/ftw_5.o fftw-2.1.3/fftw/ftw_6.o fftw-2.1.3/fftw/ftw_7.o fftw-2.1.3/fftw/ftw_8.o fftw-2.1.3/fftw/ftw_9.o fftw-2.1.3/fftw/ftw_10.o fftw-2.1.3/fftw/ftw_16.o fftw-2.1.3/fftw/ftw_32.o fftw-2.1.3/fftw/ftw_64.o fftw-2.1.3/fftw/ftwi_2.o fftw-2.1.3/fftw/ftwi_3.o fftw-2.1.3/fftw/ftwi_4.o fftw-2.1.3/fftw/ftwi_5.o fftw-2.1.3/fftw/ftwi_6.o fftw-2.1.3/fftw/ftwi_7.o fftw-2.1.3/fftw/ftwi_8.o fftw-2.1.3/fftw/ftwi_9.o fftw-2.1.3/fftw/ftwi_10.o fftw-2.1.3/fftw/ftwi_16.o fftw-2.1.3/fftw/ftwi_32.o fftw-2.1.3/fftw/ftwi_64.o fftw-2.1.3/fftw/generic.o fftw-2.1.3/fftw/malloc.o fftw-2.1.3/fftw/planner.o fftw-2.1.3/fftw/putils.o fftw-2.1.3/fftw/rader.o fftw-2.1.3/fftw/timer.o fftw-2.1.3/fftw/twiddle.o fftw-2.1.3/fftw/wisdom.o fftw-2.1.3/fftw/wisdomio.o fftw-2.1.3/rfftw/fcr_1.o fftw-2.1.3/rfftw/fcr_2.o fftw-2.1.3/rfftw/fcr_3.o fftw-2.1.3/rfftw/fcr_4.o fftw-2.1.3/rfftw/fcr_5.o fftw-2.1.3/rfftw/fcr_6.o fftw-2.1.3/rfftw/fcr_7.o fftw-2.1.3/rfftw/fcr_8.o fftw-2.1.3/rfftw/fcr_9.o fftw-2.1.3/rfftw/fcr_10.o fftw-2.1.3/rfftw/fcr_11.o fftw-2.1.3/rfftw/fcr_12.o fftw-2.1.3/rfftw/fcr_13.o fftw-2.1.3/rfftw/fcr_14.o fftw-2.1.3/rfftw/fcr_15.o fftw-2.1.3/rfftw/fcr_16.o fftw-2.1.3/rfftw/fcr_32.o fftw-2.1.3/rfftw/fcr_64.o fftw-2.1.3/rfftw/fcr_128.o fftw-2.1.3/rfftw/fhb_2.o fftw-2.1.3/rfftw/fhb_3.o fftw-2.1.3/rfftw/fhb_4.o fftw-2.1.3/rfftw/fhb_5.o fftw-2.1.3/rfftw/fhb_6.o fftw-2.1.3/rfftw/fhb_7.o fftw-2.1.3/rfftw/fhb_8.o fftw-2.1.3/rfftw/fhb_9.o fftw-2.1.3/rfftw/fhb_10.o fftw-2.1.3/rfftw/fhb_16.o fftw-2.1.3/rfftw/fhb_32.o fftw-2.1.3/rfftw/fhf_2.o fftw-2.1.3/rfftw/fhf_3.o fftw-2.1.3/rfftw/fhf_4.o fftw-2.1.3/rfftw/fhf_5.o fftw-2.1.3/rfftw/fhf_6.o fftw-2.1.3/rfftw/fhf_7.o fftw-2.1.3/rfftw/fhf_8.o fftw-2.1.3/rfftw/fhf_9.o fftw-2.1.3/rfftw/fhf_10.o fftw-2.1.3/rfftw/fhf_16.o fftw-2.1.3/rfftw/fhf_32.o fftw-2.1.3/rfftw/frc_1.o fftw-2.1.3/rfftw/frc_2.o fftw-2.1.3/rfftw/frc_3.o fftw-2.1.3/rfftw/frc_4.o fftw-2.1.3/rfftw/frc_5.o fftw-2.1.3/rfftw/frc_6.o fftw-2.1.3/rfftw/frc_7.o fftw-2.1.3/rfftw/frc_8.o fftw-2.1.3/rfftw/frc_9.o fftw-2.1.3/rfftw/frc_10.o fftw-2.1.3/rfftw/frc_11.o fftw-2.1.3/rfftw/frc_12.o fftw-2.1.3/rfftw/frc_13.o fftw-2.1.3/rfftw/frc_14.o fftw-2.1.3/rfftw/frc_15.o fftw-2.1.3/rfftw/frc_16.o fftw-2.1.3/rfftw/frc_32.o fftw-2.1.3/rfftw/frc_64.o fftw-2.1.3/rfftw/frc_128.o fftw-2.1.3/rfftw/rconfig.o fftw-2.1.3/rfftw/rexec2.o fftw-2.1.3/rfftw/rexec.o fftw-2.1.3/rfftw/rfftwf77.o fftw-2.1.3/rfftw/rfftwnd.o fftw-2.1.3/rfftw/rgeneric.o fftw-2.1.3/rfftw/rplanner.o $(RES)
+OBJ_GTK = gtk.o fluids.o colormap.o glyphs.o seedpoint.o streamlines.o palette.o funcs.o fftw-2.1.3/fftw/config.o fftw-2.1.3/fftw/executor.o fftw-2.1.3/fftw/fftwf77.o fftw-2.1.3/fftw/fftwnd.o fftw-2.1.3/fftw/fn_1.o fftw-2.1.3/fftw/fn_2.o fftw-2.1.3/fftw/fn_3.o fftw-2.1.3/fftw/fn_4.o fftw-2.1.3/fftw/fn_5.o fftw-2.1.3/fftw/fn_6.o fftw-2.1.3/fftw/fn_7.o fftw-2.1.3/fftw/fn_8.o fftw-2.1.3/fftw/fn_9.o fftw-2.1.3/fftw/fn_10.o fftw-2.1.3/fftw/fn_11.o fftw-2.1.3/fftw/fn_12.o fftw-2.1.3/fftw/fn_13.o fftw-2.1.3/fftw/fn_14.o fftw-2.1.3/fftw/fn_15.o fftw-2.1.3/fftw/fn_16.o fftw-2.1.3/fftw/fn_32.o fftw-2.1.3/fftw/fn_64.o fftw-2.1.3/fftw/fni_1.o fftw-2.1.3/fftw/fni_2.o fftw-2.1.3/fftw/fni_3.o fftw-2.1.3/fftw/fni_4.o fftw-2.1.3/fftw/fni_5.o fftw-2.1.3/fftw/fni_6.o fftw-2.1.3/fftw/fni_7.o fftw-2.1.3/fftw/fni_8.o fftw-2.1.3/fftw/fni_9.o fftw-2.1.3/fftw/fni_10.o fftw-2.1.3/fftw/fni_11.o fftw-2.1.3/fftw/fni_12.o fftw-2.1.3/fftw/fni_13.o fftw-2.1.3/fftw/fni_14.o fftw-2.1.3/fftw/fni_15.o fftw-2.1.3/fftw/fni_16.o fftw-2.1.3/fftw/fni_32.o fftw-2.1.3/fftw/fni_64.o fftw-2.1.3/fftw/ftw_2.o fftw-2.1.3/fftw/ftw_3.o fftw-2.1.3/fftw/ftw_4.o fftw-2.1.3/fftw/ftw_5.o fftw-2.1.3/fftw/ftw_6.o fftw-2.1.3/fftw/ftw_7.o fftw-2.1.3/fftw/ftw_8.o fftw-2.1.3/fftw/ftw_9.o fftw-2.1.3/fftw/ftw_10.o fftw-2.1.3/fftw/ftw_16.o fftw-2.1.3/fftw/ftw_32.o fftw-2.1.3/fftw/ftw_64.o fftw-2.1.3/fftw/ftwi_2.o fftw-2.1.3/fftw/ftwi_3.o fftw-2.1.3/fftw/ftwi_4.o fftw-2.1.3/fftw/ftwi_5.o fftw-2.1.3/fftw/ftwi_6.o fftw-2.1.3/fftw/ftwi_7.o fftw-2.1.3/fftw/ftwi_8.o fftw-2.1.3/fftw/ftwi_9.o fftw-2.1.3/fftw/ftwi_10.o fftw-2.1.3/fftw/ftwi_16.o fftw-2.1.3/fftw/ftwi_32.o fftw-2.1.3/fftw/ftwi_64.o fftw-2.1.3/fftw/generic.o fftw-2.1.3/fftw/malloc.o fftw-2.1.3/fftw/planner.o fftw-2.1.3/fftw/putils.o fftw-2.1.3/fftw/rader.o fftw-2.1.3/fftw/timer.o fftw-2.1.3/fftw/twiddle.o fftw-2.1.3/fftw/wisdom.o fftw-2.1.3/fftw/wisdomio.o fftw-2.1.3/rfftw/fcr_1.o fftw-2.1.3/rfftw/fcr_2.o fftw-2.1.3/rfftw/fcr_3.o fftw-2.1.3/rfftw/fcr_4.o fftw-2.1.3/rfftw/fcr_5.o fftw-2.1.3/rfftw/fcr_6.o fftw-2.1.3/rfftw/fcr_7.o fftw-2.1.3/rfftw/fcr_8.o fftw-2.1.3/rfftw/fcr_9.o fftw-2.1.3/rfftw/fcr_10.o fftw-2.1.3/rfftw/fcr_11.o fftw-2.1.3/rfftw/fcr_12.o fftw-2.1.3/rfftw/fcr_13.o fftw-2.1.3/rfftw/fcr_14.o fftw-2.1.3/rfftw/fcr_15.o fftw-2.1.3/rfftw/fcr_16.o fftw-2.1.3/rfftw/fcr_32.o fftw-2.1.3/rfftw/fcr_64.o fftw-2.1.3/rfftw/fcr_128.o fftw-2.1.3/rfftw/fhb_2.o fftw-2.1.3/rfftw/fhb_3.o fftw-2.1.3/rfftw/fhb_4.o fftw-2.1.3/rfftw/fhb_5.o fftw-2.1.3/rfftw/fhb_6.o fftw-2.1.3/rfftw/fhb_7.o fftw-2.1.3/rfftw/fhb_8.o fftw-2.1.3/rfftw/fhb_9.o fftw-2.1.3/rfftw/fhb_10.o fftw-2.1.3/rfftw/fhb_16.o fftw-2.1.3/rfftw/fhb_32.o fftw-2.1.3/rfftw/fhf_2.o fftw-2.1.3/rfftw/fhf_3.o fftw-2.1.3/rfftw/fhf_4.o fftw-2.1.3/rfftw/fhf_5.o fftw-2.1.3/rfftw/fhf_6.o fftw-2.1.3/rfftw/fhf_7.o fftw-2.1.3/rfftw/fhf_8.o fftw-2.1.3/rfftw/fhf_9.o fftw-2.1.3/rfftw/fhf_10.o fftw-2.1.3/rfftw/fhf_16.o fftw-2.1.3/rfftw/fhf_32.o fftw-2.1.3/rfftw/frc_1.o fftw-2.1.3/rfftw/frc_2.o fftw-2.1.3/rfftw/frc_3.o fftw-2.1.3/rfftw/frc_4.o fftw-2.1.3/rfftw/frc_5.o fftw-2.1.3/rfftw/frc_6.o fftw-2.1.3/rfftw/frc_7.o fftw-2.1.3/rfftw/frc_8.o fftw-2.1.3/rfftw/frc_9.o fftw-2.1.3/rfftw/frc_10.o fftw-2.1.3/rfftw/frc_11.o fftw-2.1.3/rfftw/frc_12.o fftw-2.1.3/rfftw/frc_13.o fftw-2.1.3/rfftw/frc_14.o fftw-2.1.3/rfftw/frc_15.o fftw-2.1.3/rfftw/frc_16.o fftw-2.1.3/rfftw/frc_32.o fftw-2.1.3/rfftw/frc_64.o fftw-2.1.3/rfftw/frc_128.o fftw-2.1.3/rfftw/rconfig.o fftw-2.1.3/rfftw/rexec2.o fftw-2.1.3/rfftw/rexec.o fftw-2.1.3/rfftw/rfftwf77.o fftw-2.1.3/rfftw/rfftwnd.o fftw-2.1.3/rfftw/rgeneric.o fftw-2.1.3/rfftw/rplanner.o $(RES)
+OBJ_GLUT = glut.o fluids.o colormap.o glyphs.o seedpoint.o streamlines.o palette.o funcs.o fftw-2.1.3/fftw/config.o fftw-2.1.3/fftw/executor.o fftw-2.1.3/fftw/fftwf77.o fftw-2.1.3/fftw/fftwnd.o fftw-2.1.3/fftw/fn_1.o fftw-2.1.3/fftw/fn_2.o fftw-2.1.3/fftw/fn_3.o fftw-2.1.3/fftw/fn_4.o fftw-2.1.3/fftw/fn_5.o fftw-2.1.3/fftw/fn_6.o fftw-2.1.3/fftw/fn_7.o fftw-2.1.3/fftw/fn_8.o fftw-2.1.3/fftw/fn_9.o fftw-2.1.3/fftw/fn_10.o fftw-2.1.3/fftw/fn_11.o fftw-2.1.3/fftw/fn_12.o fftw-2.1.3/fftw/fn_13.o fftw-2.1.3/fftw/fn_14.o fftw-2.1.3/fftw/fn_15.o fftw-2.1.3/fftw/fn_16.o fftw-2.1.3/fftw/fn_32.o fftw-2.1.3/fftw/fn_64.o fftw-2.1.3/fftw/fni_1.o fftw-2.1.3/fftw/fni_2.o fftw-2.1.3/fftw/fni_3.o fftw-2.1.3/fftw/fni_4.o fftw-2.1.3/fftw/fni_5.o fftw-2.1.3/fftw/fni_6.o fftw-2.1.3/fftw/fni_7.o fftw-2.1.3/fftw/fni_8.o fftw-2.1.3/fftw/fni_9.o fftw-2.1.3/fftw/fni_10.o fftw-2.1.3/fftw/fni_11.o fftw-2.1.3/fftw/fni_12.o fftw-2.1.3/fftw/fni_13.o fftw-2.1.3/fftw/fni_14.o fftw-2.1.3/fftw/fni_15.o fftw-2.1.3/fftw/fni_16.o fftw-2.1.3/fftw/fni_32.o fftw-2.1.3/fftw/fni_64.o fftw-2.1.3/fftw/ftw_2.o fftw-2.1.3/fftw/ftw_3.o fftw-2.1.3/fftw/ftw_4.o fftw-2.1.3/fftw/ftw_5.o fftw-2.1.3/fftw/ftw_6.o fftw-2.1.3/fftw/ftw_7.o fftw-2.1.3/fftw/ftw_8.o fftw-2.1.3/fftw/ftw_9.o fftw-2.1.3/fftw/ftw_10.o fftw-2.1.3/fftw/ftw_16.o fftw-2.1.3/fftw/ftw_32.o fftw-2.1.3/fftw/ftw_64.o fftw-2.1.3/fftw/ftwi_2.o fftw-2.1.3/fftw/ftwi_3.o fftw-2.1.3/fftw/ftwi_4.o fftw-2.1.3/fftw/ftwi_5.o fftw-2.1.3/fftw/ftwi_6.o fftw-2.1.3/fftw/ftwi_7.o fftw-2.1.3/fftw/ftwi_8.o fftw-2.1.3/fftw/ftwi_9.o fftw-2.1.3/fftw/ftwi_10.o fftw-2.1.3/fftw/ftwi_16.o fftw-2.1.3/fftw/ftwi_32.o fftw-2.1.3/fftw/ftwi_64.o fftw-2.1.3/fftw/generic.o fftw-2.1.3/fftw/malloc.o fftw-2.1.3/fftw/planner.o fftw-2.1.3/fftw/putils.o fftw-2.1.3/fftw/rader.o fftw-2.1.3/fftw/timer.o fftw-2.1.3/fftw/twiddle.o fftw-2.1.3/fftw/wisdom.o fftw-2.1.3/fftw/wisdomio.o fftw-2.1.3/rfftw/fcr_1.o fftw-2.1.3/rfftw/fcr_2.o fftw-2.1.3/rfftw/fcr_3.o fftw-2.1.3/rfftw/fcr_4.o fftw-2.1.3/rfftw/fcr_5.o fftw-2.1.3/rfftw/fcr_6.o fftw-2.1.3/rfftw/fcr_7.o fftw-2.1.3/rfftw/fcr_8.o fftw-2.1.3/rfftw/fcr_9.o fftw-2.1.3/rfftw/fcr_10.o fftw-2.1.3/rfftw/fcr_11.o fftw-2.1.3/rfftw/fcr_12.o fftw-2.1.3/rfftw/fcr_13.o fftw-2.1.3/rfftw/fcr_14.o fftw-2.1.3/rfftw/fcr_15.o fftw-2.1.3/rfftw/fcr_16.o fftw-2.1.3/rfftw/fcr_32.o fftw-2.1.3/rfftw/fcr_64.o fftw-2.1.3/rfftw/fcr_128.o fftw-2.1.3/rfftw/fhb_2.o fftw-2.1.3/rfftw/fhb_3.o fftw-2.1.3/rfftw/fhb_4.o fftw-2.1.3/rfftw/fhb_5.o fftw-2.1.3/rfftw/fhb_6.o fftw-2.1.3/rfftw/fhb_7.o fftw-2.1.3/rfftw/fhb_8.o fftw-2.1.3/rfftw/fhb_9.o fftw-2.1.3/rfftw/fhb_10.o fftw-2.1.3/rfftw/fhb_16.o fftw-2.1.3/rfftw/fhb_32.o fftw-2.1.3/rfftw/fhf_2.o fftw-2.1.3/rfftw/fhf_3.o fftw-2.1.3/rfftw/fhf_4.o fftw-2.1.3/rfftw/fhf_5.o fftw-2.1.3/rfftw/fhf_6.o fftw-2.1.3/rfftw/fhf_7.o fftw-2.1.3/rfftw/fhf_8.o fftw-2.1.3/rfftw/fhf_9.o fftw-2.1.3/rfftw/fhf_10.o fftw-2.1.3/rfftw/fhf_16.o fftw-2.1.3/rfftw/fhf_32.o fftw-2.1.3/rfftw/frc_1.o fftw-2.1.3/rfftw/frc_2.o fftw-2.1.3/rfftw/frc_3.o fftw-2.1.3/rfftw/frc_4.o fftw-2.1.3/rfftw/frc_5.o fftw-2.1.3/rfftw/frc_6.o fftw-2.1.3/rfftw/frc_7.o fftw-2.1.3/rfftw/frc_8.o fftw-2.1.3/rfftw/frc_9.o fftw-2.1.3/rfftw/frc_10.o fftw-2.1.3/rfftw/frc_11.o fftw-2.1.3/rfftw/frc_12.o fftw-2.1.3/rfftw/frc_13.o fftw-2.1.3/rfftw/frc_14.o fftw-2.1.3/rfftw/frc_15.o fftw-2.1.3/rfftw/frc_16.o fftw-2.1.3/rfftw/frc_32.o fftw-2.1.3/rfftw/frc_64.o fftw-2.1.3/rfftw/frc_128.o fftw-2.1.3/rfftw/rconfig.o fftw-2.1.3/rfftw/rexec2.o fftw-2.1.3/rfftw/rexec.o fftw-2.1.3/rfftw/rfftwf77.o fftw-2.1.3/rfftw/rfftwnd.o fftw-2.1.3/rfftw/rgeneric.o fftw-2.1.3/rfftw/rplanner.o $(RES)
+LINKOBJ_GLUT = fluids.o colormap.o glyphs.o seedpoint.o streamlines.o palette.o funcs.o glut.o fftw-2.1.3/fftw/config.o fftw-2.1.3/fftw/executor.o fftw-2.1.3/fftw/fftwf77.o fftw-2.1.3/fftw/fftwnd.o fftw-2.1.3/fftw/fn_1.o fftw-2.1.3/fftw/fn_2.o fftw-2.1.3/fftw/fn_3.o fftw-2.1.3/fftw/fn_4.o fftw-2.1.3/fftw/fn_5.o fftw-2.1.3/fftw/fn_6.o fftw-2.1.3/fftw/fn_7.o fftw-2.1.3/fftw/fn_8.o fftw-2.1.3/fftw/fn_9.o fftw-2.1.3/fftw/fn_10.o fftw-2.1.3/fftw/fn_11.o fftw-2.1.3/fftw/fn_12.o fftw-2.1.3/fftw/fn_13.o fftw-2.1.3/fftw/fn_14.o fftw-2.1.3/fftw/fn_15.o fftw-2.1.3/fftw/fn_16.o fftw-2.1.3/fftw/fn_32.o fftw-2.1.3/fftw/fn_64.o fftw-2.1.3/fftw/fni_1.o fftw-2.1.3/fftw/fni_2.o fftw-2.1.3/fftw/fni_3.o fftw-2.1.3/fftw/fni_4.o fftw-2.1.3/fftw/fni_5.o fftw-2.1.3/fftw/fni_6.o fftw-2.1.3/fftw/fni_7.o fftw-2.1.3/fftw/fni_8.o fftw-2.1.3/fftw/fni_9.o fftw-2.1.3/fftw/fni_10.o fftw-2.1.3/fftw/fni_11.o fftw-2.1.3/fftw/fni_12.o fftw-2.1.3/fftw/fni_13.o fftw-2.1.3/fftw/fni_14.o fftw-2.1.3/fftw/fni_15.o fftw-2.1.3/fftw/fni_16.o fftw-2.1.3/fftw/fni_32.o fftw-2.1.3/fftw/fni_64.o fftw-2.1.3/fftw/ftw_2.o fftw-2.1.3/fftw/ftw_3.o fftw-2.1.3/fftw/ftw_4.o fftw-2.1.3/fftw/ftw_5.o fftw-2.1.3/fftw/ftw_6.o fftw-2.1.3/fftw/ftw_7.o fftw-2.1.3/fftw/ftw_8.o fftw-2.1.3/fftw/ftw_9.o fftw-2.1.3/fftw/ftw_10.o fftw-2.1.3/fftw/ftw_16.o fftw-2.1.3/fftw/ftw_32.o fftw-2.1.3/fftw/ftw_64.o fftw-2.1.3/fftw/ftwi_2.o fftw-2.1.3/fftw/ftwi_3.o fftw-2.1.3/fftw/ftwi_4.o fftw-2.1.3/fftw/ftwi_5.o fftw-2.1.3/fftw/ftwi_6.o fftw-2.1.3/fftw/ftwi_7.o fftw-2.1.3/fftw/ftwi_8.o fftw-2.1.3/fftw/ftwi_9.o fftw-2.1.3/fftw/ftwi_10.o fftw-2.1.3/fftw/ftwi_16.o fftw-2.1.3/fftw/ftwi_32.o fftw-2.1.3/fftw/ftwi_64.o fftw-2.1.3/fftw/generic.o fftw-2.1.3/fftw/malloc.o fftw-2.1.3/fftw/planner.o fftw-2.1.3/fftw/putils.o fftw-2.1.3/fftw/rader.o fftw-2.1.3/fftw/timer.o fftw-2.1.3/fftw/twiddle.o fftw-2.1.3/fftw/wisdom.o fftw-2.1.3/fftw/wisdomio.o fftw-2.1.3/rfftw/fcr_1.o fftw-2.1.3/rfftw/fcr_2.o fftw-2.1.3/rfftw/fcr_3.o fftw-2.1.3/rfftw/fcr_4.o fftw-2.1.3/rfftw/fcr_5.o fftw-2.1.3/rfftw/fcr_6.o fftw-2.1.3/rfftw/fcr_7.o fftw-2.1.3/rfftw/fcr_8.o fftw-2.1.3/rfftw/fcr_9.o fftw-2.1.3/rfftw/fcr_10.o fftw-2.1.3/rfftw/fcr_11.o fftw-2.1.3/rfftw/fcr_12.o fftw-2.1.3/rfftw/fcr_13.o fftw-2.1.3/rfftw/fcr_14.o fftw-2.1.3/rfftw/fcr_15.o fftw-2.1.3/rfftw/fcr_16.o fftw-2.1.3/rfftw/fcr_32.o fftw-2.1.3/rfftw/fcr_64.o fftw-2.1.3/rfftw/fcr_128.o fftw-2.1.3/rfftw/fhb_2.o fftw-2.1.3/rfftw/fhb_3.o fftw-2.1.3/rfftw/fhb_4.o fftw-2.1.3/rfftw/fhb_5.o fftw-2.1.3/rfftw/fhb_6.o fftw-2.1.3/rfftw/fhb_7.o fftw-2.1.3/rfftw/fhb_8.o fftw-2.1.3/rfftw/fhb_9.o fftw-2.1.3/rfftw/fhb_10.o fftw-2.1.3/rfftw/fhb_16.o fftw-2.1.3/rfftw/fhb_32.o fftw-2.1.3/rfftw/fhf_2.o fftw-2.1.3/rfftw/fhf_3.o fftw-2.1.3/rfftw/fhf_4.o fftw-2.1.3/rfftw/fhf_5.o fftw-2.1.3/rfftw/fhf_6.o fftw-2.1.3/rfftw/fhf_7.o fftw-2.1.3/rfftw/fhf_8.o fftw-2.1.3/rfftw/fhf_9.o fftw-2.1.3/rfftw/fhf_10.o fftw-2.1.3/rfftw/fhf_16.o fftw-2.1.3/rfftw/fhf_32.o fftw-2.1.3/rfftw/frc_1.o fftw-2.1.3/rfftw/frc_2.o fftw-2.1.3/rfftw/frc_3.o fftw-2.1.3/rfftw/frc_4.o fftw-2.1.3/rfftw/frc_5.o fftw-2.1.3/rfftw/frc_6.o fftw-2.1.3/rfftw/frc_7.o fftw-2.1.3/rfftw/frc_8.o fftw-2.1.3/rfftw/frc_9.o fftw-2.1.3/rfftw/frc_10.o fftw-2.1.3/rfftw/frc_11.o fftw-2.1.3/rfftw/frc_12.o fftw-2.1.3/rfftw/frc_13.o fftw-2.1.3/rfftw/frc_14.o fftw-2.1.3/rfftw/frc_15.o fftw-2.1.3/rfftw/frc_16.o fftw-2.1.3/rfftw/frc_32.o fftw-2.1.3/rfftw/frc_64.o fftw-2.1.3/rfftw/frc_128.o fftw-2.1.3/rfftw/rconfig.o fftw-2.1.3/rfftw/rexec2.o fftw-2.1.3/rfftw/rexec.o fftw-2.1.3/rfftw/rfftwf77.o fftw-2.1.3/rfftw/rfftwnd.o fftw-2.1.3/rfftw/rgeneric.o fftw-2.1.3/rfftw/rplanner.o $(RES)
+LINKOBJ_GTK = fluids.o colormap.o glyphs.o seedpoint.o streamlines.o palette.o funcs.o gtk.o fftw-2.1.3/fftw/config.o fftw-2.1.3/fftw/executor.o fftw-2.1.3/fftw/fftwf77.o fftw-2.1.3/fftw/fftwnd.o fftw-2.1.3/fftw/fn_1.o fftw-2.1.3/fftw/fn_2.o fftw-2.1.3/fftw/fn_3.o fftw-2.1.3/fftw/fn_4.o fftw-2.1.3/fftw/fn_5.o fftw-2.1.3/fftw/fn_6.o fftw-2.1.3/fftw/fn_7.o fftw-2.1.3/fftw/fn_8.o fftw-2.1.3/fftw/fn_9.o fftw-2.1.3/fftw/fn_10.o fftw-2.1.3/fftw/fn_11.o fftw-2.1.3/fftw/fn_12.o fftw-2.1.3/fftw/fn_13.o fftw-2.1.3/fftw/fn_14.o fftw-2.1.3/fftw/fn_15.o fftw-2.1.3/fftw/fn_16.o fftw-2.1.3/fftw/fn_32.o fftw-2.1.3/fftw/fn_64.o fftw-2.1.3/fftw/fni_1.o fftw-2.1.3/fftw/fni_2.o fftw-2.1.3/fftw/fni_3.o fftw-2.1.3/fftw/fni_4.o fftw-2.1.3/fftw/fni_5.o fftw-2.1.3/fftw/fni_6.o fftw-2.1.3/fftw/fni_7.o fftw-2.1.3/fftw/fni_8.o fftw-2.1.3/fftw/fni_9.o fftw-2.1.3/fftw/fni_10.o fftw-2.1.3/fftw/fni_11.o fftw-2.1.3/fftw/fni_12.o fftw-2.1.3/fftw/fni_13.o fftw-2.1.3/fftw/fni_14.o fftw-2.1.3/fftw/fni_15.o fftw-2.1.3/fftw/fni_16.o fftw-2.1.3/fftw/fni_32.o fftw-2.1.3/fftw/fni_64.o fftw-2.1.3/fftw/ftw_2.o fftw-2.1.3/fftw/ftw_3.o fftw-2.1.3/fftw/ftw_4.o fftw-2.1.3/fftw/ftw_5.o fftw-2.1.3/fftw/ftw_6.o fftw-2.1.3/fftw/ftw_7.o fftw-2.1.3/fftw/ftw_8.o fftw-2.1.3/fftw/ftw_9.o fftw-2.1.3/fftw/ftw_10.o fftw-2.1.3/fftw/ftw_16.o fftw-2.1.3/fftw/ftw_32.o fftw-2.1.3/fftw/ftw_64.o fftw-2.1.3/fftw/ftwi_2.o fftw-2.1.3/fftw/ftwi_3.o fftw-2.1.3/fftw/ftwi_4.o fftw-2.1.3/fftw/ftwi_5.o fftw-2.1.3/fftw/ftwi_6.o fftw-2.1.3/fftw/ftwi_7.o fftw-2.1.3/fftw/ftwi_8.o fftw-2.1.3/fftw/ftwi_9.o fftw-2.1.3/fftw/ftwi_10.o fftw-2.1.3/fftw/ftwi_16.o fftw-2.1.3/fftw/ftwi_32.o fftw-2.1.3/fftw/ftwi_64.o fftw-2.1.3/fftw/generic.o fftw-2.1.3/fftw/malloc.o fftw-2.1.3/fftw/planner.o fftw-2.1.3/fftw/putils.o fftw-2.1.3/fftw/rader.o fftw-2.1.3/fftw/timer.o fftw-2.1.3/fftw/twiddle.o fftw-2.1.3/fftw/wisdom.o fftw-2.1.3/fftw/wisdomio.o fftw-2.1.3/rfftw/fcr_1.o fftw-2.1.3/rfftw/fcr_2.o fftw-2.1.3/rfftw/fcr_3.o fftw-2.1.3/rfftw/fcr_4.o fftw-2.1.3/rfftw/fcr_5.o fftw-2.1.3/rfftw/fcr_6.o fftw-2.1.3/rfftw/fcr_7.o fftw-2.1.3/rfftw/fcr_8.o fftw-2.1.3/rfftw/fcr_9.o fftw-2.1.3/rfftw/fcr_10.o fftw-2.1.3/rfftw/fcr_11.o fftw-2.1.3/rfftw/fcr_12.o fftw-2.1.3/rfftw/fcr_13.o fftw-2.1.3/rfftw/fcr_14.o fftw-2.1.3/rfftw/fcr_15.o fftw-2.1.3/rfftw/fcr_16.o fftw-2.1.3/rfftw/fcr_32.o fftw-2.1.3/rfftw/fcr_64.o fftw-2.1.3/rfftw/fcr_128.o fftw-2.1.3/rfftw/fhb_2.o fftw-2.1.3/rfftw/fhb_3.o fftw-2.1.3/rfftw/fhb_4.o fftw-2.1.3/rfftw/fhb_5.o fftw-2.1.3/rfftw/fhb_6.o fftw-2.1.3/rfftw/fhb_7.o fftw-2.1.3/rfftw/fhb_8.o fftw-2.1.3/rfftw/fhb_9.o fftw-2.1.3/rfftw/fhb_10.o fftw-2.1.3/rfftw/fhb_16.o fftw-2.1.3/rfftw/fhb_32.o fftw-2.1.3/rfftw/fhf_2.o fftw-2.1.3/rfftw/fhf_3.o fftw-2.1.3/rfftw/fhf_4.o fftw-2.1.3/rfftw/fhf_5.o fftw-2.1.3/rfftw/fhf_6.o fftw-2.1.3/rfftw/fhf_7.o fftw-2.1.3/rfftw/fhf_8.o fftw-2.1.3/rfftw/fhf_9.o fftw-2.1.3/rfftw/fhf_10.o fftw-2.1.3/rfftw/fhf_16.o fftw-2.1.3/rfftw/fhf_32.o fftw-2.1.3/rfftw/frc_1.o fftw-2.1.3/rfftw/frc_2.o fftw-2.1.3/rfftw/frc_3.o fftw-2.1.3/rfftw/frc_4.o fftw-2.1.3/rfftw/frc_5.o fftw-2.1.3/rfftw/frc_6.o fftw-2.1.3/rfftw/frc_7.o fftw-2.1.3/rfftw/frc_8.o fftw-2.1.3/rfftw/frc_9.o fftw-2.1.3/rfftw/frc_10.o fftw-2.1.3/rfftw/frc_11.o fftw-2.1.3/rfftw/frc_12.o fftw-2.1.3/rfftw/frc_13.o fftw-2.1.3/rfftw/frc_14.o fftw-2.1.3/rfftw/frc_15.o fftw-2.1.3/rfftw/frc_16.o fftw-2.1.3/rfftw/frc_32.o fftw-2.1.3/rfftw/frc_64.o fftw-2.1.3/rfftw/frc_128.o fftw-2.1.3/rfftw/rconfig.o fftw-2.1.3/rfftw/rexec2.o fftw-2.1.3/rfftw/rexec.o fftw-2.1.3/rfftw/rfftwf77.o fftw-2.1.3/rfftw/rfftwnd.o fftw-2.1.3/rfftw/rgeneric.o fftw-2.1.3/rfftw/rplanner.o $(RES)
LIBS_GLUT = -lglut -lm
#INCS = -I"fftw-2.1.3/fftw" -I"fftw-2.1.3/rfftw"
LIBS_GTK = -lglut -lm `pkg-config --libs gtk+-2.0` /usr/lib/libgdkglext-x11-1.0.so /usr/lib/libgtkglext-x11-1.0.so
@@ -44,12 +44,21 @@ glut.o: glut.c
fluids.o: fluids.c
$(CC) -c fluids.c -o fluids.o $(CFLAGS)
+colormap.o: colormap.c
+ $(CC) -c colormap.c -o colormap.o $(CFLAGS)
+
glyphs.o: glyphs.c
$(CC) -c glyphs.c -o glyphs.o $(CFLAGS)
seedpoint.o: seedpoint.c
$(CC) -c seedpoint.c -o seedpoint.o $(CFLAGS)
+streamlines.o: streamlines.c
+ $(CC) -c streamlines.c -o streamlines.o $(CFLAGS)
+
+palette.o: palette.c
+ $(CC) -c palette.c -o palette.o $(CFLAGS)
+
funcs.o: funcs.c
$(CC) -c funcs.c -o funcs.o $(CFLAGS)
diff --git a/Smoke/colormap.c b/Smoke/colormap.c
index 3620cb7..4fafe53 100644
--- a/Smoke/colormap.c
+++ b/Smoke/colormap.c
@@ -3,120 +3,12 @@
#include <windows.h>
#endif
-#include <math.h>
-
-#include "fluids.h"
#include "colormap.h"
-#include "funcs.h"
-
-//rainbow: Implements a color palette, mapping the scalar 'value' to a rainbow color RGB
-void rainbow(float value, float *R, float *G, float *B)
-{
- const float dx = 0.8f;
-
- if (value < 0) value = 0;
- if (value > 1) value = 1;
-
- value = (6 - 2 * dx) * value + dx;
-
- *R = (float)max(0.0f, (3 - fabs(value - 4.0f) - fabs(value - 5.0f)) / 2.0f);
- *G = (float)max(0.0f, (4 - fabs(value - 2.0f) - fabs(value - 4.0f)) / 2.0f);
- *B = (float)max(0.0f, (3 - fabs(value - 1.0f) - fabs(value - 2.0f)) / 2.0f);
-}
-void colormap_fire(float value, float *R, float *G, float *B)
-{
- /* Colormap Fire
- * A fire effect deals with two parts, first a drop from red to yellow (halfway)
- * during which time the Red component remains full e.g. 1. The Green component is
- * slowly added to turn the red into orange, and then yellow (R & G =Y). After this
- * point, the Red and Green component (e.g. yellow) have to drop simulataniously
- * to go from yellow down to black.
- */
- *B = 0;
- *G = 0;
- *R = 0;
-
- if (value <= (0.01)) {
- /* whilst value is 0 - 0.5 both red and green equally change to create yellow */
- *R = *G = value;
- } else {
- /* whilst value is 0.5 - 1 Red is always fully on while the Green component is
- * added in steps to go from red to orange to yellow.
- */
- *G = 0.9f - value;
- *R = 0.8f; // not 1, makes red deeper, more intense
- }
-}
-
-//set_colormap: Sets three different types of colormaps
-struct color4f set_colormap(int colormap_sort, float vy, int draw_bar, float alpha)
-{
- float R, G, B;
- struct color4f return_value;
- const int NLEVELS = 7;
+#if 0
if (autoscale)
{
vy = remap(vy);
}
-
- if (!(draw_bar))
- {
- if (vy < clamp_min) vy = clamp_min;
- if (vy > clamp_max) vy = clamp_max;
- }
-
- switch (colormap_sort)
- {
- case COLOR_BLACKWHITE:
- R = G = B = vy;
- break;
- case COLOR_RAINBOW:
- rainbow(vy,&R,&G,&B);
- break;
- case COLOR_BANDS:
- vy *= NLEVELS; vy = (float)(int)(vy); vy/= NLEVELS;
- rainbow(vy,&R,&G,&B);
- break;
- case COLOR_BLUE_GREEN_RED:
- if (vy < -0.1)
- {
- R = G = 0;
- vy -= -0.1f;
- vy /= 0.9f;
- B = -vy;
- }
- else if (vy < 0.1)
- {
- R = B = 0;
- vy += 0.1f;
- vy /= 0.2f;
- G = vy;
- }
- else
- {
- vy -= 0.1f;
- vy /= 0.9f;
- R = vy;
- G = B = 0;
- }
- break;
- case COLOR_WILRIK:
- colormap_fire(vy, &R, &G, &B);
- break;
- case COLOR_OLIVER:
- rainbow(vy, &R, &G, &B);
- break;
-
- }
-
- glColor4f(R, G, B, alpha);
-
- return_value.r = R;
- return_value.g = G;
- return_value.b = B;
- return_value.a = alpha;
-
- return return_value;
-} \ No newline at end of file
+#endif
diff --git a/Smoke/colormap.h b/Smoke/colormap.h
index 262a680..cc24274 100644
--- a/Smoke/colormap.h
+++ b/Smoke/colormap.h
@@ -1,14 +1,4 @@
#ifndef _COLORMAP_H
#define _COLORMAP_H
-struct color4f {
- float r;
- float g;
- float b;
- float a;
-};
-
-struct color4f set_colormap(int colormap_sort, float vy, int draw_bar, float alpha);
-
#endif
-
diff --git a/Smoke/fluids.c b/Smoke/fluids.c
index 0f46d84..7614610 100644
--- a/Smoke/fluids.c
+++ b/Smoke/fluids.c
@@ -15,6 +15,7 @@
#include "glyphs.h"
#include "seedpoint.h"
#include "streamlines.h"
+#include "palette.h"
#include "funcs.h"
//--- SIMULATION PARAMETERS ------------------------------------------------------------------------
@@ -47,7 +48,7 @@ int vis_dataset = DATASET_RHO;
int mousebutton;
int mousebuttonstate;
int active_slider = 0;
-int use_glyphs = GLYPHS_OFF;
+int use_glyphs = FALSE;
int glyph_scalar = SCALAR_RHO;
int glyph_vector = VECTOR_VEL;
int glyph_sort = GLYPH_CYLINDERS;
@@ -417,6 +418,7 @@ void draw_isolines(float threshold)
float x0, y0, x1, y1, x_offset, y_offset;
int state = 0;
static int prev_state = 0;
+ struct color4f colormap;
v0 = v1 = v2 = v3 = 0.0f;
x0 = y0 = x1 = y1 = 0.0f;
@@ -431,7 +433,8 @@ void draw_isolines(float threshold)
{
state = 0;
idx = (j * DIM) + i;
- set_colormap(scalar_col, get_dataset(idx), 0, 1.0f);
+ colormap = set_colormap(scalar_col, get_dataset(idx), 1.0f);
+ glColor4f(colormap.r, colormap.g, colormap.b, 1.0f);
v0 = get_dataset(idx + DIM);
v1 = get_dataset(idx + 1 + DIM);
@@ -527,6 +530,7 @@ void render_smoke(void)
fftw_real hn = (fftw_real)winHeight / (fftw_real)(DIM + 1); // Grid cell height
static int delay = 0;
float hight_value = 0.0f;
+ struct color4f colormap;
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
@@ -547,19 +551,22 @@ void render_smoke(void)
px = wn + (fftw_real)i * wn;
py = hn + (fftw_real)(j + 1) * hn;
idx = ((j + 1) * DIM) + i;
- set_colormap(scalar_col, get_dataset(idx), FALSE, 1.0f);
+ colormap = set_colormap(scalar_col, get_dataset(idx), 1.0f);
+ glColor4f(colormap.r, colormap.g, colormap.b, 1.0f);
glVertex3f(px, py, height_array[idx]);
px = wn + (fftw_real)(i + 1) * wn;
py = hn + (fftw_real)j * hn;
idx = (j * DIM) + (i + 1);
- set_colormap(scalar_col, get_dataset(idx), FALSE, 1.0f);
+ colormap = set_colormap(scalar_col, get_dataset(idx), 1.0f);
+ glColor4f(colormap.r, colormap.g, colormap.b, 1.0f);
glVertex3f(px, py, height_array[idx]);
}
px = wn + (fftw_real)(DIM - 1) * wn;
py = hn + (fftw_real)(j + 1) * hn;
idx = ((j + 1) * DIM) + (DIM - 1);
- set_colormap(scalar_col, get_dataset(idx), FALSE, 1.0f);
+ colormap = set_colormap(scalar_col, get_dataset(idx), 1.0f);
+ glColor4f(colormap.r, colormap.g, colormap.b, 1.0f);
glVertex3f(px, py, height_array[idx]);
glEnd();
}
@@ -574,6 +581,7 @@ void visualize(void)
fftw_real hn = (fftw_real)winHeight / (fftw_real)(DIM + 1); // Grid cell height
static int delay = 0;
float hight_value = 0.0f;
+ struct color4f colormap;
glTranslatef(xPos, yPos, zPos);
@@ -581,9 +589,13 @@ void visualize(void)
{
float value, clamp_scaled_min, clamp_scaled_max, scale_scaled_min, scale_scaled_max;
+
value = (float)((float)i/winWidth);
- set_colormap(scalar_col, value, TRUE, 1.0f);
+// if (value < clamp_min) value = clamp_min;
+// if (value > clamp_max) value = clamp_max;
+ colormap = set_colormap(scalar_col, value, 1.0f);
+
clamp_scaled_min = clamp_min *winWidth;
clamp_scaled_max = clamp_max *winWidth;
@@ -601,10 +613,11 @@ void visualize(void)
glVertex2i(i +1, winHeight -6);
glVertex2i(i +1, winHeight -22);
} else {
+ glColor3f(colormap.r, colormap.g, colormap.b);
glVertex2i(i, winHeight -6);
glVertex2i(i, winHeight -18);
}
- glColor3f(0.2, 0.2, 0.2);
+ glColor4f(0.2, 0.2, 0.2, 1.0);
glVertex2i(clamp_scaled_min, winHeight -6);
glVertex2i(clamp_scaled_min, winHeight -18);
glVertex2i(clamp_scaled_max, winHeight -6);
@@ -676,30 +689,6 @@ void visualize(void)
//------ INTERACTION CODE STARTS HERE -----------------------------------------------------------------
-
-//keyboard: Handle key presses
-void keyboard(unsigned char key, int x, int y)
-{
- switch (key)
- {
- case 't': dt -= 0.001; break;
- case 'T': dt += 0.001; break;
- case 'c': color_dir = (color_dir +1) %3; break;
- case 'S': vec_scale *= 1.2f; break;
- case 's': vec_scale *= 0.8f; break;
- case 'V': visc *= 5.0f; break;
- case 'v': visc *= 0.2f; break;
- case 'y': toggle_glyph_usage(); break;
- case 'x': toggle_smoke_usage(); break;
- case 'm': scalar_col++; if (scalar_col>COLOR_OLIVER) scalar_col=COLOR_BLACKWHITE; break;
- case 'a': frozen = 1-frozen; break;
- case 'q': exit(0); break;
- case 'r': toggle_mouse_rotate(); break;
- case 'e': toggle_seed_insert(); break;
- default: break;
- }
-}
-
void click(int button, int state, int mx, int my)
{
/* First check wether we are on the top half, or bottom half of the bar, if neither then
@@ -802,14 +791,14 @@ void drag(int mx, int my)
}
}
-void zoom_in(void)
+void zoom_in(int zoom)
{
- z_pos += 20;
+ z_pos += zoom;
}
-void zoom_out(void)
+void zoom_out(int zoom)
{
- z_pos -= 20;
+ z_pos -= zoom;
}
int get_glyph_usage(void) { return use_glyphs; }
@@ -846,4 +835,4 @@ int get_glyph_sort(void)
void set_glyph_sort(int sort)
{
glyph_sort = sort;
-} \ No newline at end of file
+}
diff --git a/Smoke/fluids.h b/Smoke/fluids.h
index 8ff6cbd..33d8d08 100644
--- a/Smoke/fluids.h
+++ b/Smoke/fluids.h
@@ -1,145 +1,139 @@
-#ifndef _FLUIDS_H
-#define _FLUIDS_H
-
-#include <rfftw.h>
-#include <GL/gl.h>
-#include <GL/glu.h>
-
-//--- SIMULATION PARAMETERS ------------------------------------------------------------------------
-
-extern const int DIM; //size of simulation grid
-extern double dt; //simulation time step
-extern float visc; //fluid viscosity
-extern fftw_real *vx, *vy; //(vx,vy) = velocity field at the current moment
-extern fftw_real *vx0, *vy0; //(vx0,vy0) = velocity field at the previous moment
-extern fftw_real *fx, *fy; //(fx,fy) = user-controlled simulation forces, steered with the mouse
-extern fftw_real *rho, *rho0; //smoke density at the current (rho) and previous (rho0) moment
-extern rfftwnd_plan plan_rc, plan_cr; //simulation domain discretization
+#ifndef _FLUIDS_H
+#define _FLUIDS_H
+
+#include <rfftw.h>
+#include <GL/gl.h>
+#include <GL/glu.h>
+
+//--- SIMULATION PARAMETERS ------------------------------------------------------------------------
+
+extern const int DIM; //size of simulation grid
+extern double dt; //simulation time step
+extern float visc; //fluid viscosity
+extern fftw_real *vx, *vy; //(vx,vy) = velocity field at the current moment
+extern fftw_real *vx0, *vy0; //(vx0,vy0) = velocity field at the previous moment
+extern fftw_real *fx, *fy; //(fx,fy) = user-controlled simulation forces, steered with the mouse
+extern fftw_real *rho, *rho0; //smoke density at the current (rho) and previous (rho0) moment
+extern rfftwnd_plan plan_rc, plan_cr; //simulation domain discretization
extern fftw_real *height_array; //used for hight plot
extern int *frame_hist;
-extern int frame_index;
-
-//--- VISUALIZATION PARAMETERS ---------------------------------------------------------------------
-#define DATASET_RHO 0
-#define DATASET_VEL 1
-#define DATASET_FORCE 2
-#define DATASET_DIVV 3
-#define DATASET_DIVF 4
-
-#define COLOR_BLACKWHITE 0
-#define COLOR_RAINBOW 1
-#define COLOR_BANDS 2
-#define COLOR_BLUE_GREEN_RED 3
-#define COLOR_WILRIK 4
-#define COLOR_OLIVER 5
-
-#define MOUSE_SMOKE 0
-#define MOUSE_SCALE_MIN 1
-#define MOUSE_SCALE_MAX 2
-#define MOUSE_CLAMP_MIN 3
-#define MOUSE_CLAMP_MAX 4
-
-#define GLYPHS_OFF 0
-#define GLYPHS_ON 1
-
-#define SCALAR_RHO 0
-#define SCALAR_VEL 1
-#define SCALAR_FORCE 2
-
-#define VECTOR_VEL 0
-#define VECTOR_FORCE 1
-
-#define GLYPH_ARROWS 0
-#define GLYPH_LINES 1
-#define GLYPH_CYLINDERS 2
-#define GLYPH_SPHERES 3
-
-extern int winWidth, winHeight; //size of the graphics window, in pixels
-extern int color_dir; //use direction color-coding or not
-extern float vec_scale; //scaling of hedgehogs
-extern int draw_smoke; //draw the smoke or not
-extern int draw_vecs; //draw the vector field or not
-extern int scalar_col; //method for scalar coloring
-extern int frozen; //toggles on/off the animation
-extern float clamp_min;
-extern float clamp_max;
-extern int autoscale;
-extern float scale_min;
-extern float scale_max;
-extern int vis_dataset;
-extern int mousebutton;
-extern int mousebuttonstate;
-extern int active_slider;
-extern int use_glyphs;
-extern int glyph_scalar;
-extern int glyph_vector;
-extern int draw_options;
-
-extern float xPos;
-extern float yPos;
-extern float zPos;
-
-void init_simulation(int n);
-
-int rescale_to_winwidth(float value);
-
-void drag(int mx, int my);
-
-void click(int button, int state, int mx, int my);
-
-void keyboard(unsigned char key, int x, int y);
-
-int get_glyph_usage(void);
-
-//////////////////
-
-void init_simulation(int n);
-int rescale_to_winwidth(float value);
-void FFT(int direction,void* vx);
-int clamp(float x);
-void solve(int n, fftw_real* vx, fftw_real* vy, fftw_real* vx0, fftw_real* vy0, fftw_real visc, fftw_real dt);
-void diffuse_matter(int n, fftw_real *vx, fftw_real *vy, fftw_real *rho, fftw_real *rho0, fftw_real dt);
-void set_forces(void);
-void calculate_hight_plot(void);
-void copy_frame(void);
-void calculate_one_simulation_step(void);
-float remap(float value);
-void direction_to_color(float x, float y, int method);
-float get_dataset(int index);
-void set_autoscaling(void);
-void draw_isolines(float threshold);
-void visualize(void);
-void keyboard(unsigned char key, int x, int y);
-void click(int button, int state, int mx, int my);
-void mouse_rotate(int mx, int my);
-void drag(int mx, int my);
-
-//////////////////
-
-void zoom_in(void);
-void zoom_out(void);
-int get_glyph_usage(void);
-void selectColor(int arg);
-void select_dataset(int arg);
-void toggle_autoscale(void);
-void toggle_clamping(void);
-void show_options(void);
-void toggle_glyph_usage(void);
-void toggle_smoke_usage(void);
-void toggle_mouse_rotate(void);
-void toggle_seed_insert(void);
-void set_glyph_scalar(int arg);
-void set_glyph_vector(int arg);
-
-int get_var_dims(void);
-void set_var_dims(int);
-int get_glyph_sort(void);
-void set_glyph_sort(int sort);
-
-struct point {
- float x;
- float y;
- float z;
-};
-
+extern int frame_index;
+
+//--- VISUALIZATION PARAMETERS ---------------------------------------------------------------------
+#define DATASET_RHO 0
+#define DATASET_VEL 1
+#define DATASET_FORCE 2
+#define DATASET_DIVV 3
+#define DATASET_DIVF 4
+
+#define MOUSE_SMOKE 0
+#define MOUSE_SCALE_MIN 1
+#define MOUSE_SCALE_MAX 2
+#define MOUSE_CLAMP_MIN 3
+#define MOUSE_CLAMP_MAX 4
+
+#define SCALAR_RHO 0
+#define SCALAR_VEL 1
+#define SCALAR_FORCE 2
+
+#define VECTOR_VEL 0
+#define VECTOR_FORCE 1
+
+#define GLYPH_ARROWS 0
+#define GLYPH_LINES 1
+#define GLYPH_CYLINDERS 2
+#define GLYPH_SPHERES 3
+
+extern int winWidth, winHeight; //size of the graphics window, in pixels
+extern int color_dir; //use direction color-coding or not
+extern float vec_scale; //scaling of hedgehogs
+extern int draw_smoke; //draw the smoke or not
+extern int draw_vecs; //draw the vector field or not
+extern int scalar_col; //method for scalar coloring
+extern int frozen; //toggles on/off the animation
+extern float clamp_min;
+extern float clamp_max;
+extern int autoscale;
+extern float scale_min;
+extern float scale_max;
+extern int vis_dataset;
+extern int mousebutton;
+extern int mousebuttonstate;
+extern int active_slider;
+extern int use_glyphs;
+extern int glyph_scalar;
+extern int glyph_vector;
+extern int draw_options;
+
+extern float xPos;
+extern float yPos;
+extern float zPos;
+
+void init_simulation(int n);
+
+void visualize(void);
+
+int rescale_to_winwidth(float value);
+
+void drag(int mx, int my);
+
+void click(int button, int state, int mx, int my);
+
+void keyboard(unsigned char key, int x, int y);
+
+void calculate_one_simulation_step(void);
+
+int get_glyph_usage(void);
+
+//////////////////
+
+void init_simulation(int n);
+int rescale_to_winwidth(float value);
+void FFT(int direction,void* vx);
+int clamp(float x);
+void solve(int n, fftw_real* vx, fftw_real* vy, fftw_real* vx0, fftw_real* vy0, fftw_real visc, fftw_real dt);
+void diffuse_matter(int n, fftw_real *vx, fftw_real *vy, fftw_real *rho, fftw_real *rho0, fftw_real dt);
+void set_forces(void);
+void calculate_hight_plot(void);
+void copy_frame(void);
+void calculate_one_simulation_step(void);;
+float remap(float value);
+void direction_to_color(float x, float y, int method);
+float get_dataset(int index);
+void set_autoscaling(void);
+void draw_isolines(float threshold);
+void visualize(void);
+void keyboard(unsigned char key, int x, int y);
+void click(int button, int state, int mx, int my);
+void mouse_rotate(int mx, int my);
+void drag(int mx, int my);
+
+//////////////////
+
+void zoom_in(int zoom);
+void zoom_out(int zoom);
+int get_glyph_usage(void);
+void selectColor(int arg);
+void select_dataset(int arg);
+void toggle_autoscale(void);
+void toggle_clamping(void);
+void show_options(void);
+void toggle_glyph_usage(void);
+void toggle_smoke_usage(void);
+void toggle_mouse_rotate(void);
+void toggle_seed_insert(void);
+void set_glyph_scalar(int arg);
+void set_glyph_vector(int arg);
+
+int get_var_dims(void);
+void set_var_dims(int);
+int get_glyph_sort(void);
+void set_glyph_sort(int sort);
+
+struct point {
+ float x;
+ float y;
+ float z;
+};
+
#endif
diff --git a/Smoke/funcs.h b/Smoke/funcs.h
index f5720a1..38101f2 100644
--- a/Smoke/funcs.h
+++ b/Smoke/funcs.h
@@ -1,8 +1,12 @@
#ifndef _FUNCS_H
#define _FUNCS_H
+#ifndef G_OS_WIN32
+#define WIN32_LEAN_AND_MEAN 1
#define max(a, b) (a > b ? a : b)
#define min(a, b) (a < b ? a : b)
+#endif
+
#define round(x) (int)(x < 0 ? x - 0.5 : x + 0.5)
#define FALSE 0
diff --git a/Smoke/glut.c b/Smoke/glut.c
index 3aebabd..156b189 100644
--- a/Smoke/glut.c
+++ b/Smoke/glut.c
@@ -5,6 +5,7 @@
#include <rfftw.h> //the numerical simulation FFTW library
#include "fluids.h"
+#include "palette.h"
#define FALSE 0
#define TRUE !FALSE
@@ -97,6 +98,28 @@ void setup_menu(void) {
glutAttachMenu(GLUT_RIGHT_BUTTON);
}
+//keyboard: Handle key presses
+void keyboard(unsigned char key, int x, int y)
+{
+ switch (key)
+ {
+ case 't': dt -= 0.001; break;
+ case 'T': dt += 0.001; break;
+ case 'c': color_dir = (color_dir +1) %3; break;
+ case 'S': vec_scale *= 1.2f; break;
+ case 's': vec_scale *= 0.8f; break;
+ case 'V': visc *= 5.0f; break;
+ case 'v': visc *= 0.2f; break;
+ case 'y': toggle_glyph_usage(); break;
+ case 'x': toggle_smoke_usage(); break;
+ case 'm': scalar_col++; if (scalar_col>COLOR_OLIVER) scalar_col=COLOR_BLACKWHITE; break;
+ case 'a': frozen = 1-frozen; break;
+ case 'q': exit(0); break;
+ case 'r': toggle_mouse_rotate(); break;
+ case 'e': toggle_seed_insert(); break;
+ default: break;
+ }
+}
//main: The main program
int main(int argc, char **argv)
diff --git a/Smoke/glyphs.c b/Smoke/glyphs.c
index 751179e..bdebe45 100644
--- a/Smoke/glyphs.c
+++ b/Smoke/glyphs.c
@@ -114,6 +114,7 @@ void draw_glyphs(void)
int i, j, idx;
float value, scale, idxcf, idxrf;
+#if 0
if (use_glyphs)
{
scale = (float)((float)DIM / (float)get_var_dims());
@@ -156,4 +157,5 @@ void draw_glyphs(void)
}
}
}
+#endif
}
diff --git a/Smoke/gtk.c b/Smoke/gtk.c
index a44ed8f..030a9bb 100644
--- a/Smoke/gtk.c
+++ b/Smoke/gtk.c
@@ -48,6 +48,7 @@
#include <rfftw.h> //the numerical simulation FFTW library
#include "fluids.h"
+#include "palette.h"
#include "seedpoint.h"
@@ -292,9 +293,9 @@ scroll_event (GtkWidget *widget,
//g_print ("%s: \"scroll_event\": ", gtk_widget_get_name (widget));
//if (event->state == GDK_ALT) {
if (event->direction == GDK_SCROLL_UP) {
- zoom_in();
+ zoom_in(30);
} else if (event->direction == GDK_SCROLL_DOWN) {
- zoom_out();
+ zoom_out(30);
}
return FALSE;
@@ -597,6 +598,15 @@ void show_settings(GtkWidget *notebook)
}
#endif
+static gboolean
+select_colormap (GtkComboBox *combo,
+ gpointer data) {
+
+ g_print("combo: %d\n", gtk_combo_box_get_active(combo));
+ selectColor(gtk_combo_box_get_active(combo));
+}
+
+
/*
* Draw main notebook page
*/
@@ -662,15 +672,6 @@ GtkWidget *create_main_page(void)
return page;
}
-static gboolean
-select_colormap (GtkComboBox *combo,
- gpointer data) {
-
- g_print("combo: %d\n", gtk_combo_box_get_active(combo));
- selectColor(gtk_combo_box_get_active(combo));
-}
-
-
/*
* Draw colormap notebook page
@@ -861,6 +862,16 @@ GtkWidget *create_stream_tubes_page(void)
return page;
}
+GtkWidget *create_animated_textures_page(void)
+{
+ int i, max;
+ GtkWidget *page;
+
+ page = gtk_vbox_new(FALSE, 0);
+
+ return page;
+}
+
/***
*** Creates the simple application window with one
*** drawing area that has an OpenGL-capable visual.
@@ -1043,6 +1054,14 @@ create_window (GdkGLConfig *glconfig)
gtk_notebook_append_page(GTK_NOTEBOOK(settings_notebook), notebook_page, notebook_page_label);
+ notebook_page_label = gtk_label_new("Animated Textures");
+ gtk_widget_show(notebook_page_label);
+
+ notebook_page = create_animated_textures_page();
+ gtk_widget_show(notebook_page);
+
+ gtk_notebook_append_page(GTK_NOTEBOOK(settings_notebook), notebook_page, notebook_page_label);
+
return window;
}
@@ -1092,6 +1111,9 @@ main (int argc,
{
GtkWidget *window;
GdkGLConfig *glconfig;
+ int i;
+ struct color4f colormap;
+ float value;
/* Initialize GTK. */
gtk_init (&argc, &argv);
@@ -1110,6 +1132,13 @@ main (int argc,
gtk_main ();
+ printf("Colormap RGB: %lf, %lf, %lf\n", 0.2, 0.44, 0.666);
+ for (i = 0; i < 200; i++) {
+ value = (float)((float)i/200);
+ colormap = set_colormap(0, value, 1.0f);
+ printf("Colormap RGB: %lf, %lf, %lf\n", colormap.r, colormap.b, colormap.g);
+ }
+
return 0;
}
diff --git a/Smoke/smoke.bin b/Smoke/smoke.bin
index 8795061..cbd31a4 100755
--- a/Smoke/smoke.bin
+++ b/Smoke/smoke.bin
Binary files differ
diff --git a/Smoke/streamlines.c b/Smoke/streamlines.c
index 2dc7714..fb580fc 100644
--- a/Smoke/streamlines.c
+++ b/Smoke/streamlines.c
@@ -40,4 +40,4 @@ void render_streamlines(void)
j++;
}
}
-} \ No newline at end of file
+}