CloudyDay
 All Classes Functions Variables Enumerations
Contrail.h
1 #pragma once
2 #include <osg/Vec3>
3 #include <osg/Array>
4 #include <osg/Geometry>
5 #include <osg/Geode>
6 #include <osg/FrameBufferObject>
7 #include <osg/Texture2D>
8 #include <osg/StateAttribute>
9 
10 #include "Fog.h"
11 #include "SkydomeMie.h"
12 
13 namespace osgCloudyDay
14 {
18  class Contrail
19  {
20  public:
21  Contrail(void);
22  ~Contrail(void);
23 
24  void Create(osg::Vec3 start, osg::Vec3 end);
25 
26  static void CreateShader();
27 
28  osg::Geode* contrail_obj;
29  static osg::Texture2D* m_tex_contrail;
30  static osg::Program* m_shader;
31 
32  private:
33  osg::ref_ptr<osg::Vec3Array> m_vertices;
34  osg::ref_ptr<osg::Vec4Array> m_additional;
35  osg::ref_ptr<osg::IndexArray> m_indices;
36  osg::ref_ptr<osg::Geometry> m_geometry;
37 
38  public:
39  static float timeOfDay;
40  static float fading;
41  static float dens;
42  static osg::Vec3 ambientLight_h0;
43  static osg::Vec3 ambientLight_h1;
44  static osg::Vec3 ambientLight_t0;
45  static osg::Vec3 ambientLight_t1;
46  static osg::Matrix3 directionalColors;
47  static float time;
48 
49  static osgCloudyDay::Skydome* m_skydome;
50  static osgCloudyDay::Fog* m_fog;
51 
52  static osg::Vec3 sunLightColor;
53  static osg::ref_ptr<osg::Texture2D> tex_clouds;
54 
55  static osg::FrameBufferObject* fbo_viewer;
56  static osg::FrameBufferObject* fbo_light;
57 
58  };
59 }