Exemplo n.º 1
0
// À©µµ¿ì Ãâ·Â ÇÔ¼ö
GLvoid drawScene(GLvoid)
{
	glClearColor(0.0f, 0.0f, 0.0f, 1.0f); // ¹ÙÅÁ»ö ÁöÁ¤
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // ¼³Á¤µÈ »öÀ¸·Î  †Ã¼¸¦ Ä¥Çϱâ
														// »ö»ó ÁöÁ¤ÇÏ°í »ç°¢Çü ±×¸®±â
	glEnable(GL_DEPTH_TEST);

	if(!orthomode) camera.Rander();
	glColor4f(1.0, 1.0, 1.0, 1.0f);

	
	

	glPushMatrix();
	{
		if (orthomode) {
			glLoadIdentity();
			gluLookAt(0, 0, 0, 0, 0, -1, 0, 1, 0);
		}
		


		DrawAxis();

		//////////////////<¹Ù´Ú>////////////////////
		DrawFloor();




		for (int x = 0; x <= (index) / 3.0; ++x) {

			glMap1f(GL_MAP1_VERTEX_3, 0.0, 1.0, 3, 4, &ctrlpoints[x * 3][0]);
			glEnable(GL_MAP1_VERTEX_3);
			glLineWidth(1.0);
			glBegin(GL_LINE_STRIP);

			for (int i = 0; i <= 30; i++) glEvalCoord1f((GLfloat)i / 30.0);

			glEnd();

			glDisable(GL_MAP1_VERTEX_3);

		}

		

		glPointSize(5.0);
		glColor3f(0.0, 0.0, 1.0);
		glBegin(GL_POINTS);
		for (int i = 0; i < index; i++)
			glVertex3fv(&ctrlpoints[i][0]);
		glEnd();


		for (int x = 0; x <= (index) / 3.0; ++x) {

			glMap1f(GL_MAP1_VERTEX_3, 0.0, 1.0, 3, 4, &road[x * 3][0]);
			glEnable(GL_MAP1_VERTEX_3);
			glLineWidth(12);
			glBegin(GL_LINE_STRIP);

			for (int i = 0; i <= 30; i++) glEvalCoord1f((GLfloat)i / 30.0);

			glEnd();

			glDisable(GL_MAP1_VERTEX_3);

		}

		glLineWidth(1);
		glColor4f(1.0, 1.0, 1.0, 1.0);
		glutWireCube(floor_size * 2);

		gate.Rander();
		squaretree.Rander();
		roundtree.Rander();
		elevator.Rander();
		cone.Rander();
	}
	glPopMatrix();