FineKernelToolKit: FK/Point.h ソースファイル

FineKernelToolKit 4.3.0

読み取り中…
検索中…
一致する文字列を見つけられません
Point.h
[詳解]
1#if !defined(__FK_POINT_HEADER__)
2#define __FK_POINT_HEADER__
3
4#include <FK/FVecArray.h>
5#include <FK/Array.hh>
6#include <FK/Shape.h>
7
8namespace FK {
10
28
29 class fk_Point: public fk_Shape {
30
31#if !defined(FK_DOXYGEN_USER_PROCESS)
32 class Member {
33 public:
34 fk_FVecArray posArray;
35 fk_FVecArray colArray;
36 std::vector<int> aliveArray;
37
38 Member(void);
39 };
40#endif
41
42
43 public:
44
46
53 fk_Point(std::vector<fk_Vector> *array = nullptr);
54
56 virtual ~fk_Point();
57
59
66 int pushVertex(const fk_Vector &pos);
67
69
77 bool setVertex(int ID, const fk_Vector &pos);
78
80 /*
81 * 配列データから点群全体を生成します。
82 * 関数を呼ぶ前に存在していた点は全て消去されます。
83 *
84 * \param[in] array 頂点位置ベクトルの配列
85 *
86 * \return 生成に成功すれば true を、失敗すれば false を返します。
87 */
88 bool setVertex(std::vector<fk_Vector> *array);
89
91 /*
92 * 頂点を削除します。実際には setDrawMode(ID, false) と同様の意味を持ち、
93 * setDrawMode(ID, true) とすれば改めて描画されるようになります。
94 *
95 * \param[in] ID 頂点ID
96 *
97 * \return 削除に成功すれば true を、失敗すれば false を返します。
98 */
99 bool removeVertex(int ID);
100
102
111 fk_Vector getVertex(int ID);
112
114
119 int getSize(void);
120
122
130 void setDrawMode(int ID, bool mode);
131
133
142 bool getDrawMode(int ID);
143
145
153 void setColor(int vID, fk_Color col);
154
156
164 void setColor(int vID, fk_Color *col);
165
167
174 fk_Color getColor(int vID);
175
177
180 void allClear(void);
181
182#if !defined(FK_OLD_NONSUPPORT) && !defined(FK_DOXYGEN_USER_PROCESS)
183 void setColorID(int, int);
184 int getColorID(int);
185#endif
186
187 private:
188 std::unique_ptr<Member> _m;
189
190 bool MakePoint(std::vector<fk_Vector> *);
191 bool MakePoint(int, fk_Vector *);
192 };
193}
194
195#endif // !__FK_POINT_HEADER__
196
197/****************************************************************************
198 *
199 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
200 *
201 * Redistribution and use in source and binary forms,
202 * with or without modification, are permitted provided that the
203 * following conditions are met:
204 *
205 * - Redistributions of source code must retain the above
206 * copyright notice, this list of conditions and the
207 * following disclaimer.
208 *
209 * - Redistributions in binary form must reproduce the above
210 * copyright notice, this list of conditions and the
211 * following disclaimer in the documentation and/or
212 * other materials provided with the distribution.
213 *
214 * - Neither the name of the copyright holders nor the names
215 * of its contributors may be used to endorse or promote
216 * products derived from this software without specific
217 * prior written permission.
218 *
219 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
220 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
221 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
222 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
223 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
224 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
225 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
226 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
227 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
228 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
229 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
230 * POSSIBILITY OF SUCH DAMAGE.
231 *
232 ****************************************************************************/
233/****************************************************************************
234 *
235 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
236 *
237 * 本ソフトウェアおよびソースコードのライセンスは、基本的に
238 * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
239 *
240 * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
241 * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
242 *
243 * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
244 * および下記免責条項を含めること。
245 *
246 * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
247 * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
248 * 含めること。
249 *
250 * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
251 * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
252 * コントリビューターの名前を使用してはならない。
253 *
254 * 本ソフトウェアは、著作権者およびコントリビューターによって「現
255 * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
256 * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
257 * に限定されない、いかなる保証もないものとします。著作権者もコン
258 * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
259 * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
260 * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
261 * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
262 * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
263 * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
264 * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
265 * ついて、一切責任を負わないものとします。
266 *
267 ****************************************************************************/
FVecArray.h
Shape.h
FK::fk_Color
RGB色を管理するクラス
Definition Color.h:21
FK::fk_FVecArray
シェーダー内 attribute 変数用ベクトル管理クラス
Definition FVecArray.h:31
FK::fk_Point::getVertex
fk_Vector getVertex(int ID)
頂点位置ベクトル取得関数
FK::fk_Point::getSize
int getSize(void)
頂点数取得関数
FK::fk_Point::setVertex
bool setVertex(std::vector< fk_Vector > *array)
点群生成関数
FK::fk_Point::getColor
fk_Color getColor(int vID)
個別色取得関数
FK::fk_Point::removeVertex
bool removeVertex(int ID)
頂点削除関数
FK::fk_Point::setColor
void setColor(int vID, fk_Color col)
個別色設定関数1
FK::fk_Point::setVertex
bool setVertex(int ID, const fk_Vector &pos)
頂点位置設定関数
FK::fk_Point::fk_Point
fk_Point(std::vector< fk_Vector > *array=nullptr)
コンストラクタ
FK::fk_Point::getDrawMode
bool getDrawMode(int ID)
個別頂点描画状態参照関数
FK::fk_Point::setColor
void setColor(int vID, fk_Color *col)
個別色設定関数2
FK::fk_Point::pushVertex
int pushVertex(const fk_Vector &pos)
頂点追加関数
FK::fk_Point::~fk_Point
virtual ~fk_Point()
デストラクタ
FK::fk_Point::allClear
void allClear(void)
点群全消去関数
FK::fk_Point::setDrawMode
void setDrawMode(int ID, bool mode)
頂点描画制御関数
FK::fk_Shape::fk_Shape
fk_Shape(fk_Type=fk_Type::SHAPE)
コンストラクタ
FK::fk_Vector
3次元ベクトルを管理するクラス
Definition Vector.h:45
FK
Fine Kernel Toolkit 名前空間
Definition Angle.h:6