illiShaper Reference

This page serves as the main documentation of the program illiShaper, written by Ben Farmer and Dr. Paul McCreary during the summer of 2002. The intent is give the reader a "working knowledge" of what the program does, and how it does it.

The program started first as a skel. It was a project for Math198 in the spring semester of 2000. It was then transformed the following year to work in the CAVE. After that it was changed drastically to into the Bishop Coaster. The main objective of the Bishop Coaster was to illustrate the difference between the Frenet frame and the Bishop frame of a well defined three-dimensional space curve. The curve we chose was a lissajou.

The main objective of illiShaper is to steer a curve's shape by changing it's development functions. This allows the for the study of curve parameters as well as for experiments designed to learn more about a curve by analyzing its development.

When writing the program, I tried to make the individual functions as independent of each other as possible. The functions do, however usually depend heavily on the existence of specific global variables and definitions. If these variables and definitions are not present, the code will not compile. The functions are loosly divided into three groups: calculation functions, drawing functions, and miscellaneous functions. The calculation functions are usually prefixed with "calculate" and perform only numerical calculations. The drawing functions are usually prefixed with "draw" and perform the openGL drawing commands. The miscellaneous fucntions are the functions that do not fit into the other two categories. The functions that handle the picking are such functions.

This is the list of calculation functions:
  • calculatefram(void)
  • calculatecardinalspline(float P0, float P1, float P2, float P3, float paramT)
  • calculatedevelopment1(void)
  • calculatedevelopment2(void)
  • calculatelissajou(void)
  • calculatefrenet(void)
  • calculatefrenetcurve(void)
  • calculatebishopcurve(void)
  • calculatebishopliss(void)
  • computelissajou(void)
  • computecurve(void)

This is the list of drawing functions:
  • drawdevelopment1(void)
  • drawdevelopment2(void)
  • drawdevelopmentcurve(void)
  • drawcontrolpoints1(void)
  • drawcontrolpoints2(void)
  • drawaxis(void)
  • drawcube(void)
  • drawcontrail(void)
  • drawdoghouse(void)
  • drawcar(void)
  • drawtrackvehicles(void)
  • drawframedlissajou(void)
  • drawframedcurve(void)
  • drawcurve(void)
  • drawlissajou(void)
  • drawdevelopmentvehicle(void)
  • drawtheslate(void)
This is the list of the miscellaneous fucntions:
  • initpoints(void)
  • invert(float *inv, float *mat)
  • updatecontrail(void)
  • odometer(void)
  • updateTT(int updown, int whichupdate)
  • opendevelompentfile(void)
  • savedevelompentfile(void)
  • deFault(void)
  • dragtrack(int but, int xx, int yy, int shif)
  • processhits((GLint numbHits, GLuint buffer[])
  • viewfrom(int lcockpit)
  • drawslate(void)
  • mousepushed()
  • idle()
  • getmem()