SurgSim::Graphics::Light Class Referenceabstract

Abstract interface for a light, a light needs to be assigned to a group to be active, only the members of this group will be considered to be lit by this light. More...

`#include <SurgSim/Graphics/Light.h>`

Inheritance diagram for SurgSim::Graphics::Light:

## Public Member Functions

| Light (const std::string &name)
| Constructor. More...
virtual | ~Light ()
virtual bool | setGroup (std::shared_ptr< SurgSim::Graphics::Group > group)=0
| Sets the group for this light, setting nullptr here will remove the light from its current group. More...
virtual std::shared_ptr< SurgSim::Graphics::Group > | getGroup ()=0
| Gets the group that this light has been assigned to. More...
virtual void | setDiffuseColor (const SurgSim::Math::Vector4d &color)=0
| Sets diffuse color of this light. More...
virtual SurgSim::Math::Vector4d | getDiffuseColor ()=0
| Gets diffuse color. More...
virtual void | setSpecularColor (const SurgSim::Math::Vector4d &color)=0
| Sets specular color of this light. More...
virtual SurgSim::Math::Vector4d | getSpecularColor ()=0
| Gets specular color. More...
virtual void | setConstantAttenuation (double val)=0
| Sets constant attenuation. More...
virtual double | getConstantAttenuation ()=0
| Gets constant attenuation. More...
virtual void | setLinearAttenuation (double val)=0
| Sets linear attenuation. More...
virtual double | getLinearAttenuation ()=0
| Gets linear attenuation. More...
virtual void | setQuadraticAttenuation (double val)=0
| Sets quadratic attenuation. More...
virtual double | getQuadraticAttenuation ()=0
| Gets quadratic attenuation. More...
virtual void | setLightGroupReference (const std::string &name)=0
| Sets the name of the group that this light should work on. More...
virtual std::string | getLightGroupReference ()=0
| Gets the name of the group this light should operate on. More...
Public Member Functions inherited from SurgSim::Graphics::Representation
| Representation (const std::string &name)
| Constructor. More...
virtual | ~Representation ()
| Destructor. More...
virtual bool | setMaterial (std::shared_ptr< SurgSim::Framework::Component > material)=0
| Sets the material that defines the visual appearance of the representation. More...
virtual std::shared_ptr< Material > | getMaterial () const =0
| Gets the material that defines the visual appearance of the representation. More...
virtual void | clearMaterial ()=0
| Removes the material from the representation. More...
virtual void | setDrawAsWireFrame (bool val)=0
| Sets the representation to render as a wire frame. More...
virtual bool | getDrawAsWireFrame () const =0
| Return if the representation is rendered as a wire frame. More...
virtual void | setGenerateTangents (bool value)=0
| Enable or disable the generation of tangents. More...
virtual bool | isGeneratingTangents () const =0
virtual void | update (double dt)=0
| Updates the representation. More...
virtual bool | addGroupReference (const std::string &name)
| Add a reference to a group, this will eventual add this representation to the group with the the same name. More...
void | addGroupReferences (const std::vector< std::string > &groups)
| Adds a list of group references. More...
void | setGroupReferences (const std::vector< std::string > &groups)
| Sets the list of group references. More...
void | setGroupReference (const std::string &group)
| Helper functions, this clears all the references and sets, only the reference given in the parameter. More...
std::vector< std::string > | getGroupReferences () const
| Gets group references. More...
bool | removeGroupReference (const std::string &group)
| Function to remove an unwanted reference. More...
void | clearGroupReferences ()
| Clear all the Group references. More...
Public Member Functions inherited from SurgSim::Framework::Representation
| Representation (const std::string &name)
| Constructor. More...
virtual void | setLocalPose (const SurgSim::Math::RigidTransform3d &pose)
| Set the pose of the representation with respect to the Scene Element. More...
virtual SurgSim::Math::RigidTransform3d | getLocalPose () const
| Get the pose of the representation with respect to the Scene Element. More...
virtual SurgSim::Math::RigidTransform3d | getPose () const
| Get the pose of the representation in world coordinates. More...
Public Member Functions inherited from SurgSim::Framework::Component
| Component (const std::string &name)
| Constructor. More...
virtual | ~Component ()
| Destructor. More...
std::string | getName () const
| Gets component name. More...
std::string | getFullName () const
| Gets a string containing the name of the Component and (if it has one) its SceneElement. More...
void | setName (const std::string &name)
| Sets the name of component. More...
boost::uuids::uuid | getUuid () const
| Gets the id of the component. More...
bool | isInitialized () const
bool | initialize (const std::weak_ptr< Runtime > &runtime)
| Initialize this component, this needs to be called before wakeUp() can be called. More...
bool | isAwake () const
bool | wakeUp ()
| Wakeup this component, this will be called when the component is inserted into the ComponentManager that is responsible for handling this component. More...
void | retire ()
| Retire this component, this will be called when the component is removed from the ComponentManager that is responsible for handling this component. More...
void | setScene (std::weak_ptr< Scene > scene)
| Sets the scene. More...
std::shared_ptr< Scene > | getScene ()
| Gets the scene. More...
void | setSceneElement (std::weak_ptr< SceneElement > sceneElement)
| Sets the scene element. More...
std::shared_ptr< SceneElement > | getSceneElement ()
| Gets the scene element. More...
std::shared_ptr< const SceneElement > | getSceneElement () const
| Gets the scene element, constant version. More...
std::shared_ptr< Runtime > | getRuntime () const
| Get the runtime which contains this component. More...
virtual std::string | getClassName () const
| The class name for this class, this being the base class it should return SurgSim::Framework::Component but this would make missing implemenentations of this hard to catch, therefore this calls SURGSIM_FAILURE. More...
std::shared_ptr< Component > | getSharedPtr ()
| Gets a shared pointer to this component. More...
virtual void | doRetire ()
| Interface to be implemented by derived classes Has a default implementation, does nothing. More...
bool | isActive () const
virtual void | setLocalActive (bool val)
| Set the component's active state. More...
bool | isLocalActive () const
Public Member Functions inherited from SurgSim::Framework::Accessible
| Accessible ()
| Default Constructor. More...
| ~Accessible ()
| Destructor. More...
template<class T >
T | getValue (const std::string &name) const
| Retrieves the value with the name by executing the getter if it is found and tries to convert it to the given type. More...
boost::any | getValue (const std::string &name) const
| Retrieves the value with the name by executing the getter if it is found. More...
template<class T >
bool | getValue (const std::string &name, T *value) const
| Retrieves the value with the name by executing the getter if it is found, and converts it to the type of the output parameter. More...
void | setValue (const std::string &name, const boost::any &value)
| Sets a value of a property that has setter. More...
bool | isReadable (const std::string &name) const
| Check whether a property is readable. More...
bool | isWriteable (const std::string &name) const
| Check whether a property is writable. More...
void | setGetter (const std::string &name, GetterType func)
| Sets a getter for a given property. More...
void | setSetter (const std::string &name, SetterType func)
| Sets a setter for a given property. More...
void | setAccessors (const std::string &name, GetterType getter, SetterType setter)
| Sets the accessors getter and setter in one function. More...
void | removeAccessors (const std::string &name)
| Removes all the accessors (getter and setter) for a given property. More...
void | forwardProperty (const std::string &name, const Accessible &target, const std::string &targetProperty)
| Adds a property with the given name that uses the targets accessors, in effect forwarding the value to the target. More...
void | setSerializable (const std::string &name, EncoderType encoder, DecoderType decoder)
| Sets the functions used to convert data from and to a YAML::Node. More...
void | setDecoder (const std::string &name, DecoderType decoder)
| Sets the functions used to convert data from a YAML::Node. More...
YAML::Node | encode () const
| Encode this Accessible to a YAML::Node. More...
void | decode (const YAML::Node &node, const std::vector< std::string > &ignoredProperties=std::vector< std::string >())
| Decode this Accessible from a YAML::Node, will throw an exception if the data type cannot be converted. More...
template<>
boost::any | getValue (const std::string &name) const

