36 DIRECTIONAL_LIGHT = 1 << 3,
49 constant( c ), linear( l ), quadratic( q ) {}
82 inline const Eigen::Matrix<Scalar, 4, 4>& getFrame()
const;
88 inline void setFrame(
const Eigen::Matrix<Scalar, 4, 4>& frame );
99 const Eigen::Matrix<Scalar, 3, 1>& direction );
109 const Eigen::Matrix<Scalar, 3, 1>& position,
121 const Eigen::Matrix<Scalar, 3, 1>& position,
122 const Eigen::Matrix<Scalar, 3, 1>& direction,
136 const Eigen::Matrix<Scalar, 3, 1>& cog,
137 const Eigen::Matrix<Scalar, 3, 3>& spatialCov,
138 const Eigen::Matrix<Scalar, 3, 3>& normalCov,
149 inline bool isPointLight()
const;
154 inline bool isSpotLight()
const;
159 inline bool isDirectionalLight()
const;
164 inline bool isAreaLight()
const;
169 inline void displayInfo()
const;
183 Eigen::Matrix<Scalar, 3, 1> direction;
186 Eigen::Matrix<Scalar, 3, 1> position;
187 LightAttenuation attenuation;
190 Eigen::Matrix<Scalar, 3, 1> position;
191 Eigen::Matrix<Scalar, 3, 1> direction;
194 LightAttenuation attenuation;
198 Eigen::Matrix<Scalar, 3, 1> position;
199 Eigen::Matrix<Scalar, 3, 3> spatialCovariance;
200 Eigen::Matrix<Scalar, 3, 3> normalCovariance;
201 LightAttenuation attenuation;
206 PointLight m_pointlight;
207 SpotLight m_spotlight;
208 AreaLight m_arealight;
255 const Eigen::Matrix<Scalar, 3, 1>& position,
256 const Eigen::Matrix<Scalar, 3, 1>& direction,
262 m_spotlight.position = position;
263 m_spotlight.direction = direction;
264 m_spotlight.innerAngle = inAngle;
265 m_spotlight.outerAngle = outAngle;
266 m_spotlight.attenuation = attenuation;
271 const Eigen::Matrix<Scalar, 3, 1>& cog,
272 const Eigen::Matrix<Scalar, 3, 3>& spatialCov,
273 const Eigen::Matrix<Scalar, 3, 3>& normalCov,
277 m_arealight.position = cog;
278 m_arealight.spatialCovariance = spatialCov;
279 m_arealight.normalCovariance = normalCov;
280 m_arealight.attenuation = attenuation;