void MakeLists(void) { HorizontalList = glGenLists(1); glNewList(HorizontalList, GL_COMPILE); { float line1 = 25.0/180, line2 = 35.0/180, line3 = 45.0/180; glColor3f(0, 0, 0.7); glPushAttrib(GL_ENABLE_BIT); glEnable(GL_LINE_STIPPLE); glBegin(GL_LINES); glVertex3f(0, 0, 0.5); glVertex3f(1, 0, 0.5); glVertex3f(0, line1, 0.5); glVertex3f(1, line1, 0.5); glVertex3f(0, -line1, 0.5); glVertex3f(1, -line1, 0.5); glVertex3f(0, line2, 0.5); glVertex3f(1, line2, 0.5); glVertex3f(0, -line2, 0.5); glVertex3f(1, -line2, 0.5); glVertex3f(0, line3, 0.5); glVertex3f(1, line3, 0.5); glVertex3f(0, -line3, 0.5); glVertex3f(1, -line3, 0.5); glEnd(); glPopAttrib(); } glEndList(); CurveLists = glGenLists(NUM_JOINTS); assert(CurveLists != 0); ControlPtsLists = glGenLists(NUM_JOINTS); assert(ControlPtsLists != 0); ComputeCSetAndMakeLists(); }
void CurveHandleMenu(int value) { switch (value) { case CMENU_QUIT: exit(0); break; case CMENU_CURVE: CurveAsPoints = !CurveAsPoints; glutPostRedisplay(); break; case CMENU_HORIZ: DrawHorizontals = !DrawHorizontals; glutPostRedisplay(); break; case CMENU_WALK: if (EditingCurve != -1) break; Walking = !Walking; if (Walking) { agvSetAllowIdle(0); glutIdleFunc(IncrementStep); } else { agvSetAllowIdle(1); } break; case CMENU_DONEEDIT: glutMouseFunc(CurveHandleButton); EditingCurve = -1; CurvePickedPoint = -1; Walking = WasWalking; if (Walking) glutIdleFunc(IncrementStep); else agvSetAllowIdle(1); glutPostRedisplay(); break; case CMENU_RESET: FlatCSet(); ComputeCSetAndMakeLists(); glutPostRedisplay(); break; case CMENU_MIRROR: MirrorLegs = !MirrorLegs; ComputeCSetAndMakeLists(); glutPostRedisplay(); } }
void HandleSaveMenu(int cset) { char filename[MAX_CSETNAMELEN + CSET_EXTLEN + 1]; (void)strcpy(filename, CSetNames[cset]); (void)strcat(filename, CSET_EXT); WriteCSetToFile(filename); ComputeCSetAndMakeLists(); RedisplayBoth(); }
void HandleLoadMenu(int cset) { char filename[MAX_CSETNAMELEN + CSET_EXTLEN + 1]; if (cset == -1) { MakeLoadAndSaveMenus(); CurveMenuInit(); } else { (void)strcpy(filename, CSetNames[cset]); (void)strcat(filename, CSET_EXT); if (ReadCSetFromFile(filename) == 0) { glutSetMenu(SaveMenu); glutChangeToMenuEntry(1, CSetNames[cset], cset); ComputeCSetAndMakeLists(); SetWindowTitles(CSetNames[cset]); RedisplayBoth(); } } }
void motion(char *file){ if(ReadCSetFromFile(file) == 0) ComputeCSetAndMakeLists(); }