Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/orxonox/trunk/src/world_entities/skysphere.cc @ 3596

Last change on this file since 3596 was 3590, checked in by bensch, 19 years ago

orxonox/trunk: updated debug.h: now possibility to log per module (compile-time)

  1. write in the cc-file at the beginnig !!BEFORE ANY INCLUDES!!

#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_[MODULENAME]
where [MODULNAME] is a name of a module that can be defined in debug.h

  1. define a new MODULE: easy just write a new one under the other ones in DEBUG.h
  1. if you do not wish special loggin everything stays as is, and you do not have to worry. (then de verbose will be set from orxonox.cc: int verbose)
File size: 2.7 KB
Line 
1
2/*
3   orxonox - the future of 3D-vertical-scrollers
4
5   Copyright (C) 2004 orx
6
7   This program is free software; you can redistribute it and/or modify
8   it under the terms of the GNU General Public License as published by
9   the Free Software Foundation; either version 2, or (at your option)
10   any later version.
11
12   ### File Specific:
13   main-programmer: David Gruetter
14   co-programmer: Benjamin Grauer
15   
16   Created by Dave: this file is actually quite similar to player.cc and so is
17   skybox.h similar to player.h
18   With that said, things should be clear:)
19   
20   Edited:
21   Bensch: more constructors, changeability, comments...
22   Patrick: giving it the common orxonox style, not much to do... good work Dave!
23
24*/
25
26#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_WORLD_ENTITY
27
28#include "material.h"
29#include "skysphere.h"
30#include "stdincl.h"
31#include "vector.h"
32#include "world_entity.h"
33
34using namespace std;
35
36/**
37   \brief Standart Constructor
38*/
39Skysphere::Skysphere()
40{ 
41  this->initialize("../data/pictures/sky-replace.jpg");
42}
43
44
45/**
46   \brief Constructs a SkySphere and takes fileName as a map.
47   \param fileName the file to take as input for the skysphere
48*/
49Skysphere::Skysphere(char* fileName)
50{
51  this->initialize(fileName);
52}
53
54
55/**
56   \brief default destructor
57*/
58Skysphere::~Skysphere()
59{
60  PRINTF(3)("Deleting the SkySphere\n");
61  delete this->skyMaterial;
62  free(this->sphereObj);
63}
64
65/**
66   \brief initializes the Skysphere.
67   \param fileName the file to take as input for the skysphere
68*/
69void Skysphere::initialize(char* fileName)
70{
71  PRINTF(1)("initializing the Skysphere with Material %s.\n", fileName);
72  this->sphereObj = gluNewQuadric();
73  gluQuadricTexture(this->sphereObj, GL_TRUE);
74  this->setRadius(1900.0);
75
76  this->skyMaterial = new Material("Sky");
77  this->setTexture(fileName);
78  this->skyMaterial->setIllum(3);
79  this->skyMaterial->setAmbient(1.0, 1.0, 1.0);
80}
81
82
83/**
84   \brief Defines which texture should be loaded onto the skysphere.
85   \param fileName The filename of the Texture
86*/
87void Skysphere::setTexture(char* fileName)
88{
89  this->skyMaterial->setDiffuseMap(fileName);
90}
91
92
93/**
94   \brief draws the Skysphere
95   
96   This part is normally precessed in the "Painting Phase".
97*/
98void Skysphere::draw()
99{
100  glPushMatrix();
101  glMatrixMode(GL_MODELVIEW);
102  glTranslatef(this->absCoordinate.x,
103               this->absCoordinate.y,
104               this->absCoordinate.z);
105
106  //glRotatef(-30, 1, 0, 0);
107  //glRotatef(95.0f, 0.0f, 0.0f, 1.0f);
108  //glRotatef(-250.0f, 0.0, 1.0f, 0.0f);
109 
110  skyMaterial->select();
111  gluSphere(this->sphereObj, this->sphereRadius, 20, 20);
112  glPopMatrix();
113}
114
115
116/**
117   \brief sets the Radius of the Sphere.
118   \param radius The Radius of The Sphere
119*/
120void Skysphere::setRadius(float radius)
121{
122  this->sphereRadius = radius;
123}
Note: See TracBrowser for help on using the repository browser.