OpenSceneGraph/include/osg/LightSource

56 lines
1.5 KiB
Plaintext
Raw Normal View History

2002-07-17 04:07:32 +08:00
//C++ header - Open Scene Graph - Copyright (C) 1998-2002 Robert Osfield
//Distributed under the terms of the GNU Library General Public License (LGPL)
//as published by the Free Software Foundation.
2001-01-11 00:32:10 +08:00
#ifndef OSG_LIGHTSOURCE
#define OSG_LIGHTSOURCE 1
#include <osg/NodeVisitor>
#include <osg/Light>
#include <osg/Group>
2001-01-11 00:32:10 +08:00
namespace osg {
/** Leaf Node for defining a light in the scene.*/
class SG_EXPORT LightSource : public Group
2001-01-11 00:32:10 +08:00
{
public:
2001-01-11 00:32:10 +08:00
LightSource();
LightSource(const LightSource& ls, const CopyOp& copyop=CopyOp::SHALLOW_COPY):
Group(ls,copyop),
_value(ls._value),
_light(dynamic_cast<osg::StateAttribute*>(copyop(ls._light.get()))) {}
META_Node(osg, LightSource);
2001-01-11 00:32:10 +08:00
/** Set the attached light.*/
void setLight(StateAttribute* light);
2001-01-11 00:32:10 +08:00
/** Get the attached light.*/
inline StateAttribute* getLight() { return _light.get(); }
/** Get the const attached light.*/
inline const StateAttribute* getLight() const { return _light.get(); }
2001-01-11 00:32:10 +08:00
/** Set the GLModes on StateSet associated with the LightSource.*/
void setStateSetModes(StateSet&,const StateAttribute::GLModeValue) const;
/** Set up the local StateSet */
void setLocalStateSetModes(const StateAttribute::GLModeValue=StateAttribute::ON);
2001-01-11 00:32:10 +08:00
protected:
virtual ~LightSource();
virtual const bool computeBound() const;
2001-01-11 00:32:10 +08:00
StateAttribute::GLModeValue _value;
ref_ptr<StateAttribute> _light;
2001-01-11 00:32:10 +08:00
};
}
2001-01-11 00:32:10 +08:00
#endif