ComputerGraphik TU WIEN
|
Used for further implementations of light in the scene (Sun is a direct derivation). More...
#include <light.hpp>
Public Member Functions | |
Light (const std::string &name, Scene *scene=0, Model *model=0, const glm::mat4 &modelMatrix=glm::mat4(1)) | |
Construct new light. More... | |
virtual | ~Light () |
glm::vec3 | getPower () const |
glm::vec3 | getDiffuse () const |
glm::vec3 | getAmbient () const |
glm::vec3 | getSpecular () const |
glm::vec3 | getPosition () const |
void | setPower (const glm::vec3 &val) |
void | setDiffuse (const glm::vec3 &val) |
void | setAmbient (const glm::vec3 &val) |
void | setSpecular (const glm::vec3 &val) |
Public Member Functions inherited from SceneObject | |
SceneObject (std::shared_ptr< SceneObject > &effectParent, const glm::mat4 &modelMatrix=glm::mat4(1)) | |
SceneObject (const std::string &name, Scene *scene=0, Model *model=0, const glm::mat4 &modelMatrix=glm::mat4(1)) | |
virtual | ~SceneObject () |
Model * | getModel () const |
Shader * | getShader () const |
glm::mat4 | getModelMatrix () const |
glm::mat4 | getGlobalModelMatrix () const |
std::string | getName () const |
std::shared_ptr< SceneObject > | getParent () const |
void | setAnimationTime (double time) |
bool | setAnimation (const Animation &anim) |
bool | delChild (size_t idx) |
bool | getChild (size_t idx, std::shared_ptr< SceneObject > &child) const |
bool | addChild (std::shared_ptr< SceneObject > &child) |
bool | remEffect (const std::string &name) |
SceneObject * | getEffect (const std::string &name) const |
bool | addEffect (const std::string &name, std::unique_ptr< SceneObject > &effect) |
bool | doNotRender () |
bool | getIsVolSun () |
virtual void | reset () |
virtual void | draw () const |
virtual bool | animate (double time) |
virtual void | update (double deltaT) |
virtual void | setShader (Shader *val) |
Protected Attributes | |
glm::vec3 | power |
glm::vec3 | diffuse |
glm::vec3 | ambient |
glm::vec3 | specular |
Protected Attributes inherited from SceneObject | |
GLuint | vao |
Scene * | scene |
Model * | model |
Shader * | shader |
glm::mat4 | modelMatrix |
std::string | name |
std::weak_ptr< SceneObject > | parent |
std::vector< std::shared_ptr< SceneObject > > | childs |
std::map< std::string, std::unique_ptr< SceneObject > > | effectChilds |
size_t | animIDX |
Animation | animation |
bool | norender |
bool | isVolSun |
Additional Inherited Members | |
Public Types inherited from SceneObject | |
typedef std::vector< std::pair< double, glm::mat4 > > | Animation |
Used for further implementations of light in the scene (Sun is a direct derivation).
The Light Object provides methods for retrieval of intrinsic parameters that are necessary for the computation of light. Ambient, diffuse, and specular coefficients can be queried as well as the position itsel. The class can be seen as an interface for further derivations.
|
inline |
Construct new light.
|
inlinevirtual |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
protected |
|
protected |
|
protected |
|
protected |