#include #include #include #include #include #include "lens.h" /* Play with nonlinear distortion in OpenGL */ /* Flags */ int debug = FALSE; int currentbutton = -1; double rotatespeed = 1; double dtheta = 1; CAMERA camera; XYZ origin = {0.0,0.0,0.0}; PIXELA *thetex; #define NONE 1 #define SINEXY 2 #define SINER 3 #define SQUAREXY 4 #define SQUARER 5 #define ASINXY 6 #define ASINR 7 int distortion = SQUAREXY; #define MESH 1 #define PULSAR 2 int modeltype = PULSAR; int main(int argc,char **argv) { int i; int mainmenu,modelmenu,distortmenu,aperturemenu; /* Parse the command line arguments */ for (i=1;i 0) dx = 1; if (dy < 0) dy = -1; else if (dy > 0) dy = 1; if (currentbutton == GLUT_LEFT_BUTTON) RotateCamera(-dx,dy,0); else if (currentbutton == GLUT_MIDDLE_BUTTON) RotateCamera(0,0,dx); xlast = x; ylast = y; } /* Form the grid with distorted texture coordinates */ void CreateGrid(void) { int i,j,n=5; double x,y; glBegin(GL_QUADS); for (i=0;ix * p->x + p->y * p->y + p->z * p->z); if (length != 0) { p->x /= length; p->y /= length; p->z /= length; } else { p->x = 0; p->y = 0; p->z = 0; } }