FineKernelToolKit: FK/DList.h ソースファイル

FineKernelToolKit 4.3.0

読み取り中…
検索中…
一致する文字列を見つけられません
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
44
45 class fk_DisplayLink : public fk_BaseObject {
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
79 fk_DisplayLink(void);
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
125 void entryOverlayModel(fk_Model *model);
126
128
134 void removeOverlayModel(fk_Model *model);
135
137
141 void clearOverlayModel(void);
142
144
149 void entryCamera(fk_Model *model);
150
152
158 fk_Model * getCamera(void) const;
159
161
168 void setProjection(fk_ProjectBase *proj);
169
171
176 fk_ProjectBase * getProjection(void) const;
177
180
182
193 void entryStereoCamera(fk_StereoChannel channel, fk_Model *model);
194
196
207 void setStereoProjection(fk_StereoChannel channel, fk_ProjectBase *proj);
208
210
224 const fk_Model * getStereoCamera(fk_StereoChannel channel);
225
227
240 const fk_ProjectBase * getStereoProjection(fk_StereoChannel channel);
241
243
248 void clearStereo(void);
249
251
269 void setStereoOverlayMode(bool mode);
270
272
281 bool getStereoOverlayMode(void);
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 ****************************************************************************/
Light.h
Model.h
Projection.h
FK::fk_BaseObject::fk_BaseObject
fk_BaseObject(fk_Type type=fk_Type::BASEOBJECT)
コンストラクタ
FK::fk_DisplayLink::setStereoOverlayMode
void setStereoOverlayMode(bool mode)
立体視モード時のオーバーレイ描画モード設定関数
FK::fk_DisplayLink::setStereoProjection
void setStereoProjection(fk_StereoChannel channel, fk_ProjectBase *proj)
立体視用射影設定関数
FK::fk_DisplayLink::getCamera
fk_Model * getCamera(void) const
カメラモデル取得関数
FK::fk_DisplayLink::entryOverlayModel
void entryOverlayModel(fk_Model *model)
オーバーレイモデル登録関数
FK::fk_DisplayLink::clearStereo
void clearStereo(void)
立体視用設定情報初期化関数
FK::fk_DisplayLink::clearModel
void clearModel(void)
通常モデル全解除関数
FK::fk_DisplayLink::entryStereoCamera
void entryStereoCamera(fk_StereoChannel channel, fk_Model *model)
立体視用カメラモデル登録関数
FK::fk_DisplayLink::clearOverlayModel
void clearOverlayModel(void)
オーバーレイモデル全解除関数
FK::fk_DisplayLink::getProjection
fk_ProjectBase * getProjection(void) const
投影設定取得関数
FK::fk_DisplayLink::fk_DisplayLink
fk_DisplayLink(void)
コンストラクタ
FK::fk_DisplayLink::getStereoOverlayMode
bool getStereoOverlayMode(void)
立体視モード時のオーバーレイ描画モード取得関数
FK::fk_DisplayLink::entryModel
void entryModel(fk_Model *model)
通常モデル登録関数
FK::fk_DisplayLink::getStereoCamera
const fk_Model * getStereoCamera(fk_StereoChannel channel)
立体視用カメラモデル取得関数
FK::fk_DisplayLink::~fk_DisplayLink
virtual ~fk_DisplayLink()
デストラクタ
FK::fk_DisplayLink::getStereoProjection
const fk_ProjectBase * getStereoProjection(fk_StereoChannel channel)
立体視用射影設定取得関数
FK::fk_DisplayLink::setProjection
void setProjection(fk_ProjectBase *proj)
投影設定関数
FK::fk_DisplayLink::removeOverlayModel
void removeOverlayModel(fk_Model *model)
オーバーレイモデル解除関数
FK::fk_DisplayLink::clearDisplay
void clearDisplay(void)
初期化関数
FK::fk_DisplayLink::entryCamera
void entryCamera(fk_Model *model)
カメラモデル登録関数
FK::fk_DisplayLink::removeModel
void removeModel(fk_Model *model)
通常モデル解除関数
FK::fk_Frustum
一般透視投影を制御するクラス
Definition Projection.h:262
FK::fk_Model
モデルを生成、管理するクラス
Definition Model.h:101
FK::fk_Ortho
平行投影法を制御するクラス
Definition Projection.h:437
FK::fk_Perspective
対称透視投影法を制御するクラス
Definition Projection.h:97
FK::fk_ProjectBase
投影法の基底クラス
Definition Projection.h:26
FK
Fine Kernel Toolkit 名前空間
Definition Angle.h:6
FK::fk_LightType
fk_LightType
光源タイプを表す列挙型
Definition Light.h:8
FK::fk_StereoChannel
fk_StereoChannel
立体視出力を制御する際に用いる列挙型
Definition DList.h:13
FK::fk_StereoChannel::RIGHT
@ RIGHT
右目側
Definition DList.h:15
FK::fk_StereoChannel::LEFT
@ LEFT
左目側
Definition DList.h:14