## Additional Inherited Members

Public Types inherited from SurgSim::Framework::Accessible
typedef std::function< boost::any(void)> | GetterType
typedef std::function< void(boost::any)> | SetterType
typedef std::function< YAML::Node(void)> | EncoderType
typedef std::function< void(const YAML::Node *)> | DecoderType
Public Types inherited from SurgSim::Framework::FactoryBase1< Component, std::string >
typedef ObjectFactory1< Component, std::string > | FactoryType
Static Public Member Functions inherited from SurgSim::Framework::FactoryBase1< Component, std::string >
static FactoryType & | getFactory ()
Static Public Attributes inherited from SurgSim::Graphics::Representation
static const std::string | DefaultGroupName = "__OssDefault__"
static const std::string | DefaultHudGroupName = "__OssDefaulHud__"
Protected Member Functions inherited from SurgSim::Framework::Component
virtual std::shared_ptr< PoseComponent > | getPoseComponent ()
| Get the PoseComponent for this component. More...
virtual std::shared_ptr< const PoseComponent > | getPoseComponent () const
| Get the PoseComponent for this component, constant access. More...

## Detailed Description

Abstract interface for a light, a light needs to be assigned to a group to be active, only the members of this group will be considered to be lit by this light.

Currently this light implements a pointlight. It will have to be extended for a directional and spot lights. The class should provide the following uniform values. The position is set by using the representations setPose() call.

