summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOliver Schinagl <oliver@schinagl.nl>2008-01-10 13:57:36 (GMT)
committerOliver Schinagl <oliver@schinagl.nl>2008-01-10 13:57:36 (GMT)
commitcab835a95f60e25d90c1793cc614046132c98f80 (patch)
tree3ef80874234988bdba3245e24bd9c316a66e925a
parentba9323fa78707a82ba806a28f62dfe592e855ddf (diff)
download2iv35-cab835a95f60e25d90c1793cc614046132c98f80.zip
2iv35-cab835a95f60e25d90c1793cc614046132c98f80.tar.gz
2iv35-cab835a95f60e25d90c1793cc614046132c98f80.tar.bz2
fixed isolines dataset selection
-rw-r--r--Smoke/gtk_isolines.c74
-rw-r--r--Smoke/isolines.c19
-rw-r--r--Smoke/isolines.h3
3 files changed, 57 insertions, 39 deletions
diff --git a/Smoke/gtk_isolines.c b/Smoke/gtk_isolines.c
index d0662e4..296cfe4 100644
--- a/Smoke/gtk_isolines.c
+++ b/Smoke/gtk_isolines.c
@@ -56,6 +56,16 @@ static gboolean select_alpha(GtkRange *adjustment, gpointer data)
return TRUE;
}
+static gboolean set_dataset(GtkToggleButton *button, gpointer data)
+{
+ if (gtk_toggle_button_get_active(button)) {
+ isolines_set_dataset((int)data);
+ }
+
+ return TRUE;
+}
+
+
GtkWidget *create_isolines_page(void)
{
@@ -73,49 +83,41 @@ GtkWidget *create_isolines_page(void)
page = gtk_vbox_new(FALSE, 0);
- frame = gtk_frame_new("Scalarset");
+ frame = gtk_frame_new("Dataset");
box = gtk_hbox_new(FALSE, 0);
button = gtk_radio_button_new_with_label (NULL, "Rho");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE);
- g_signal_connect (G_OBJECT(button), "clicked", G_CALLBACK(set_glyph_scalar), (gpointer)SCALAR_RHO);
- gtk_box_pack_start(GTK_BOX(box), button, TRUE, TRUE, 0);
+ if (isolines_get_dataset() == DATASET_RHO) {
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE);
+ } else {
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), FALSE);
+ }
+ g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(set_dataset), (gpointer)DATASET_RHO);
+ gtk_box_pack_start(GTK_BOX(box), button, TRUE, TRUE, 0);
gtk_widget_show(button);
dataset_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(button));
button = gtk_radio_button_new_with_label(dataset_group, "Velocity");
- g_signal_connect (G_OBJECT(button), "clicked", G_CALLBACK(set_glyph_scalar), (gpointer)SCALAR_VEL);
- gtk_box_pack_start(GTK_BOX(box), button, TRUE, TRUE, 0);
+ if (isolines_get_dataset() == DATASET_VEL) {
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE);
+ } else {
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), FALSE);
+ }
+ g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(set_dataset), (gpointer)DATASET_VEL);
+ gtk_box_pack_start(GTK_BOX(box), button, TRUE, TRUE, 0);
gtk_widget_show(button);
button = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(button), "Force");
- g_signal_connect (G_OBJECT(button), "clicked", G_CALLBACK(set_glyph_scalar), (gpointer)SCALAR_FORCE);
- 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("Vectorset");
-
- box = gtk_hbox_new(FALSE, 0);
-
- button = gtk_radio_button_new_with_label(NULL, "Velocity");
- // g_signal_connect (G_OBJECT(button), "clicked", G_CALLBACK(set_glyph_vector), (gpointer)VECTOR_VEL);
- gtk_box_pack_start(GTK_BOX(box), button, TRUE, TRUE, 0);
- gtk_widget_show(button);
-
- dataset_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(button));
-
- button = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(button), "Force");
- // g_signal_connect (G_OBJECT(button), "clicked", G_CALLBACK(set_glyph_vector), (gpointer)VECTOR_FORCE);
- gtk_box_pack_start(GTK_BOX(box), button, TRUE, TRUE, 0);
- gtk_widget_show(button);
+ if (isolines_get_dataset() == DATASET_FORCE) {
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE);
+ } else {
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), FALSE);
+ }
+ g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(set_dataset), (gpointer)DATASET_FORCE);
+ 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);
@@ -157,7 +159,7 @@ GtkWidget *create_isolines_page(void)
gtk_widget_show(label);
adjustment = GTK_ADJUSTMENT(gtk_adjustment_new(
- isolines_get_alpha(), 0, 1, 0.05, 0.05, 0.01));
+ isolines_get_alpha(), 0, 1, 0.05, 0.5, 0.01));
scale = gtk_hscale_new(adjustment);
gtk_scale_set_digits(GTK_SCALE(scale), 1);
g_signal_connect(GTK_RANGE(scale), "value-changed", G_CALLBACK(select_alpha), NULL);
@@ -183,7 +185,7 @@ GtkWidget *create_isolines_page(void)
adjustment = GTK_ADJUSTMENT(gtk_adjustment_new(
- isolines_get_num_colors(), 1, PALETTE_MAXCOLORS, 0.5, 5, 0.1));
+ isolines_get_num_colors(), 1, PALETTE_MAXCOLORS, 0.5, 5, 0));
scale = gtk_hscale_new(adjustment);
gtk_scale_set_digits(GTK_SCALE(scale), 0);
g_signal_connect(GTK_RANGE(scale), "value-changed", G_CALLBACK(select_num_colors), NULL);
@@ -196,7 +198,7 @@ GtkWidget *create_isolines_page(void)
gtk_box_pack_start(GTK_BOX(box), label, FALSE, TRUE, 0);
gtk_widget_show(label);
- adjustment = GTK_ADJUSTMENT(gtk_adjustment_new(isolines_get_nr(), 0, 8, 1, 1, 0));
+ adjustment = GTK_ADJUSTMENT(gtk_adjustment_new(isolines_get_nr(), 0, 8, 0.05, 0.5, 0));
scale = gtk_hscale_new(adjustment);
gtk_scale_set_digits(GTK_SCALE(scale), 0);
g_signal_connect(GTK_RANGE(scale), "value-changed", G_CALLBACK(select_num_isolines), NULL);
@@ -209,7 +211,7 @@ GtkWidget *create_isolines_page(void)
gtk_box_pack_start(GTK_BOX(box), label, FALSE, TRUE, 0);
gtk_widget_show(label);
- adjustment = GTK_ADJUSTMENT(gtk_adjustment_new(isolines_get_threshold_min(), 0.01, 4, 0.01, 0.1, 0));
+ adjustment = GTK_ADJUSTMENT(gtk_adjustment_new(isolines_get_threshold_min(), 0.01, 4, 0.05, 0.5, 0));
scale = gtk_hscale_new(adjustment);
gtk_scale_set_digits(GTK_SCALE(scale), 2);
g_signal_connect(GTK_RANGE(scale), "value-changed", G_CALLBACK(select_min_threshold), NULL);
@@ -222,7 +224,7 @@ GtkWidget *create_isolines_page(void)
gtk_box_pack_start(GTK_BOX(box), label, FALSE, TRUE, 0);
gtk_widget_show(label);
- adjustment = GTK_ADJUSTMENT(gtk_adjustment_new(isolines_get_threshold_max(), 0, 4, 0.01, 0.1, 0));
+ adjustment = GTK_ADJUSTMENT(gtk_adjustment_new(isolines_get_threshold_max(), 0, 4, 0.05, 0.5, 0));
scale = gtk_hscale_new(adjustment);
gtk_scale_set_digits(GTK_SCALE(scale), 2);
g_signal_connect(GTK_RANGE(scale), "value-changed", G_CALLBACK(select_max_threshold), NULL);
diff --git a/Smoke/isolines.c b/Smoke/isolines.c
index ff0f3fe..42b22b0 100644
--- a/Smoke/isolines.c
+++ b/Smoke/isolines.c
@@ -6,6 +6,7 @@
#include <rfftw.h>
+#include "fluids.h"
#include "funcs.h"
#include "palette.h"
@@ -15,10 +16,13 @@
static int isolines_render = FALSE;
static int isolines_num_colors = PALETTE_MAXCOLORS;
static int isolines_colormap = PALETTE_RED;
-
static float isolines_alpha = 1.0f;
+
+static int isolines_dataset = DATASET_RHO;
+
static fftw_real *isolines_frame;
-static float isolines_threshold_min = 0.2f;
+
+static float isolines_threshold_min = 0.1f;
static float isolines_threshold_max = 2.0f;
static int isolines_nr = 1;
@@ -62,6 +66,16 @@ float isolines_get_alpha(void)
return isolines_alpha;
}
+void isolines_set_dataset(int dataset)
+{
+ isolines_dataset = dataset;
+}
+
+int isolines_get_dataset(void)
+{
+ return isolines_dataset;
+}
+
void isolines_set_frame(fftw_real *frame)
{
isolines_frame = frame;
@@ -72,7 +86,6 @@ fftw_real *isolines_get_frame(void)
return isolines_frame;
}
-
struct color4f isolines_get_color(float value)
{
struct color4f return_value;
diff --git a/Smoke/isolines.h b/Smoke/isolines.h
index aa5c661..608d723 100644
--- a/Smoke/isolines.h
+++ b/Smoke/isolines.h
@@ -13,6 +13,9 @@ int isolines_get_colormap(void);
void isolines_set_alpha(float alpha);
float isolines_get_alpha(void);
+void isolines_set_dataset(int dataset);
+int isolines_get_dataset(void);
+
void isolines_set_frame(fftw_real *frame);
fftw_real *isolines_get_frame(void);