summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOliver Schinagl <oliver@schinagl.nl>2007-12-17 19:48:37 (GMT)
committerOliver Schinagl <oliver@schinagl.nl>2007-12-17 19:48:37 (GMT)
commit9363bc6887a7ffb9ea6c0f6a63a93c215e227502 (patch)
treedc5f962bdcc413a5bd4bff4d85c7842522a73fb3
parent1d771540b16ba07cb02be5490892465a2a5ab89a (diff)
download2iv35-9363bc6887a7ffb9ea6c0f6a63a93c215e227502.zip
2iv35-9363bc6887a7ffb9ea6c0f6a63a93c215e227502.tar.gz
2iv35-9363bc6887a7ffb9ea6c0f6a63a93c215e227502.tar.bz2
Added/splitted colormaps to a seperate file.
-rw-r--r--Smoke/Makefile7
-rw-r--r--Smoke/colormap.c131
-rw-r--r--Smoke/colormap.h28
-rw-r--r--Smoke/fluids.c153
-rw-r--r--Smoke/fluids.h5
-rw-r--r--Smoke/glut.c3
-rw-r--r--Smoke/gtk.c73
-rw-r--r--Smoke/gtk_colormap.c117
-rw-r--r--Smoke/gtk_colormap.h6
-rw-r--r--Smoke/palette.c45
-rw-r--r--Smoke/palette.h2
-rwxr-xr-xSmoke/smoke.binbin597364 -> 603879 bytes
12 files changed, 392 insertions, 178 deletions
diff --git a/Smoke/Makefile b/Smoke/Makefile
index 0c14305..b5252f5 100644
--- a/Smoke/Makefile
+++ b/Smoke/Makefile
@@ -3,10 +3,10 @@
CPP = g++
CC = gcc
-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_GTK = gtk.o gtk_colormap.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)
+LINKOBJ_GTK = fluids.o colormap.o glyphs.o seedpoint.o streamlines.o palette.o funcs.o gtk_colormap.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
@@ -38,6 +38,9 @@ gtk: $(OBJ_GTK)
gtk.o: gtk.c
$(CC) -c gtk.c -o gtk.o $(CFLAGS)
+gtk_colormap.o: gtk_colormap.c
+ $(CC) -c gtk_colormap.c -o gtk_colormap.o $(CFLAGS)
+
glut.o: glut.c
$(CC) -c glut.c -o glut.o $(CFLAGS)
diff --git a/Smoke/colormap.c b/Smoke/colormap.c
index 4fafe53..6cacb1b 100644
--- a/Smoke/colormap.c
+++ b/Smoke/colormap.c
@@ -3,12 +3,131 @@
#include <windows.h>
#endif
+#include "palette.h"
#include "colormap.h"
+#include "funcs.h"
+static int colormap_num_colors = COLOR_MAXCOLORS;
-#if 0
- if (autoscale)
- {
- vy = remap(vy);
- }
-#endif
+static int colormap = COLOR_BLACKWHITE;
+
+static int colormap_scaling = FALSE;
+
+static int colormap_clamping = FALSE;
+
+static float scale_min = 0.0f;
+
+static float scale_max = 1.0f;
+
+static float clamp_min = 0.0f;
+
+static float clamp_max = 0.9999f;
+
+
+
+void colormap_set_num_colors(int num_colors)
+{
+ colormap_num_colors = num_colors;
+}
+
+void colormap_set_map(int color_map)
+{
+ colormap = color_map;
+}
+
+void colormap_set_scaling(int scaling)
+{
+ colormap_scaling = scaling;
+}
+
+int colormap_get_scaling(void)
+{
+ return colormap_scaling;
+}
+
+void colormap_set_clamping(int clamping)
+{
+ colormap_clamping = clamping;
+}
+
+int colormap_get_clamping(void)
+{
+ return colormap_clamping;
+}
+
+void colormap_set_scale_min(float min_scale)
+{
+ if (colormap_scaling) {
+ scale_min = min_scale;
+ }
+}
+
+float colormap_get_scale_min(void)
+{
+ return scale_min;
+}
+
+void colormap_set_scale_max(float max_scale)
+{
+ if (colormap_scaling) {
+ scale_max = max_scale;
+ }
+}
+
+float colormap_get_scale_max(void)
+{
+ return scale_max;
+}
+
+void colormap_set_clamp_min(float min_clamp)
+{
+ if (colormap_clamping) {
+ clamp_min = min_clamp;
+ }
+}
+
+float colormap_get_clamp_min(void)
+{
+ return clamp_min;
+}
+
+void colormap_set_clamp_max(float max_clamp)
+{
+ if (colormap_clamping) {
+ clamp_max = max_clamp;
+ }
+}
+
+float colormap_get_clamp_max(void)
+{
+ return clamp_max;
+}
+
+
+static float remap(float value)
+{
+ value -= scale_min;
+ value /= (scale_max - scale_min);
+
+ return value;
+}
+
+static float clamp(float value)
+{
+ if (value < clamp_min) value = clamp_min;
+ if (value > clamp_max) value = clamp_max;
+
+ return value;
+}
+
+struct color4f colormap_get_color(float value)
+{
+ struct color4f return_value;
+
+ value = colormap_clamping ? clamp(value) : value;
+ value = colormap_scaling ? remap(value) : value;
+
+ return_value = set_palette(colormap, value, colormap_num_colors);
+
+ return return_value;
+}
diff --git a/Smoke/colormap.h b/Smoke/colormap.h
index cc24274..c0001ad 100644
--- a/Smoke/colormap.h
+++ b/Smoke/colormap.h
@@ -1,4 +1,32 @@
#ifndef _COLORMAP_H
#define _COLORMAP_H
+#define COLOR_MAXCOLORS 256
+
+void colormap_set_num_colors(int num_colors);
+
+void colormap_set_map(int color_map);
+
+void colormap_set_scaling(int scaling);
+int colormap_get_scaling(void);
+
+void colormap_set_clamping(int clamping);
+int colormap_get_clamping(void);
+
+
+void colormap_set_scale_min(float min_scale);
+float colormap_get_scale_min(void);
+
+void colormap_set_scale_max(float max_scale);
+float colormap_get_scale_max(void);
+
+void colormap_set_clamp_min(float min_clamp);
+float colormap_get_clamp_min(void);
+
+void colormap_set_clamp_max(float max_clamp);
+float colormap_get_clamp_max(void);
+
+
+struct color4f colormap_get_color(float value);
+
#endif
diff --git a/Smoke/fluids.c b/Smoke/fluids.c
index 7614610..59984aa 100644
--- a/Smoke/fluids.c
+++ b/Smoke/fluids.c
@@ -11,11 +11,11 @@
#include <stdio.h>
#include "fluids.h"
+#include "palette.h"
#include "colormap.h"
#include "glyphs.h"
#include "seedpoint.h"
#include "streamlines.h"
-#include "palette.h"
#include "funcs.h"
//--- SIMULATION PARAMETERS ------------------------------------------------------------------------
@@ -39,11 +39,6 @@ int draw_smoke = 0; //draw the smoke or not
int draw_vecs = 1; //draw the vector field or not
int scalar_col = 0; //method for scalar coloring
int frozen = 0; //toggles on/off the animation
-float clamp_min = 0;
-float clamp_max = 0.9999f;
-int autoscale = FALSE;
-float scale_min = 0;
-float scale_max = 1;
int vis_dataset = DATASET_RHO;
int mousebutton;
int mousebuttonstate;
@@ -52,7 +47,6 @@ int use_glyphs = FALSE;
int glyph_scalar = SCALAR_RHO;
int glyph_vector = VECTOR_VEL;
int glyph_sort = GLYPH_CYLINDERS;
-int draw_options = FALSE;
GLuint startList;
float threshold1 = 0.2f;
float threshold2 = 2.0f;
@@ -309,15 +303,6 @@ void calculate_one_simulation_step(void)
//------ VISUALIZATION CODE STARTS HERE -----------------------------------------------------------------
-float remap(float value)
-{
- value -= scale_min;
- value /= (scale_max - scale_min);
-
- return value;
-}
-
-
//direction_to_color: Set the current color by mapping a direction vector (x,y), using
// the color mapping method 'method'. If method==1, map the vector direction
// using a rainbow colormap. If method==0, simply use the white color
@@ -390,16 +375,18 @@ float get_dataset(int index)
void set_autoscaling(void)
{
int k;
- float value;
+ float value, scale_min, scale_max;
scale_min = scale_max = get_dataset(0);
+ colormap_set_scale_min(scale_min);
+ colormap_set_scale_max(scale_max);
for (k = 1; k < DIM * DIM; k++)
{
value = get_dataset(k);
- if (scale_min > value) { scale_min = value; }
- if (scale_max < value) { scale_max = value; }
+ if (scale_min > value) { colormap_set_scale_min(value); }
+ if (scale_max < value) { colormap_set_scale_max(value); }
}
//threshold = (scale_min + scale_max) / 2;
@@ -433,7 +420,7 @@ void draw_isolines(float threshold)
{
state = 0;
idx = (j * DIM) + i;
- colormap = set_colormap(scalar_col, get_dataset(idx), 1.0f);
+ colormap = set_palette(scalar_col, get_dataset(idx), 5);
glColor4f(colormap.r, colormap.g, colormap.b, 1.0f);
v0 = get_dataset(idx + DIM);
@@ -524,13 +511,10 @@ void draw_isolines(float threshold)
void render_smoke(void)
{
- static float fadein = 0;
int i, j, idx; double px,py;
fftw_real wn = (fftw_real)winWidth / (fftw_real)(DIM + 1); // Grid cell width
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;
+ struct color4f color;
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
@@ -551,59 +535,63 @@ void render_smoke(void)
px = wn + (fftw_real)i * wn;
py = hn + (fftw_real)(j + 1) * hn;
idx = ((j + 1) * DIM) + i;
- colormap = set_colormap(scalar_col, get_dataset(idx), 1.0f);
- glColor4f(colormap.r, colormap.g, colormap.b, 1.0f);
+ color = colormap_get_color(get_dataset(idx));
+ glColor4f(color.r, color.g, color.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);
- colormap = set_colormap(scalar_col, get_dataset(idx), 1.0f);
- glColor4f(colormap.r, colormap.g, colormap.b, 1.0f);
+ color = colormap_get_color(get_dataset(idx));
+ glColor4f(color.r, color.g, color.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);
- colormap = set_colormap(scalar_col, get_dataset(idx), 1.0f);
- glColor4f(colormap.r, colormap.g, colormap.b, 1.0f);
+ color = colormap_get_color(get_dataset(idx));
+ glColor4f(color.r, color.g, color.b, 1.0f);
glVertex3f(px, py, height_array[idx]);
glEnd();
}
}
-//visualize: This is the main visualization function
-void visualize(void)
+void render_legend(void)
{
- static float fadein = 0;
- int i, j, idx; double px,py;
- fftw_real wn = (fftw_real)winWidth / (fftw_real)(DIM + 1); // Grid cell width
- 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);
+ int i;
+ struct color4f color;
- for (i = 0; i < winWidth; i++)
+ for (i = 0; i < winWidth; i++)
{
float value, clamp_scaled_min, clamp_scaled_max, scale_scaled_min, scale_scaled_max;
value = (float)((float)i/winWidth);
-// if (value < clamp_min) value = clamp_min;
-// if (value > clamp_max) value = clamp_max;
- colormap = set_colormap(scalar_col, value, 1.0f);
+ color = colormap_get_color(value);
- clamp_scaled_min = clamp_min *winWidth;
- clamp_scaled_max = clamp_max *winWidth;
+ clamp_scaled_min = colormap_get_clamp_min() *winWidth;
+ clamp_scaled_max = colormap_get_clamp_max() *winWidth;
- scale_scaled_min = scale_min *winWidth;
- scale_scaled_max = scale_max *winWidth;
+ scale_scaled_min = colormap_get_scale_min() *winWidth;
+ scale_scaled_max = colormap_get_scale_max() *winWidth;
glBegin(GL_LINES);
+ if (colormap_get_scaling()) {
+ glColor3f(1, 0, 0);
+ glVertex2i(scale_scaled_min, winHeight -4);
+ glVertex2i(scale_scaled_min, winHeight -18);
+ glVertex2i(scale_scaled_max, winHeight -4);
+ glVertex2i(scale_scaled_max, winHeight -18);
+ }
+ if (colormap_get_clamping()) {
+ 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);
+ glVertex2i(clamp_scaled_max, winHeight -18);
+ }
if (!(i %20)) {
glColor3f(0.7, 0.7, 0.7);
glVertex2i(i -1, winHeight -6);
@@ -613,33 +601,14 @@ void visualize(void)
glVertex2i(i +1, winHeight -6);
glVertex2i(i +1, winHeight -22);
} else {
- glColor3f(colormap.r, colormap.g, colormap.b);
+ glColor3f(color.r, color.g, color.b);
glVertex2i(i, winHeight -6);
glVertex2i(i, winHeight -18);
}
- 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);
- glVertex2i(clamp_scaled_max, winHeight -18);
- if (autoscale) {
- glColor3f(1, 0, 0);
- glVertex2i(scale_scaled_min, winHeight -4);
- glVertex2i(scale_scaled_min, winHeight -18);
- glVertex2i(scale_scaled_max, winHeight -4);
- glVertex2i(scale_scaled_max, winHeight -18);
- }
glEnd();
glBegin(GL_TRIANGLES);
- glColor3f(0.9, 0.9, 0.9);
- glVertex2i(clamp_scaled_min, winHeight -18);
- glVertex2i(clamp_scaled_min -4, winHeight -25);
- glVertex2i(clamp_scaled_min +4, winHeight -25);
- glVertex2i(clamp_scaled_max, winHeight -18);
- glVertex2i(clamp_scaled_max -4, winHeight -25);
- glVertex2i(clamp_scaled_max +4, winHeight -25);
- if (autoscale) {
+ if (colormap_get_scaling()) {
glColor3f(1, 0, 0);
glVertex2i(scale_scaled_min, winHeight -6);
glVertex2i(scale_scaled_min -4, winHeight);
@@ -648,8 +617,28 @@ void visualize(void)
glVertex2i(scale_scaled_max -4, winHeight);
glVertex2i(scale_scaled_max +4, winHeight);
}
+ if (colormap_get_clamping()) {
+ glColor3f(0.9, 0.9, 0.9);
+ glVertex2i(clamp_scaled_min, winHeight -18);
+ glVertex2i(clamp_scaled_min -4, winHeight -25);
+ glVertex2i(clamp_scaled_min +4, winHeight -25);
+ glVertex2i(clamp_scaled_max, winHeight -18);
+ glVertex2i(clamp_scaled_max -4, winHeight -25);
+ glVertex2i(clamp_scaled_max +4, winHeight -25);
+ }
glEnd();
}
+}
+
+//visualize: This is the main visualization function
+void visualize(void)
+{
+ fftw_real wn = (fftw_real)winWidth / (fftw_real)(DIM + 1); // Grid cell width
+ fftw_real hn = (fftw_real)winHeight / (fftw_real)(DIM + 1); // Grid cell height
+
+ glTranslatef(xPos, yPos, zPos);
+
+ render_legend();
// Rotate field
glLoadIdentity();
@@ -707,20 +696,25 @@ void click(int button, int state, int mx, int my)
if (my <25) {
/* Click received on button bar */
+ float min, max;
if (my <13) {
/* Upper half */
/* check wether mx is min or max slider */
- if (mx <(rescale_to_winwidth(scale_min +((scale_max - scale_min) /2)))) {
+ min = colormap_get_scale_min();
+ max = colormap_get_scale_max();
+ if (mx <(rescale_to_winwidth(min +((max - min) /2)))) {
active_slider = MOUSE_SCALE_MIN;
- } else if (mx >(rescale_to_winwidth(scale_max -((scale_max - scale_min) /2)))) {
+ } else if (mx >(rescale_to_winwidth(max -((max - min) /2)))) {
active_slider = MOUSE_SCALE_MAX;
}
} else {
/* Bottom half */
+ min = colormap_get_clamp_min();
+ max = colormap_get_clamp_max();
/* check wether mx is min or max slider */
- if (mx <(rescale_to_winwidth(clamp_min +((clamp_max - clamp_min) /2)))) {
+ if (mx <(rescale_to_winwidth(min +((max - min) /2)))) {
active_slider = MOUSE_CLAMP_MIN;
- } else if (mx >(rescale_to_winwidth(clamp_max -((clamp_max - clamp_min) /2)))) {
+ } else if (mx >(rescale_to_winwidth(max -((max - min) /2)))) {
active_slider = MOUSE_CLAMP_MAX;
}
}
@@ -773,16 +767,16 @@ void drag(int mx, int my)
} else {
switch (active_slider) {
case MOUSE_SCALE_MIN:
- scale_min = (float)mx /winWidth;
+ colormap_set_scale_min((float)mx /winWidth);
break;
case MOUSE_SCALE_MAX:
- scale_max = (float)mx /winWidth;
+ colormap_set_scale_max((float)mx /winWidth);
break;
case MOUSE_CLAMP_MIN:
- clamp_min = (float)mx /winWidth;
+ colormap_set_clamp_min((float)mx /winWidth);
break;
case MOUSE_CLAMP_MAX:
- clamp_max = (float)mx /winWidth;
+ colormap_set_clamp_max((float)mx /winWidth);
break;
case MOUSE_SMOKE:
default:
@@ -805,9 +799,6 @@ int get_glyph_usage(void) { return use_glyphs; }
void selectColor(int arg) { scalar_col = arg; }
void select_dataset(int arg) { vis_dataset = arg; }
-void toggle_autoscale(void) { autoscale = (autoscale) ? FALSE : TRUE ; }
-void toggle_clamping(void) { }
-void show_options(void) { draw_options = (draw_options) ? FALSE : TRUE; }
void toggle_glyph_usage(void) { use_glyphs = (use_glyphs) ? FALSE : TRUE; }
void toggle_smoke_usage(void) { draw_smoke = (draw_smoke) ? FALSE : TRUE; }
void toggle_mouse_rotate(void) { rotate_plane = (rotate_plane) ? FALSE : TRUE; }
diff --git a/Smoke/fluids.h b/Smoke/fluids.h
index 33d8d08..ffec3a2 100644
--- a/Smoke/fluids.h
+++ b/Smoke/fluids.h
@@ -51,11 +51,7 @@ 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;
@@ -63,7 +59,6 @@ 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;
diff --git a/Smoke/glut.c b/Smoke/glut.c
index 156b189..fcdaadd 100644
--- a/Smoke/glut.c
+++ b/Smoke/glut.c
@@ -6,6 +6,7 @@
#include "fluids.h"
#include "palette.h"
+#include "colormap.h"
#define FALSE 0
#define TRUE !FALSE
@@ -69,7 +70,7 @@ void setup_menu(void) {
glutAddSubMenu("Choose scalar field", submenu_glyphs_scalar);
glutAddSubMenu("Choose vector field", submenu_glyphs_vector);
- submenu_oliverscolor = glutCreateMenu(selectOliverscolor);
+ submenu_oliverscolor = glutCreateMenu(colormap_set_num_colors);
glutAddMenuEntry("0", 0);
glutAddMenuEntry("1", 1);
glutAddMenuEntry("2", 2);
diff --git a/Smoke/gtk.c b/Smoke/gtk.c
index 030a9bb..474ebb6 100644
--- a/Smoke/gtk.c
+++ b/Smoke/gtk.c
@@ -51,6 +51,7 @@
#include "palette.h"
#include "seedpoint.h"
+#include "gtk_colormap.h"
/**************************************************************************
* The following section contains all the macro definitions.
@@ -65,7 +66,7 @@
#define DEFAULT_HEIGHT 600
#define DEFAULT_TITLE "2iv35 \"Smoke\" by Wilrik & Oliver"
-#define TIMEOUT_INTERVAL 10
+#define TIMEOUT_INTERVAL 20
/**************************************************************************
@@ -598,15 +599,13 @@ void show_settings(GtkWidget *notebook)
}
#endif
-static gboolean
-select_colormap (GtkComboBox *combo,
- gpointer data) {
+static gboolean
+select_palette(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
*/
@@ -618,6 +617,7 @@ GtkWidget *create_main_page(void)
GtkWidget *frame;
GtkWidget *box;
GtkWidget *button;
+ GtkWidget *combo;
GSList *dataset_group;
page = gtk_vbox_new(FALSE, 0);
@@ -668,51 +668,7 @@ GtkWidget *create_main_page(void)
gtk_box_pack_start (GTK_BOX(page), frame, FALSE, TRUE, 0);
gtk_widget_show(frame);
-
- return page;
-}
-
-
-/*
- * Draw colormap notebook page
- */
-GtkWidget *create_colormap_page(void)
-{
- /* in reality a page is really just a vbox filled with other widgets
- */
- GtkWidget *page;
- GtkWidget *frame;
- GtkWidget *box;
- GtkWidget *button;
- GtkWidget *combo;
-
- page = gtk_vbox_new(FALSE, 0);
-
- frame = gtk_frame_new("Scaling & Clamping");
-
- box = gtk_vbox_new(FALSE, 0);
-
- button = gtk_check_button_new_with_label("Scaling");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), FALSE);
- g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(toggle_autoscale), NULL);
- gtk_box_pack_start(GTK_BOX(box), button, TRUE, TRUE, 0);
- gtk_widget_show(button);
-
- button = gtk_check_button_new_with_label("Clamping");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), FALSE);
- g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(toggle_clamping), NULL);
- gtk_box_pack_start(GTK_BOX(box), button, TRUE, TRUE, 0);
- gtk_widget_show(button);
-
- gtk_container_add(GTK_CONTAINER(frame), box);
- gtk_widget_show(box);
-
- gtk_box_pack_start (GTK_BOX(page), frame, FALSE, TRUE, 0);
-
- gtk_widget_show(frame);
-
-
- frame = gtk_frame_new("Colormap");
+ frame = gtk_frame_new("Colormap");
box = gtk_hbox_new(FALSE, 0);
@@ -725,7 +681,7 @@ GtkWidget *create_colormap_page(void)
gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "Oliver");
g_signal_connect(combo, "changed",
- G_CALLBACK(select_colormap), (gpointer)NULL);
+ G_CALLBACK(select_palette), (gpointer)NULL);
gtk_combo_box_set_active(GTK_COMBO_BOX(combo), 0);
@@ -739,7 +695,6 @@ GtkWidget *create_colormap_page(void)
gtk_widget_show(frame);
-
return page;
}
@@ -1130,14 +1085,14 @@ main (int argc,
init_simulation(DIM);
- gtk_main ();
+ 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);
- }
+// 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_palette(0, value, 6);
+// printf("Colormap RGB: %lf, %lf, %lf\n", colormap.r, colormap.b, colormap.g);
+// }
return 0;
}
diff --git a/Smoke/gtk_colormap.c b/Smoke/gtk_colormap.c
new file mode 100644
index 0000000..802ad28
--- /dev/null
+++ b/Smoke/gtk_colormap.c
@@ -0,0 +1,117 @@
+#include <gtk/gtk.h>
+
+#include "gtk_colormap.h"
+#include "colormap.h"
+
+
+static gboolean select_colormap(GtkComboBox *combo, gpointer data)
+{
+ colormap_set_map(gtk_combo_box_get_active(combo));
+}
+
+
+static gboolean select_num_colors(GtkRange *adjustment, gpointer data)
+{
+ colormap_set_num_colors((int)gtk_range_get_value(adjustment));
+}
+
+static gboolean set_scaling(GtkWidget *button, gpointer data) {
+ colormap_set_scaling(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)));
+}
+
+static gboolean set_clamping(GtkWidget *button, gpointer data) {
+ colormap_set_clamping(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)));
+}
+
+
+GtkWidget *create_colormap_page(void)
+{
+ /* in reality a page is really just a vbox filled with other widgets
+ */
+ GtkWidget *page;
+ GtkWidget *frame;
+ GtkWidget *box;
+ GtkWidget *label;
+ GtkWidget *button;
+ GtkWidget *combo;
+ GtkAdjustment *color_adjustment;
+ GtkWidget *color_scale;
+
+ page = gtk_vbox_new(FALSE, 0);
+
+ frame = gtk_frame_new("Scaling & Clamping");
+
+ box = gtk_vbox_new(FALSE, 0);
+
+ button = gtk_check_button_new_with_label("Scaling");
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), FALSE);
+ g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(set_scaling), NULL);
+ gtk_box_pack_start(GTK_BOX(box), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ button = gtk_check_button_new_with_label("Clamping");
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), FALSE);
+ g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(set_clamping), NULL);
+ gtk_box_pack_start(GTK_BOX(box), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ gtk_container_add(GTK_CONTAINER(frame), box);
+ gtk_widget_show(box);
+
+ gtk_box_pack_start (GTK_BOX(page), frame, FALSE, TRUE, 0);
+
+ gtk_widget_show(frame);
+
+
+ frame = gtk_frame_new("Colors");
+
+ box = gtk_vbox_new(FALSE, 0);
+
+
+ label = gtk_label_new("Colormap");
+
+ gtk_box_pack_start(GTK_BOX(box), label, FALSE, TRUE, 0);
+ gtk_widget_show(label);
+
+
+ combo = gtk_combo_box_new_text();
+
+ gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "Black & White");
+ gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "Rainbow");
+ gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "Bands");
+ gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "Wilrik");
+ gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "Oliver");
+
+ gtk_combo_box_set_active(GTK_COMBO_BOX(combo), 0);
+ g_signal_connect(combo, "changed", G_CALLBACK(select_colormap), (gpointer)NULL);
+
+ gtk_box_pack_start(GTK_BOX(box), combo, FALSE, TRUE, 0);
+ gtk_widget_show(combo);
+
+
+ label = gtk_label_new("Number of Colors");
+
+ gtk_box_pack_start(GTK_BOX(box), label, FALSE, TRUE, 0);
+ gtk_widget_show(label);
+
+
+ color_adjustment = GTK_ADJUSTMENT(gtk_adjustment_new(
+ COLOR_MAXCOLORS, 1, COLOR_MAXCOLORS +1, 0.5, 5, 1));
+ color_scale = gtk_hscale_new(color_adjustment);
+ gtk_scale_set_digits(GTK_SCALE(color_scale), 0);
+ g_signal_connect(GTK_RANGE(color_scale), "value-changed", G_CALLBACK(select_num_colors), NULL);
+
+ gtk_box_pack_start(GTK_BOX(box), color_scale, FALSE, TRUE, 0);
+ gtk_widget_show(color_scale);
+
+
+ gtk_container_add(GTK_CONTAINER(frame), box);
+ gtk_widget_show(box);
+
+ gtk_box_pack_start(GTK_BOX(page), frame, FALSE, TRUE, 0);
+
+ gtk_widget_show(frame);
+
+
+ return page;
+}
diff --git a/Smoke/gtk_colormap.h b/Smoke/gtk_colormap.h
new file mode 100644
index 0000000..c1510ff
--- /dev/null
+++ b/Smoke/gtk_colormap.h
@@ -0,0 +1,6 @@
+#ifndef _GTK_COLORMAP_H
+#define _GTK_COLORMAP_H
+
+GtkWidget *create_colormap_page(void);
+
+#endif
diff --git a/Smoke/palette.c b/Smoke/palette.c
index df24f04..0fdcb7c 100644
--- a/Smoke/palette.c
+++ b/Smoke/palette.c
@@ -50,57 +50,57 @@ void colormap_fire(float value, float *R, float *G, float *B)
}
}
-//set_colormap: Sets three different types of colormaps
-struct color4f set_colormap(int colormap_sort, float vy, float alpha)
+//set_palette: Sets three different types of colormaps
+struct color4f set_palette(int colormap_sort, float value, int num_colors)
{
float R, G, B;
struct color4f return_value;
const int NLEVELS = 7;
-// vy *= olivers_color;
-// vy = (float)(int)(vy);
- // vy /= olivers_color;
+ value *= num_colors;
+ value = (float)(int)(value);
+ value /= num_colors;
switch (colormap_sort)
{
case COLOR_BLACKWHITE:
- R = G = B = vy;
+ R = G = B = value;
break;
case COLOR_RAINBOW:
- rainbow(vy,&R,&G,&B);
+ rainbow(value,&R,&G,&B);
break;
case COLOR_BANDS:
- vy *= NLEVELS; vy = (float)(int)(vy); vy/= NLEVELS;
- rainbow(vy,&R,&G,&B);
+ value *= NLEVELS; value = (float)(int)(value); value/= NLEVELS;
+ rainbow(value,&R,&G,&B);
break;
case COLOR_BLUE_GREEN_RED:
- if (vy < -0.1)
+ if (value < -0.1)
{
R = G = 0;
- vy -= -0.1f;
- vy /= 0.9f;
- B = -vy;
+ value -= -0.1f;
+ value /= 0.9f;
+ B = -value;
}
- else if (vy < 0.1)
+ else if (value < 0.1)
{
R = B = 0;
- vy += 0.1f;
- vy /= 0.2f;
- G = vy;
+ value += 0.1f;
+ value /= 0.2f;
+ G = value;
}
else
{
- vy -= 0.1f;
- vy /= 0.9f;
- R = vy;
+ value -= 0.1f;
+ value /= 0.9f;
+ R = value;
G = B = 0;
}
break;
case COLOR_WILRIK:
- colormap_fire(vy, &R, &G, &B);
+ colormap_fire(value, &R, &G, &B);
break;
case COLOR_OLIVER:
- rainbow(vy, &R, &G, &B);
+ rainbow(value, &R, &G, &B);
break;
}
@@ -108,7 +108,6 @@ struct color4f set_colormap(int colormap_sort, float vy, float alpha)
return_value.r = R;
return_value.g = G;
return_value.b = B;
- return_value.a = alpha;
return return_value;
}
diff --git a/Smoke/palette.h b/Smoke/palette.h
index 497d9eb..d320864 100644
--- a/Smoke/palette.h
+++ b/Smoke/palette.h
@@ -15,6 +15,6 @@ struct color4f {
float a;
};
-struct color4f set_colormap(int colormap_sort, float vy, float alpha);
+struct color4f set_palette(int colormap_sort, float value, int num_colors);
#endif
diff --git a/Smoke/smoke.bin b/Smoke/smoke.bin
index cbd31a4..44f70e0 100755
--- a/Smoke/smoke.bin
+++ b/Smoke/smoke.bin
Binary files differ