16 #ifndef SURGSIM_GRAPHICS_OSGLIGHT_H 17 #define SURGSIM_GRAPHICS_OSGLIGHT_H 21 #include <unordered_map> 26 #include <osg/ref_ptr> 30 #pragma warning(disable:4250) 50 SURGSIM_STATIC_REGISTRATION(OsgLight);
59 friend class OsgLightTests;
62 explicit OsgLight(
const std::string& name);
67 bool setGroup(std::shared_ptr<SurgSim::Graphics::Group> group)
override;
69 void setLightGroupReference(
const std::string& name)
override;
71 std::string getLightGroupReference()
override;
73 std::shared_ptr<SurgSim::Graphics::Group> getGroup()
override;
83 void setConstantAttenuation(
double val)
override;
85 double getConstantAttenuation()
override;
87 void setLinearAttenuation(
double val)
override;
89 double getLinearAttenuation()
override;
91 void setQuadraticAttenuation(
double val)
override;
93 double getQuadraticAttenuation()
override;
97 void doUpdate(
double dt)
override;
100 void apply(osg::ref_ptr<osg::StateSet> stateSet);
103 void remove(osg::ref_ptr<osg::StateSet> stateSet);
113 QUADRATIC_ATTENUATION
120 std::unordered_map<int, osg::ref_ptr<osg::Uniform>>
m_uniforms;
138 #if defined(_MSC_VER) Definition: CompoundShapeToGraphics.cpp:29
SurgSim::Math::Vector4d m_specularColor
The actual specular color that was set.
Definition: OsgLight.h:123
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.
Definition: Light.h:48
OpenScenegraph implementation for the Light interface.
Definition: OsgLight.h:53
std::string m_groupReference
Name of the group that this light should shine on...
Definition: OsgLight.h:135
std::shared_ptr< OsgGroup > m_group
The group for this light.
Definition: OsgLight.h:117
#define SURGSIM_CLASSNAME(ClassName)
Declare the class name of a class with the appropriate function header, do not use quotes...
Definition: Macros.h:21
double m_constantAttenuation
The actual constant attenuation value that was set.
Definition: OsgLight.h:125
UniformType
Internal for managing uniforms.
Definition: OsgLight.h:106
double m_quadraticAttenuation
The actual quadratic attenuation value that was set.
Definition: OsgLight.h:127
double m_linearAttenuation
The actual linear attenuation value that was set.
Definition: OsgLight.h:126
osg::ref_ptr< osg::LightSource > m_lightSource
Definition: OsgLight.h:132
Definition: OsgLight.h:111
Definition: OculusView.h:25
std::unordered_map< int, osg::ref_ptr< osg::Uniform > > m_uniforms
Map for managing all uniforms that this object owns.
Definition: OsgLight.h:120
Definition: OsgLight.h:112
Eigen::Matrix< double, 4, 1 > Vector4d
A 4D vector of doubles.
Definition: Vector.h:61
Base OSG implementation of a graphics representation.
Definition: OsgRepresentation.h:55
Definition: OsgLight.h:110
osg::ref_ptr< osg::Light > m_light
Definition: OsgLight.h:131
SurgSim::Math::Vector4d m_diffuseColor
The actual diffuse color that was set.
Definition: OsgLight.h:122
Definition: OsgLight.h:109