Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/trunk/src/world_entities/environment.cc @ 5716

Last change on this file since 5716 was 5500, checked in by bensch, 19 years ago

orxonox/trunk: all the WorldEntities now have a const function to draw themselves

File size: 2.0 KB
Line 
1
2
3/*
4   orxonox - the future of 3D-vertical-scrollers
5
6   Copyright (C) 2004 orx
7
8   This program is free software; you can redistribute it and/or modify
9   it under the terms of the GNU General Public License as published by
10   the Free Software Foundation; either version 2, or (at your option)
11   any later version.
12
13   ### File Specific
14   main-programmer: Patrick Boenzli
15   co-programmer:
16*/
17#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_WORLD_ENTITY
18
19
20#include "environment.h"
21
22#include "resource_manager.h"
23
24#include "vector.h"
25#include "objModel.h"
26#include "obb_tree.h"
27#include "factory.h"
28
29using namespace std;
30CREATE_FACTORY(Environment);
31
32/**
33 *  creates an environment
34*/
35Environment::Environment () : WorldEntity()
36{
37  this->init();
38  this->loadModel("models/ships/bolido.obj");
39
40  if(this->obbTree == NULL)
41    this->obbTree = new OBBTree(4, (sVec3D*)this->model->getVertexArray(), this->model->getVertexCount());
42}
43
44/**
45 * create an environment out of a XML-element
46 * @param root the XML-element to load the Environment from
47 */
48Environment::Environment(const TiXmlElement* root)
49{
50  this->init();
51  if (root != NULL)
52    this->loadParams(root);
53}
54
55/**
56 *  deletes an environment
57*/
58Environment::~Environment ()
59{}
60
61/**
62 * initialize an Environment
63 */
64void Environment::init()
65{
66  this->setClassID(CL_ENVIRONMENT, "Environment");
67}
68
69/**
70 * loads the Settings of an Environment from an XML-element.
71 * @param root the XML-element to load the ELements properties from
72 */
73void Environment::loadParams(const TiXmlElement* root)
74{
75  static_cast<WorldEntity*>(this)->loadParams(root);
76}
77
78
79/**
80 *  ticks the environment
81 * @param time the time about which to tick
82*/
83void Environment::tick (float time) {}
84
85
86/**
87 *  draws the Environment
88*/
89void Environment::draw () const
90{
91  glMatrixMode(GL_MODELVIEW);
92  glPushMatrix();
93  float matrix[4][4];
94
95  glTranslatef (this->getAbsCoor ().x, this->getAbsCoor ().y, this->getAbsCoor ().z);
96  //rotate
97  this->getAbsDir().matrix (matrix);
98  glMultMatrixf((float*)matrix);
99
100  this->model->draw();
101
102  glPopMatrix();
103}
104
Note: See TracBrowser for help on using the repository browser.