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