aboutsummaryrefslogtreecommitdiff
path: root/src/displaywindow.c
diff options
context:
space:
mode:
authortaw27 <taw27@bf6ca9ba-c028-0410-8290-897cf20841d1>2007-09-04 21:02:20 +0000
committertaw27 <taw27@bf6ca9ba-c028-0410-8290-897cf20841d1>2007-09-04 21:02:20 +0000
commit0369b6427674594f3ad52f562f90a057c0cdbd7a (patch)
treead76618e8aaa47636cd1905d6858d0fa178de091 /src/displaywindow.c
parent5bb6af0c8ec375ed557b5c4a2f9c6e54cc274036 (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.c35
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);