Develop and Download Open Source Software

Browse Subversion Repository

Contents of /trunk/CEnvPlugin.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1 - (show annotations) (download) (as text)
Sun Aug 15 01:53:13 2010 UTC (13 years, 9 months ago) by okadu
File MIME type: text/x-chdr
File size: 2903 byte(s)


1 #ifndef CENVPLUGIN_H_INCLUDED
2 #define CENVPLUGIN_H_INCLUDED
3
4 #include "CPlugin.h"
5 #include "CLensFlare.h"
6
7 /*
8 * ライトセッティング
9 */
10 class CLightSetting{
11 friend class CEnvPlugin;
12 private:
13 float m_SunAlt; // 太陽高度
14 D3DCOLOR m_Directional; // 平行光源色
15 D3DCOLOR m_Ambient; // 環境光源色
16 D3DCOLOR m_SkyColor; // 空の色
17 public:
18 char *Read(char *);
19 bool operator<(const CLightSetting &rhs){
20 return m_SunAlt<rhs.m_SunAlt;
21 }
22 };
23
24 // 反復子
25 typedef list<CLightSetting>::iterator ILightSetting;
26
27 /*
28 * 衛星データ
29 */
30 class CMoon{
31 friend class CEnvPlugin;
32 private:
33 string m_MoonFile; // ファイル名
34 CMesh *m_MoonMesh; // メッシュ
35 CObject m_MoonObject; // オブジェクト
36 float m_MoonScale; // スケール
37 float m_AxialInclination; // 公転軸の傾き
38 float m_RevolutionPeriod; // 公転周期
39 float m_InitialPhase; // 初期位相
40 float m_RevolutionPerDay; // 1 日当たり公転角度
41 public:
42 char *Read(char *);
43 void LoadData();
44 void Render(double, float, VEC3, float);
45 };
46
47 // 反復子
48 typedef list<CMoon>::iterator IMoon;
49
50 /*
51 * 環境プラグイン
52 */
53 class CEnvPlugin: public CPlugin{
54 private:
55 float m_Latitude; // 緯度
56 string m_EnvMapTexFile; // 環境マップファイル名
57 LPTEX8 m_EnvMapTexture; // 環境マッピング
58 string m_LandscapeFile; // 景観ファイル名
59 CMesh *m_LandscapeMesh; // 景観メッシュ
60 CObject m_LandscapeObject; // 景観オブジェクト
61 float m_LandscapeScale; // 景観スケール
62 string m_SunFile; // 景観ファイル名
63 CMesh *m_SunMesh; // 景観メッシュ
64 CObject m_SunObject; // 景観オブジェクト
65 float m_SunScale; // 景観スケール
66 float m_SunAxialInclination; // 地軸の傾き
67 CLensFlare m_SunLensFlare; // 太陽レンズフレア
68 CWhiteout m_SunWhiteout; // 太陽ホワイトアウト
69 float m_NightThreshold; // 昼夜閾値
70 D3DCOLOR m_ShadowColor; // 影の色
71 list<CLightSetting> m_Light; // 光源設定
72 list<CMoon> m_Moon; // 月リスト
73 public:
74 CEnvPlugin(char *id): CPlugin(id){}
75 ~CEnvPlugin(){}
76 char *DirName(){ return "Env"; }
77 char *TextName2(){ return "Env2.txt"; }
78 bool Load();
79 bool GetHemisphere(){ return m_Latitude<0.0f; }
80 void SetPreview();
81 void SetEnvMapTexture(){ devSetTexture(1, m_EnvMapTexture); }
82 void Render(double abstime = -1.0);
83 void RenderAfter();
84 D3DCOLOR GetShadowColor(){ return m_ShadowColor; }
85 CPLUGIN_CASTFUNC(CEnvPlugin);
86 };
87
88 /*
89 * 環境プラグインリスト
90 */
91 class CEnvPluginList: public CPluginList{
92 private:
93 public:
94 char *DirName(){ return "Env"; }
95 char *TextName2(){ return "Env2.txt"; }
96 char *Default(){ return "Default"; }
97 CPlugin *NewEntry(char *id){ return new CEnvPlugin(id); }
98 CPLUGINLIST_CASTFUNC(CEnvPlugin);
99 };
100
101 // 外部グローバル
102 extern float g_DayAlpha;
103 extern float g_NightAlpha;
104 extern D3DCOLOR g_NoLightColor;
105 extern CEnvPlugin *g_Env;
106 extern CEnvPlugin *g_DefaultEnv;
107 extern CEnvPluginList *g_EnvPluginList;
108
109 #endif

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26