FineKernelToolKit  3.1.0
Shape_CLI.h
[詳解]
1 // Shape_CLI.h
2 
3 #pragma once
4 
5 #include <FK/Shape.h>
6 #include "Attribute_CLI.h"
7 #include "Palette_CLI.h"
8 
9 namespace FK_CLI
10 {
12  public enum class fk_RealShapeType {
13  IFS,
14  SOLID,
15  TEXTURE,
16  POINT,
17  LIGHT,
18  OTHER
19  };
20 
22 
28  public ref class fk_Shape : fk_Attribute {
29  internal:
30  ::fk_Shape * GetP(void);
31 
32  public:
33 #ifndef FK_DOXYGEN_USER_PROCESS
34  fk_Shape(bool argNewFlg);
35  ~fk_Shape();
36  !fk_Shape();
37 #endif
38 
40 
45  fk_RealShapeType^ get();
46  }
47 
49 
52  property fk_Palette^ Palette {
53  fk_Palette^ get();
54  }
55 
57 
84  fk_MaterialMode get();
85  void set(fk_MaterialMode);
86  }
87 
89 
94  property int MaterialID {
95  int get();
96  void set(int);
97  }
98 
100 
105  property int PaletteSize {
106  int get();
107  }
108 
110 
117  property cli::array<fk_Material^>^ MaterialVector {
118  cli::array<fk_Material^>^ get();
119  }
120 
122 
127  void ClearMaterial(void);
128 
130 
137  void PushPalette(fk_Material^ mat);
138 
140 
149  void SetPalette(fk_Material^ mat, int ID);
150 
152 
161  fk_Material^ GetMaterial(int ID);
162  };
163 }
164 
165 /****************************************************************************
166  *
167  * Copyright (c) 1999-2016, Fine Kernel Project, All rights reserved.
168  *
169  * Redistribution and use in source and binary forms,
170  * with or without modification, are permitted provided that the
171  * following conditions are met:
172  *
173  * - Redistributions of source code must retain the above
174  * copyright notice, this list of conditions and the
175  * following disclaimer.
176  *
177  * - Redistributions in binary form must reproduce the above
178  * copyright notice, this list of conditions and the
179  * following disclaimer in the documentation and/or
180  * other materials provided with the distribution.
181  *
182  * - Neither the name of the copyright holders nor the names
183  * of its contributors may be used to endorse or promote
184  * products derived from this software without specific
185  * prior written permission.
186  *
187  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
188  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
189  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
190  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
191  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
192  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
193  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
194  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
195  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
196  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
197  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
198  * POSSIBILITY OF SUCH DAMAGE.
199  *
200  ****************************************************************************/
201 /****************************************************************************
202  *
203  * Copyright (c) 1999-2016, Fine Kernel Project, All rights reserved.
204  *
205  * 本ソフトウェアおよびソースコードのライセンスは、基本的に
206  * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
207  *
208  * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
209  * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
210  *
211  * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
212  * および下記免責条項を含めること。
213  *
214  * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
215  * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
216  * 含めること。
217  *
218  * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
219  * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
220  * コントリビューターの名前を使用してはならない。
221  *
222  * 本ソフトウェアは、著作権者およびコントリビューターによって「現
223  * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
224  * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
225  * に限定されない、いかなる保証もないものとします。著作権者もコン
226  * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
227  * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
228  * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
229  * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
230  * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
231  * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
232  * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
233  * ついて、一切責任を負わないものとします。
234  *
235  ****************************************************************************/
fk_RealShapeType^ RealShapeType
形状データ構造プロパティ
Definition: Shape_CLI.h:44
fk_IndexFaceSetベース
void ClearMaterial(void)
パレット初期化メソッド
マテリアルパレットを管理するクラス
Definition: Palette_CLI.h:26
void SetPalette(fk_Material^ mat, int ID)
マテリアル設定メソッド
fk_Palette^ Palette
パレットプロパティ
Definition: Shape_CLI.h:52
fk_Material^ GetMaterial(int ID)
マテリアル取得メソッド
形状や位相要素の属性を付与、取得するクラス
Definition: Attribute_CLI.h:17
cli::array< fk_Material^ >^ MaterialVector
マテリアル配列取得メソッド
Definition: Shape_CLI.h:117
形状用基底クラス
Definition: Shape_CLI.h:28
fk_MaterialMode
マテリアルモードを表す列挙型
Definition: Palette_CLI.h:11
fk_RealShapeType
形状データの具体的なデータ構造を表す列挙型
Definition: Shape_CLI.h:12
int MaterialID
オブジェクトマテリアル ID プロパティ
Definition: Shape_CLI.h:94
fk_MaterialMode MaterialMode
マテリアルモード設定メソッド
Definition: Shape_CLI.h:83
マテリアル(質感)を管理するクラス
Definition: Material_CLI.h:448
void PushPalette(fk_Material^ mat)
マテリアル追加メソッド
Definition: AppWindow_CLI.h:11
int PaletteSize
パレット中のマテリアル格納数プロパティ
Definition: Shape_CLI.h:105