FineKernelToolKit 4.2.13
読み取り中…
検索中…
一致する文字列を見つけられません
DList.h
[詳解]
1#if !defined(__FK_DISPLAYLIST_HEADER__)
2#define __FK_DISPLAYLIST_HEADER__
3
4#include <FK/Projection.h>
5#include <FK/Model.h>
6#include <FK/Light.h>
7#include <FK/IDAdmin.hh>
8#include <list>
9
10namespace FK {
11
13 enum class fk_StereoChannel {
14 LEFT,
15 RIGHT
16 };
17
19
46
47#if !defined(FK_DOXYGEN_USER_PROCESS)
48 class Member {
49 public:
50 std::list<fk_Model *> modelList;
51 std::list<fk_Model *> overlayList;
52 std::list<fk_Model *> parallelLightList;
53 std::list<fk_Model *> pointLightList;
54 std::list<fk_Model *> spotLightList;
55 int displayID;
56
57 fk_Model localCamera;
58 fk_Model *camera;
59 fk_ProjectBase *proj;
60 fk_Perspective perspective;
61 fk_Frustum frustum;
62 fk_Ortho ortho;
63 int projStatus;
64
65 fk_Model *stereoCamera[2];
66 fk_ProjectBase *stereoProj[2];
67 fk_Perspective stereoPers[2];
68 fk_Frustum stereoFrus[2];
69 fk_Ortho stereoOrtho[2];
70 bool stereoOverlayMode;
71
72 Member(void);
73 };
74#endif
75
76 public:
77
80
82 virtual ~fk_DisplayLink();
83
85
90 void clearDisplay(void);
91
93
98 void entryModel(fk_Model *model);
99
101
107 void removeModel(fk_Model *model);
108
110
114 void clearModel(void);
115
117
126
128
135
137
142
144
149 void entryCamera(fk_Model *model);
150
152
158 fk_Model * getCamera(void) const;
159
161
169
171
177
180
182
194
196
208
210
225
227
241
243
248 void clearStereo(void);
249
251
269 void setStereoOverlayMode(bool mode);
270
272
283
284#if !defined(FK_DOXYGEN_USER_PROCESS)
285 void SetFinalizeMode(void);
286 int GetID(void) const;
287 int GetProjChangeStatus(void) const;
288 std::list<fk_Model *> * GetModelList(void);
289 std::list<fk_Model *> * GetLightList(fk_LightType);
290 std::list<fk_Model *> * GetOverlayList(void);
291#endif
292
293 private:
294 std::unique_ptr<Member> _m;
295 static inline std::unique_ptr<fk_IDAdmin> DLManager;
296 };
297}
298
299#endif // !__FK_DISPLAYLIST_HEADER__
300
301/****************************************************************************
302 *
303 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
304 *
305 * Redistribution and use in source and binary forms,
306 * with or without modification, are permitted provided that the
307 * following conditions are met:
308 *
309 * - Redistributions of source code must retain the above
310 * copyright notice, this list of conditions and the
311 * following disclaimer.
312 *
313 * - Redistributions in binary form must reproduce the above
314 * copyright notice, this list of conditions and the
315 * following disclaimer in the documentation and/or
316 * other materials provided with the distribution.
317 *
318 * - Neither the name of the copyright holders nor the names
319 * of its contributors may be used to endorse or promote
320 * products derived from this software without specific
321 * prior written permission.
322 *
323 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
324 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
325 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
326 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
327 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
328 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
329 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
330 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
331 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
332 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
333 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
334 * POSSIBILITY OF SUCH DAMAGE.
335 *
336 ****************************************************************************/
337/****************************************************************************
338 *
339 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
340 *
341 * 本ソフトウェアおよびソースコードのライセンスは、基本的に
342 * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
343 *
344 * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
345 * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
346 *
347 * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
348 * および下記免責条項を含めること。
349 *
350 * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
351 * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
352 * 含めること。
353 *
354 * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
355 * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
356 * コントリビューターの名前を使用してはならない。
357 *
358 * 本ソフトウェアは、著作権者およびコントリビューターによって「現
359 * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
360 * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
361 * に限定されない、いかなる保証もないものとします。著作権者もコン
362 * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
363 * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
364 * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
365 * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
366 * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
367 * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
368 * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
369 * ついて、一切責任を負わないものとします。
370 *
371 ****************************************************************************/
FK の各クラスの基盤となる基本クラス
Definition Base.h:113
一般透視投影を制御するクラス
Definition Projection.h:262
モデルを生成、管理するクラス
Definition Model.h:98
平行投影法を制御するクラス
Definition Projection.h:437
対称透視投影法を制御するクラス
Definition Projection.h:97
投影法の基底クラス
Definition Projection.h:26
Fine Kernel Toolkit 名前空間
Definition Angle.h:6
fk_LightType
光源タイプを表す列挙型
Definition Light.h:8
fk_StereoChannel
立体視出力を制御する際に用いる列挙型
Definition DList.h:13