vrecko
virtual reality framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
HighlightCallback.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <osg\NodeCallback>
4 #include <osg\Material>
5 #include "Export"
6 
7 namespace vreckoUtils
8 {
9 
11 class VRECKO_UTILS_EXPORT HighlightCallback : public osg::NodeCallback
12 {
13 
14 public:
15  HighlightCallback(double increment)
16  : _dirty(false), _highlighted(false) { setIncrementValue(increment); }
17 
18  virtual void operator()(osg::Node* node, osg::NodeVisitor* nv);
19 
21  inline double getIncrementValue() const { return _increment; }
22  inline void setIncrementValue(double val) { _increment = val; _incrementVec = osg::Vec4(val, val, val, 0); }
23  inline bool getHighlighted() const { return _highlighted; }
24  inline void setHighlighting(bool val) { if(val != _highlighted) _dirty = !_dirty; _highlighted = val; }
25  inline void switchHighlighting() { setHighlighting(!getHighlighted()); }
26 
27 protected:
29  bool _dirty;
30  double _increment;
31  osg::Vec4 _incrementVec;
32  osg::ref_ptr<osg::Vec4Array> _origColors;
33 };
34 
35 }