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 {
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);
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_ProjectMode
投影法を表す列挙型
Definition: Projection_CLI.h:12
平行投影法を制御するクラス
Definition: Projection_CLI.h:314
対称透視投影法を制御するクラス
Definition: Projection_CLI.h:86
一般透視投影を制御するクラス
Definition: Projection_CLI.h:189
投影法の基底クラス
Definition: Projection_CLI.h:26
Definition: AppWindow_CLI.h:11