Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/trunk/src/world_entities/satellite.cc @ 5302

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

orxonox/trunk: fixed bug in SkyShphere, doubly deleted Model

File size: 1.8 KB
RevLine 
[3750]1
2
[4597]3/*
[3750]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
[4597]15   co-programmer:
[3750]16*/
17
18
19#include "satellite.h"
20
21#include "objModel.h"
22#include "list.h"
23#include "vector.h"
24
25
26using namespace std;
27
28/**
[4836]29 *  standard constructor
[3750]30*/
31Satellite::Satellite (Vector axis, float speed)
32{
[4320]33  this->setClassID(CL_SATELLITE, "Satellite");
[4597]34
[3750]35  this->model = (Model*) ResourceManager::getInstance()->load("cube", RP_LEVEL);
36  this->speed = speed;
37  this->axis = new Vector();
38  *this->axis = axis;
39}
40
41/**
[4836]42 *  standard destructor
[3750]43*/
44Satellite::~Satellite ()
45{
46}
47
48
49/**
[4836]50 *  this method is called every frame
51 * @param time: the time in seconds that has passed since the last tick
[4597]52
[3750]53   Handle all stuff that should update with time inside this method (movement, animation, etc.)
54*/
[4597]55void Satellite::tick(float time)
[3750]56{
57  float w = this->speed * M_PI;
58
[4597]59  Quaternion rotation(w * time, *this->axis);
[3750]60  Quaternion v = this->getRelDir();
[4597]61
[3750]62  this->setRelDir(v * rotation);
63}
64
65
66/**
[4836]67 *  the entity is drawn onto the screen with this function
[4597]68
[3750]69   This is a central function of an entity: call it to let the entity painted to the screen. Just override this function with whatever you want to be drawn.
70*/
[4597]71void Satellite::draw()
[3750]72{
73  glMatrixMode(GL_MODELVIEW);
74  glPushMatrix();
75  float matrix[4][4];
[4597]76
[3750]77  /* translate */
[4597]78  glTranslatef (this->getAbsCoor ().x,
79                this->getAbsCoor ().y,
80                this->getAbsCoor ().z);
[3750]81  /* rotate */
82  this->getAbsDir ().matrix (matrix);
83  glMultMatrixf((float*)matrix);
[4597]84
[3750]85  this->model->draw();
86  glPopMatrix();
87
88}
89
Note: See TracBrowser for help on using the repository browser.