diff options
author | Oliver Schinagl <oliver@schinagl.nl> | 2007-12-17 19:48:37 (GMT) |
---|---|---|
committer | Oliver Schinagl <oliver@schinagl.nl> | 2007-12-17 19:48:37 (GMT) |
commit | 9363bc6887a7ffb9ea6c0f6a63a93c215e227502 (patch) | |
tree | dc5f962bdcc413a5bd4bff4d85c7842522a73fb3 | |
parent | 1d771540b16ba07cb02be5490892465a2a5ab89a (diff) | |
download | 2iv35-9363bc6887a7ffb9ea6c0f6a63a93c215e227502.zip 2iv35-9363bc6887a7ffb9ea6c0f6a63a93c215e227502.tar.gz 2iv35-9363bc6887a7ffb9ea6c0f6a63a93c215e227502.tar.bz2 |
Added/splitted colormaps to a seperate file.
-rw-r--r-- | Smoke/Makefile | 7 | ||||
-rw-r--r-- | Smoke/colormap.c | 131 | ||||
-rw-r--r-- | Smoke/colormap.h | 28 | ||||
-rw-r--r-- | Smoke/fluids.c | 153 | ||||
-rw-r--r-- | Smoke/fluids.h | 5 | ||||
-rw-r--r-- | Smoke/glut.c | 3 | ||||
-rw-r--r-- | Smoke/gtk.c | 73 | ||||
-rw-r--r-- | Smoke/gtk_colormap.c | 117 | ||||
-rw-r--r-- | Smoke/gtk_colormap.h | 6 | ||||
-rw-r--r-- | Smoke/palette.c | 45 | ||||
-rw-r--r-- | Smoke/palette.h | 2 | ||||
-rwxr-xr-x | Smoke/smoke.bin | bin | 597364 -> 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 Binary files differindex cbd31a4..44f70e0 100755 --- a/Smoke/smoke.bin +++ b/Smoke/smoke.bin |