Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/trunk/src/world_entities/skybox.h @ 6786

Last change on this file since 6786 was 6771, checked in by bensch, 19 years ago

Water is better now (but still quite Bad)

File size: 2.3 KB
RevLine 
[4597]1/*!
[5039]2 * @file skybox.h
[5357]3 *  Definition of the SkyBox, that handles the Display of an atmosphere for orxonox.
4 *
5 * A SkyBox is always centered at the current working Camera, and will only obey the cameras
6 * movment but not its rotation.
[3416]7*/
8
[3796]9#ifndef _SKYBOX_H
10#define _SKYBOX_H
[3416]11
[3419]12/* INCLUDES */
[3502]13#include "world_entity.h"
[6771]14#include "material.h"
[3411]15
[6771]16enum SKY_SIDE
17{
18  SKY_TOP = 0,
19  SKY_BOTTOM,
20  SKY_LEFT,
21  SKY_RIGHT,
22  SKY_FRONT,
23  SKY_BACK
24};
[3419]25
[3807]26//! A Class to handle a SkyBox
[3796]27class SkyBox : public WorldEntity
[3411]28{
[3416]29 public:
[4261]30  SkyBox(const char* fileName = NULL);
31  SkyBox(const TiXmlElement* root);
[4010]32
[3796]33  virtual ~SkyBox();
[3419]34
[5357]35  void init();
[4746]36  void preInit();
[4680]37
[6512]38  virtual void loadParams(const TiXmlElement* root);
[4261]39
[4746]40  void postInit();
[4010]41
[6634]42  virtual void draw();
[4012]43
[3796]44  void setSize(float size);
[4998]45  /** assumes jpg as input-format */
[6341]46  void setTexture(const char* name) { if (textureName) delete[] textureName; textureName = new char[strlen(name)+1]; strcpy(textureName, name); this->setTextureAndType (name, "jpg"); };
[4680]47
[4261]48  void setTextureAndType(const char* name, const char* extension);
[4680]49  void setTextures(const char* top, const char* bottom, const char* left,
50                   const char* right, const char* front, const char* back);
[3420]51
[6470]52  void loadCubeMapTextures(const char* top, const char* bottom, const char* left,
53                           const char* right, const char* front, const char* back);
54
[6771]55  GLuint getTexture(SKY_SIDE side) const { return (this->material[side]) ? this->material[side]->getDiffuseTexture(): 0; };
56
[6470]57  static void enableCubeMap();
58  static void disableCubeMap();
59
[6341]60  virtual int       writeBytes(const byte* data, int length, int sender);
61  virtual int       readBytes(byte* data, int maxLength, int * reciever);
62  virtual void      writeDebug() const;
63  virtual void      readDebug() const;
64
[3801]65 private:
66  void rebuild();
67
[6307]68  Material*       material[6];     //!< Materials for the SkyBox. sorted by number (0-5) top, bottom, left, right, front, back
[6519]69  Texture*        cubeTexture[6];  //!< Textures for the CubeMap.
[6470]70
[4597]71  float           size;            //!< Size of the SkyBox. This should match the frustum maximum range.
[6634]72  float           textureSize;     //!< this is the length of a texture (assumes a square texture)
[6341]73  char*           textureName;     //!< Name of the Texture
[4597]74
[3411]75};
76
[3796]77#endif  /* _SKYBOX_H */
[3411]78
79
[3484]80
Note: See TracBrowser for help on using the repository browser.