openscenegraph
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
osg::Light Class Reference
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::ObjectcloneType () const
 
virtual osg::Objectclone (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 Vec4getAmbient () const
 
void setDiffuse (const Vec4 &diffuse)
 
const Vec4getDiffuse () const
 
void setSpecular (const Vec4 &specular)
 
const Vec4getSpecular () const
 
void setPosition (const Vec4 &position)
 
const Vec4getPosition () const
 
void setDirection (const Vec3 &direction)
 
const Vec3getDirection () 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 TextureasTexture ()
 
virtual const TextureasTexture () 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 ParentListgetParents () const
 
StateSetgetParent (unsigned int i)
 
const StateSetgetParent (unsigned int i) const
 
unsigned int getNumParents () const
 
void setShaderComponent (ShaderComponent *sc)
 
ShaderComponentgetShaderComponent ()
 
const ShaderComponentgetShaderComponent () const
 
virtual bool checkValidityOfAssociatedModes (osg::State &) const
 
void setUpdateCallback (StateAttributeCallback *uc)
 
StateAttributeCallbackgetUpdateCallback ()
 
const StateAttributeCallbackgetUpdateCallback () const
 
void setEventCallback (StateAttributeCallback *ec)
 
StateAttributeCallbackgetEventCallback ()
 
const StateAttributeCallbackgetEventCallback () 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)
 
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)
 
osg::UserDataContainergetUserDataContainer ()
 
const osg::UserDataContainergetUserDataContainer () const
 
osg::UserDataContainergetOrCreateUserDataContainer ()
 
virtual void setUserData (Referenced *obj)
 
virtual ReferencedgetUserData ()
 
virtual const ReferencedgetUserData () 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 bool getUserValue (const std::string &name, T &value) const
 
- Public Member Functions inherited from osg::Referenced
 Referenced ()
 
 Referenced (bool threadSafeRefUnref)
 
 Referenced (const Referenced &)
 
Referencedoperator= (const Referenced &)
 
bool getThreadSafeRefUnref () const
 
OpenThreads::MutexgetRefMutex () const
 
int ref () const
 
int unref () const
 
int unref_nodelete () const
 
int referenceCount () const
 
ObserverSetgetObserverSet () const
 
ObserverSetgetOrCreateObserverSet () 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, 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
}
 
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::MutexgetGlobalReferencedMutex ()
 
static void setThreadSafeReferenceCounting (bool enableThreadSafeReferenceCounting)
 
static bool getThreadSafeReferenceCounting ()
 
static void setDeleteHandler (DeleteHandler *handler)
 
static DeleteHandlergetDeleteHandler ()
 

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

Copy constructor using CopyOp to manage deep vs shallow copy.

◆ ~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.

◆ 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.

◆ compare()

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

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

Implements osg::StateAttribute.

◆ getAmbient()

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

Get the ambient component of the light.

◆ getConstantAttenuation()

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

Get the constant attenuation of the light.

◆ getDiffuse()

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

Get the diffuse component of the light.

◆ getDirection()

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

Get the direction of the light.

◆ getLightNum()

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

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

◆ getLinearAttenuation()

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

Get the linear attenuation of the light.

◆ 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.

◆ getModeUsage()

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

Return the modes associated with this StateAttribute.

Reimplemented from osg::StateAttribute.

◆ getPosition()

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

Get the position of the light.

◆ getQuadraticAttenuation()

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

Get the quadratic attenuation of the light.

◆ getSpecular()

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

Get the specular component of the light.

◆ getSpotCutoff()

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

Get the spot cutoff of the light.

◆ getSpotExponent()

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

Get the spot exponent of the light.

◆ getType()

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

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

Implements osg::StateAttribute.

◆ 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.

◆ 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.

◆ setConstantAttenuation()

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

Set the constant attenuation of the light.

◆ setDiffuse()

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

Set the diffuse component of the light.

◆ setDirection()

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

Set the direction of the light.

◆ 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.

◆ setPosition()

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

Set the position of the light.

◆ setQuadraticAttenuation()

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

Set the quadratic attenuation of the light.

◆ setSpecular()

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

Set the specular component of the light.

◆ setSpotCutoff()

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

Set the spot cutoff of the light.

◆ setSpotExponent()

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

Set the spot exponent of the light.

Member Data Documentation

◆ _ambient

Vec4 osg::Light::_ambient
protected

◆ _constant_attenuation

float osg::Light::_constant_attenuation
protected

◆ _diffuse

Vec4 osg::Light::_diffuse
protected

◆ _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: