glviewvol

annotate src/main.cc @ 0:7bdf40403b9c

dicom viewer project underway
author John Tsiombikas <nuclear@member.fsf.org>
date Sat, 27 Dec 2014 02:35:58 +0200
parents
children cc9e0d8590e2
rev   line source
nuclear@0 1 // GLUT frontend
nuclear@0 2 #ifdef USE_GLUT
nuclear@0 3
nuclear@0 4 #include <stdlib.h>
nuclear@0 5 #include "opengl.h"
nuclear@0 6
nuclear@0 7 #ifdef __APPLE__
nuclear@0 8 #include <GLUT/glut.h>
nuclear@0 9 #else
nuclear@0 10 #include <GL/glut.h>
nuclear@0 11 #endif
nuclear@0 12
nuclear@0 13 #include "dicomview.h"
nuclear@0 14
nuclear@0 15 static void display();
nuclear@0 16 static void reshape(int x, int y);
nuclear@0 17 static void key_down(unsigned char key, int x, int y);
nuclear@0 18 static void key_up(unsigned char key, int x, int y);
nuclear@0 19 static void mouse(int bn, int state, int x, int y);
nuclear@0 20 static void motion(int x, int y);
nuclear@0 21
nuclear@0 22 static float cam_theta, cam_phi, cam_dist = 6;
nuclear@0 23
nuclear@0 24 int main(int argc, char **argv)
nuclear@0 25 {
nuclear@0 26 glutInit(&argc, argv);
nuclear@0 27 glutInitWindowSize(1280, 800);
nuclear@0 28 glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);
nuclear@0 29 glutCreateWindow("dicom viewer");
nuclear@0 30
nuclear@0 31 glutDisplayFunc(display);
nuclear@0 32 glutReshapeFunc(reshape);
nuclear@0 33 glutKeyboardFunc(keyb);
nuclear@0 34 glutMouseFunc(mouse);
nuclear@0 35 glutMotionFunc(motion);
nuclear@0 36
nuclear@0 37 glewInit();
nuclear@0 38
nuclear@0 39 if(init() == -1) {
nuclear@0 40 return 1;
nuclear@0 41 }
nuclear@0 42
nuclear@0 43 glutMainLoop();
nuclear@0 44 return 0;
nuclear@0 45 }
nuclear@0 46
nuclear@0 47 void swap_buffers()
nuclear@0 48 {
nuclear@0 49 glutSwapBuffers();
nuclear@0 50 }
nuclear@0 51
nuclear@0 52 void redisplay()
nuclear@0 53 {
nuclear@0 54 glutPostRedisplay();
nuclear@0 55 }
nuclear@0 56
nuclear@0 57 void quit()
nuclear@0 58 {
nuclear@0 59 cleanup();
nuclear@0 60 exit(0);
nuclear@0 61 }
nuclear@0 62
nuclear@0 63 static void display()
nuclear@0 64 {
nuclear@0 65 ev_display();
nuclear@0 66 }
nuclear@0 67
nuclear@0 68 static void reshape(int x, int y)
nuclear@0 69 {
nuclear@0 70 ev_reshape(x, y);
nuclear@0 71 }
nuclear@0 72
nuclear@0 73 static void key_down(unsigned char key, int x, int y)
nuclear@0 74 {
nuclear@0 75 ev_keyboard(key, 1, x, y);
nuclear@0 76 }
nuclear@0 77
nuclear@0 78 static void key_up(unsigned char key, int x, int y)
nuclear@0 79 {
nuclear@0 80 ev_keyboard(key, 0, x, y);
nuclear@0 81 }
nuclear@0 82
nuclear@0 83 static void mouse(int bn, int state, int x, int y)
nuclear@0 84 {
nuclear@0 85 ev_mouse_button(bn - GLUT_LEFT_BUTTON, state == GLUT_DOWN ? 1 : 0, x, y);
nuclear@0 86 }
nuclear@0 87
nuclear@0 88 static void motion(int x, int y)
nuclear@0 89 {
nuclear@0 90 ev_mouse_motion(x, y);
nuclear@0 91 }
nuclear@0 92
nuclear@0 93 #endif // USE_GLUT