openscenegraph
osg::Light Class Reference

#include <Light>

Inheritance diagram for osg::Light:
osg::StateAttribute osg::Object osg::Referenced

Public Member Functions

 Light ()
 Light (unsigned int lightnum)
 Light (const Light &light, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
virtual osg::Object * cloneType () const
virtual osg::Object * clone (const osg::CopyOp &copyop) const
virtual bool isSameKindAs (const osg::Object *obj) const
virtual const char * libraryName () const
virtual const char * className () const
virtual Type getType () const
virtual int compare (const StateAttribute &sa) const
virtual unsigned int getMember () const
virtual bool getModeUsage (StateAttribute::ModeUsage &usage) const
void setLightNum (int num)
int getLightNum () const
void setAmbient (const Vec4 &ambient)
const Vec4 & getAmbient () const
void setDiffuse (const Vec4 &diffuse)
const Vec4 & getDiffuse () const
void setSpecular (const Vec4 &specular)
const Vec4 & getSpecular () const
void setPosition (const Vec4 &position)
const Vec4 & getPosition () const
void setDirection (const Vec3 &direction)
const Vec3 & getDirection () const
void setConstantAttenuation (float constant_attenuation)
float getConstantAttenuation () const
void setLinearAttenuation (float linear_attenuation)
float getLinearAttenuation () const
void setQuadraticAttenuation (float quadratic_attenuation)
float getQuadraticAttenuation () const
void setSpotExponent (float spot_exponent)
float getSpotExponent () const
void setSpotCutoff (float spot_cutoff)
float getSpotCutoff () const
void captureLightState ()
virtual void apply (State &state) const
Public Member Functions inherited from osg::StateAttribute
 StateAttribute ()
 StateAttribute (const StateAttribute &sa, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
virtual StateAttribute * asStateAttribute ()
virtual const StateAttribute * asStateAttribute () const
virtual Texture * asTexture ()
virtual const Texture * asTexture () const
TypeMemberPair getTypeMemberPair () const
virtual bool isTextureAttribute () const
bool operator< (const StateAttribute &rhs) const
bool operator== (const StateAttribute &rhs) const
bool operator!= (const StateAttribute &rhs) const
const ParentList & getParents () const
StateSet * getParent (unsigned int i)
const StateSet * getParent (unsigned int i) const
unsigned int getNumParents () const
void setShaderComponent (ShaderComponent *sc)
ShaderComponent * getShaderComponent ()
const ShaderComponent * getShaderComponent () const
virtual bool checkValidityOfAssociatedModes (osg::State &) const
void setUpdateCallback (StateAttributeCallback *uc)
StateAttributeCallback * getUpdateCallback ()
const StateAttributeCallback * getUpdateCallback () const
void setEventCallback (StateAttributeCallback *ec)
StateAttributeCallback * getEventCallback ()
const StateAttributeCallback * getEventCallback () const
virtual void compileGLObjects (State &) const
virtual void resizeGLObjectBuffers (unsigned int)
virtual void releaseGLObjects (State *=0) const
Public Member Functions inherited from osg::Object
 Object ()
 Object (bool threadSafeRefUnref)
 Object (const Object &, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
std::string getCompoundClassName () const
virtual Node * asNode ()
virtual const Node * asNode () const
virtual NodeVisitor * asNodeVisitor ()
virtual const NodeVisitor * asNodeVisitor () const
virtual StateSet * asStateSet ()
virtual const StateSet * asStateSet () const
virtual Uniform * asUniform ()
virtual const Uniform * asUniform () const
virtual Camera * asCamera ()
virtual const Camera * asCamera () const
virtual Drawable * asDrawable ()
virtual const Drawable * asDrawable () const
virtual Callback * asCallback ()
virtual const Callback * asCallback () const
virtual CallbackObject * asCallbackObject ()
virtual const CallbackObject * asCallbackObject () const
virtual UserDataContainer * asUserDataContainer ()
virtual const UserDataContainer * asUserDataContainer () const
virtual ValueObject * asValueObject ()
virtual const ValueObject * asValueObject () const
virtual Image * asImage ()
virtual const Image * asImage () const
virtual void setThreadSafeRefUnref (bool threadSafe)
virtual void setName (const std::string &name)
void setName (const char *name)
const std::string & getName () const
void setDataVariance (DataVariance dv)
DataVariance getDataVariance () const
virtual void computeDataVariance ()
void setUserDataContainer (osg::UserDataContainer *udc)
template<class T>
void setUserDataContainer (const ref_ptr< T > &udc)
osg::UserDataContainer * getUserDataContainer ()
const osg::UserDataContainer * getUserDataContainer () const
osg::UserDataContainer * getOrCreateUserDataContainer ()
virtual void setUserData (Referenced *obj)
template<class T>
void setUserData (const ref_ptr< T > &ud)
virtual Referenced * getUserData ()
virtual const Referenced * getUserData () const
template<typename T>
bool getUserValue (const std::string &name, T &value) const
template<typename T>
void setUserValue (const std::string &name, const T &value)
template<typename T>
BoolValueObject UCharValueObject UShortValueObject UIntValueObject DoubleValueObject Vec3fValueObject Vec2dValueObject Vec4dValueObject PlaneValueObject MatrixdValueObject BoundingBoxdValueObject BoundingSpheredValueObject bool getUserValue (const std::string &name, T &value) const
Public Member Functions inherited from osg::Referenced
 Referenced ()
 Referenced (bool threadSafeRefUnref)
 Referenced (const Referenced &)
Referenced & operator= (const Referenced &)
bool getThreadSafeRefUnref () const
OpenThreads::Mutex * getRefMutex () const
int ref () const
int unref () const
int unref_nodelete () const
int referenceCount () const
ObserverSet * getObserverSet () const
ObserverSet * getOrCreateObserverSet () const
void addObserver (Observer *observer) const
void removeObserver (Observer *observer) const

Protected Member Functions

virtual ~Light ()
void init ()
Protected Member Functions inherited from osg::StateAttribute
virtual ~StateAttribute ()
void addParent (osg::StateSet *object)
void removeParent (osg::StateSet *object)
Protected Member Functions inherited from osg::Object
virtual ~Object ()
Protected Member Functions inherited from osg::Referenced
virtual ~Referenced ()
void signalObserversAndDelete (bool signalDelete, bool doDelete) const
void deleteUsingDeleteHandler () const

Protected Attributes

int _lightnum
Vec4 _ambient
Vec4 _diffuse
Vec4 _specular
Vec4 _position
Vec3 _direction
float _constant_attenuation
float _linear_attenuation
float _quadratic_attenuation
float _spot_exponent
float _spot_cutoff
Protected Attributes inherited from osg::StateAttribute
ParentList _parents
ref_ptr< ShaderComponent > _shaderComponent
ref_ptr< StateAttributeCallback > _updateCallback
ref_ptr< StateAttributeCallback > _eventCallback
Protected Attributes inherited from osg::Object
std::string _name
DataVariance _dataVariance
osg::UserDataContainer * _userDataContainer
Protected Attributes inherited from osg::Referenced
OpenThreads::AtomicPtr _observerSet
OpenThreads::Atomic _refCount

Additional Inherited Members

Public Types inherited from osg::StateAttribute
enum  Values {
  OFF = 0x0 , ON = 0x1 , OVERRIDE = 0x2 , PROTECTED = 0x4 ,
  INHERIT = 0x8
}
enum  Type {
  TEXTURE , POLYGONMODE , POLYGONOFFSET , MATERIAL ,
  ALPHAFUNC , ANTIALIAS , COLORTABLE , CULLFACE ,
  FOG , FRONTFACE , LIGHT , POINT ,
  LINEWIDTH , LINESTIPPLE , POLYGONSTIPPLE , SHADEMODEL ,
  TEXENV , TEXENVFILTER , TEXGEN , TEXMAT ,
  LIGHTMODEL , BLENDFUNC , BLENDEQUATION , LOGICOP ,
  STENCIL , COLORMASK , DEPTH , VIEWPORT ,
  SCISSOR , BLENDCOLOR , MULTISAMPLE , CLIPPLANE ,
  COLORMATRIX , VERTEXPROGRAM , FRAGMENTPROGRAM , POINTSPRITE ,
  PROGRAM , CLAMPCOLOR , HINT , SAMPLEMASKI ,
  PRIMITIVERESTARTINDEX , CLIPCONTROL , VALIDATOR , VIEWMATRIXEXTRACTOR ,
  OSGNV_PARAMETER_BLOCK , OSGNVEXT_TEXTURE_SHADER , OSGNVEXT_VERTEX_PROGRAM , OSGNVEXT_REGISTER_COMBINERS ,
  OSGNVCG_PROGRAM , OSGNVSLANG_PROGRAM , OSGNVPARSE_PROGRAM_PARSER , UNIFORMBUFFERBINDING ,
  TRANSFORMFEEDBACKBUFFERBINDING , ATOMICCOUNTERBUFFERBINDING , PATCH_PARAMETER , FRAME_BUFFER_OBJECT ,
  VERTEX_ATTRIB_DIVISOR , SHADERSTORAGEBUFFERBINDING , INDIRECTDRAWBUFFERBINDING , VIEWPORTINDEXED ,
  DEPTHRANGEINDEXED , SCISSORINDEXED , BINDIMAGETEXTURE , SAMPLER ,
  CAPABILITY = 100
}
typedef GLenum GLMode
typedef unsigned int GLModeValue
typedef unsigned int OverrideValue
typedef std::pair< Type, unsigned int > TypeMemberPair
typedef std::vector< StateSet * > ParentList
typedef osg::StateAttributeCallback Callback
Public Types inherited from osg::Object
enum  DataVariance { DYNAMIC , STATIC , UNSPECIFIED }
Static Public Member Functions inherited from osg::Referenced
static OpenThreads::Mutex * getGlobalReferencedMutex ()
static void setDeleteHandler (DeleteHandler *handler)
static DeleteHandler * getDeleteHandler ()

Detailed Description

Light state class which encapsulates OpenGL glLight() functionality.

Constructor & Destructor Documentation

◆ Light() [1/3]

osg::Light::Light ( )

◆ Light() [2/3]

osg::Light::Light ( unsigned int lightnum)

◆ Light() [3/3]

osg::Light::Light ( const Light & light,
const CopyOp & copyop = CopyOp::SHALLOW_COPY )
inline

◆ ~Light()

virtual osg::Light::~Light ( )
protectedvirtual

Member Function Documentation

◆ apply()

virtual void osg::Light::apply ( State & state) const
virtual

Apply the light's state to the OpenGL state machine.

Reimplemented from osg::StateAttribute.

◆ captureLightState()

void osg::Light::captureLightState ( )

Capture the lighting settings of the current OpenGL state and store them in this object.

◆ className()

virtual const char * osg::Light::className ( ) const
inlinevirtual

Return the name of the attribute's class type.

Reimplemented from osg::StateAttribute.

◆ clone()

virtual osg::Object * osg::Light::clone ( const osg::CopyOp & ) const
inlinevirtual

Clone an attribute, with Object* return type. Must be defined by derived classes.

Implements osg::StateAttribute.

References Light().

◆ cloneType()

virtual osg::Object * osg::Light::cloneType ( ) const
inlinevirtual

Clone the type of an attribute, with Object* return type. Must be defined by derived classes.

Implements osg::StateAttribute.

References _lightnum, and Light().

◆ compare()

virtual int osg::Light::compare ( const StateAttribute & sa) const
inlinevirtual

◆ getAmbient()

const Vec4 & osg::Light::getAmbient ( ) const
inline

Get the ambient component of the light.

References _ambient.

◆ getConstantAttenuation()

float osg::Light::getConstantAttenuation ( ) const
inline

Get the constant attenuation of the light.

References _constant_attenuation.

◆ getDiffuse()

const Vec4 & osg::Light::getDiffuse ( ) const
inline

Get the diffuse component of the light.

References _diffuse.

◆ getDirection()

const Vec3 & osg::Light::getDirection ( ) const
inline

Get the direction of the light.

References _direction.

◆ getLightNum()

int osg::Light::getLightNum ( ) const
inline

Get which OpenGL light this osg::Light operates on.

References _lightnum.

◆ getLinearAttenuation()

float osg::Light::getLinearAttenuation ( ) const
inline

Get the linear attenuation of the light.

References _linear_attenuation.

◆ getMember()

virtual unsigned int osg::Light::getMember ( ) const
inlinevirtual

Return the member identifier within the attribute's class type. Used for light number/clip plane number etc.

Reimplemented from osg::StateAttribute.

References _lightnum.

◆ getModeUsage()

virtual bool osg::Light::getModeUsage ( StateAttribute::ModeUsage & ) const
inlinevirtual

Return the modes associated with this StateAttribute.

Reimplemented from osg::StateAttribute.

References _lightnum, GL_LIGHT0, and osg::StateAttribute::ModeUsage::usesMode().

◆ getPosition()

const Vec4 & osg::Light::getPosition ( ) const
inline

Get the position of the light.

References _position.

◆ getQuadraticAttenuation()

float osg::Light::getQuadraticAttenuation ( ) const
inline

Get the quadratic attenuation of the light.

References _quadratic_attenuation.

◆ getSpecular()

const Vec4 & osg::Light::getSpecular ( ) const
inline

Get the specular component of the light.

References _specular.

◆ getSpotCutoff()

float osg::Light::getSpotCutoff ( ) const
inline

Get the spot cutoff of the light.

References _spot_cutoff.

◆ getSpotExponent()

float osg::Light::getSpotExponent ( ) const
inline

Get the spot exponent of the light.

References _spot_exponent.

◆ getType()

virtual Type osg::Light::getType ( ) const
inlinevirtual

Return the Type identifier of the attribute's class type.

Implements osg::StateAttribute.

References osg::StateAttribute::LIGHT.

◆ init()

void osg::Light::init ( )
protected

Initialize the light's settings with some decent defaults.

◆ isSameKindAs()

virtual bool osg::Light::isSameKindAs ( const osg::Object * obj) const
inlinevirtual

Return true if this and obj are of the same kind of object.

Reimplemented from osg::StateAttribute.

References Light(), and NULL.

◆ libraryName()

virtual const char * osg::Light::libraryName ( ) const
inlinevirtual

Return the name of the attribute's library.

Reimplemented from osg::StateAttribute.

◆ setAmbient()

void osg::Light::setAmbient ( const Vec4 & ambient)
inline

Set the ambient component of the light.

References _ambient.

◆ setConstantAttenuation()

void osg::Light::setConstantAttenuation ( float constant_attenuation)
inline

Set the constant attenuation of the light.

References _constant_attenuation.

◆ setDiffuse()

void osg::Light::setDiffuse ( const Vec4 & diffuse)
inline

Set the diffuse component of the light.

References _diffuse.

◆ setDirection()

void osg::Light::setDirection ( const Vec3 & direction)
inline

Set the direction of the light.

References _direction.

◆ setLightNum()

void osg::Light::setLightNum ( int num)

Set which OpenGL light to operate on.

◆ setLinearAttenuation()

void osg::Light::setLinearAttenuation ( float linear_attenuation)
inline

Set the linear attenuation of the light.

References _linear_attenuation.

◆ setPosition()

void osg::Light::setPosition ( const Vec4 & position)
inline

Set the position of the light.

References _position.

◆ setQuadraticAttenuation()

void osg::Light::setQuadraticAttenuation ( float quadratic_attenuation)
inline

Set the quadratic attenuation of the light.

References _quadratic_attenuation.

◆ setSpecular()

void osg::Light::setSpecular ( const Vec4 & specular)
inline

Set the specular component of the light.

References _specular.

◆ setSpotCutoff()

void osg::Light::setSpotCutoff ( float spot_cutoff)
inline

Set the spot cutoff of the light.

References _spot_cutoff.

◆ setSpotExponent()

void osg::Light::setSpotExponent ( float spot_exponent)
inline

Set the spot exponent of the light.

References _spot_exponent.

Member Data Documentation

◆ _ambient

Vec4 osg::Light::_ambient
protected

Referenced by compare(), getAmbient(), Light(), and setAmbient().

◆ _constant_attenuation

float osg::Light::_constant_attenuation
protected

◆ _diffuse

Vec4 osg::Light::_diffuse
protected

Referenced by compare(), getDiffuse(), Light(), and setDiffuse().

◆ _direction

Vec3 osg::Light::_direction
protected

◆ _lightnum

int osg::Light::_lightnum
protected

◆ _linear_attenuation

float osg::Light::_linear_attenuation
protected

◆ _position

Vec4 osg::Light::_position
protected

◆ _quadratic_attenuation

float osg::Light::_quadratic_attenuation
protected

◆ _specular

Vec4 osg::Light::_specular
protected

◆ _spot_cutoff

float osg::Light::_spot_cutoff
protected

◆ _spot_exponent

float osg::Light::_spot_exponent
protected

The documentation for this class was generated from the following file: