FineKernelToolKit 4.2.13
読み取り中…
検索中…
一致する文字列を見つけられません
BezSurface.h
[詳解]
1#if !defined(__FK_BEZSURFACE_HEADER__)
2#define __FK_BEZSURFACE_HEADER__
3
4#include <FK/Surface.h>
5
6namespace FK {
8
14 class fk_BezSurface : public fk_Surface {
15
16#if !defined(FK_DOXYGEN_USER_PROCESS)
17 class Member {
18 public:
19 int deg;
20
21 Member(void);
22 };
23#endif
24
25 public:
26
29
31 virtual ~fk_BezSurface();
32
34
37 void init(void);
38
40
49 bool setDegree(int deg);
50
52
61 bool setCtrl(int uID, int vID, const fk_Vector &pos);
62
64
69 int getDegree(void);
70
72
80 fk_Vector getCtrl(int uID, int vID);
81
83
91 fk_Vector pos(double u, double v);
92
94
102 fk_Vector uDeriv(double u, double v);
103
105
113 fk_Vector vDeriv(double u, double v);
114
115 private:
116 std::unique_ptr<Member> _m;
117
118 void SetLine(int, int, const fk_Vector &);
119 int GetID(int, int);
120 int GetLID(int, int, int);
121 };
122}
123
124#endif // __FK_BEZSURFACE_HEADER__
125
126/****************************************************************************
127 *
128 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
129 *
130 * Redistribution and use in source and binary forms,
131 * with or without modification, are permitted provided that the
132 * following conditions are met:
133 *
134 * - Redistributions of source code must retain the above
135 * copyright notice, this list of conditions and the
136 * following disclaimer.
137 *
138 * - Redistributions in binary form must reproduce the above
139 * copyright notice, this list of conditions and the
140 * following disclaimer in the documentation and/or
141 * other materials provided with the distribution.
142 *
143 * - Neither the name of the copyright holders nor the names
144 * of its contributors may be used to endorse or promote
145 * products derived from this software without specific
146 * prior written permission.
147 *
148 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
149 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
150 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
151 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
152 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
153 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
154 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
155 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
156 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
157 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
158 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
159 * POSSIBILITY OF SUCH DAMAGE.
160 *
161 ****************************************************************************/
162/****************************************************************************
163 *
164 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
165 *
166 * 本ソフトウェアおよびソースコードのライセンスは、基本的に
167 * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
168 *
169 * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
170 * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
171 *
172 * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
173 * および下記免責条項を含めること。
174 *
175 * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
176 * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
177 * 含めること。
178 *
179 * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
180 * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
181 * コントリビューターの名前を使用してはならない。
182 *
183 * 本ソフトウェアは、著作権者およびコントリビューターによって「現
184 * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
185 * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
186 * に限定されない、いかなる保証もないものとします。著作権者もコン
187 * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
188 * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
189 * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
190 * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
191 * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
192 * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
193 * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
194 * ついて、一切責任を負わないものとします。
195 *
196 ****************************************************************************/
Bezier曲面を生成、管理するクラス
Definition BezSurface.h:14
bool setCtrl(int uID, int vID, const fk_Vector &pos)
制御点設定関数1
void init(void)
初期化用関数
fk_Vector pos(double u, double v)
曲面点算出関数
virtual ~fk_BezSurface()
デストラクタ
bool setDegree(int deg)
次数設定関数
fk_BezSurface(void)
コンストラクタ
int getDegree(void)
次数参照関数
fk_Vector getCtrl(int uID, int vID)
制御点参照関数
fk_Vector uDeriv(double u, double v)
曲面 u 方向偏微分ベクトル算出関数
fk_Vector vDeriv(double u, double v)
曲面 v 方向偏微分ベクトル算出関数
曲面用純粋仮想クラス
Definition Surface.h:36
3次元ベクトルを管理するクラス
Definition Vector.h:45
Fine Kernel Toolkit 名前空間
Definition Angle.h:6