FineKernelToolKit 4.2.13
読み取り中…
検索中…
一致する文字列を見つけられません
MeshTexture.h
[詳解]
1#if !defined(__FK_MESH_TEXTURE_HEADER__)
2#define __FK_MESH_TEXTURE_HEADER__
3
4#include <FK/Texture.h>
5
6namespace FK {
7
8 class fk_IndexFaceSet;
9
11
40 class fk_MeshTexture : public fk_Texture {
41
42#if !defined(FK_DOXYGEN_USER_PROCESS)
43 class Member {
44 public:
45 int triNum;
46 std::vector<fk_Vector> posArray;
47 std::vector<fk_TexCoord> coordArray;
48
49 fk_FVecArray vertexPosition;
50 fk_FVecArray vertexNormal;
51 fk_FVecArray texCoord;
52
53 std::vector<GLuint> faceIndex;
54 GLuint faceIBO;
55 bool faceIndexFlg;
56
57 Member(void);
58 };
59#endif
60
61 public:
62
64
69 fk_MeshTexture(fk_Image *image = nullptr);
70
72 virtual ~fk_MeshTexture();
73
75
78 void init(void);
79
81
89 bool setTriNum(int num);
90
92
99 int getTriNum(void);
100
102
125 bool setTextureCoord(int tID, int vID,
126 double x, double y);
127
129
148 bool setTextureCoord(int tID, int vID, fk_TexCoord coord);
149
151
166 bool setTriTextureCoord(int tID, std::vector<fk_TexCoord> *array);
167
169
184 bool setTriTextureCoord(int tID, fk_TexCoord *array);
185
187
201 fk_TexCoord getTextureCoord(int tID, int vID);
202
204
222 bool setVertexPos(int tID, int vID, double x, double y, double z);
223
225
241 bool setVertexPos(int tID, int vID, fk_Vector pos);
242
244
258 bool setTriPos(int tID, std::vector<fk_Vector> *array);
259
261
275 bool setTriPos(int tID, fk_Vector *array);
276
278
292 fk_Vector getVertexPos(int tID, int vID);
293
295
302
304
332 bool readMQOFile(std::string fileName, std::string objName, bool contFlg = true);
333
334 private:
335 std::unique_ptr<Member> _m;
336
337 void FaceUpdate(void);
338 void PosUpdate(void);
339 void PosUpdate(int, int);
340 void NormUpdate(void);
341 void NormUpdate(int);
342 void TexCoordUpdate(void);
343 void TexCoordUpdate(int, int);
344 };
345}
346
347#endif // !__FK_MESH_TEXTURE_HEADER__
348
349/****************************************************************************
350 *
351 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
352 *
353 * Redistribution and use in source and binary forms,
354 * with or without modification, are permitted provided that the
355 * following conditions are met:
356 *
357 * - Redistributions of source code must retain the above
358 * copyright notice, this list of conditions and the
359 * following disclaimer.
360 *
361 * - Redistributions in binary form must reproduce the above
362 * copyright notice, this list of conditions and the
363 * following disclaimer in the documentation and/or
364 * other materials provided with the distribution.
365 *
366 * - Neither the name of the copyright holders nor the names
367 * of its contributors may be used to endorse or promote
368 * products derived from this software without specific
369 * prior written permission.
370 *
371 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
372 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
373 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
374 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
375 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
376 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
377 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
378 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
379 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
380 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
381 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
382 * POSSIBILITY OF SUCH DAMAGE.
383 *
384 ****************************************************************************/
385/****************************************************************************
386 *
387 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
388 *
389 * 本ソフトウェアおよびソースコードのライセンスは、基本的に
390 * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
391 *
392 * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
393 * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
394 *
395 * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
396 * および下記免責条項を含めること。
397 *
398 * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
399 * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
400 * 含めること。
401 *
402 * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
403 * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
404 * コントリビューターの名前を使用してはならない。
405 *
406 * 本ソフトウェアは、著作権者およびコントリビューターによって「現
407 * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
408 * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
409 * に限定されない、いかなる保証もないものとします。著作権者もコン
410 * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
411 * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
412 * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
413 * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
414 * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
415 * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
416 * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
417 * ついて、一切責任を負わないものとします。
418 *
419 ****************************************************************************/
シェーダー内 attribute 変数用ベクトル管理クラス
Definition FVecArray.h:31
画像を生成、管理するクラス
Definition Image.h:260
インデックスフェースセットによる任意形状を生成、管理するクラス
Definition IndexFace.h:68
メッシュテクスチャを生成、管理するクラス
Definition MeshTexture.h:40
virtual ~fk_MeshTexture()
デストラクタ
void init(void)
初期化関数
fk_MeshTexture(fk_Image *image=nullptr)
コンストラクタ
bool setTextureCoord(int tID, int vID, fk_TexCoord coord)
テクスチャ座標設定関数2
fk_Vector getVertexPos(int tID, int vID)
頂点位置ベクトル参照関数
bool setTriNum(int num)
3角形面数設定関数
bool setTriTextureCoord(int tID, std::vector< fk_TexCoord > *array)
テクスチャ座標配列設定関数1
bool setTextureCoord(int tID, int vID, double x, double y)
テクスチャ座標設定関数1
bool setTriPos(int tID, fk_Vector *array)
頂点位置ベクトル配列設定関数2
bool readMQOFile(std::string fileName, std::string objName, bool contFlg=true)
MQOファイル入力関数
fk_TexCoord getTextureCoord(int tID, int vID)
テクスチャ座標参照関数
bool setVertexPos(int tID, int vID, fk_Vector pos)
頂点位置ベクトル設定関数2
bool setTriPos(int tID, std::vector< fk_Vector > *array)
頂点位置ベクトル配列設定関数1
bool setVertexPos(int tID, int vID, double x, double y, double z)
頂点位置ベクトル設定関数1
int getTriNum(void)
3角形面数参照関数
void putIndexFaceSet(fk_IndexFaceSet *ifs)
fk_IndexFaceSet インスタンスコピー関数
bool setTriTextureCoord(int tID, fk_TexCoord *array)
テクスチャ座標配列設定関数2
テクスチャ座標を管理するクラス
Definition Vector.h:799
テクスチャ用基底クラス
Definition Texture.h:45
3次元ベクトルを管理するクラス
Definition Vector.h:45
Fine Kernel Toolkit 名前空間
Definition Angle.h:6