DI-Guy C++ SDK Reference  13.0
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
diguyOsgGraphicsShape.h
Go to the documentation of this file.
1 #ifndef diguyOsgGraphicsShape_h__
2 #define diguyOsgGraphicsShape_h__
3 
4 
5 /*****************************************************************************
6  **
7  *2 diguyOsgGraphicsShape
8  **
9  */
10 
11 #include <diguyGraphicsShape.h>
12 
13 #include <osg/Switch>
14 #include <osg/LOD>
15 #include <osg/Geode>
16 
17 
18 /*****************************************************************************
19  **
20  ** Class declaration. diguyOsgGraphicsShape publicly inherits
21  ** diguyGraphicsShape. Virtual functions are declared for some of the
22  ** virtual functions in the base class.
23  */
25 {
26 
27 public:
28 
29  diguyOsgGraphicsShape(void* internal_data);
30 
31  virtual void build();
32  virtual void unbuild();
33  virtual void show();
34  virtual void hide();
35 
36  virtual void instancing_state_changed(int val);
37 
38  virtual void set_graphics_lod_ranges(float* lod_ranges);
39  virtual void set_graphics_lod(int lod);
40 
41  static void set_use_pixel_lods(bool use_pixel_lods) {s_use_pixel_lods = use_pixel_lods;}
42 
43  /*
44  * Overrides the base class and gives an opportunity to feed per shape
45  * matrix data to shader.
46  */
47  virtual void update();
48 
49  /*
50  * String to use for the uniform array of bones.
51  */
53  static char* s_ufrm_link_colors_string;
54 
55 protected:
56 
57  osg::ref_ptr<osg::Switch> m_switch_node;
58 
59  /*
60  * One and only one of m_lod_node and m_manual_lod_switch_node
61  * should be non-NULL.
62  */
63  osg::ref_ptr<osg::LOD> m_lod_node;
64  osg::ref_ptr<osg::Switch> m_manual_lod_switch_node;
65 
66  osg::ref_ptr<osg::Group> m_variation_shape_node;
67 
68  static bool s_use_pixel_lods;
69  osg::ref_ptr<osg::Uniform> m_ufrm_link_matrices;
70  osg::ref_ptr<osg::Uniform> m_ufrm_link_colors;
71 };
72 
73 
79 
80 #endif // diguyOsgGraphicsShape_h__