Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/playability/src/world_entities/test_entity2.cc @ 10019

Last change on this file since 10019 was 10005, checked in by nicolasc, 18 years ago

textured test_entity2, minor changes in hbolt

File size: 5.1 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#include "class_id_DEPRECATED.h"
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("maps/TE2.tga");
90}
91
92
93/**
94 * loads the Settings of a MD2Creature from an XML-element.
95 * @param root the XML-element to load the MD2Creature's properties from
96 */
97void TestEntity2::loadParams(const TiXmlElement* root)
98{
99  WorldEntity::loadParams(root);
100}
101
102
103void TestEntity2::updateAngle()
104{
105  this->angle = this->angle + this->rotationSpeed;
106}
107
108void TestEntity2::draw() const
109{
110
111  glPushAttrib(GL_ENABLE_BIT);
112  glDisable(GL_LIGHTING);
113
114  glPushMatrix();
115  glMatrixMode(GL_MODELVIEW);
116
117
118    /* translate */
119  glTranslatef (this->getAbsCoor ().x,
120                  this->getAbsCoor ().y,
121                  this->getAbsCoor ().z);
122  Vector tmpRot = this->getAbsDir().getSpacialAxis();
123  glRotatef (this->getAbsDir().getSpacialAxisAngle(), tmpRot.x, tmpRot.y, tmpRot.z );
124  glRotatef(this->angle, 1.0, 1.0, 1.0);
125//PRINTF(0)("axis: %f\n", axis);
126
127
128  glEnable(GL_TEXTURE_2D);
129  this->material->select();
130
131  glColor3f(1.0, 1.0, 1.0);
132
133  glBegin(GL_QUADS); // +X
134    glTexCoord2f (0.0, 0.0);
135    glVertex3f( 0.0f, -0.5f, -0.5f);
136//     glNormal3f(1.0, 0.0, 0.0);
137
138    glTexCoord2f (1.0, 0.0);
139    glVertex3f( 0.0f, -0.5f , 0.5f);
140//     glNormal3f(1.0, 0.0, 0.0);
141
142    glTexCoord2f (1.0, 1.0);
143    glVertex3f( 0.0, 0.5f , 0.5f );
144//     glNormal3f(1.0, 0.0, 0.0);
145
146
147    glTexCoord2f (0.0, 1.0);
148    glVertex3f( 0.0, 0.5f, -0.5f );
149//     glNormal3f(1.0, 0.0, 0.0);
150  glEnd();
151
152  glBegin(GL_QUADS); // +Y
153    glTexCoord2f (0.0, 0.0);
154    glVertex3f(-0.5f, 0.0f, -0.5f);
155//     glNormal3f(0.0, 1.0, 0.0);
156
157    glTexCoord2f (1.0, 0.0);
158    glVertex3f(-0.5f, 0.0f , 0.5f);
159//     glNormal3f(0.0, 1.0, 0.0);
160
161    glTexCoord2f (1.0, 1.0);
162    glVertex3f( 0.5f, 0.0f , 0.5f );
163//     glNormal3f(0.0, 1.0, 0.0);
164
165    glTexCoord2f (0.0, 1.0);
166    glVertex3f( 0.5f, 0.0f, -0.5f );
167//     glNormal3f(0.0, 1.0, 0.0);
168  glEnd();
169
170  glBegin(GL_QUADS);// +Z
171    glTexCoord2f (0.0, 0.0);
172    glVertex3f(-0.5f, -0.5f, 0.0f);
173//     glNormal3f(0.0, 0.0, 1.0);
174
175    glTexCoord2f (1.0, 0.0);
176    glVertex3f(-0.5f, 0.5f , 0.0f);
177//     glNormal3f(0.0, 0.0, 1.0);
178
179    glTexCoord2f (1.0, 1.0);
180    glVertex3f( 0.5f, 0.5f , 0.0f );
181//     glNormal3f(0.0, 0.0, 1.0);
182
183    glTexCoord2f (0.0, 1.0);
184    glVertex3f( 0.5f, -0.5f, 0.0f );
185//     glNormal3f(0.0, 0.0, 1.0);
186  glEnd();
187
188  glBegin(GL_QUADS);// -X
189    glTexCoord2f (0.0, 0.0);
190    glVertex3f( 0.0f, -0.5f, -0.5f);
191//     glNormal3f(-1.0, 0.0, 0.0);
192
193    glTexCoord2f (1.0, 0.0);
194    glVertex3f( 0.0f, 0.5f , -0.5f);
195//     glNormal3f(-1.0, 0.0, 0.0);
196
197    glTexCoord2f (1.0, 1.0);
198    glVertex3f( 0.0, 0.5f , 0.5f );
199//     glNormal3f(-1.0, 0.0, 0.0);
200
201    glTexCoord2f (0.0, 1.0);
202    glVertex3f( 0.0, -0.5f, 0.5f );
203//     glNormal3f(-1.0, 0.0, 0.0);
204  glEnd();
205
206  glBegin(GL_QUADS);// -Y
207    glTexCoord2f (0.0, 0.0);
208    glVertex3f(-0.5f, 0.0f, -0.5f);
209//     glNormal3f(0.0, -1.0, 0.0);
210
211    glTexCoord2f (1.0, 0.0);
212    glVertex3f(0.5f, 0.0f , -0.5f);
213//     glNormal3f(0.0, -1.0, 0.0);
214
215    glTexCoord2f (1.0, 1.0);
216    glVertex3f( 0.5f, 0.0f , 0.5f );
217//     glNormal3f(0.0, -1.0, 0.0);
218
219    glTexCoord2f (0.0, 1.0);
220    glVertex3f( -0.5f, 0.0f, 0.5f );
221//     glNormal3f(0.0, -1.0, 0.0);
222  glEnd();
223
224  glBegin(GL_QUADS);// -Z
225    glTexCoord2f (0.0, 0.0);
226    glVertex3f(-0.5f, -0.5f, 0.0f);
227//     glNormal3f(0.0, 0.0, -1.0);
228
229    glTexCoord2f (1.0, 0.0);
230    glVertex3f(0.5f, -0.5f , 0.0f);
231//     glNormal3f(0.0, 0.0, -1.0);
232
233    glTexCoord2f (1.0, 1.0);
234    glVertex3f( 0.5f, 0.5f , 0.0f );
235//     glNormal3f(0.0, 0.0, -1.0);
236
237    glTexCoord2f (0.0, 1.0);
238    glVertex3f( -0.5f, 0.5f, 0.0f );
239//     glNormal3f(0.0, 0.0, -1.0);
240  glEnd();
241
242  glPopMatrix();
243  glPopAttrib();
244}
245
246/**
247 *
248 */
249void TestEntity2::tick (float time)
250{
251  Player* p = State::getPlayer();
252  Playable* pl = p->getPlayable();
253
254  this->setParent(pl);
255
256  this->updateAngle();
257}
258
259
260
261
262
263
Note: See TracBrowser for help on using the repository browser.