#include "GlFunctions.h"
void GlSetCameraPerspective(double pFieldOfViewY,
double pAspect,
double pNearPlane,
double pFarPlane,
double pFilmOffsetX,
double pFilmOffsetY)
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glTranslated( pFilmOffsetX, pFilmOffsetY, 0);
gluPerspective(pFieldOfViewY,
pAspect,
pNearPlane,
pFarPlane);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(pEye[0], pEye[1], pEye[2],
pCenter[0], pCenter[1], pCenter[2],
pUp[0], pUp[1], pUp[2]);
}
void GlSetCameraOrthogonal(double pLeftPlane,
double pRightPlane,
double pBottomPlane,
double pTopPlane,
double pNearPlane,
double pFarPlane,
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(pLeftPlane,
pRightPlane,
pBottomPlane,
pTopPlane,
pNearPlane,
pFarPlane);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(pEye[0], pEye[1], pEye[2],
pCenter[0], pCenter[1], pCenter[2],
pUp[0], pUp[1], pUp[2]);
}
{
glColor3f(0.0, 1.0, 1.0);
glLineWidth(1.0);
glPushMatrix();
glMultMatrixd((double*) pGlobalPosition);
glBegin(GL_LINE_LOOP);
glVertex3f(+1.0f, -1.0f, +1.0f);
glVertex3f(+1.0f, -1.0f, -1.0f);
glVertex3f(+1.0f, +1.0f, -1.0f);
glVertex3f(+1.0f, +1.0f, +1.0f);
glVertex3f(+1.0f, +1.0f, +1.0f);
glVertex3f(+1.0f, +1.0f, -1.0f);
glVertex3f(-1.0f, +1.0f, -1.0f);
glVertex3f(-1.0f, +1.0f, +1.0f);
glVertex3f(+1.0f, +1.0f, +1.0f);
glVertex3f(-1.0f, +1.0f, +1.0f);
glVertex3f(-1.0f, -1.0f, +1.0f);
glVertex3f(+1.0f, -1.0f, +1.0f);
glVertex3f(-1.0f, -1.0f, +1.0f);
glVertex3f(-1.0f, +1.0f, +1.0f);
glVertex3f(-1.0f, +1.0f, -1.0f);
glVertex3f(-1.0f, -1.0f, -1.0f);
glVertex3f(-1.0f, -1.0f, +1.0f);
glVertex3f(-1.0f, -1.0f, -1.0f);
glVertex3f(+1.0f, -1.0f, -1.0f);
glVertex3f(+1.0f, -1.0f, +1.0f);
glVertex3f(-1.0f, -1.0f, -1.0f);
glVertex3f(-1.0f, +1.0f, -1.0f);
glVertex3f(+1.0f, +1.0f, -1.0f);
glVertex3f(+1.0f, -1.0f, -1.0f);
glEnd();
glPopMatrix();
}
{
glColor3f(1.0, 0.0, 0.0);
glLineWidth(2.0);
glBegin(GL_LINES);
glVertex3dv((GLdouble *)pGlobalBasePosition.
GetT());
glVertex3dv((GLdouble *)pGlobalEndPosition.
GetT());
glEnd();
}
void GlDrawCamera(
FbxAMatrix& pGlobalPosition,
double pRoll)
{
glColor3d(1.0, 1.0, 1.0);
glLineWidth(1.0);
glPushMatrix();
glMultMatrixd((double*) pGlobalPosition);
glRotated(pRoll, 1.0, 0.0, 0.0);
int i;
float lCamera[10][2] = { { 0, 5.5 }, { -3, 4.5 },
{ -3, 7.5 }, { -6, 10.5 }, { -23, 10.5 },
{ -23, -4.5 }, { -20, -7.5 }, { -3, -7.5 },
{ -3, -4.5 }, { 0, -5.5 } };
glBegin( GL_LINE_LOOP );
{
for (i = 0; i < 10; i++)
{
glVertex3f(lCamera[i][0], lCamera[i][1], 4.5);
}
}
glEnd();
glBegin( GL_LINE_LOOP );
{
for (i = 0; i < 10; i++)
{
glVertex3f(lCamera[i][0], lCamera[i][1], -4.5);
}
}
glEnd();
for (i = 0; i < 10; i++)
{
glBegin( GL_LINES );
{
glVertex3f(lCamera[i][0], lCamera[i][1], -4.5);
glVertex3f(lCamera[i][0], lCamera[i][1], 4.5);
}
glEnd();
}
glPopMatrix();
}
{
glColor3f(1.0, 1.0, 1.0);
glLineWidth(1.0);
glPushMatrix();
glMultMatrixd((double*) pGlobalPosition);
double lCrossHair[6][3] = { { -3, 0, 0 }, { 3, 0, 0 },
{ 0, -3, 0 }, { 0, 3, 0 },
{ 0, 0, -3 }, { 0, 0, 3 } };
glBegin(GL_LINES);
glVertex3dv(lCrossHair[0]);
glVertex3dv(lCrossHair[1]);
glEnd();
glBegin(GL_LINES);
glVertex3dv(lCrossHair[2]);
glVertex3dv(lCrossHair[3]);
glEnd();
glBegin(GL_LINES);
glVertex3dv(lCrossHair[4]);
glVertex3dv(lCrossHair[5]);
glEnd();
glPopMatrix();
}