ComputerGraphik TU WIEN
Public Member Functions | Private Attributes | List of all members
SelectorSimple Class Reference

Implements a simple object selection. More...

#include <selectorSimple.hpp>

Inheritance diagram for SelectorSimple:
SelectorBase SceneObject

Public Member Functions

 SelectorSimple (const std::string &name, Scene *scene)
 
 ~SelectorSimple ()
 
void changeMode ()
 debug, change window size More...
 
void pickObject (const glm::ivec2 &mouse)
 Select closest object to mouse. More...
 
- Public Member Functions inherited from SelectorBase
 SelectorBase (const std::string &name, Scene *scene)
 
 ~SelectorBase ()
 
void reset ()
 set up EffectObject More...
 
void draw () const
 draw selectable object ids into a texture More...
 
void update (double deltaT)
 empty function More...
 
int getBufferWidth () const
 
int getBufferHeight () const
 
size_t getLastSelected () const
 
size_t getLastDistance () const
 
- 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 ()
 
ModelgetModel () const
 
ShadergetShader () const
 
glm::mat4 getModelMatrix () const
 
glm::mat4 getGlobalModelMatrix () const
 
std::string getName () const
 
std::shared_ptr< SceneObjectgetParent () 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)
 
SceneObjectgetEffect (const std::string &name) const
 
bool addEffect (const std::string &name, std::unique_ptr< SceneObject > &effect)
 
bool doNotRender ()
 
bool getIsVolSun ()
 
virtual bool animate (double time)
 
virtual void setShader (Shader *val)
 

Private Attributes

int mode
 debug, help to set window More...
 
int windowX
 number of pixels in window More...
 
int windowY
 number of pixels in window More...
 
std::vector< GLshort > screen
 Buffer to store texture on CPU. More...
 

Additional Inherited Members

- Public Types inherited from SceneObject
typedef std::vector< std::pair< double, glm::mat4 > > Animation
 
- Protected Attributes inherited from SelectorBase
int width
 width of screen More...
 
int height
 height of screen More...
 
GLuint idBuffer
 frame buffer More...
 
GLuint idTexture
 texture of rendered object indices More...
 
size_t lastDistance
 distance after pickObject() call More...
 
size_t lastSelected
 selected object id after pickObject() call More...
 
- Protected Attributes inherited from SceneObject
GLuint vao
 
Scenescene
 
Modelmodel
 
Shadershader
 
glm::mat4 modelMatrix
 
std::string name
 
std::weak_ptr< SceneObjectparent
 
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
 

Detailed Description

Implements a simple object selection.

First it copies the complete pick buffer, then in a window centered at the mouse position, it searches the closest object.

Author
Adam

Constructor & Destructor Documentation

SelectorSimple::SelectorSimple ( const std::string &  name,
Scene scene 
)
SelectorSimple::~SelectorSimple ( )

Member Function Documentation

void SelectorSimple::changeMode ( )
virtual

debug, change window size

Implements SelectorBase.

void SelectorSimple::pickObject ( const glm::ivec2 &  mouse)
virtual

Select closest object to mouse.

Implements SelectorBase.

Member Data Documentation

int SelectorSimple::mode
private

debug, help to set window

std::vector<GLshort> SelectorSimple::screen
private

Buffer to store texture on CPU.

int SelectorSimple::windowX
private

number of pixels in window

int SelectorSimple::windowY
private

number of pixels in window


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