struct LightSource {
vec4 ambient;
vec4 diffuse;
vec4 specular;
vec4 position;
float constantAttenuation;
float linearAttenuation;
float quadraticAttenuation;
};
uniform LightSource lightSource;

## Constructor & Destructor Documentation

## Light()

SurgSim::Graphics::Light::Light | ( | const std::string & | name | ) |

inline explicit

Constructor.

## ~Light()

virtual SurgSim::Graphics::Light::~Light | ( |  | ) |

inline virtual

## Member Function Documentation

## getConstantAttenuation()

virtual double SurgSim::Graphics::Light::getConstantAttenuation | ( |  | ) |

pure virtual

Gets constant attenuation.

Returns
  The constant attenuation.

Implemented in SurgSim::Graphics::OsgLight.

## getDiffuseColor()

virtual SurgSim::Math::Vector4d SurgSim::Graphics::Light::getDiffuseColor | ( |  | ) |

pure virtual

Gets diffuse color.

Returns
  The diffuse color.

Implemented in SurgSim::Graphics::OsgLight.

## getGroup()

virtual std::shared_ptr<SurgSim::Graphics::Group> SurgSim::Graphics::Light::getGroup | ( |  | ) |

pure virtual

Gets the group that this light has been assigned to.

Returns
  The group or nullptr if no group has been set.

Implemented in SurgSim::Graphics::OsgLight.

## getLightGroupReference()

virtual std::string SurgSim::Graphics::Light::getLightGroupReference | ( |  | ) |

pure virtual

Gets the name of the group this light should operate on.

Returns
  the name of the group for this light

Implemented in SurgSim::Graphics::OsgLight.

## getLinearAttenuation()

virtual double SurgSim::Graphics::Light::getLinearAttenuation | ( |  | ) |

pure virtual

Gets linear attenuation.

Returns
  The linear attenuation.

Implemented in SurgSim::Graphics::OsgLight.

## getQuadraticAttenuation()

virtual double SurgSim::Graphics::Light::getQuadraticAttenuation | ( |  | ) |

pure virtual

Gets quadratic attenuation.

Returns
  The quadratic attenuation.

Implemented in SurgSim::Graphics::OsgLight.

## getSpecularColor()

virtual SurgSim::Math::Vector4d SurgSim::Graphics::Light::getSpecularColor | ( |  | ) |

pure virtual

Gets specular color.

Returns
  The specular color.

Implemented in SurgSim::Graphics::OsgLight.

## setConstantAttenuation()

virtual void SurgSim::Graphics::Light::setConstantAttenuation | ( | double | val | ) |

pure virtual

Sets constant attenuation.

Parameters

  val | The value.

Implemented in SurgSim::Graphics::OsgLight.

## setDiffuseColor()

virtual void SurgSim::Graphics::Light::setDiffuseColor | ( | const SurgSim::Math::Vector4d & | color | ) |

pure virtual

Sets diffuse color of this light.

Parameters

  color | The color.

Implemented in SurgSim::Graphics::OsgLight.

## setGroup()

virtual bool SurgSim::Graphics::Light::setGroup | ( | std::shared_ptr< SurgSim::Graphics::Group > | group | ) |

pure virtual

Sets the group for this light, setting nullptr here will remove the light from its current group.

Parameters

  group | The group.

Returns
  true if it succeeds, false if the group is not an OsgGroup.

Implemented in SurgSim::Graphics::OsgLight.

## setLightGroupReference()

virtual void SurgSim::Graphics::Light::setLightGroupReference | ( | const std::string & | name | ) |

pure virtual

Sets the name of the group that this light should work on.

Parameters

  name | The name of the group to light

Implemented in SurgSim::Graphics::OsgLight.

## setLinearAttenuation()

virtual void SurgSim::Graphics::Light::setLinearAttenuation | ( | double | val | ) |

pure virtual

Sets linear attenuation.

Parameters

  val | The value.

Implemented in SurgSim::Graphics::OsgLight.

## setQuadraticAttenuation()

virtual void SurgSim::Graphics::Light::setQuadraticAttenuation | ( | double | val | ) |

pure virtual

Sets quadratic attenuation.

Parameters

  val | The value.

Implemented in SurgSim::Graphics::OsgLight.

## setSpecularColor()

virtual void SurgSim::Graphics::Light::setSpecularColor | ( | const SurgSim::Math::Vector4d & | color | ) |

pure virtual

Sets specular color of this light.

Parameters

  color | The color.

Implemented in SurgSim::Graphics::OsgLight.

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

- SurgSim/Graphics/Light.h