Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/volumetric_fog/src/world_entities/weather_effects/volfog_effect.cc @ 9936

Last change on this file since 9936 was 9936, checked in by hdavid, 17 years ago

branches/volumetric_fog

File size: 2.2 KB
Line 
1/*
2  orxonox - the future of 3D-vertical-scrollers
3
4  Copyright (C) 2006 orx
5
6  This program is free software; you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation; either version 2, or (at your option)
9  any later version.
10
11### File Specific:
12  main-programmer: hdavid
13*/
14
15#include "volfog_effect.h"
16
17#include "util/loading/load_param.h"
18#include "util/loading/factory.h"
19
20#include "p_node.h"
21#include "state.h"
22#include "shell_command.h"
23
24#include "glincl.h"
25#include "debug.h"
26
27#define GLX_GLXEXT_PROTOTYPES
28
29#include "class_id_DEPRECATED.h"
30ObjectListDefinitionID(VolFogEffect, CL_VOLFOG_EFFECT);
31CREATE_FACTORY(VolFogEffect);
32
33SHELL_COMMAND(activate, VolFogEffect, activateFog);
34SHELL_COMMAND(deactivate, VolFogEffect, deactivateFog);
35
36
37typedef void (APIENTRY * PFNGLFOGCOORDFEXTPROC) (GLfloat coord);    // Declare Function Prototype
38PFNGLFOGCOORDFEXTPROC glFogCoordfEXT = NULL;          // Our glFogCoordfEXT Function
39
40
41VolFogEffect::VolFogEffect(const TiXmlElement* root) {
42  this->registerObject(this, VolFogEffect::_objectList);
43
44  if (root != NULL)
45      this->loadParams(root);
46
47  // Initialize Effect
48  this->init();
49
50  // Activate Effect
51  if(fogActivate)
52    this->activate();
53}
54
55
56VolFogEffect::~VolFogEffect() {
57  if(fogActivate)
58    this->deactivate();
59}
60
61void VolFogEffect::loadParams(const TiXmlElement* root) {
62  WeatherEffect::loadParams(root);
63}
64
65void VolFogEffect::init() {
66  PRINTF(0)("Initalize VolFogEffect\n");
67 
68  fogColor[0] = 0.6f;
69  fogColor[1] = 0.3f;
70  fogColor[2] = 0.0f;
71  fogColor[3] = 1.0f;
72
73  fogActivate = false;
74}
75
76
77void VolFogEffect::activate() {
78  PRINTF(0)("Activating VolFogEffect\n");
79 
80  // Test whether the extension exists
81  if (!glewIsSupported("GL_EXT_fog_coord"))
82  {
83    PRINTF(0)("Can't activate volumetric fog, GL_EXT_fog_coord extension is misssing\n");
84    return;
85  }
86 
87  fogActivate = true;
88}
89
90void VolFogEffect::deactivate() {
91  PRINTF(0)("Deactivating VolFogEffect\n");
92 
93  fogActivate = false;
94}
95
96
97/**
98* draws the effect
99*/
100void VolFogEffect::draw() const {
101
102  if(!fogActivate)
103    return;
104}
105
106
107/**
108* ticks the effect if there is any time dependancy
109*/
110void VolFogEffect::tick(float dt) {}
Note: See TracBrowser for help on using the repository browser.