aboutsummaryrefslogtreecommitdiff
path: root/src/displaywindow.c
diff options
context:
space:
mode:
authortaw27 <taw27@bf6ca9ba-c028-0410-8290-897cf20841d1>2007-09-05 17:49:58 +0000
committertaw27 <taw27@bf6ca9ba-c028-0410-8290-897cf20841d1>2007-09-05 17:49:58 +0000
commite00d6b3da60009117012f1d31dbdd7b4ed129480 (patch)
treeb9d0196c86f30b9adc78473dd7b4ab4aab2f3365 /src/displaywindow.c
parent4ce57716fa17aac015a683e0eac2857699f5b8d5 (diff)
Change the formulation of the rotations
git-svn-id: svn://cook.msm.cam.ac.uk:745/diff-tomo/dtr@121 bf6ca9ba-c028-0410-8290-897cf20841d1
Diffstat (limited to 'src/displaywindow.c')
-rw-r--r--src/displaywindow.c30
1 files changed, 26 insertions, 4 deletions
diff --git a/src/displaywindow.c b/src/displaywindow.c
index fa66382..1fef6ce 100644
--- a/src/displaywindow.c
+++ b/src/displaywindow.c
@@ -285,9 +285,11 @@ static gint displaywindow_gl_motion_notify(GtkWidget *widget, GdkEventMotion *ev
static void displaywindow_gl_create_list(DisplayWindow *dw) {
+ GLfloat bblue[] = { 0.0, 0.0, 1.0, 1.0 };
GLfloat blue[] = { 0.0, 0.0, 0.5, 1.0 };
GLfloat blue_spec[] = { 0.0, 0.0, 1.0, 1.0 };
GLfloat red[] = { 1.0, 0.0, 0.0, 1.0 };
+ GLfloat purple[] = { 0.8, 0.0, 1.0, 1.0 };
GLfloat green[] = { 0.0, 1.0, 0.0, 1.0 };
GLfloat yellow[] = { 1.0, 1.0, 0.0, 1.0 };
GLfloat glass[] = { 0.2, 0.0, 0.8, 000.1 };
@@ -405,7 +407,8 @@ 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_AMBIENT_AND_DIFFUSE, purple);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, black);
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, black);
glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 0.0);
glBegin(GL_LINE_LOOP);
@@ -430,10 +433,29 @@ static void displaywindow_gl_create_list(DisplayWindow *dw) {
glVertex3f(50, -50, 50);
glVertex3f(50, -50, -50);
glEnd();
-
+
+ /* x, y, z pointers */
+ glBegin(GL_LINES);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, black);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, red);
+ glVertex3f(0.0, 0.0, 0.0);
+ glVertex3f(5.0, 0.0, 0.0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, green);
+ glVertex3f(0.0, 0.0, 0.0);
+ glVertex3f(0.0, 5.0, 0.0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, bblue);
+ glVertex3f(0.0, 0.0, 0.0);
+ glVertex3f(0.0, 0.0, 5.0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, black);
+ glEnd();
+
/* Tilt axis */
glPushMatrix();
- glRotatef(-ctx->images[0].omega, 0.0, 0.0, 1.0);
+ /* Images rotate clockwise by omega to put tilt axis at +x,
+ * so rotate tilt axis anticlockwise by omega.
+ * Since the rotation is about +z, this is already anticlockwise
+ * when looking down z. */
+ glRotatef(ctx->images[0].omega, 0.0, 0.0, 1.0);
glPolygonOffset(1.0, 1.0);
glEnable(GL_POLYGON_OFFSET_LINE);
glBegin(GL_LINES);
@@ -581,7 +603,7 @@ static void displaywindow_gl_create_list(DisplayWindow *dw) {
glEndList();
- printf("DW: Vertex counts: meas:%i, mark:%i, gen:%i\n", dw->gl_ref_num_vertices, dw->gl_marker_num_vertices, dw->gl_gen_num_vertices);
+ //printf("DW: Vertex counts: meas:%i, mark:%i, gen:%i\n", dw->gl_ref_num_vertices, dw->gl_marker_num_vertices, dw->gl_gen_num_vertices);
}