FineKernelToolKit 4.2.13
読み取り中…
検索中…
一致する文字列を見つけられません
FVecArray.h
[詳解]
1#if !defined(__FK_FVECARRAY_HEADER__)
2#define __FK_FVECARRAY_HEADER__
3
4#include <FK/Vector.h>
5
6namespace FK {
7
8 class fk_Color;
9
11
32
33#if !defined(FK_DOXYGEN_USER_PROCESS)
34 class Member {
35 public:
36 int dim;
37 int size;
38 bool allFlg;
39 std::vector<float> array;
40 std::vector<char> elemFlg;
41
42 Member(void);
43 };
44#endif
45
46 public:
49
52
55
58
60
68 void setDim(int dim);
69
71
76 int getDim(void);
77
79
87 void resize(int size);
88
90
98 int getSize(void);
99
101
107 void clear(void);
108
110
119 void push(const fk_Vector &v);
120
122
131 void push(const fk_FVector &v);
132
134
143 void push(const fk_HVector &v);
144
146
154 void push(const fk_TexCoord &v);
155
157
166 void push(const fk_Color &c);
167
169
180 void push(double x, double y, double z = 0.0, double w = 0.0);
181
183
194 void push(float x, float y, float z = 0.0f, float w = 0.0f);
195
197
210 bool set(int id, const fk_Vector &v);
211
213
226 bool set(int id, const fk_FVector &v);
227
229
242 bool set(int id, const fk_HVector &v);
243
245
257 bool set(int id, const fk_TexCoord &v);
258
260
273 bool set(int id, const fk_Color &c);
274
276
290 bool set(int id, double x, double y);
291
293
308 bool set(int id, double x, double y, double z);
309
311
326 bool set(int id, double x, double y, double z, double w);
327
329
342 bool set(int id, float x, float y);
343
345
360 bool set(int id, float x, float y, float z);
361
363
378 bool set(int id, float x, float y, float z, float w);
379
381
391
393
403
405
415
417
427
429
438 fk_Color getC(int id);
439
441
448 std::vector<float> * getP(void);
449
451
458 bool isModify(void);
459
461
470 bool isModify(int id);
471
473
478 void reset(void);
479
480 private:
481 std::unique_ptr<Member> _m;
482 };
483}
484
485#endif /* !__FK_FVECARRAY_HEADER__ */
486
487/****************************************************************************
488 *
489 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
490 *
491 * Redistribution and use in source and binary forms,
492 * with or without modification, are permitted provided that the
493 * following conditions are met:
494 *
495 * - Redistributions of source code must retain the above
496 * copyright notice, this list of conditions and the
497 * following disclaimer.
498 *
499 * - Redistributions in binary form must reproduce the above
500 * copyright notice, this list of conditions and the
501 * following disclaimer in the documentation and/or
502 * other materials provided with the distribution.
503 *
504 * - Neither the name of the copyright holders nor the names
505 * of its contributors may be used to endorse or promote
506 * products derived from this software without specific
507 * prior written permission.
508 *
509 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
510 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
511 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
512 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
513 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
514 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
515 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
516 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
517 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
518 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
519 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
520 * POSSIBILITY OF SUCH DAMAGE.
521 *
522 ****************************************************************************/
523/****************************************************************************
524 *
525 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
526 *
527 * 本ソフトウェアおよびソースコードのライセンスは、基本的に
528 * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
529 *
530 * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
531 * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
532 *
533 * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
534 * および下記免責条項を含めること。
535 *
536 * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
537 * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
538 * 含めること。
539 *
540 * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
541 * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
542 * コントリビューターの名前を使用してはならない。
543 *
544 * 本ソフトウェアは、著作権者およびコントリビューターによって「現
545 * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
546 * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
547 * に限定されない、いかなる保証もないものとします。著作権者もコン
548 * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
549 * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
550 * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
551 * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
552 * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
553 * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
554 * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
555 * ついて、一切責任を負わないものとします。
556 *
557 ****************************************************************************/
RGB色を管理するクラス
Definition Color.h:21
シェーダー内 attribute 変数用ベクトル管理クラス
Definition FVecArray.h:31
void clear(void)
データ消去関数
fk_Color getC(int id)
fk_Color 型取得関数
int getSize(void)
要素数参照関数
bool isModify(void)
全体変更状態取得関数
bool set(int id, const fk_Vector &v)
fk_Vector 型ベクトル設定関数
~fk_FVecArray()
デストラクタ
std::vector< float > * getP(void)
データアドレス取得関数
fk_TexCoord getT(int id)
fk_TexCoord 型取得関数
bool set(int id, const fk_TexCoord &v)
fk_TexCoord 型ベクトル設定関数
void push(float x, float y, float z=0.0f, float w=0.0f)
ベクトル追加関数2
bool isModify(int id)
個別要素変更状態取得関数
fk_FVecArray(void)
コンストラクタ
bool set(int id, float x, float y, float z)
3次元ベクトル設定関数2
fk_FVecArray & operator=(const fk_FVecArray &)
代入演算子
void push(const fk_FVector &v)
fk_FVector 型ベクトル追加関数
void push(const fk_TexCoord &v)
fk_TexCoord 型ベクトル追加関数
void reset(void)
変更状態初期化関数
bool set(int id, double x, double y, double z)
3次元ベクトル設定関数1
fk_FVecArray(const fk_FVecArray &)
コピーコンストラクタ
fk_HVector getHV(int id)
fk_HVector 型取得関数
void push(const fk_Vector &v)
fk_Vector 型ベクトル追加関数
bool set(int id, const fk_Color &c)
fk_Color 型ベクトル設定関数
void push(const fk_Color &c)
fk_Color 型色値追加関数
fk_FVector getF(int id)
fk_FVector 型取得関数
void resize(int size)
要素数設定関数
bool set(int id, const fk_HVector &v)
fk_HVector 型ベクトル設定関数
bool set(int id, double x, double y)
2次元ベクトル設定関数1
bool set(int id, double x, double y, double z, double w)
4次元ベクトル設定関数1
bool set(int id, const fk_FVector &v)
fk_FVector 型ベクトル設定関数
bool set(int id, float x, float y, float z, float w)
4次元ベクトル設定関数2
void push(const fk_HVector &v)
fk_HVector 型ベクトル追加関数
void push(double x, double y, double z=0.0, double w=0.0)
ベクトル追加関数1
int getDim(void)
次元参照関数
bool set(int id, float x, float y)
2次元ベクトル設定関数2
fk_Vector getV(int id)
fk_Vector 型取得関数
void setDim(int dim)
次元設定関数
単精度浮動小数点型3次元ベクトルを管理するクラス
Definition Vector.h:760
4次元ベクトルを管理するクラス
Definition Vector.h:497
テクスチャ座標を管理するクラス
Definition Vector.h:799
3次元ベクトルを管理するクラス
Definition Vector.h:45
Fine Kernel Toolkit 名前空間
Definition Angle.h:6