FineKernelToolKit 4.2.13
読み取り中…
検索中…
一致する文字列を見つけられません
IFSTexture.h
[詳解]
1#if !defined(__FK_IFS_TEXTURE_HEADER__)
2#define __FK_IFS_TEXTURE_HEADER__
3
4#include <FK/Texture.h>
5
6namespace FK {
7
8 class fk_IndexFaceSet;
9 class fk_BVHMotion;
10
12
43 class fk_IFSTexture : public fk_Texture {
44
45#if !defined(FK_DOXYGEN_USER_PROCESS)
46 class Member {
47 public:
49 std::vector<fk_TexCoord> coordArray;
50 std::vector< std::vector<int> > commonList;
51 bool connectMode;
52
53 Member(void);
54 };
55#endif
56
57 public:
58
60
67 fk_IFSTexture(fk_Image *image = nullptr);
68
70 virtual ~fk_IFSTexture();
71
73
77 void init(void);
78
80
88 fk_TexCoord getTextureCoord(int tID, int vID);
89
91
101
103
109
111
119 void setTextureCoord(int tID, int vID, fk_TexCoord &coord);
120
122
153 bool readMQOFile(std::string fileName, std::string objName,
154 int materialID = -1, bool contFlg = true);
155
157
192 bool readMQOData(unsigned char *buffer, std::string objName,
193 int materialID = -1, bool contFlg = true);
194
196
221 bool readD3DXFile(std::string fileName, std::string objName, int materialID = -1);
222
224
241 void setConnectMode(bool connectFlg);
242
244
253 bool getConnectMode(void);
254
256
265 bool moveVPosition(int vID, const fk_Vector &pos, int order = 0);
266
268
279 bool moveVPosition(int vID, double x, double y, double z, int order = 0);
280
282
290 bool moveVPosition(int vID, double *pos, int order = 0);
291
293
299 void setAnimationTime(double t);
300
302
308 void setBVHMotion(fk_BVHBase *bvh);
309
310#if !defined(FK_DOXYGEN_USER_PROCESS)
311 std::vector< std::vector<int> > * GetCommonList(void);
312 void ForceUpdateAttr(void);
313#endif
314
315 private:
316 std::unique_ptr<Member> _m;
317
318 void SetConnectNormal(void);
319 void ShapeUpdate(void);
320 void TexCoordUpdate(void);
321 void TexCoordUpdate(int);
322 };
323}
324
325#endif // !__FK_IFS_TEXTURE_HEADER__
326
327/****************************************************************************
328 *
329 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
330 *
331 * Redistribution and use in source and binary forms,
332 * with or without modification, are permitted provided that the
333 * following conditions are met:
334 *
335 * - Redistributions of source code must retain the above
336 * copyright notice, this list of conditions and the
337 * following disclaimer.
338 *
339 * - Redistributions in binary form must reproduce the above
340 * copyright notice, this list of conditions and the
341 * following disclaimer in the documentation and/or
342 * other materials provided with the distribution.
343 *
344 * - Neither the name of the copyright holders nor the names
345 * of its contributors may be used to endorse or promote
346 * products derived from this software without specific
347 * prior written permission.
348 *
349 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
350 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
351 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
352 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
353 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
354 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
355 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
356 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
357 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
358 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
359 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
360 * POSSIBILITY OF SUCH DAMAGE.
361 *
362 ****************************************************************************/
363/****************************************************************************
364 *
365 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
366 *
367 * 本ソフトウェアおよびソースコードのライセンスは、基本的に
368 * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
369 *
370 * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
371 * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
372 *
373 * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
374 * および下記免責条項を含めること。
375 *
376 * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
377 * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
378 * 含めること。
379 *
380 * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
381 * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
382 * コントリビューターの名前を使用してはならない。
383 *
384 * 本ソフトウェアは、著作権者およびコントリビューターによって「現
385 * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
386 * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
387 * に限定されない、いかなる保証もないものとします。著作権者もコン
388 * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
389 * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
390 * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
391 * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
392 * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
393 * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
394 * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
395 * ついて、一切責任を負わないものとします。
396 *
397 ****************************************************************************/
IFSテクスチャを生成、管理するクラス
Definition IFSTexture.h:43
fk_TexCoord getTextureCoord(int tID, int vID)
テクスチャ座標参照関数
bool getConnectMode(void)
法線連続性設定関数
void setAnimationTime(double t)
アニメーション時間設定関数
void cloneShape(fk_IFSTexture *ifsTex)
形状コピー関数
void setBVHMotion(fk_BVHBase *bvh)
BVH データ設定関数
bool moveVPosition(int vID, double x, double y, double z, int order=0)
頂点移動関数2
fk_IFSTexture(fk_Image *image=nullptr)
コンストラクタ
bool readMQOFile(std::string fileName, std::string objName, int materialID=-1, bool contFlg=true)
MQOファイル入力関数
void setTextureCoord(int tID, int vID, fk_TexCoord &coord)
テクスチャ座標設定関数
void init(void)
初期化関数
void setConnectMode(bool connectFlg)
法線連続性設定関数
bool moveVPosition(int vID, double *pos, int order=0)
頂点移動関数3
bool moveVPosition(int vID, const fk_Vector &pos, int order=0)
頂点移動関数1
fk_IndexFaceSet * getIFS(void)
形状データ参照関数
bool readMQOData(unsigned char *buffer, std::string objName, int materialID=-1, bool contFlg=true)
MQOデータ入力関数
bool readD3DXFile(std::string fileName, std::string objName, int materialID=-1)
DirectX (D3DX) ファイル入力関数
virtual ~fk_IFSTexture()
デストラクタ
画像を生成、管理するクラス
Definition Image.h:260
インデックスフェースセットによる任意形状を生成、管理するクラス
Definition IndexFace.h:68
テクスチャ座標を管理するクラス
Definition Vector.h:799
テクスチャ用基底クラス
Definition Texture.h:45
3次元ベクトルを管理するクラス
Definition Vector.h:45
Fine Kernel Toolkit 名前空間
Definition Angle.h:6