From 2557ef4d7d43e950b7f5db74ccde91fef35fa668 Mon Sep 17 00:00:00 2001 From: Marc Zinnschlag Date: Mon, 7 Jan 2013 12:17:46 +0100 Subject: [PATCH] post merge fixes and some misc clean up --- apps/openmw/mwrender/objects.cpp | 77 +++++++++++++++----------------- 1 file changed, 36 insertions(+), 41 deletions(-) diff --git a/apps/openmw/mwrender/objects.cpp b/apps/openmw/mwrender/objects.cpp index 825ce2a14..ee36126f8 100644 --- a/apps/openmw/mwrender/objects.cpp +++ b/apps/openmw/mwrender/objects.cpp @@ -17,7 +17,7 @@ using namespace MWRender; -// These are the Morrowind.ini defaults +/// \todo Replace these, once fallback values from the ini file are available. float Objects::lightLinearValue = 3; float Objects::lightLinearRadiusMult = 1; @@ -31,7 +31,6 @@ int Objects::uniqueID = 0; void Objects::clearSceneNode (Ogre::SceneNode *node) { - /// \todo This should probably be moved into OpenEngine at some point. for (int i=node->numAttachedObjects()-1; i>=0; --i) { Ogre::MovableObject *object = node->getAttachedObject (i); @@ -374,45 +373,43 @@ void Objects::disableLights() } } -namespace pulse +namespace MWRender { - static float frequency (float x) + namespace Pulse { - return x; + static float amplitude (float phase) + { + return sin (phase); + } } - static float amplitude (float phase) + namespace Flicker { - return sin (phase); - } -} + static const float fa = 0.785398f; + static const float fb = 1.17024f; -namespace flicker -{ - static const float fa = 0.785398f; - static const float fb = 1.17024f; - - static const float tdo = 0.94f; - static const float tdm = 2.48f; + static const float tdo = 0.94f; + static const float tdm = 2.48f; - static const float f [3] = { 1.5708f, 4.18774f, 5.19934f }; - static const float o [3] = { 0.804248f, 2.11115f, 3.46832f }; - static const float m [3] = { 1.0f, 0.785f, 0.876f }; - static const float s = 0.394f; + static const float f [3] = { 1.5708f, 4.18774f, 5.19934f }; + static const float o [3] = { 0.804248f, 2.11115f, 3.46832f }; + static const float m [3] = { 1.0f, 0.785f, 0.876f }; + static const float s = 0.394f; - static const float phase_wavelength = 120.0f * 3.14159265359f / fa; + static const float phase_wavelength = 120.0f * 3.14159265359f / fa; - static float frequency (float x) - { - return tdo + tdm * sin (fa * x); - } + static float frequency (float x) + { + return tdo + tdm * sin (fa * x); + } - static float amplitude (float x) - { - float v = 0.0f; - for (int i = 0; i < 3; ++i) - v += sin (fb*x*f[i] + o[1])*m[i]; - return v * s; + static float amplitude (float x) + { + float v = 0.0f; + for (int i = 0; i < 3; ++i) + v += sin (fb*x*f[i] + o[1])*m[i]; + return v * s; + } } } @@ -425,7 +422,6 @@ void Objects::update(const float dt) { Ogre::Light* light = mMwRoot->getCreator()->getLight(it->name); - float brightness; float cycle_time; float time_distortion; @@ -438,8 +434,8 @@ void Objects::update(const float dt) else { cycle_time = 500.0f; - it->phase = fmod (it->phase + dt, flicker::phase_wavelength); - time_distortion = flicker::frequency (it->phase); + it->phase = fmod (it->phase + dt, Flicker::phase_wavelength); + time_distortion = Flicker::frequency (it->phase); } it->time += it->dir*dt*time_distortion; @@ -461,23 +457,23 @@ void Objects::update(const float dt) if (it->type == LT_Normal) { // Less than 1/255 light modifier for a constant light: - brightness = (const float)(1.0 + flicker::amplitude(it->time*slow) / 255.0 ); + brightness = (const float)(1.0 + Flicker::amplitude(it->time*slow) / 255.0 ); } else if (it->type == LT_Flicker) { - brightness = (const float)(0.75 + flicker::amplitude(it->time*fast) * 0.25); + brightness = (const float)(0.75 + Flicker::amplitude(it->time*fast) * 0.25); } else if (it->type == LT_FlickerSlow) { - brightness = (const float)(0.75 + flicker::amplitude(it->time*slow) * 0.25); + brightness = (const float)(0.75 + Flicker::amplitude(it->time*slow) * 0.25); } else if (it->type == LT_Pulse) { - brightness = (const float)(1.0 + pulse::amplitude (it->time*fast) * 0.25); + brightness = (const float)(1.0 + Pulse::amplitude (it->time*fast) * 0.25); } else if (it->type == LT_PulseSlow) { - brightness = (const float)(1.0 + pulse::amplitude (it->time*slow) * 0.25); + brightness = (const float)(1.0 + Pulse::amplitude (it->time*slow) * 0.25); } else assert(0 && "Invalid light type"); @@ -506,8 +502,7 @@ void Objects::rebuildStaticGeometry() } } -void -Objects::updateObjectCell(const MWWorld::Ptr &ptr) +void Objects::updateObjectCell(const MWWorld::Ptr &ptr) { Ogre::SceneNode *node; MWWorld::CellStore *newCell = ptr.getCell();