FineKernelToolKit 3.1.0

- 総合概要
- 名前空間
- クラス
- ファイル

- ファイル一覧

Projection_CLI.h
[詳解]
1 // Shape_CLI.h
2
3 #pragma once
4
5 #include <FK/Projection.h>
6
7 namespace FK_CLI
8 {
9 using namespace System;
10
12 public enum class fk_ProjectMode {
13 NONE_PROJ_MODE,
14 PERSPECTIVE_MODE,
15 FRUSTUM_MODE,
16 ORTHO_MODE
17 };
18
20
26 public ref class fk_ProjectBase {
27 internal:
28 bool dFlg;
29 ::fk_ProjectBase *pProj;
30
31 ::fk_ProjectBase * GetP(void);
32
33 public:
34 #ifndef FK_DOXYGEN_USER_PROCESS
35 fk_ProjectBase(bool argNewFlg);
36 fk_ProjectBase();
37 ~fk_ProjectBase();
38 !fk_ProjectBase();
39 #endif
40
42
45 property fk_ProjectMode Mode {
46 fk_ProjectMode get();
47 }
48 };
49
51
86 public ref class fk_Perspective : fk_ProjectBase {
87 internal:
88 ::fk_Perspective * GetP(void);
89
90 public:
91 #ifndef FK_DOXYGEN_USER_PROCESS
92 fk_Perspective(bool argNewFlg);
93 #endif
94
100 fk_Perspective();
101
103
110 fk_Perspective(double fovy, double near, double far);
111
113 ~fk_Perspective();
114
116 !fk_Perspective();
117
119
122 property double Fovy {
123 void set(double);
124 double get();
125 }
126
128
131 property double Near {
132 void set(double);
133 double get();
134 }
135
137
140 property double Far {
141 void set(double);
142 double get();
143 }
144
146
153 void SetAll(double fovy, double near, double far);
154 };
155
157
189 public ref class fk_Frustum : fk_ProjectBase {
190 internal:
191 ::fk_Frustum * GetP(void);
192
193 public:
194 #ifndef FK_DOXYGEN_USER_PROCESS
195 fk_Frustum(bool argNewFlg);
196 #endif
197
208 fk_Frustum(double left, double right,
209 double bottom, double top,
210 double near, double far);
211
213
217 fk_Frustum();
218
220 ~fk_Frustum();
221
223 !fk_Frustum();
224
226
229 property double Left {
230 void set(double);
231 double get();
232 }
233
235
238 property double Right {
239 void set(double);
240 double get();
241 }
242
244
247 property double Bottom {
248 void set(double);
249 double get();
250 }
251
253
256 property double Top {
257 void set(double);
258 double get();
259 }
260
262
265 property double Near {
266 void set(double);
267 double get();
268 }
269
271
274 property double Far {
275 void set(double);
276 double get();
277 }
278
280
290 void SetAll(double left, double right, double bottom,
291 double top, double near, double far);
292 };
293
295
314 public ref class fk_Ortho : fk_ProjectBase {
315 internal:
316 ::fk_Ortho * GetP(void);
317
318 public:
319 #ifndef FK_DOXYGEN_USER_PROCESS
320 fk_Ortho(bool argNewFlg);
321 #endif
322
324
335 fk_Ortho(double left, double right,
336 double bottom, double top,
337 double near, double far);
338
340
344 fk_Ortho();
345
347 ~fk_Ortho();
348
350 !fk_Ortho();
351
353
356 property double Left {
357 void set(double);
358 double get();
359 }
360
362
365 property double Right {
366 void set(double);
367 double get();
368 }
369
371
374 property double Bottom {
375 void set(double);
376 double get();
377 }
378
380
383 property double Top {
384 void set(double);
385 double get();
386 }
387
389
392 property double Near {
393 void set(double);
394 double get();
395 }
396
398
401 property double Far {
402 void set(double);
403 double get();
404 }
405
407
418 void SetAll(double left, double right, double bottom,
419 double top, double near, double far);
420 };
421 }
422
423 /****************************************************************************
424 *
425 * Copyright (c) 1999-2016, Fine Kernel Project, All rights reserved.
426 *
427 * Redistribution and use in source and binary forms,
428 * with or without modification, are permitted provided that the
429 * following conditions are met:
430 *
431 * - Redistributions of source code must retain the above
432 * copyright notice, this list of conditions and the
433 * following disclaimer.
434 *
435 * - Redistributions in binary form must reproduce the above
436 * copyright notice, this list of conditions and the
437 * following disclaimer in the documentation and/or
438 * other materials provided with the distribution.
439 *
440 * - Neither the name of the copyright holders nor the names
441 * of its contributors may be used to endorse or promote
442 * products derived from this software without specific
443 * prior written permission.
444 *
445 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
446 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
447 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
448 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
449 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
450 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
451 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
452 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
453 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
454 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
455 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
456 * POSSIBILITY OF SUCH DAMAGE.
457 *
458 ****************************************************************************/
459 /****************************************************************************
460 *
461 * Copyright (c) 1999-2016, Fine Kernel Project, All rights reserved.
462 *
463 * 本ソフトウェアおよびソースコードのライセンスは、基本的に
464 * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
465 *
466 * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
467 * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
468 *
469 * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
470 * および下記免責条項を含めること。
471 *
472 * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
473 * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
474 * 含めること。
475 *
476 * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
477 * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
478 * コントリビューターの名前を使用してはならない。
479 *
480 * 本ソフトウェアは、著作権者およびコントリビューターによって「現
481 * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
482 * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
483 * に限定されない、いかなる保証もないものとします。著作権者もコン
484 * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
485 * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
486 * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
487 * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
488 * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
489 * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
490 * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
491 * ついて、一切責任を負わないものとします。
492 *
493 ****************************************************************************/
FK_CLI::fk_ProjectMode::PERSPECTIVE_MODE
対称透視投影法
FK_CLI::fk_ProjectMode::NONE_PROJ_MODE
指定なし
FK_CLI::fk_ProjectMode
fk_ProjectMode
投影法を表す列挙型
Definition: Projection_CLI.h:12
FK_CLI::fk_Ortho
平行投影法を制御するクラス
Definition: Projection_CLI.h:314
FK_CLI::fk_ProjectMode::ORTHO_MODE
平行投影法
FK_CLI::fk_Perspective
対称透視投影法を制御するクラス
Definition: Projection_CLI.h:86
FK_CLI::fk_Frustum
一般透視投影を制御するクラス
Definition: Projection_CLI.h:189
System
FK_CLI::fk_ProjectBase
投影法の基底クラス
Definition: Projection_CLI.h:26
FK_CLI::fk_ProjectMode::FRUSTUM_MODE
一般透視投影法
FK_CLI
Definition: AppWindow_CLI.h:11