Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/blink/src/world_entities/test_entity2.cc @ 10770

Last change on this file since 10770 was 10420, checked in by patrick, 18 years ago

maps ⇒ textures

File size: 5.2 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:
15   co-programmer:
16*/
17#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_WORLD_ENTITY
18
19
20#include "executor/executor.h"
21#include "util/loading/factory.h"
22#include "util/loading/load_param.h"
23
24
25#include "test_entity2.h"
26#include "debug.h"
27
28#include "state.h"
29#include "player.h"
30#include "playable.h"
31#include "material.h"
32
33
34#include "state.h"
35
36
37
38
39ObjectListDefinition(TestEntity2);
40CREATE_FACTORY(TestEntity2);
41
42
43
44/**
45 *
46 */
47TestEntity2::TestEntity2()
48{
49  this->init();
50}
51
52
53/**
54 *
55 */
56TestEntity2::TestEntity2(const TiXmlElement* root)
57{
58  this->init();
59
60  if( root != NULL)
61    this->loadParams(root);
62}
63
64
65/**
66 *
67 */
68TestEntity2::~TestEntity2 ()
69{}
70
71
72/**
73 *
74 */
75void TestEntity2::init()
76{
77  this->registerObject(this, TestEntity2::_objectList);
78  this->toList(OM_GROUP_00);
79
80  this->material = new Material();
81  this->material->setIllum(3);
82  this->material->setDiffuse(1.0,1.0,1.0);
83  this->material->setSpecular(0.0,0.0,0.0);
84  this->material->setAmbient(1.0, 1.0, 1.0);
85
86  this->angle = 0;
87  this->rotationSpeed = 3;
88
89  this->material->setDiffuseMap("textures/TE2.tga");
90
91}
92
93
94/**
95 * loads the Settings of a MD2Creature from an XML-element.
96 * @param root the XML-element to load the MD2Creature's properties from
97 */
98void TestEntity2::loadParams(const TiXmlElement* root)
99{
100  WorldEntity::loadParams(root);
101}
102
103
104void TestEntity2::updateAngle()
105{
106  this->angle = this->angle + this->rotationSpeed;
107}
108
109void TestEntity2::draw() const
110{
111
112  glPushAttrib(GL_ENABLE_BIT);
113  glDisable(GL_LIGHTING);
114
115  glPushMatrix();
116  glMatrixMode(GL_MODELVIEW);
117
118
119    /* translate */
120  glTranslatef (this->getAbsCoor ().x,
121                  this->getAbsCoor ().y,
122                  this->getAbsCoor ().z);
123  Vector tmpRot = this->getAbsDir().getSpacialAxis();
124  glRotatef (this->getAbsDir().getSpacialAxisAngle(), tmpRot.x, tmpRot.y, tmpRot.z );
125  glRotatef(this->angle, 1.0, 1.0, 1.0);
126//PRINTF(0)("axis: %f\n", axis);
127
128
129  glEnable(GL_BLEND);
130  glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
131  glShadeModel(GL_FLAT);
132  glClearColor(0.0, 0.0, 0.0, 0.0);
133
134  glEnable(GL_TEXTURE_2D);
135  this->material->select();
136
137  glColor3f(1.0, 1.0, 1.0);
138
139  glBegin(GL_QUADS); // +X
140    glTexCoord2f (0.0, 0.0);
141    glVertex3f( 0.0f, -0.5f, -0.5f);
142//     glNormal3f(1.0, 0.0, 0.0);
143
144    glTexCoord2f (1.0, 0.0);
145    glVertex3f( 0.0f, -0.5f , 0.5f);
146//     glNormal3f(1.0, 0.0, 0.0);
147
148    glTexCoord2f (1.0, 1.0);
149    glVertex3f( 0.0, 0.5f , 0.5f );
150//     glNormal3f(1.0, 0.0, 0.0);
151
152
153    glTexCoord2f (0.0, 1.0);
154    glVertex3f( 0.0, 0.5f, -0.5f );
155//     glNormal3f(1.0, 0.0, 0.0);
156  glEnd();
157
158  glBegin(GL_QUADS); // +Y
159    glTexCoord2f (0.0, 0.0);
160    glVertex3f(-0.5f, 0.0f, -0.5f);
161//     glNormal3f(0.0, 1.0, 0.0);
162
163    glTexCoord2f (1.0, 0.0);
164    glVertex3f(-0.5f, 0.0f , 0.5f);
165//     glNormal3f(0.0, 1.0, 0.0);
166
167    glTexCoord2f (1.0, 1.0);
168    glVertex3f( 0.5f, 0.0f , 0.5f );
169//     glNormal3f(0.0, 1.0, 0.0);
170
171    glTexCoord2f (0.0, 1.0);
172    glVertex3f( 0.5f, 0.0f, -0.5f );
173//     glNormal3f(0.0, 1.0, 0.0);
174  glEnd();
175
176  glBegin(GL_QUADS);// +Z
177    glTexCoord2f (0.0, 0.0);
178    glVertex3f(-0.5f, -0.5f, 0.0f);
179//     glNormal3f(0.0, 0.0, 1.0);
180
181    glTexCoord2f (1.0, 0.0);
182    glVertex3f(-0.5f, 0.5f , 0.0f);
183//     glNormal3f(0.0, 0.0, 1.0);
184
185    glTexCoord2f (1.0, 1.0);
186    glVertex3f( 0.5f, 0.5f , 0.0f );
187//     glNormal3f(0.0, 0.0, 1.0);
188
189    glTexCoord2f (0.0, 1.0);
190    glVertex3f( 0.5f, -0.5f, 0.0f );
191//     glNormal3f(0.0, 0.0, 1.0);
192  glEnd();
193
194/*
195  glBegin(GL_QUADS);// -X
196    glTexCoord2f (0.0, 0.0);
197    glVertex3f( 0.0f, -0.5f, -0.5f);
198//     glNormal3f(-1.0, 0.0, 0.0);
199
200    glTexCoord2f (1.0, 0.0);
201    glVertex3f( 0.0f, 0.5f , -0.5f);
202//     glNormal3f(-1.0, 0.0, 0.0);
203
204    glTexCoord2f (1.0, 1.0);
205    glVertex3f( 0.0, 0.5f , 0.5f );
206//     glNormal3f(-1.0, 0.0, 0.0);
207
208    glTexCoord2f (0.0, 1.0);
209    glVertex3f( 0.0, -0.5f, 0.5f );
210//     glNormal3f(-1.0, 0.0, 0.0);
211  glEnd();
212
213  glBegin(GL_QUADS);// -Y
214    glTexCoord2f (0.0, 0.0);
215    glVertex3f(-0.5f, 0.0f, -0.5f);
216//     glNormal3f(0.0, -1.0, 0.0);
217
218    glTexCoord2f (1.0, 0.0);
219    glVertex3f(0.5f, 0.0f , -0.5f);
220//     glNormal3f(0.0, -1.0, 0.0);
221
222    glTexCoord2f (1.0, 1.0);
223    glVertex3f( 0.5f, 0.0f , 0.5f );
224//     glNormal3f(0.0, -1.0, 0.0);
225
226    glTexCoord2f (0.0, 1.0);
227    glVertex3f( -0.5f, 0.0f, 0.5f );
228//     glNormal3f(0.0, -1.0, 0.0);
229  glEnd();
230
231  glBegin(GL_QUADS);// -Z
232    glTexCoord2f (0.0, 0.0);
233    glVertex3f(-0.5f, -0.5f, 0.0f);
234//     glNormal3f(0.0, 0.0, -1.0);
235
236    glTexCoord2f (1.0, 0.0);
237    glVertex3f(0.5f, -0.5f , 0.0f);
238//     glNormal3f(0.0, 0.0, -1.0);
239
240    glTexCoord2f (1.0, 1.0);
241    glVertex3f( 0.5f, 0.5f , 0.0f );
242//     glNormal3f(0.0, 0.0, -1.0);
243
244    glTexCoord2f (0.0, 1.0);
245    glVertex3f( -0.5f, 0.5f, 0.0f );
246//     glNormal3f(0.0, 0.0, -1.0);
247  glEnd();*/
248
249  glPopMatrix();
250  glPopAttrib();
251}
252
253/**
254 *
255 */
256void TestEntity2::tick (float time)
257{
258  Player* p = State::getPlayer();
259  Playable* pl = p->getPlayable();
260
261  this->setParent(pl);
262
263  this->updateAngle();
264}
265
266
267
268
269
270
Note: See TracBrowser for help on using the repository browser.