📄 origin.cpp
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -