[Orxonox-commit 3813] r8491 - code/branches/environment2/src/orxonox/graphics
marwegma at orxonox.net
marwegma at orxonox.net
Mon May 16 16:34:20 CEST 2011
Author: marwegma
Date: 2011-05-16 16:34:19 +0200 (Mon, 16 May 2011)
New Revision: 8491
Modified:
code/branches/environment2/src/orxonox/graphics/GlobalGodrayShader.cc
code/branches/environment2/src/orxonox/graphics/GlobalGodrayShader.h
code/branches/environment2/src/orxonox/graphics/GlobalShader.cc
Log:
Safety Commit
Modified: code/branches/environment2/src/orxonox/graphics/GlobalGodrayShader.cc
===================================================================
--- code/branches/environment2/src/orxonox/graphics/GlobalGodrayShader.cc 2011-05-16 13:52:31 UTC (rev 8490)
+++ code/branches/environment2/src/orxonox/graphics/GlobalGodrayShader.cc 2011-05-16 14:34:19 UTC (rev 8491)
@@ -29,10 +29,10 @@
/**
@file
- @brief Implementation of the GlobalGodrayShader.
+ @brief Implementation of the GlobalGodrayShader class.
*/
-#include "GlobalShader.h"
+#include "GlobalGodrayShader.h"
#include "util/Exception.h"
#include "core/CoreIncludes.h"
@@ -42,7 +42,7 @@
{
CreateFactory(GlobalGodrayShader);
- GlobalGodrayShader::GlobalGodrayShader(BaseObject* creator, WorldEntity blurObject) : BaseObject(creator)
+ GlobalGodrayShader::GlobalGodrayShader(BaseObject* creator) : BaseObject(creator), globalShader_(creator)
{
RegisterObject(GlobalGodrayShader);
@@ -51,18 +51,60 @@
// if (!this->getScene()->getSceneManager())
// ThrowException(AbortLoading, "Can't create GlobalGodrayShader, no scene manager given.");
- if (this->getScene()->getSceneManager())
- this- setSceneManager(this->getScene()->getSceneManager());
+ this->skyColor_ = {0.0f, 0.0f, 0.0f, 1.0f};
+ this->exposure_ = 1.0f;
+ this->decay_ = 0.1f;
+ this->density_ = 0.7f;
}
- GlobalGodrayShader::~GlobalShader()
+ GlobalGodrayShader::~GlobalGodrayShader()
{
+ this->setVisible(false);
}
+ void GlobalGodrayShader::tick(float dt)
+ {
+ // To-Do
+ }
+
void GlobalGodrayShader::XMLPort(Element& xmlelement, XMLPort::Mode mode)
{
SUPER(GlobalGodrayShader, XMLPort, xmlelement, mode);
- XMLPortParamExtern(GlobalShader, Shader, &this->shader_, "compositor", setCompositorName, getCompositorName, xmlelement, mode);
+ XMLPortParamTemplate(GlobalGodrayShader, "sunPosition", setSunPosition, getSunPosition, xmlelement, mode, const Vector3&);
+ XMLPortParamTemplate(GlobalGodrayShader, "skyColor", setSkyColor, getSkyColor, xmlelement, mode, const Vector4&);
+ XMLPortParamVariable(GlobalGodrayShader, exposure_, "exposure", xmlelement, mode);
+ XMLPortParamVariable(GlobalGodrayShader, decay_, "decay", xmlelement, mode);
+ XMLPortParamVariable(GlobalGodrayShader, density_, "density", xmlelement, mode);
}
+
+ void GlobalGodrayShader::setSunPosition(const Vector3& position)
+ {
+ this->sunPosition.x = position.x;
+ this->sunPosition.y = position.y;
+ this->sunPosition.z = position.z;
+ }
+ void GlobalGodrayShader::setSkyColor(const Vector4& color)
+ {
+ this->skyColor[0] = color.x;
+ this->skyColor[1] = color.y;
+ this->skyColor[2] = color.z;
+ this->skyColor[3] = color.w;
+ }
+ const Vector3& GlobalGodrayShader::getSunPosition() const
+ {
+ return sunPosition;
+ }
+ const Vector4& GlobalGodrayShader::getSkyColor() const
+ {
+ Vector4 &color = new Vector4(skyColor[0], skyColor[1], skyColor[2], skyColor[3]);
+ return color;
+ }
+
+ void GlobalShader::changedVisibility()
+ {
+ SUPER(GlobalShader, changedVisibility);
+
+ this->globalShader_.setVisible(this->isVisible());
+ }
}
Modified: code/branches/environment2/src/orxonox/graphics/GlobalGodrayShader.h
===================================================================
--- code/branches/environment2/src/orxonox/graphics/GlobalGodrayShader.h 2011-05-16 13:52:31 UTC (rev 8490)
+++ code/branches/environment2/src/orxonox/graphics/GlobalGodrayShader.h 2011-05-16 14:34:19 UTC (rev 8491)
@@ -52,22 +52,33 @@
*/
class _OrxonoxExport GlobalGodrayShader : public BaseObject, public Tickable
{
- public:
- GlobalGodrayShader(BaseObject* creator);
- virtual ~GlobalGodrayShader();
+ public:
+ GlobalGodrayShader(BaseObject* creator);
+ virtual ~GlobalGodrayShader();
+
+ virtual void tick(float dt);
+
+ virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
- virtual void tick(float dt);
+ virtual void changedVisibility();
+
+ inline const GlobalShader& getGlobalShader() const
+ { return this->globalShader_; }
- virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+ void setSunPosition(const Vector3& position);
+ void setSkyColor(const Vector4& color);
+ const Vector3& getSunPosition() const;
+ const Vector4& getSkyColor() const;
- inline const GlobalShader& getGlobalShader() const
- { return this->globalShader_; }
-
- private:
-
- GlobalShader globalShader_;
- Vector3
-
+ private:
+
+ GlobalShader globalShader_;
+
+ Vector3 sunPosition_;
+ float skyColor_[4];
+ float exposure_;
+ float decay_;
+ float density_;
};
}
Modified: code/branches/environment2/src/orxonox/graphics/GlobalShader.cc
===================================================================
--- code/branches/environment2/src/orxonox/graphics/GlobalShader.cc 2011-05-16 13:52:31 UTC (rev 8490)
+++ code/branches/environment2/src/orxonox/graphics/GlobalShader.cc 2011-05-16 14:34:19 UTC (rev 8491)
@@ -37,7 +37,7 @@
{
CreateFactory(GlobalShader);
- GlobalShader::GlobalShader(BaseObject* creator) : BaseObject(creator), Synchronisable(creator)
+ GlobalShader::GlobalShader(BaseObject* creator) : BaseObject(creator), Synchronisable(creator),
{
RegisterObject(GlobalShader);
@@ -50,6 +50,7 @@
this->shader_.setSceneManager(this->getScene()->getSceneManager());
this->registerVariables();
+
}
GlobalShader::~GlobalShader()
More information about the Orxonox-commit
mailing list