File: lightingbright.cpp

package info (click to toggle)
openmw 0.50.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 37,076 kB
  • sloc: cpp: 380,958; xml: 2,192; sh: 1,449; python: 911; makefile: 26; javascript: 5
file content (39 lines) | stat: -rw-r--r-- 1,021 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include "lightingbright.hpp"

#include <osg/Group>
#include <osg/Light>
#include <osg/LightSource>
#include <osg/ref_ptr>

CSVRender::LightingBright::LightingBright() {}

void CSVRender::LightingBright::activate(osg::Group* rootNode, bool /*isExterior*/)
{
    mRootNode = rootNode;

    mLightSource = (new osg::LightSource);

    osg::ref_ptr<osg::Light> light(new osg::Light);
    light->setAmbient(osg::Vec4f(0.f, 0.f, 0.f, 1.f));
    light->setPosition(osg::Vec4f(0.f, 0.f, 1.f, 0.f));
    light->setDiffuse(osg::Vec4f(1.f, 1.f, 1.f, 1.f));
    light->setSpecular(osg::Vec4f(0.f, 0.f, 0.f, 0.f));
    light->setConstantAttenuation(1.f);

    mLightSource->setLight(light);

    mRootNode->addChild(mLightSource);

    updateDayNightMode(0);
}

void CSVRender::LightingBright::deactivate()
{
    if (mRootNode && mLightSource.get())
        mRootNode->removeChild(mLightSource);
}

osg::Vec4f CSVRender::LightingBright::getAmbientColour(osg::Vec4f* /*defaultAmbient*/)
{
    return osg::Vec4f(1.f, 1.f, 1.f, 1.f);
}