FineKernelToolKit 4.2.13
読み取り中…
検索中…
一致する文字列を見つけられません
Fog.h
[詳解]
1#if !defined(__FK_FOG_HEADER__)
2#define __FK_FOG_HEADER__
3
4#include <FK/Material.h>
5#include <FK/DList.h>
6
7namespace FK {
8
10 enum class fk_FogMode {
11 LINEAR = 0,
12 EXP,
13 EXP2,
14 OFF,
15 NUM
16 };
17
19
27 class fk_Fog : public fk_DisplayLink {
28
29#if !defined(FK_DOXYGEN_USER_PROCESS)
30 class Member {
31 public:
32 fk_FogMode fogMode;
33 double fogStart, fogEnd, fogDensity;
34 fk_Color fogColor;
35
36 Member(void);
37 };
38#endif
39
40 public:
41
43 fk_Fog(void);
45 virtual ~fk_Fog();
46
48
77 void setFogMode(const fk_FogMode mode);
78
80
87 void setFogDensity(const double d);
88
90
100 void setFogLinearMap(const double S, const double E);
101
103
110 void setFogColor(const fk_Color &col);
111
113
124 void setFogColor(float r, float g, float b, float a);
125
127
138 void setFogColor(double r, double g, double b, double a);
139
141
148
150
157 double getFogDensity(void) const;
158
160
167 double getFogLinearStart(void) const;
168
170
177 double getFogLinearEnd(void) const;
178
180
186
187 private:
188
189 std::unique_ptr<Member> _m;
190 };
191}
192
193#endif // !__FK_FOG_HEADER__
194
195/****************************************************************************
196 *
197 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
198 *
199 * Redistribution and use in source and binary forms,
200 * with or without modification, are permitted provided that the
201 * following conditions are met:
202 *
203 * - Redistributions of source code must retain the above
204 * copyright notice, this list of conditions and the
205 * following disclaimer.
206 *
207 * - Redistributions in binary form must reproduce the above
208 * copyright notice, this list of conditions and the
209 * following disclaimer in the documentation and/or
210 * other materials provided with the distribution.
211 *
212 * - Neither the name of the copyright holders nor the names
213 * of its contributors may be used to endorse or promote
214 * products derived from this software without specific
215 * prior written permission.
216 *
217 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
218 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
219 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
220 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
221 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
222 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
223 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
224 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
225 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
226 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
227 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
228 * POSSIBILITY OF SUCH DAMAGE.
229 *
230 ****************************************************************************/
231/****************************************************************************
232 *
233 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
234 *
235 * 本ソフトウェアおよびソースコードのライセンスは、基本的に
236 * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
237 *
238 * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
239 * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
240 *
241 * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
242 * および下記免責条項を含めること。
243 *
244 * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
245 * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
246 * 含めること。
247 *
248 * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
249 * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
250 * コントリビューターの名前を使用してはならない。
251 *
252 * 本ソフトウェアは、著作権者およびコントリビューターによって「現
253 * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
254 * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
255 * に限定されない、いかなる保証もないものとします。著作権者もコン
256 * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
257 * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
258 * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
259 * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
260 * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
261 * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
262 * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
263 * ついて、一切責任を負わないものとします。
264 *
265 ****************************************************************************/
RGB色を管理するクラス
Definition Color.h:21
シーン中の霧効果を制御するクラス
Definition Fog.h:27
double getFogLinearStart(void) const
線形式係数取得関数1
fk_Color getFogColor(void) const
霧色取得関数
void setFogMode(const fk_FogMode mode)
減衰関数設定関数
double getFogLinearEnd(void) const
線形式係数取得関数1
double getFogDensity(void) const
指数式係数取得関数
void setFogColor(const fk_Color &col)
霧色設定関数1
void setFogColor(float r, float g, float b, float a)
霧色設定関数2
fk_FogMode getFogMode(void) const
減衰関数取得関数
void setFogColor(double r, double g, double b, double a)
霧色設定関数3
void setFogDensity(const double d)
指数式係数設定関数
void setFogLinearMap(const double S, const double E)
線形式係数設定関数
virtual ~fk_Fog()
デストラクタ
fk_Fog(void)
コンストラクタ
Fine Kernel Toolkit 名前空間
Definition Angle.h:6
fk_FogMode
霧効果の減衰関数を表す列挙型
Definition Fog.h:10
@ NUM
種類数
@ EXP2
指数(2乗)式
@ EXP
指数式
@ LINEAR
線形式