84d2d01163
memory manager published at flipcode.com. This can be turned on with the OSG_USE_MEMORY_MANGER option which then uses custom global new and delete operators as well as provide osgNew and osgDelete macro's which add ability to log line and file from which calls are made. Updated osg,osgUtil,osgDB,osgText and osgPlugins/osg to use osgNew/osgDelete, and fixed memory leaks highlighted by the new memory manager.
47 lines
1.1 KiB
Plaintext
47 lines
1.1 KiB
Plaintext
//C++ header - Open Scene Graph - Copyright (C) 1998-2001 Robert Osfield
|
|
//Distributed under the terms of the GNU Library General Public License (LGPL)
|
|
//as published by the Free Software Foundation.
|
|
|
|
#ifndef OSG_LIGHTSOURCE
|
|
#define OSG_LIGHTSOURCE 1
|
|
|
|
#include <osg/NodeVisitor>
|
|
#include <osg/Light>
|
|
|
|
namespace osg {
|
|
|
|
/** Leaf Node for defining a light in the scene.*/
|
|
class SG_EXPORT LightSource : public Node
|
|
{
|
|
public:
|
|
|
|
LightSource();
|
|
|
|
LightSource(const LightSource& es, const CopyOp& copyop=CopyOp::SHALLOW_COPY):
|
|
Node(es,copyop),
|
|
_light(dynamic_cast<osg::Light*>(copyop(es._light.get()))) {}
|
|
|
|
META_Node(LightSource);
|
|
|
|
/** Set the attached light.*/
|
|
inline void setLight(Light* light) { _light = light; }
|
|
|
|
/** Get the attached light.*/
|
|
inline Light* getLight() { return _light.get(); }
|
|
|
|
/** Get the const attached light.*/
|
|
inline const Light* getLight() const { return _light.get(); }
|
|
|
|
protected:
|
|
|
|
virtual ~LightSource();
|
|
|
|
virtual const bool computeBound() const;
|
|
|
|
ref_ptr<Light> _light;
|
|
};
|
|
|
|
}
|
|
|
|
#endif
|