OpenSceneGraph 3.6.5
|
Light state class which encapsulates OpenGL glLight() functionality. More...
#include <Light>
Public Member Functions | |
Light () | |
Light (unsigned int lightnum) | |
Light (const Light &light, const CopyOp ©op=CopyOp::SHALLOW_COPY) | |
Copy constructor using CopyOp to manage deep vs shallow copy. | |
virtual osg::Object * | cloneType () const |
Clone the type of an attribute, with Object* return type. | |
virtual osg::Object * | clone (const osg::CopyOp ©op) const |
Clone an attribute, with Object* return type. | |
virtual bool | isSameKindAs (const osg::Object *obj) const |
Return true if this and obj are of the same kind of object. | |
virtual const char * | libraryName () const |
Return the name of the attribute's library. | |
virtual const char * | className () const |
Return the name of the attribute's class type. | |
virtual Type | getType () const |
Return the Type identifier of the attribute's class type. | |
virtual int | compare (const StateAttribute &sa) const |
Return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs. | |
virtual unsigned int | getMember () const |
Return the member identifier within the attribute's class type. | |
virtual bool | getModeUsage (StateAttribute::ModeUsage &usage) const |
Return the modes associated with this StateAttribute. | |
void | setLightNum (int num) |
Set which OpenGL light to operate on. | |
int | getLightNum () const |
Get which OpenGL light this osg::Light operates on. | |
void | setAmbient (const Vec4 &ambient) |
Set the ambient component of the light. | |
const Vec4 & | getAmbient () const |
Get the ambient component of the light. | |
void | setDiffuse (const Vec4 &diffuse) |
Set the diffuse component of the light. | |
const Vec4 & | getDiffuse () const |
Get the diffuse component of the light. | |
void | setSpecular (const Vec4 &specular) |
Set the specular component of the light. | |
const Vec4 & | getSpecular () const |
Get the specular component of the light. | |
void | setPosition (const Vec4 &position) |
Set the position of the light. | |
const Vec4 & | getPosition () const |
Get the position of the light. | |
void | setDirection (const Vec3 &direction) |
Set the direction of the light. | |
const Vec3 & | getDirection () const |
Get the direction of the light. | |
void | setConstantAttenuation (float constant_attenuation) |
Set the constant attenuation of the light. | |
float | getConstantAttenuation () const |
Get the constant attenuation of the light. | |
void | setLinearAttenuation (float linear_attenuation) |
Set the linear attenuation of the light. | |
float | getLinearAttenuation () const |
Get the linear attenuation of the light. | |
void | setQuadraticAttenuation (float quadratic_attenuation) |
Set the quadratic attenuation of the light. | |
float | getQuadraticAttenuation () const |
Get the quadratic attenuation of the light. | |
void | setSpotExponent (float spot_exponent) |
Set the spot exponent of the light. | |
float | getSpotExponent () const |
Get the spot exponent of the light. | |
void | setSpotCutoff (float spot_cutoff) |
Set the spot cutoff of the light. | |
float | getSpotCutoff () const |
Get the spot cutoff of the light. | |
void | captureLightState () |
Capture the lighting settings of the current OpenGL state and store them in this object. | |
virtual void | apply (State &state) const |
Apply the light's state to the OpenGL state machine. | |
Public Member Functions inherited from osg::StateAttribute | |
StateAttribute () | |
StateAttribute (const StateAttribute &sa, const CopyOp ©op=CopyOp::SHALLOW_COPY) | |
virtual StateAttribute * | asStateAttribute () |
Convert 'this' into a StateAttribute pointer if Object is a StateAttribute, otherwise return 0. | |
virtual const StateAttribute * | asStateAttribute () const |
convert 'const this' into a const StateAttribute pointer if Object is a StateAttribute, otherwise return 0. | |
virtual Texture * | asTexture () |
Fast alternative to dynamic_cast<> for determining if state attribute is a Texture. | |
virtual const Texture * | asTexture () const |
Fast alternative to dynamic_cast<> for determining if state attribute is a Texture. | |
TypeMemberPair | getTypeMemberPair () const |
Return the TypeMemberPair that uniquely identifies this type member. | |
virtual bool | isTextureAttribute () const |
Return true if StateAttribute is a type which controls texturing and needs to be issued w.r.t to specific texture unit. | |
bool | operator< (const StateAttribute &rhs) const |
bool | operator== (const StateAttribute &rhs) const |
bool | operator!= (const StateAttribute &rhs) const |
const ParentList & | getParents () const |
Get the parent list of this StateAttribute. | |
StateSet * | getParent (unsigned int i) |
const StateSet * | getParent (unsigned int i) const |
Get a single const parent of this StateAttribute. | |
unsigned int | getNumParents () const |
Get the number of parents of this StateAttribute. | |
void | setShaderComponent (ShaderComponent *sc) |
ShaderComponent * | getShaderComponent () |
const ShaderComponent * | getShaderComponent () const |
virtual bool | checkValidityOfAssociatedModes (osg::State &) const |
Check the modes associated with this StateAttribute are supported by current OpenGL drivers, and if not set the associated mode in osg::State to be black listed/invalid. | |
void | setUpdateCallback (StateAttributeCallback *uc) |
Set the UpdateCallback which allows users to attach customize the updating of an object during the update traversal. | |
StateAttributeCallback * | getUpdateCallback () |
Get the non const UpdateCallback. | |
const StateAttributeCallback * | getUpdateCallback () const |
Get the const UpdateCallback. | |
void | setEventCallback (StateAttributeCallback *ec) |
Set the EventCallback which allows users to attach customize the updating of an object during the Event traversal. | |
StateAttributeCallback * | getEventCallback () |
Get the non const EventCallback. | |
const StateAttributeCallback * | getEventCallback () const |
Get the const EventCallback. | |
virtual void | compileGLObjects (State &) const |
Default to nothing to compile - all state is applied immediately. | |
virtual void | resizeGLObjectBuffers (unsigned int) |
Resize any per context GLObject buffers to specified size. | |
virtual void | releaseGLObjects (State *=0) const |
Release OpenGL objects in specified graphics context if State object is passed, otherwise release OpenGL objects for all graphics context if State object pointer NULL. | |
Public Member Functions inherited from osg::Object | |
Object () | |
Construct an object. | |
Object (bool threadSafeRefUnref) | |
Object (const Object &, const CopyOp ©op=CopyOp::SHALLOW_COPY) | |
Copy constructor, optional CopyOp object can be used to control shallow vs deep copying of dynamic data. | |
std::string | getCompoundClassName () const |
return the compound class name that combines the library name and class name. | |
virtual Node * | asNode () |
Convert 'this' into a Node pointer if Object is a Node, otherwise return 0. | |
virtual const Node * | asNode () const |
convert 'const this' into a const Node pointer if Object is a Node, otherwise return 0. | |
virtual NodeVisitor * | asNodeVisitor () |
Convert 'this' into a NodeVisitor pointer if Object is a NodeVisitor, otherwise return 0. | |
virtual const NodeVisitor * | asNodeVisitor () const |
convert 'const this' into a const NodeVisitor pointer if Object is a NodeVisitor, otherwise return 0. | |
virtual StateSet * | asStateSet () |
Convert 'this' into a StateSet pointer if Object is a StateSet, otherwise return 0. | |
virtual const StateSet * | asStateSet () const |
convert 'const this' into a const StateSet pointer if Object is a StateSet, otherwise return 0. | |
virtual Uniform * | asUniform () |
Convert 'this' into a Uniform pointer if Object is a Uniform, otherwise return 0. | |
virtual const Uniform * | asUniform () const |
convert 'const this' into a const Uniform pointer if Object is a Uniform, otherwise return 0. | |
virtual Camera * | asCamera () |
Convert 'this' into a Camera pointer if Node is a Camera, otherwise return 0. | |
virtual const Camera * | asCamera () const |
convert 'const this' into a const Camera pointer if Node is a Camera, otherwise return 0. | |
virtual Drawable * | asDrawable () |
Convert 'this' into a Drawable pointer if Object is a Drawable, otherwise return 0. | |
virtual const Drawable * | asDrawable () const |
convert 'const this' into a const Drawable pointer if Object is a Drawable, otherwise return 0. | |
virtual Callback * | asCallback () |
Convert 'this' into a Callback pointer if Object is a Callback, otherwise return 0. | |
virtual const Callback * | asCallback () const |
convert 'const this' into a const Callback pointer if Object is a Callback, otherwise return 0. | |
virtual CallbackObject * | asCallbackObject () |
Convert 'this' into a CallbackObject pointer if Object is a CallbackObject, otherwise return 0. | |
virtual const CallbackObject * | asCallbackObject () const |
convert 'const this' into a const CallbackObject pointer if Object is a CallbackObject, otherwise return 0. | |
virtual UserDataContainer * | asUserDataContainer () |
Convert 'this' into a UserDataContainer pointer if Object is a UserDataContainer, otherwise return 0. | |
virtual const UserDataContainer * | asUserDataContainer () const |
convert 'const this' into a const UserDataContainer pointer if Object is a UserDataContainer, otherwise return 0. | |
virtual ValueObject * | asValueObject () |
Convert 'this' into a ValueObject pointer if Object is a ValueObject, otherwise return 0. | |
virtual const ValueObject * | asValueObject () const |
Convert 'this' into a ValueObject pointer if Object is a ValueObject, otherwise return 0. | |
virtual Image * | asImage () |
Convert 'this' into a Image pointer if Object is a Image, otherwise return 0. | |
virtual const Image * | asImage () const |
Convert 'this' into a Image pointer if Object is a Image, otherwise return 0. | |
virtual void | setThreadSafeRefUnref (bool threadSafe) |
Set whether to use a mutex to ensure ref() and unref() are thread safe. | |
virtual void | setName (const std::string &name) |
Set the name of object using C++ style string. | |
void | setName (const char *name) |
Set the name of object using a C style string. | |
const std::string & | getName () const |
Get the name of object. | |
void | setDataVariance (DataVariance dv) |
Set the data variance of this object. | |
DataVariance | getDataVariance () const |
Get the data variance of this object. | |
virtual void | computeDataVariance () |
Compute the DataVariance based on an assessment of callback etc. | |
void | setUserDataContainer (osg::UserDataContainer *udc) |
set the UserDataContainer object. | |
template<class T> | |
void | setUserDataContainer (const ref_ptr< T > &udc) |
osg::UserDataContainer * | getUserDataContainer () |
get the UserDataContainer attached to this object. | |
const osg::UserDataContainer * | getUserDataContainer () const |
get the const UserDataContainer attached to this object. | |
osg::UserDataContainer * | getOrCreateUserDataContainer () |
Convenience method that returns the UserDataContainer, and if one doesn't already exist creates and assigns a DefaultUserDataContainer to the Object and then return this new UserDataContainer. | |
virtual void | setUserData (Referenced *obj) |
Set user data, data must be subclassed from Referenced to allow automatic memory handling. | |
template<class T> | |
void | setUserData (const ref_ptr< T > &ud) |
virtual Referenced * | getUserData () |
Get user data. | |
virtual const Referenced * | getUserData () const |
Get const user data. | |
template<typename T> | |
bool | getUserValue (const std::string &name, T &value) const |
Convenience method that casts the named UserObject to osg::TemplateValueObject<T> and gets the value. | |
template<typename T> | |
void | setUserValue (const std::string &name, const T &value) |
Convenience method that creates the osg::TemplateValueObject<T> to store the specified value and adds it as a named UserObject. | |
template<typename T> | |
BoolValueObject UCharValueObject UShortValueObject UIntValueObject DoubleValueObject Vec3fValueObject Vec2dValueObject Vec4dValueObject PlaneValueObject MatrixdValueObject BoundingBoxdValueObject BoundingSpheredValueObject bool | getUserValue (const std::string &name, T &value) const |
provide implementation of osg::Object::getUserValue(..) template | |
Public Member Functions inherited from osg::Referenced | |
Referenced () | |
Referenced (bool threadSafeRefUnref) | |
Deprecated, Referenced is now always uses thread safe ref/unref, use default Referenced() constructor instead. | |
Referenced (const Referenced &) | |
Referenced & | operator= (const Referenced &) |
bool | getThreadSafeRefUnref () const |
Get whether a mutex is used to ensure ref() and unref() are thread safe. | |
OpenThreads::Mutex * | getRefMutex () const |
Get the mutex used to ensure thread safety of ref()/unref(). | |
int | ref () const |
Increment the reference count by one, indicating that this object has another pointer which is referencing it. | |
int | unref () const |
Decrement the reference count by one, indicating that a pointer to this object is no longer referencing it. | |
int | unref_nodelete () const |
Decrement the reference count by one, indicating that a pointer to this object is no longer referencing it. | |
int | referenceCount () const |
Return the number of pointers currently referencing this object. | |
ObserverSet * | getObserverSet () const |
Get the ObserverSet if one is attached, otherwise return NULL. | |
ObserverSet * | getOrCreateObserverSet () const |
Get the ObserverSet if one is attached, otherwise create an ObserverSet, attach it, then return this newly created ObserverSet. | |
void | addObserver (Observer *observer) const |
Add a Observer that is observing this object, notify the Observer when this object gets deleted. | |
void | removeObserver (Observer *observer) const |
Remove Observer that is observing this object. |
Protected Member Functions | |
virtual | ~Light () |
void | init () |
Initialize the light's settings with some decent defaults. | |
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 () |
Object destructor. | |
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 } |
list values which can be used to set either GLModeValues or OverrideValues. More... | |
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 } |
Type identifier to differentiate between different state types. More... | |
typedef GLenum | GLMode |
GLMode is the value used in glEnable/glDisable(mode) | |
typedef unsigned int | GLModeValue |
GLModeValue is used to specify whether a mode is enabled (ON) or disabled (OFF). | |
typedef unsigned int | OverrideValue |
Override is used to specify the override behavior of StateAttributes from parent to children. | |
typedef std::pair< Type, unsigned int > | TypeMemberPair |
Simple pairing between an attribute type and the member within that attribute type group. | |
typedef std::vector< StateSet * > | ParentList |
A vector of osg::StateSet pointers which is used to store the parent(s) of this StateAttribute. | |
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 () |
Get the optional global Referenced mutex, this can be shared between all osg::Referenced. | |
static void | setDeleteHandler (DeleteHandler *handler) |
Set a DeleteHandler to which deletion of all referenced counted objects will be delegated. | |
static DeleteHandler * | getDeleteHandler () |
Get a DeleteHandler. |
Light state class which encapsulates OpenGL glLight() functionality.
osg::Light::Light | ( | ) |
Referenced by clone(), cloneType(), compare(), isSameKindAs(), and Light().
osg::Light::Light | ( | unsigned int | lightnum | ) |
|
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().
|
protectedvirtual |
|
virtual |
Apply the light's state to the OpenGL state machine.
Reimplemented from osg::StateAttribute.
void osg::Light::captureLightState | ( | ) |
Capture the lighting settings of the current OpenGL state and store them in this object.
|
inlinevirtual |
Return the name of the attribute's class type.
Reimplemented from osg::StateAttribute.
|
inlinevirtual |
Clone an attribute, with Object* return type.
Must be defined by derived classes.
Implements osg::StateAttribute.
References Light().
|
inlinevirtual |
Clone the type of an attribute, with Object* return type.
Must be defined by derived classes.
Implements osg::StateAttribute.
|
inlinevirtual |
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().
|
inline |
Get the ambient component of the light.
References _ambient.
|
inline |
Get the constant attenuation of the light.
References _constant_attenuation.
|
inline |
Get the diffuse component of the light.
References _diffuse.
|
inline |
Get the direction of the light.
References _direction.
|
inline |
Get which OpenGL light this osg::Light operates on.
References _lightnum.
|
inline |
Get the linear attenuation of the light.
References _linear_attenuation.
|
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.
|
inlinevirtual |
Return the modes associated with this StateAttribute.
Reimplemented from osg::StateAttribute.
References _lightnum, GL_LIGHT0, and osg::StateAttribute::ModeUsage::usesMode().
|
inline |
Get the position of the light.
References _position.
|
inline |
Get the quadratic attenuation of the light.
References _quadratic_attenuation.
|
inline |
Get the specular component of the light.
References _specular.
|
inline |
Get the spot cutoff of the light.
References _spot_cutoff.
|
inline |
Get the spot exponent of the light.
References _spot_exponent.
|
inlinevirtual |
Return the Type identifier of the attribute's class type.
Implements osg::StateAttribute.
References osg::StateAttribute::LIGHT.
|
protected |
Initialize the light's settings with some decent defaults.
|
inlinevirtual |
Return true if this and obj are of the same kind of object.
Reimplemented from osg::StateAttribute.
|
inlinevirtual |
Return the name of the attribute's library.
Reimplemented from osg::StateAttribute.
|
inline |
Set the ambient component of the light.
References _ambient.
|
inline |
Set the constant attenuation of the light.
References _constant_attenuation.
|
inline |
Set the diffuse component of the light.
References _diffuse.
|
inline |
Set the direction of the light.
References _direction.
void osg::Light::setLightNum | ( | int | num | ) |
Set which OpenGL light to operate on.
|
inline |
Set the linear attenuation of the light.
References _linear_attenuation.
|
inline |
Set the position of the light.
References _position.
|
inline |
Set the quadratic attenuation of the light.
References _quadratic_attenuation.
|
inline |
Set the specular component of the light.
References _specular.
|
inline |
Set the spot cutoff of the light.
References _spot_cutoff.
|
inline |
Set the spot exponent of the light.
References _spot_exponent.
|
protected |
Referenced by compare(), getAmbient(), Light(), and setAmbient().
|
protected |
Referenced by compare(), getConstantAttenuation(), Light(), and setConstantAttenuation().
|
protected |
Referenced by compare(), getDiffuse(), Light(), and setDiffuse().
|
protected |
Referenced by compare(), getDirection(), Light(), and setDirection().
|
protected |
Referenced by cloneType(), compare(), getLightNum(), getMember(), getModeUsage(), and Light().
|
protected |
Referenced by compare(), getLinearAttenuation(), Light(), and setLinearAttenuation().
|
protected |
Referenced by compare(), getPosition(), Light(), and setPosition().
|
protected |
Referenced by compare(), getQuadraticAttenuation(), Light(), and setQuadraticAttenuation().
|
protected |
Referenced by compare(), getSpecular(), Light(), and setSpecular().
|
protected |
Referenced by compare(), getSpotCutoff(), Light(), and setSpotCutoff().
|
protected |
Referenced by compare(), getSpotExponent(), Light(), and setSpotExponent().
![]() | Generated at Sun Jul 20 2025 00:00:00 for the OpenSceneGraph by doxygen 1.14.0. |