FineKernelToolKit  3.1.0
Material_CLI.h
[詳解]
1 // Material_CLI.h
2 
3 #pragma once
4 
5 #include <FK/Material.h>
6 #include <FK/MatExample.h>
7 #include "Base_CLI.h"
8 
9 namespace FK_CLI
10 {
12 
24  public ref class fk_Color {
25  internal:
26  bool dFlg;
27  ::fk_Color *pCol;
28 
29  ::fk_Color * GetP(void);
30 
31  public:
32 #ifndef FK_DOXYGEN_USER_PROCESS
33  fk_Color(bool argNewFlg);
34 #endif
35 
37 
40  fk_Color();
41 
43 
50  fk_Color(double R, double G, double B);
51 
53 
61  fk_Color(double R, double G, double B, double A);
62 
64 
71  fk_Color(float R, float G, float B);
72 
74 
82  fk_Color(float R, float G, float B, float A);
83 
85  ~fk_Color();
86 
88  !fk_Color();
89 
91 
95  property float col[int] {
96  float get(int argI);
97  void set(int argI, float argC);
98  }
99 
101 
104  property float r {
105  float get();
106  void set(float argF);
107  }
108 
110 
113  property float g {
114  float get();
115  void set(float argF);
116  }
117 
119 
122  property float b {
123  float get();
124  void set(float argF);
125  }
126 
128 
132  property float a {
133  float get();
134  void set(float argF);
135  }
136 
138 
139 
141 
149  static fk_Color^ operator+(fk_Color^, fk_Color^);
150 
152 
160  static fk_Color^ operator-(fk_Color^, fk_Color^);
161 
163 
173  static fk_Color^ operator*(fk_Color^, double);
174 
176 
186  static fk_Color^ operator*(double, fk_Color^);
187 
189 
198  static fk_Color^ operator/(fk_Color^, double);
199 
201 
203 
204 
206 
219  static void operator *= (fk_Color^, double);
220 
222 
236  static void operator /= (fk_Color^, double);
237 
239 
251  static void operator += (fk_Color^, fk_Color^);
252 
254 
266  static void operator -= (fk_Color^, fk_Color^);
267 
269 
271 
280  bool fk_Color::Equals(fk_Color^ C);
281 
283 
292  virtual bool fk_Color::Equals(Object^ C) override;
293 
295 
300  String^ fk_Color::ToString() override;
301 
303 
306  void Init(void);
307 
309 
317  void Init(float R, float G, float B);
318 
320 
329  void Init(float R, float G, float B, float A);
330 
332 
340  void Init(double R, double G, double B);
341 
343 
352  void Init(double R, double G, double B, double A);
353 
355 
363  void Set(float R, float G, float B);
364 
366 
375  void Set(float R, float G, float B, float A);
376 
378 
386  void Set(double R, double G, double B);
387 
389 
398  void Set(double R, double G, double B, double A);
399 
401 
410  void SetHSV(double H, double S, double V);
411  };
412 
414 
448  public ref class fk_Material {
449  internal:
450  bool dFlg;
451  ::fk_Material *pMat;
452 
453  ::fk_Material * GetP(void);
454 
455  public:
456 #ifndef FK_DOXYGEN_USER_PROCESS
457  fk_Material(bool argNewFlg);
458 #endif
459  fk_Material();
461 
463  ~fk_Material();
464 
466  !fk_Material();
467 
469 
478  bool Equals(fk_Material^ M);
479 
481 
490  virtual bool Equals(Object^ M) override;
491 
493 
505  property float Alpha {
506  float get();
507  void set(float argF);
508  }
509 
511 
515  property fk_Color^ Ambient {
516  fk_Color^ get();
517  void set(fk_Color^ argC);
518  }
519 
521 
525  property fk_Color^ Diffuse {
526  fk_Color^ get();
527  void set(fk_Color^ argC);
528  }
529 
531 
535  property fk_Color^ Specular {
536  fk_Color^ get();
537  void set(fk_Color^ argC);
538  }
539 
541 
545  property fk_Color^ Emission {
546  fk_Color^ get();
547  void set(fk_Color^ argC);
548  }
549 
551 
554  property float Shininess {
555  float get();
556  void set(float s);
557  };
558 
560 
563  void Init(void);
564 
566 
576  static void InitDefault(void);
577 
582 
587 
591  static fk_Material^ Blue;
592 
597 
602 
607 
612 
616  static fk_Material^ Cyan;
617 
622 
627 
632 
637 
642 
647 
652 
657 
662 
667 
672 
677 
682 
687 
692 
697 
702 
707 
712 
717 
722 
727 
732 
737 
742 
746  static fk_Material^ Pink;
747 
752 
756  static fk_Material^ Red;
757 
762 
767 
772 
777 
782 
783 
784  };
785 }
786 
787 /****************************************************************************
788  *
789  * Copyright (c) 1999-2016, Fine Kernel Project, All rights reserved.
790  *
791  * Redistribution and use in source and binary forms,
792  * with or without modification, are permitted provided that the
793  * following conditions are met:
794  *
795  * - Redistributions of source code must retain the above
796  * copyright notice, this list of conditions and the
797  * following disclaimer.
798  *
799  * - Redistributions in binary form must reproduce the above
800  * copyright notice, this list of conditions and the
801  * following disclaimer in the documentation and/or
802  * other materials provided with the distribution.
803  *
804  * - Neither the name of the copyright holders nor the names
805  * of its contributors may be used to endorse or promote
806  * products derived from this software without specific
807  * prior written permission.
808  *
809  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
810  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
811  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
812  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
813  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
814  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
815  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
816  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
817  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
818  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
819  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
820  * POSSIBILITY OF SUCH DAMAGE.
821  *
822  ****************************************************************************/
823 /****************************************************************************
824  *
825  * Copyright (c) 1999-2016, Fine Kernel Project, All rights reserved.
826  *
827  * 本ソフトウェアおよびソースコードのライセンスは、基本的に
828  * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
829  *
830  * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
831  * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
832  *
833  * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
834  * および下記免責条項を含めること。
835  *
836  * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
837  * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
838  * 含めること。
839  *
840  * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
841  * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
842  * コントリビューターの名前を使用してはならない。
843  *
844  * 本ソフトウェアは、著作権者およびコントリビューターによって「現
845  * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
846  * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
847  * に限定されない、いかなる保証もないものとします。著作権者もコン
848  * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
849  * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
850  * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
851  * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
852  * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
853  * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
854  * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
855  * ついて、一切責任を負わないものとします。
856  *
857  ****************************************************************************/
static fk_Material^ Yellow
Definition: Material_CLI.h:781
static fk_Material^ IridescentGreen
Definition: Material_CLI.h:686
static fk_Material^ DarkPurple
Definition: Material_CLI.h:631
static fk_Material^ Gray1
Definition: Material_CLI.h:666
static fk_Material^ TrueWhite
Definition: Material_CLI.h:761
static void operator/=(fk_Color^ , double)
実数商代入演算子
static fk_Color^ operator*(fk_Color^ , double)
実数倍二項演算子1
static void operator-=(fk_Color^ , fk_Color^ )
単項差代入演算子
static fk_Material^ Cyan
Definition: Material_CLI.h:616
static fk_Material^ Coral
Definition: Material_CLI.h:606
static fk_Material^ HolidaySkyBlue
Definition: Material_CLI.h:681
static fk_Material^ DarkRed
Definition: Material_CLI.h:636
static fk_Material^ Flesh
Definition: Material_CLI.h:651
static fk_Material^ White
Definition: Material_CLI.h:776
static fk_Material^ UltraMarine
Definition: Material_CLI.h:766
static fk_Material^ LavaRed
Definition: Material_CLI.h:696
float Alpha
透明度プロパティ
Definition: Material_CLI.h:505
fk_Material()
コンストラクタ
static fk_Material^ PaleBlue
Definition: Material_CLI.h:736
static fk_Material^ DarkYellow
Definition: Material_CLI.h:641
void SetHSV(double H, double S, double V)
HSV変換メソッド
static fk_Material^ Orange
Definition: Material_CLI.h:731
static fk_Material^ Red
Definition: Material_CLI.h:756
static fk_Material^ Green
Definition: Material_CLI.h:676
float b
B(青)要素プロパティ
Definition: Material_CLI.h:122
static fk_Material^ BambooGreen
Definition: Material_CLI.h:586
static fk_Material^ Violet
Definition: Material_CLI.h:771
static fk_Material^ Purple
Definition: Material_CLI.h:751
static fk_Material^ GlossBlack
Definition: Material_CLI.h:656
static fk_Material^ DarkGreen
Definition: Material_CLI.h:626
static fk_Material^ LightBlue
Definition: Material_CLI.h:701
static void InitDefault(void)
デフォルトマテリアル初期化メソッド
static fk_Material^ DimYellow
Definition: Material_CLI.h:646
fk_Color^ Specular
鏡面反射係数プロパティ
Definition: Material_CLI.h:535
~fk_Color()
デストラクタ
static fk_Material^ GrassGreen
Definition: Material_CLI.h:661
static fk_Material^ Cream
Definition: Material_CLI.h:611
~fk_Material()
デストラクタ
static fk_Material^ Lilac
Definition: Material_CLI.h:721
static fk_Material^ Blue
Definition: Material_CLI.h:591
static fk_Material^ LightGreen
Definition: Material_CLI.h:711
static fk_Material^ Brown
Definition: Material_CLI.h:596
static fk_Material^ LightViolet
Definition: Material_CLI.h:716
RGB色を管理するクラス
Definition: Material_CLI.h:24
static fk_Material^ Gray2
Definition: Material_CLI.h:671
bool Equals(fk_Material^ M)
同値比較メソッド1
void Init(void)
初期化メソッド1
float r
R(赤)要素プロパティ
Definition: Material_CLI.h:104
static void operator*=(fk_Color^ , double)
実数積代入演算子
float Shininess
鏡面反射ハイライトプロパティ
Definition: Material_CLI.h:554
static fk_Material^ Pink
Definition: Material_CLI.h:746
static fk_Material^ LightCyan
Definition: Material_CLI.h:706
static fk_Color^ operator+(fk_Color^ , fk_Color^ )
色要素和二項演算子
void Set(float R, float G, float B)
設定メソッド1
float a
A(透過色)要素プロパティ
Definition: Material_CLI.h:132
static fk_Material^ PearWhite
Definition: Material_CLI.h:741
fk_Color^ Diffuse
拡散反射係数プロパティ
Definition: Material_CLI.h:525
static fk_Material^ MatBlack
Definition: Material_CLI.h:726
static fk_Material^ Ivory
Definition: Material_CLI.h:691
float g
G(緑)要素プロパティ
Definition: Material_CLI.h:113
static fk_Material^ AshGray
Definition: Material_CLI.h:581
static fk_Material^ DarkBlue
Definition: Material_CLI.h:621
void Init(void)
初期化メソッド
fk_Color()
コンストラクタ1
static void operator+=(fk_Color^ , fk_Color^ )
単項和代入演算子
fk_Color^ Emission
放射光反射係数プロパティ
Definition: Material_CLI.h:545
static fk_Color^ operator/(fk_Color^ , double)
実数商二項演算子
マテリアル(質感)を管理するクラス
Definition: Material_CLI.h:448
static fk_Material^ BurntTitan
Definition: Material_CLI.h:601
static fk_Color^ operator-(fk_Color^ , fk_Color^ )
色要素差二項演算子
fk_Color^ Ambient
環境反射係数プロパティ
Definition: Material_CLI.h:515
Definition: AppWindow_CLI.h:11