osg::Light Class Reference

`#include <Light>`

Inheritance diagram for osg::Light:

## 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 | ( |  | ) |

Referenced by clone(), cloneType(), compare(), isSameKindAs(), and 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

Copy constructor using CopyOp to manage deep vs shallow copy.

References _ambient, _constant_attenuation, _diffuse, _direction, _lightnum, _linear_attenuation, _position, _quadratic_attenuation, _specular, _spot_cutoff, _spot_exponent, Light(), osg::CopyOp::SHALLOW_COPY, and osg::StateAttribute::StateAttribute().

## ~Light()

virtual osg::Light::~Light | ( |  | ) |

protected virtual

## 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

inline virtual

Return the name of the attribute's class type.

Reimplemented from osg::StateAttribute.

## clone()

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

inline virtual

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

inline virtual

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

inline virtual

Return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs.

Implements osg::StateAttribute.

References _ambient, _constant_attenuation, _diffuse, _direction, _lightnum, _linear_attenuation, _position, _quadratic_attenuation, _specular, _spot_cutoff, _spot_exponent, COMPARE_StateAttribute_Parameter, COMPARE_StateAttribute_Types, Light(), and osg::StateAttribute::StateAttribute().

## 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

inline virtual

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

inline virtual

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

inline virtual

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

inline virtual

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

inline virtual

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

Referenced by compare(), getConstantAttenuation(), Light(), and setConstantAttenuation().

## _diffuse

Vec4 osg::Light::_diffuse

protected

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

## _direction

Vec3 osg::Light::_direction

protected

Referenced by compare(), getDirection(), Light(), and setDirection().

## _lightnum

int osg::Light::_lightnum

protected

Referenced by cloneType(), compare(), getLightNum(), getMember(), getModeUsage(), and Light().

## _linear_attenuation

float osg::Light::_linear_attenuation

protected

Referenced by compare(), getLinearAttenuation(), Light(), and setLinearAttenuation().

## _position

Vec4 osg::Light::_position

protected

Referenced by compare(), getPosition(), Light(), and setPosition().

## _quadratic_attenuation

float osg::Light::_quadratic_attenuation

protected

Referenced by compare(), getQuadraticAttenuation(), Light(), and setQuadraticAttenuation().

## _specular

Vec4 osg::Light::_specular

protected

Referenced by compare(), getSpecular(), Light(), and setSpecular().

## _spot_cutoff

float osg::Light::_spot_cutoff

protected

Referenced by compare(), getSpotCutoff(), Light(), and setSpotCutoff().

## _spot_exponent

float osg::Light::_spot_exponent

protected

Referenced by compare(), getSpotExponent(), Light(), and setSpotExponent().

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

- Light