moss-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Moss-devel] CVS: moss/3Dsia/client/3Dcf/src Makefile.am,NONE,1.1 World.


From: Felix Morgner <address@hidden>
Subject: [Moss-devel] CVS: moss/3Dsia/client/3Dcf/src Makefile.am,NONE,1.1 World.cxx,NONE,1.1 main.cxx,NONE,1.1
Date: Sun, 03 Nov 2002 08:08:50 -0500

Update of /cvsroot/moss//moss/3Dsia/client/3Dcf/src
In directory subversions:/tmp/cvs-serv11069/3Dsia/client/3Dcf/src

Added Files:
        Makefile.am World.cxx main.cxx 
Log Message:
Added 3Dsia-client "felix" for world exploration


--- NEW FILE ---
bin_PROGRAMS = 3df.client
3df_client_SOURCES = main.cxx World.cxx
df_client_LIBFLAGS = -lstdc++ -lglut -lGL -lGLU

CFLAGS=-D_REENTRANT
CXXFLAGS = -Wall -g -O2 $(df_client_LIBFLAGS)
INCLUDES=-I../include

--- NEW FILE ---
#include "World.h"
#include <iostream>

using namespace std;

CWorld::CWorld(int nParams, char* aszParams[])
  {
  m_dXrot = .0;
  m_dYrot = .0;
  m_dZrot = .0;

  glutInit(&nParams, aszParams);
  glutInitDisplayMode(GLUT_RGBA | GLUT_ALPHA | GLUT_DOUBLE | GLUT_DEPTH);
  glutInitWindowSize(800, 600);
  glutInitWindowPosition(0, 0);
  m_nWindow = glutCreateWindow("3df.client");

  }

CWorld::~CWorld()
  {
  
  }

void CWorld::InitGL(int nWidth, int nHeight)
  {
  glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
  glClearDepth(1.0);
  glDepthFunc(GL_LEQUAL);
  glEnable(GL_DEPTH_TEST);
  glEnable(GL_BLEND);
  glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
  glShadeModel(GL_SMOOTH);
  glMatrixMode(GL_PROJECTION);
  glLoadIdentity();
  gluPerspective(45.0f,(GLfloat)nWidth/(GLfloat)nHeight,0.1f,100.0f);
  gluLookAt(0,0,6,0,0,0,0,1,0);
  glMatrixMode(GL_MODELVIEW);
  } // void CWorld::InitGL(int nWidth, int nHeight)


void CWorld::ReSizeGLScene(int nWidth, int nHeight)
  {
  if( nHeight==0 )
    {
    nHeight=1;
    } // if( nHeight==0)
    
  glViewport(0, 0, nWidth, nHeight);
  
  glMatrixMode(GL_PROJECTION);
  glLoadIdentity();
    
  gluPerspective(45.0f,(GLfloat)nWidth/(GLfloat)nHeight,0.1f,100.0f);
  glMatrixMode(GL_MODELVIEW);
  } // void CWorld::ReSizeGLScene(int nWidht, int nHeight)

void CWorld::DrawGLScene()
  {
  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  glLoadIdentity();

  glPushMatrix();
 

  glTranslatef(0.0, 0.0, 0.0);
  glRotatef(m_dXrot,1.0,0.0,0.0);
  glRotatef(m_dYrot,0.0,1.0,0.0);
  glRotatef(m_dZrot,0.0,0.0,1.0);

    glBegin(GL_QUADS);
    glColor4f(0.0f, 1.0f, 0.0f, 0.75f);
    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);
    
    glColor3f(1.0f, 0.5f, 0.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);
    
    glColor3f(1.0f, 0.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);
    
    glColor3f(1.0f, 1.0f, 0.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);
    
    glColor3f(0.0f, 0.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);
    
    glColor3f(0.0f, 0.5f, 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();
  
  glutSwapBuffers();
  } // void CWorld::DrawGLScene()

void CWorld::KeyPressed(unsigned char key, int x, int y)
  {
//  cout << "<" << (int)key << ">" << endl;

  switch (key)
    {
    case 27:
      glutDestroyWindow(m_nWindow);
      exit(0);
      break;
    
    case 'x': m_dXrot += .8; break;
    case 'X': m_dXrot -= .8; break;
    case 'y': m_dYrot += .8; break;
    case 'Y': m_dYrot -= .8; break;
    case 'z': m_dZrot += .8; break;
    case 'Z': m_dZrot -= .8; break;
    }
  }// void CWorld::KeyPressed(unsigned char key, int x, int y)


--- NEW FILE ---
/*
 * main.cxx
 * ---------
 *
 * MAIN
 *
 *
 * (c) 2002 Felix Morgner
 *
 */

#include "World.h"
#include <unistd.h>

using namespace std;

CWorld* g_poWorld = 0;


void DrawScene()
  {
  g_poWorld->DrawGLScene();
  }

void Idle()
  {
  usleep(100);
  g_poWorld->DrawGLScene();
  }

void KeyPressed(unsigned char key, int x, int y)
  {
  g_poWorld->KeyPressed(key, x, y);
  }
        

int main(int nParams, char* aszParams[])
  {
  g_poWorld = new CWorld(nParams, aszParams);


  glutDisplayFunc(DrawScene);
  glutFullScreen();
  glutIdleFunc(Idle);
  glutKeyboardFunc(KeyPressed);
  g_poWorld->InitGL(800, 600);
  glutMainLoop();

  delete g_poWorld;

  } // int main(int nParams, char* aszParams[])






reply via email to

[Prev in Thread] Current Thread [Next in Thread]