CloudyDay
 All Classes Functions Variables Enumerations
CloudState.h
1 #pragma once
2 #include <iostream>
3 #include <algorithm>
4 #include <string>
5 #include <vector>
6 #include <map>
7 #include <osg/Vec2>
8 #include <osg/Vec3>
9 #include <osg/Vec4>
10 #include <osg/Referenced>
11 
12 namespace osgCloudyDay
13 {
14  class CloudState
15 {
16 public:
17  enum CloudState_Generation
18  {
19  CStG_Standard,
20  CStG_Simulation,
21  CStG_Voxel,
22  CStG_Objs,
23  CStG_Wang
24  };
25 
29  CloudState(void);
30 
34  ~CloudState(void);
35 
43  void AddCloud(int type, osg::Vec3 middlepoint, osg::Vec3 size, osg::Vec4 color);
52  void AddCloud(int type, std::string path, osg::Vec3 middlepoint, osg::Vec3 size, int gentype, osg::Vec4 color);
53 
58  int GetCloudType(int at);
59 
64  osg::Vec3 getMiddlePoint(int cloud_type);
70  void setMiddlePoint(int cloud_type, osg::Vec3 middlepoint);
71 
76  osg::Vec3 getSize(int cloud_type);
82  void setSize(int cloud_type, osg::Vec3 size);
83 
88  osg::Vec4 getColor(int cloud_type);
94  void setColor(int cloud_type, osg::Vec4 size);
95 
100  int GetNumberOfClouds();
101 
107  int GetCloudGenerationType(int at);
108 
114  std::string GetPath(int at);
115 
116 private:
117  std::map<int, osg::Vec3> m_middlepoint;
118  std::map<int, osg::Vec3> m_size;
119  std::map<int, osg::Vec4> m_color;
120  std::map<int, int> m_type;
121  std::map<int, std::string> m_path;
122  std::map<int, int> m_type_generation;
123  int num_of_clouds;
124 };
125 }