diff options
author | taw27 <taw27@bf6ca9ba-c028-0410-8290-897cf20841d1> | 2007-09-04 21:02:20 +0000 |
---|---|---|
committer | taw27 <taw27@bf6ca9ba-c028-0410-8290-897cf20841d1> | 2007-09-04 21:02:20 +0000 |
commit | 0369b6427674594f3ad52f562f90a057c0cdbd7a (patch) | |
tree | ad76618e8aaa47636cd1905d6858d0fa178de091 /src/displaywindow.c | |
parent | 5bb6af0c8ec375ed557b5c4a2f9c6e54cc274036 (diff) |
Properly initialise materials
git-svn-id: svn://cook.msm.cam.ac.uk:745/diff-tomo/dtr@115 bf6ca9ba-c028-0410-8290-897cf20841d1
Diffstat (limited to 'src/displaywindow.c')
-rw-r--r-- | src/displaywindow.c | 35 |
1 files changed, 23 insertions, 12 deletions
diff --git a/src/displaywindow.c b/src/displaywindow.c index 39532b5..d2afb67 100644 --- a/src/displaywindow.c +++ b/src/displaywindow.c @@ -328,6 +328,7 @@ static void displaywindow_gl_create_list(DisplayWindow *dw) { GLfloat yellow[] = { 1.0, 1.0, 0.0, 1.0 }; GLfloat glass[] = { 0.2, 0.0, 0.8, 000.1 }; GLfloat glass_spec[] = { 0.8, 0.8, 0.8, 1.0 }; + GLfloat black[] = { 0.0, 0.0, 0.0, 1.0 }; Reflection *reflection; GLUquadricObj *quadric; int i; @@ -440,22 +441,22 @@ static void displaywindow_gl_create_list(DisplayWindow *dw) { glNewList(dw->gl_list_id, GL_COMPILE); /* Bounding cube: 100 nm^-1 side length */ + glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, red); + glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, black); + glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 0.0); glBegin(GL_LINE_LOOP); - glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, red); glVertex3f(50, 50, 50); glVertex3f(-50, 50, 50); glVertex3f(-50, -50, 50); glVertex3f(50, -50, 50); glEnd(); glBegin(GL_LINE_LOOP); - glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, red); glVertex3f(50, 50, -50); glVertex3f(-50, 50, -50); glVertex3f(-50, -50, -50); glVertex3f(50, -50, -50); glEnd(); glBegin(GL_LINES); - glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, red); glVertex3f(50, 50, 50); glVertex3f(50, 50, -50); glVertex3f(-50, 50, 50); @@ -471,11 +472,15 @@ static void displaywindow_gl_create_list(DisplayWindow *dw) { glEnable(GL_POLYGON_OFFSET_LINE); glBegin(GL_LINES); glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, yellow); + glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, black); + glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 0.0); glVertex3f(50, 0.0, 0.0); glVertex3f(-50, 0.0, 0.0); glEnd(); glBegin(GL_TRIANGLE_FAN); glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, yellow); + glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, black); + glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 0.0); glVertex3f(50, 0.0, 0.0); glVertex3f(50-5, 1.0, 1.0); glVertex3f(50-5, -1.0, 1.0); @@ -490,8 +495,6 @@ static void displaywindow_gl_create_list(DisplayWindow *dw) { quadric = gluNewQuadric(); do { - double vmul;; - if ( reflection->type == REFLECTION_CENTRAL ) { glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, blue); @@ -506,33 +509,36 @@ static void displaywindow_gl_create_list(DisplayWindow *dw) { if ( reflection->type == REFLECTION_VECTOR_MARKER_1 ) { - vmul = 100; glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, red); + glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, black); + glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 0.0); glBegin(GL_LINES); glVertex3f(0.0, 0.0, 0.0); - glVertex3f(reflection->x*vmul, reflection->y*vmul, reflection->z*vmul); + glVertex3f(reflection->x, reflection->y, reflection->z); glEnd(); } if ( reflection->type == REFLECTION_VECTOR_MARKER_2 ) { - vmul = 1/1e9; glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, yellow); + glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, black); + glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 0.0); glBegin(GL_LINES); glVertex3f(0.0, 0.0, 0.0); - glVertex3f(reflection->x*vmul, reflection->y*vmul, reflection->z*vmul); + glVertex3f(reflection->x, reflection->y, reflection->z); glEnd(); } if ( reflection->type == REFLECTION_VECTOR_MARKER_3 ) { - vmul = 1/1e9; glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, blue); + glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, black); + glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 0.0); glBegin(GL_LINES); glVertex3f(0.0, 0.0, 0.0); - glVertex3f(reflection->x*vmul, reflection->y*vmul, reflection->z*vmul); + glVertex3f(reflection->x, reflection->y, reflection->z); glEnd(); } @@ -545,6 +551,8 @@ static void displaywindow_gl_create_list(DisplayWindow *dw) { if ( ctx->rmode == RECONSTRUCTION_PREDICTION ) { glBegin(GL_LINE_STRIP); glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, red); + glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, black); + glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 0.0); glVertex3f(0.0, 0.0, 0.0); glVertex3f(ctx->ipr_basis->a.x/1e9, ctx->ipr_basis->a.y/1e9, ctx->ipr_basis->a.z/1e9); glVertex3f(ctx->ipr_basis->a.x/1e9 + ctx->ipr_basis->b.x/1e9, @@ -609,6 +617,7 @@ static gint displaywindow_gl_expose(GtkWidget *widget, GdkEventExpose *event, Di GdkGLContext *glcontext = gtk_widget_get_gl_context(widget); GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable(widget); float m[4][4]; + GLfloat black[] = { 0.0, 0.0, 0.0, 1.0 }; GLfloat green[] = { 0.0, 1.0, 0.0, 1.0 }; GLfloat blue[] = { 0.0, 0.0, 0.5, 1.0 }; GLfloat blue_spec[] = { 0.0, 0.0, 1.0, 1.0 }; @@ -647,6 +656,8 @@ static gint displaywindow_gl_expose(GtkWidget *widget, GdkEventExpose *event, Di glPushClientAttrib(GL_CLIENT_VERTEX_ARRAY_BIT); glEnableClientState(GL_VERTEX_ARRAY); glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, green); + glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, black); + glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 0.0); if ( dw->gl_use_buffers ) { glBindBufferARB(GL_ARRAY_BUFFER, dw->gl_ref_vertex_buffer); glVertexPointer(3, GL_FLOAT, 0, NULL); @@ -799,7 +810,7 @@ DisplayWindow *displaywindow_open(ControlContext *ctx) { dw->view_quat[2] = 0.0; dw->view_quat[3] = 1.0; dw->ctx = ctx; - dw->fog = 0; + dw->fog = 1; dw->window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(dw->window), title); |