origin.cpp

来自「This code was developed by my techer. :D」· C++ 代码 · 共 74 行

CPP
74
字号
#include "objects/origin.h"
#include "SDL_opengl.h"

const float Origin::FAR_POINT = .65f;
const float Origin::NEAR_POINT = .05f;

Origin::Origin():
Rendereable(0.f,0.f,0.f,0.f,0.f,0.f),
arrowDisplayListId	( 0 )
{
	this->arrowDisplayListId = glGenLists(1);
	glNewList(this->arrowDisplayListId, GL_COMPILE);
	{
		glBegin(GL_TRIANGLE_FAN);
		{
			glVertex3f(1,0,0);		//v閞tice en com鷑 del TriangleFan

			glVertex3f(Origin::FAR_POINT, 0.15f, 0.15f);
			glVertex3f(Origin::FAR_POINT, 0.15f, -0.15f);
			glVertex3f(Origin::FAR_POINT, -0.15f, -0.15f);
			glVertex3f(Origin::FAR_POINT, -0.15f, 0.15f);
			glVertex3f(Origin::FAR_POINT, 0.15f, 0.15f);
		}
		glEnd();
		glBegin(GL_QUAD_STRIP);
		{
			glVertex3f(Origin::FAR_POINT, -Origin::NEAR_POINT, -Origin::NEAR_POINT);
			glVertex3f(Origin::NEAR_POINT, -Origin::NEAR_POINT, -Origin::NEAR_POINT);
			glVertex3f(Origin::FAR_POINT, -Origin::NEAR_POINT, Origin::NEAR_POINT);
			glVertex3f(Origin::NEAR_POINT, -Origin::NEAR_POINT, Origin::NEAR_POINT);
			glVertex3f(Origin::FAR_POINT, Origin::NEAR_POINT, Origin::NEAR_POINT);
			glVertex3f(Origin::NEAR_POINT, Origin::NEAR_POINT, Origin::NEAR_POINT);
			glVertex3f(Origin::FAR_POINT, Origin::NEAR_POINT, -Origin::NEAR_POINT);
			glVertex3f(Origin::NEAR_POINT, Origin::NEAR_POINT, -Origin::NEAR_POINT);
			glVertex3f(Origin::FAR_POINT, -Origin::NEAR_POINT, -Origin::NEAR_POINT);
			glVertex3f(Origin::NEAR_POINT, -Origin::NEAR_POINT, -Origin::NEAR_POINT);
		}
		glEnd();
	}
	glEndList();
}
Origin::~Origin()
{}

void Origin::draw()
{
	glPushMatrix();
	{
		// vector X (rojo)
		glColor3f(1.f,0.f,0.f);
		glCallList(arrowDisplayListId);
	}
	glPopMatrix();

	glPushMatrix();
	{
		// vector Y (verde)
		glColor3f(0.f,1.f,0.f);
		glRotatef(90.f, 0.f, 0.f, 1.f);
		glCallList(arrowDisplayListId);
	}
	glPopMatrix();

	glPushMatrix();
	{
		// vector Z (azul)
		glColor3f(0.f,0.f,1.f);
		glRotatef(-90.f, 0.f, 1.f, 0.f);
		glCallList(arrowDisplayListId);
	}
	glPopMatrix();
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?