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

FineKernelToolKit 4.3.0

読み取り中…
検索中…
一致する文字列を見つけられません
Model.h
[詳解]
1#if !defined(__FK_MODEL_HEADER__)
2#define __FK_MODEL_HEADER__
3
4#include <FK/Boundary.h>
5#include <FK/Palette.h>
6#include <FK/RenderState.h>
7#include <FK/Angle.h>
8#include <FK/IndexFace.h>
9#include <FK/Texture.h>
10#include <FK/Tree.h>
11#include <FK/PhysicsWorld.hh>
12#include <FK/PhysicsBox.hh>
13#include <FK/PhysicsSphere.hh>
14#include <memory>
15#include <functional>
16
17namespace FK {
18 class fk_Material;
19 class fk_Shape;
20 class fk_TreeData;
21 class fk_Color;
22 class fk_ShaderBinder;
23
24#if !defined(FK_DOXYGEN_USER_PROCESS)
25 using fk_funcSet = std::tuple<unsigned int, std::function<void(void)> >;
26#endif
27
29 enum class fk_ElementMode {
30 NONE,
31 MODEL,
32 ELEMENT
33 };
34
36 enum class fk_ShadingMode {
37 GOURAUD = 0,
38 PHONG,
39 NUM
40 };
41
42
44
100
101 class fk_Model : public fk_Boundary {
102
103#if !defined(FK_DOXYGEN_USER_PROCESS)
104 class Member {
105 public:
106 fk_Material material;
107 fk_Color pointColor;
108 fk_Color lineColor;
109 fk_Color curveColor;
110 fk_Shape *shape;
111 fk_Model *parentModel;
112 fk_TreeData *treeData;
113 fk_Draw drawMode;
114 fk_ElementMode elemMode;
115 fk_BlendMode blendMode;
116 fk_BlendFactor srcFactor;
117 fk_BlendFactor dstFactor;
118 fk_DepthMode depthMode;
119 double pointSize;
120 bool smoothFlag;
121 bool reverseFlag;
122 bool treeFlag;
123 unsigned int modelID;
124 bool treeDelMode;
125 fk_TexMode texMode;
126 fk_ShadingMode shadingMode;
127
128 std::unique_ptr<fk_HVector> snapPos;
129 std::unique_ptr<fk_HVector> snapInhPos;
130 std::unique_ptr<fk_Angle> snapAngle;
131 bool snapFlag;
132
133 bool interMode;
134 bool interStatus;
135 bool interStopMode;
136
137 std::list<fk_Model *> interList;
138
139 fk_ShaderBinder *shader;
140
141 bool shadowEffectMode;
142 bool shadowDrawMode;
143
144 bool fogMode;
145
146 std::unique_ptr<fk_PhysicsBase> phy;
147
148 Member(void);
149 };
150#endif
151
152 public:
153
155
161 fk_Model(fk_Shape *shape = nullptr);
162
164 virtual ~fk_Model();
165
166
168
175 unsigned int getID(void) const;
176
179
181
211 bool glRotate(fk_Vector origin, fk_Axis axis, double theta);
212
214
245 bool glRotate(double orgX, double orgY, double orgZ, fk_Axis axis, double theta);
246
248
276 bool glRotate(fk_Vector A, fk_Vector B, double theta);
277
279
311 bool glRotate(double Ax, double Ay, double Az,
312 double Bx, double By, double Bz, double theta);
313
315
347 bool loRotate(fk_Vector origin, fk_Axis axis, double theta);
348
350
382 bool loRotate(double orgX, double orgY, double orgZ, fk_Axis axis, double theta);
383
385
417 bool loRotate(fk_Vector A, fk_Vector B, double theta);
418
420
465 bool loRotate(double Ax, double Ay, double Az,
466 double Bx, double By, double Bz, double theta);
467
469
499 bool glRotateWithVec(fk_Vector origin, fk_Axis axis, double theta);
500
501
503
535 bool glRotateWithVec(double orgX, double orgY, double orgZ,
536 fk_Axis axis, double theta);
537
539
568 bool glRotateWithVec(fk_Vector A, fk_Vector B, double theta);
569
571
603 bool glRotateWithVec(double Ax, double Ay, double Az,
604 double Bx, double By, double Bz, double theta);
605
607
638 bool loRotateWithVec(fk_Vector origin, fk_Axis axis, double theta);
639
641
674 bool loRotateWithVec(double orgX, double orgY, double orgZ,
675 fk_Axis axis, double theta);
676
678
711 bool loRotateWithVec(fk_Vector A, fk_Vector B, double theta);
712
714
759 bool loRotateWithVec(double Ax, double Ay, double Az,
760 double Bx, double By, double Bz, double theta);
762
765
767
786 bool glTranslate(fk_Vector v);
787
789
811 bool glTranslate(double x, double y, double z);
812
814
834 bool loTranslate(fk_Vector v);
835
837
859 bool loTranslate(double x, double y, double z);
860
862
884 bool glMoveTo(fk_Vector p);
885
887
911 bool glMoveTo(double x, double y, double z);
913
916
918
928 void setShape(fk_Shape *shape);
929
931
937 fk_Shape * getShape(void) const;
938
940
943
945
963 void setMaterial(const fk_Material &mat);
964
966
974 void setPointColor(fk_Color *col);
975
977
987 void setPointColor(float r, float g, float b);
988
990
998 void setLineColor(fk_Color *col);
999
1001
1011 void setLineColor(float r, float g, float b);
1012
1014
1022 void setCurveColor(fk_Color *col);
1023
1025
1035 void setCurveColor(float r, float g, float b);
1036
1038
1041
1043
1050 fk_Material * getMaterial(void);
1051
1053
1060 fk_Color * getPointColor(void);
1061
1063
1070 fk_Color * getLineColor(void);
1071
1073
1080 fk_Color * getCurveColor(void);
1081
1082
1084
1087
1088
1090
1118 void setDrawMode(const fk_Draw mode);
1119
1121
1128 fk_Draw getDrawMode(void) const;
1129
1131
1141 void setElementMode(const fk_ElementMode mode);
1142
1144
1151 fk_ElementMode getElementMode(void) const;
1152
1154
1167 void setShadingMode(fk_ShadingMode mode);
1168
1170
1177 fk_ShadingMode getShadingMode(void) const;
1178
1180
1231 void setBlendMode(const fk_BlendMode mode,
1232 const fk_BlendFactor srcFactor = fk_BlendFactor::SRC_ALPHA,
1233 const fk_BlendFactor dstFactor = fk_BlendFactor::ONE_MINUS_SRC_ALPHA);
1234
1236
1247 fk_BlendMode getBlendMode(fk_BlendFactor *outSrc = nullptr,
1248 fk_BlendFactor *outDst = nullptr) const;
1249
1251
1260 void setSmoothMode(const bool mode);
1261
1263
1270 bool getSmoothMode(void) const;
1271
1273
1281 void setReverseDrawMode(const bool mode);
1282
1284
1291 bool getReverseDrawMode(void) const;
1292
1294
1309 void setDepthMode(const fk_DepthMode mode);
1310
1312
1319 fk_DepthMode getDepthMode(void) const;
1320
1322
1379 void setTextureMode(fk_TexMode mode);
1380
1382
1389 fk_TexMode getTextureMode(void);
1390
1392
1400 void setPointSize(const double size);
1401
1402
1404
1411 double getPointSize(void) const;
1412
1414
1429 void setShadowEffect(bool mode);
1430
1432
1442 bool getShadowEffect(void);
1443
1445
1457 void setShadowDraw(bool mode);
1458
1460
1470 bool getShadowDraw(void);
1471
1473
1479 void setFogMode(bool mode);
1480
1482
1487 bool getFogMode(void);
1488
1490
1493
1495
1508 fk_Matrix getInhMatrix(void) const;
1509
1511
1525 fk_Matrix getInhInvMatrix(void) const;
1526
1528
1543 fk_OrthoMatrix getInhBaseMatrix(void) const;
1544
1546
1561 fk_OrthoMatrix getInhInvBaseMatrix(void) const;
1562
1564
1572 fk_Vector getInhPosition(void) const;
1573
1575
1583 fk_Vector getInhVec(void) const;
1584
1586
1595 fk_Vector getInhUpvec(void) const;
1596
1597#if !defined(FK_OLD_NONSUPPORT) && !defined(FK_DOXYGEN_USER_PROCESS)
1598 fk_Vector getInhUpVec(void) const;
1599 void setPickMode(const bool);
1600 bool getPickMode(void) const;
1601 void setMaterialMode(const fk_MaterialMode mode);
1602 fk_MaterialMode getMaterialMode(void) const;
1603#endif
1604
1606
1615 fk_Angle getInhAngle(void) const;
1616
1618
1627 double getInhScale(void) const;
1629
1632
1634
1653 bool setParent(fk_Model *model, bool setMode = false);
1654
1656
1668 void deleteParent(bool setMode = false);
1669
1671
1679 fk_Model * getParent(void) const;
1680
1682
1701 bool entryChild(fk_Model *model, bool setMode = false);
1702
1704
1722 bool deleteChild(fk_Model *model, bool setMode = false);
1723
1725
1737 void deleteChildren(bool setMode = false);
1738
1740
1768 fk_Model * foreachChild(fk_Model *model);
1769
1771
1774
1776
1782 void snapShot(void);
1783
1785
1792 bool restore(void);
1793
1795
1809 bool restore(double t);
1810
1812
1815
1817
1827 void setShader(fk_ShaderBinder *shader);
1828
1830
1837 fk_ShaderBinder * getShader(void);
1838
1840
1843
1845
1863 void adjustSphere(void);
1864
1866
1888 void adjustAABB(void);
1889
1891
1909 void adjustOBB(void);
1910
1912
1933 void adjustCapsule(void);
1934
1936
1960 void adjustCapsule(fk_Axis axis);
1961
1963
1987 void adjustCapsule(fk_Vector P, fk_Axis axis);
1988
1990
2020 void adjustCapsule(fk_Vector S, fk_Vector E, bool mode = false);
2022
2025
2027
2051 bool isInter(fk_Model *model);
2052
2054
2094 std::tuple<bool, double> isCollision(fk_Model *model);
2095
2096#if !defined(FK_OLD_NONSUPPORT) && !defined(FK_DOXYGEN_USER_PROCESS)
2097 bool isCollision(fk_Model *model, double *time);
2098#endif
2099
2101
2113 void setInterMode(bool mode);
2114
2116
2124 bool getInterMode(void);
2125
2127
2137 bool getInterStatus(void);
2138
2140
2147 void resetInter(void);
2149
2152
2154
2200 void setInterStopMode(bool mode);
2201
2203
2210 bool getInterStopMode(void);
2211
2213
2225 void entryInterModel(fk_Model *model);
2226
2228
2236 void deleteInterModel(fk_Model *model);
2237
2239
2244 void clearInterModel(void);
2245
2247
2251 void defaultPhysics(void);
2252 void setPhysicsWorld(fk_PhysicsWorld *world);
2253 static void stepSimulation(float, int);
2254
2256 void setInertia(fk_Vector ine);
2257
2259 void setMass(double mass);
2260
2262 void setRestitution(double res);
2263
2265 void setDynamics(bool mode);
2266
2268 void setDamping(double sd, double rd);
2269
2271 void addForce(fk_Vector f);
2272
2274
2275
2276#if !defined(FK_DOXYGEN_USER_PROCESS)
2277 // カスタムテクスチャ描画用エントリポイント
2278 virtual void connectShader(unsigned int) {};
2279
2280 void SetTreeDelMode(bool);
2281 void TreePrint(void);
2282
2283 fk_PhysicsBase * GetPhysicsBase(void);
2284#endif
2285
2286#if !defined(FK_OLD_NONSUPPORT) && !defined(FK_DOXYGEN_USER_PROCESS)
2287 void setSize(double);
2288 double getSize(void) const;
2289 void setWidth(double);
2290 double getWidth(void) const;
2291
2292#endif
2293
2294 private:
2295 std::unique_ptr<Member> _m;
2296
2297 void EntryTree(void);
2298 void DeleteTree(void);
2299 fk_TreeData * GetTreeData(fk_Model *);
2300
2301 bool IsBSInter(fk_Model *);
2302 bool IsAABBInter(fk_Model *);
2303 bool IsOBBInter(fk_Model *);
2304 bool IsCapsuleInter(fk_Model *);
2305
2306 void PreMove(void);
2307 void PostMove(void);
2308
2309 void StaticInit(void);
2310 void AdjustCapsule(std::vector<fk_Vector> *, fk_Vector &, fk_Vector &, bool mode);
2311
2312 void PhysicsInit(void);
2313
2314 static inline std::unique_ptr<fk_Tree> modelTree;
2315 static inline std::unique_ptr<unsigned int> globalModelID;
2316 static inline std::shared_ptr<fk_PhysicsWorld> defaultPhysicsWorld;
2317 };
2318}
2319
2320#endif // !__FK_MODEL_HEADER__
2321
2322/****************************************************************************
2323 *
2324 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
2325 *
2326 * Redistribution and use in source and binary forms,
2327 * with or without modification, are permitted provided that the
2328 * following conditions are met:
2329 *
2330 * - Redistributions of source code must retain the above
2331 * copyright notice, this list of conditions and the
2332 * following disclaimer.
2333 *
2334 * - Redistributions in binary form must reproduce the above
2335 * copyright notice, this list of conditions and the
2336 * following disclaimer in the documentation and/or
2337 * other materials provided with the distribution.
2338 *
2339 * - Neither the name of the copyright holders nor the names
2340 * of its contributors may be used to endorse or promote
2341 * products derived from this software without specific
2342 * prior written permission.
2343 *
2344 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
2345 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
2346 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
2347 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
2348 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
2349 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
2350 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
2351 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2352 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
2353 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
2354 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
2355 * POSSIBILITY OF SUCH DAMAGE.
2356 *
2357 ****************************************************************************/
2358/****************************************************************************
2359 *
2360 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
2361 *
2362 * 本ソフトウェアおよびソースコードのライセンスは、基本的に
2363 * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
2364 *
2365 * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
2366 * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
2367 *
2368 * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
2369 * および下記免責条項を含めること。
2370 *
2371 * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
2372 * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
2373 * 含めること。
2374 *
2375 * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
2376 * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
2377 * コントリビューターの名前を使用してはならない。
2378 *
2379 * 本ソフトウェアは、著作権者およびコントリビューターによって「現
2380 * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
2381 * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
2382 * に限定されない、いかなる保証もないものとします。著作権者もコン
2383 * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
2384 * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
2385 * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
2386 * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
2387 * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
2388 * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
2389 * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
2390 * ついて、一切責任を負わないものとします。
2391 *
2392 ****************************************************************************/
Angle.h
Boundary.h
IndexFace.h
Palette.h
RenderState.h
Texture.h
Tree.h
FK::fk_Angle
オイラー角を表すクラス
Definition Angle.h:21
FK::fk_Boundary::fk_Boundary
fk_Boundary(fk_Type)
コンストラクタ
FK::fk_Color
RGB色を管理するクラス
Definition Color.h:21
FK::fk_Material
マテリアル(質感)を管理するクラス
Definition Material.h:40
FK::fk_Matrix
一般4元正方行列を管理するクラス
Definition Matrix.h:549
FK::fk_Model
モデルを生成、管理するクラス
Definition Model.h:101
FK::fk_Model::setSmoothMode
void setSmoothMode(const bool mode)
スムースモード設定関数
FK::fk_Model::snapShot
void snapShot(void)
位置・姿勢保存関数
FK::fk_Model::getBlendMode
fk_BlendMode getBlendMode(fk_BlendFactor *outSrc=nullptr, fk_BlendFactor *outDst=nullptr) const
ブレンドモード参照関数
FK::fk_Model::setDynamics
void setDynamics(bool mode)
運動有無設定関数
FK::fk_Model::getInhAngle
fk_Angle getInhAngle(void) const
継承オイラー角参照関数
FK::fk_Model::loRotate
bool loRotate(fk_Vector A, fk_Vector B, double theta)
ローカル座標系任意軸回転関数1
FK::fk_Model::getInterStatus
bool getInterStatus(void)
干渉継続状態取得関数
FK::fk_Model::addForce
void addForce(fk_Vector f)
外力設定関数
FK::fk_Model::~fk_Model
virtual ~fk_Model()
デストラクタ
FK::fk_Model::getInhPosition
fk_Vector getInhPosition(void) const
継承位置ベクトル参照関数
FK::fk_Model::getParent
fk_Model * getParent(void) const
親モデル参照関数
FK::fk_Model::setParent
bool setParent(fk_Model *model, bool setMode=false)
親モデル設定関数
FK::fk_Model::loRotateWithVec
bool loRotateWithVec(fk_Vector origin, fk_Axis axis, double theta)
ローカル座標系座標軸回転(姿勢付き)関数1
FK::fk_Model::setLineColor
void setLineColor(fk_Color *col)
稜線色設定関数1
FK::fk_Model::glMoveTo
bool glMoveTo(double x, double y, double z)
グローバル座標系位置指定関数2
FK::fk_Model::setFogMode
void setFogMode(bool mode)
霧効果設定関数
FK::fk_Model::glTranslate
bool glTranslate(double x, double y, double z)
グローバル座標系平行移動関数2
FK::fk_Model::deleteParent
void deleteParent(bool setMode=false)
親モデル解除関数
FK::fk_Model::loTranslate
bool loTranslate(fk_Vector v)
ローカル座標系平行移動関数1
FK::fk_Model::setShape
void setShape(fk_Shape *shape)
形状設定関数
FK::fk_Model::defaultPhysics
void defaultPhysics(void)
FK::fk_Model::getMaterial
fk_Material * getMaterial(void)
マテリアル参照関数
FK::fk_Model::setTextureMode
void setTextureMode(fk_TexMode mode)
テクスチャモード設定関数
FK::fk_Model::setElementMode
void setElementMode(const fk_ElementMode mode)
要素モード設定関数
FK::fk_Model::glMoveTo
bool glMoveTo(fk_Vector p)
グローバル座標系位置指定関数1
FK::fk_Model::glRotateWithVec
bool glRotateWithVec(fk_Vector A, fk_Vector B, double theta)
グローバル座標系任意軸回転(姿勢付き)関数1
FK::fk_Model::stepSimulation
static void stepSimulation(float, int)
FK::fk_Model::setLineColor
void setLineColor(float r, float g, float b)
稜線色設定関数2
FK::fk_Model::restore
bool restore(void)
位置・姿勢復元関数
FK::fk_Model::getInterMode
bool getInterMode(void)
干渉継続モード取得関数
FK::fk_Model::glRotateWithVec
bool glRotateWithVec(double orgX, double orgY, double orgZ, fk_Axis axis, double theta)
グローバル座標系座標軸回転(姿勢付き)関数2
FK::fk_Model::getDepthMode
fk_DepthMode getDepthMode(void) const
前後関係参照関数
FK::fk_Model::deleteChild
bool deleteChild(fk_Model *model, bool setMode=false)
子モデル解除関数
FK::fk_Model::getShadowEffect
bool getShadowEffect(void)
影投影設定参照関数
FK::fk_Model::glTranslate
bool glTranslate(fk_Vector v)
グローバル座標系平行移動関数1
FK::fk_Model::getInhBaseMatrix
fk_OrthoMatrix getInhBaseMatrix(void) const
継承移動・回転要素変換行列取得関数
FK::fk_Model::setPointColor
void setPointColor(fk_Color *col)
頂点色設定関数1
FK::fk_Model::setDrawMode
void setDrawMode(const fk_Draw mode)
描画モード設定関数
FK::fk_Model::setRestitution
void setRestitution(double res)
反射係数設定関数
FK::fk_Model::deleteInterModel
void deleteInterModel(fk_Model *model)
干渉自動停止モデル解除関数
FK::fk_Model::fk_Model
fk_Model(fk_Shape *shape=nullptr)
コンストラクタ
FK::fk_Model::adjustCapsule
void adjustCapsule(fk_Vector P, fk_Axis axis)
境界カプセル自動設定関数(中心軸上の点と座標軸)
FK::fk_Model::loRotate
bool loRotate(double Ax, double Ay, double Az, double Bx, double By, double Bz, double theta)
ローカル座標系任意軸回転関数2
FK::fk_Model::getTextureMode
fk_TexMode getTextureMode(void)
テクスチャモード取得関数
FK::fk_Model::adjustCapsule
void adjustCapsule(fk_Vector S, fk_Vector E, bool mode=false)
境界カプセル自動設定関数(中心軸直接指定)
FK::fk_Model::getShader
fk_ShaderBinder * getShader(void)
シェーダー取得関数
FK::fk_Model::setBlendMode
void setBlendMode(const fk_BlendMode mode, const fk_BlendFactor srcFactor=fk_BlendFactor::SRC_ALPHA, const fk_BlendFactor dstFactor=fk_BlendFactor::ONE_MINUS_SRC_ALPHA)
ブレンドモード設定関数
FK::fk_Model::adjustCapsule
void adjustCapsule(fk_Axis axis)
境界カプセル自動設定関数(座標軸による中心軸設定)
FK::fk_Model::getInhVec
fk_Vector getInhVec(void) const
継承方向ベクトル参照関数
FK::fk_Model::setShadingMode
void setShadingMode(fk_ShadingMode mode)
シェーディングモード設定関数
FK::fk_Model::setInertia
void setInertia(fk_Vector ine)
慣性モーメント設定関数
FK::fk_Model::getSmoothMode
bool getSmoothMode(void) const
スムースモード参照関数
FK::fk_Model::setShader
void setShader(fk_ShaderBinder *shader)
シェーダー設定関数
FK::fk_Model::getElementMode
fk_ElementMode getElementMode(void) const
要素モード設定関数
FK::fk_Model::clearInterModel
void clearInterModel(void)
干渉自動停止モデル初期化関数
FK::fk_Model::loRotateWithVec
bool loRotateWithVec(double orgX, double orgY, double orgZ, fk_Axis axis, double theta)
ローカル座標系座標軸回転(姿勢付き)関数2
FK::fk_Model::getShadingMode
fk_ShadingMode getShadingMode(void) const
シェーディングモード取得関数
FK::fk_Model::entryInterModel
void entryInterModel(fk_Model *model)
干渉自動停止モデル登録関数
FK::fk_Model::glRotateWithVec
bool glRotateWithVec(fk_Vector origin, fk_Axis axis, double theta)
グローバル座標系座標軸回転(姿勢付き)関数1
FK::fk_Model::getID
unsigned int getID(void) const
ID参照関数
FK::fk_Model::loRotateWithVec
bool loRotateWithVec(double Ax, double Ay, double Az, double Bx, double By, double Bz, double theta)
ローカル座標系任意軸回転(姿勢付き)関数2
FK::fk_Model::glRotateWithVec
bool glRotateWithVec(double Ax, double Ay, double Az, double Bx, double By, double Bz, double theta)
グローバル座標系任意軸回転(姿勢付き)関数2
FK::fk_Model::entryChild
bool entryChild(fk_Model *model, bool setMode=false)
子モデル設定関数
FK::fk_Model::setShadowEffect
void setShadowEffect(bool mode)
影投影設定関数
FK::fk_Model::setDamping
void setDamping(double sd, double rd)
摩擦係数設定関数
FK::fk_Model::setPointColor
void setPointColor(float r, float g, float b)
頂点色設定関数2
FK::fk_Model::getReverseDrawMode
bool getReverseDrawMode(void) const
描画順序参照関数
FK::fk_Model::loRotateWithVec
bool loRotateWithVec(fk_Vector A, fk_Vector B, double theta)
ローカル座標系任意軸回転(姿勢付き)関数1
FK::fk_Model::isCollision
std::tuple< bool, double > isCollision(fk_Model *model)
モデル間衝突判定関数
FK::fk_Model::getInhInvBaseMatrix
fk_OrthoMatrix getInhInvBaseMatrix(void) const
継承移動・回転要素逆変換行列取得関数
FK::fk_Model::setDepthMode
void setDepthMode(const fk_DepthMode mode)
前後関係制御関数
FK::fk_Model::loTranslate
bool loTranslate(double x, double y, double z)
ローカル座標系平行移動関数2
FK::fk_Model::setInterMode
void setInterMode(bool mode)
干渉継続モード設定関数
FK::fk_Model::glRotate
bool glRotate(double orgX, double orgY, double orgZ, fk_Axis axis, double theta)
グローバル座標系座標軸回転関数2
FK::fk_Model::glRotate
bool glRotate(fk_Vector origin, fk_Axis axis, double theta)
グローバル座標系座標軸回転関数1
FK::fk_Model::adjustOBB
void adjustOBB(void)
OBB 自動設定関数
FK::fk_Model::setCurveColor
void setCurveColor(fk_Color *col)
曲線色設定関数1
FK::fk_Model::adjustAABB
void adjustAABB(void)
AABB 自動設定関数
FK::fk_Model::getInterStopMode
bool getInterStopMode(void)
干渉自動停止モード取得関数
FK::fk_Model::setCurveColor
void setCurveColor(float r, float g, float b)
曲線色設定関数2
FK::fk_Model::resetInter
void resetInter(void)
干渉継続状態初期化関数
FK::fk_Model::getPointColor
fk_Color * getPointColor(void)
頂点色参照関数
FK::fk_Model::loRotate
bool loRotate(fk_Vector origin, fk_Axis axis, double theta)
ローカル座標系座標軸回転関数1
FK::fk_Model::getInhScale
double getInhScale(void) const
継承全体倍率取得関数
FK::fk_Model::restore
bool restore(double t)
位置・姿勢途中復元関数
FK::fk_Model::setShadowDraw
void setShadowDraw(bool mode)
影表示設定関数
FK::fk_Model::adjustSphere
void adjustSphere(void)
境界球自動設定関数
FK::fk_Model::getInhUpvec
fk_Vector getInhUpvec(void) const
継承アップベクトル参照関数
FK::fk_Model::getLineColor
fk_Color * getLineColor(void)
稜線色参照関数
FK::fk_Model::setMaterial
void setMaterial(const fk_Material &mat)
マテリアル設定関数
FK::fk_Model::adjustCapsule
void adjustCapsule(void)
境界カプセル自動設定関数(全自動)
FK::fk_Model::setInterStopMode
void setInterStopMode(bool mode)
干渉自動停止モード設定関数
FK::fk_Model::isInter
bool isInter(fk_Model *model)
モデル間干渉判定関数
FK::fk_Model::getFogMode
bool getFogMode(void)
霧効果設定参照関数
FK::fk_Model::setPointSize
void setPointSize(const double size)
頂点描画サイズ設定関数
FK::fk_Model::getShadowDraw
bool getShadowDraw(void)
影表示設定参照関数
FK::fk_Model::setReverseDrawMode
void setReverseDrawMode(const bool mode)
描画順序制御関数
FK::fk_Model::getInhInvMatrix
fk_Matrix getInhInvMatrix(void) const
継承逆変換行列取得関数
FK::fk_Model::getInhMatrix
fk_Matrix getInhMatrix(void) const
継承変換行列取得関数
FK::fk_Model::getPointSize
double getPointSize(void) const
頂点描画サイズ参照関数
FK::fk_Model::loRotate
bool loRotate(double orgX, double orgY, double orgZ, fk_Axis axis, double theta)
ローカル座標系座標軸回転関数2
FK::fk_Model::glRotate
bool glRotate(fk_Vector A, fk_Vector B, double theta)
グローバル座標系任意軸回転関数1
FK::fk_Model::getCurveColor
fk_Color * getCurveColor(void)
曲線色参照関数
FK::fk_Model::setPhysicsWorld
void setPhysicsWorld(fk_PhysicsWorld *world)
FK::fk_Model::foreachChild
fk_Model * foreachChild(fk_Model *model)
子モデル逐次参照関数
FK::fk_Model::getDrawMode
fk_Draw getDrawMode(void) const
描画モード参照関数
FK::fk_Model::setMass
void setMass(double mass)
質量設定関数
FK::fk_Model::glRotate
bool glRotate(double Ax, double Ay, double Az, double Bx, double By, double Bz, double theta)
グローバル座標系任意軸回転関数2
FK::fk_Model::deleteChildren
void deleteChildren(bool setMode=false)
全子モデル解除関数
FK::fk_Model::getShape
fk_Shape * getShape(void) const
形状参照関数
FK::fk_OrthoMatrix
4元正方直交行列を管理するクラス
Definition Matrix.h:40
FK::fk_ShaderBinder
シェーダープログラム統括クラス
Definition ShaderBinder.h:34
FK::fk_Shape
形状用基底クラス
Definition Shape.h:44
FK::fk_TreeData
木構造用ノードデータクラス
Definition Tree.h:59
FK::fk_Vector
3次元ベクトルを管理するクラス
Definition Vector.h:45
FK
Fine Kernel Toolkit 名前空間
Definition Angle.h:6
FK::fk_DepthMode
fk_DepthMode
デプス読み書きモード列挙型
Definition RenderState.h:32
FK::fk_TexMode
fk_TexMode
テクスチャモードを表す列挙型
Definition Texture.h:12
FK::fk_ShadingMode
fk_ShadingMode
シェーディングモードを表す列挙型
Definition Model.h:36
FK::fk_ShadingMode::PHONG
@ PHONG
フォンシェーディング
Definition Model.h:38
FK::fk_ShadingMode::GOURAUD
@ GOURAUD
グーローシェーディング
Definition Model.h:37
FK::fk_BoundaryMode::NONE
@ NONE
未定義境界
Definition Boundary.h:19
FK::fk_BlendMode
fk_BlendMode
ブレンドモード列挙型
Definition RenderState.h:6
FK::fk_BlendFactor
fk_BlendFactor
ブレンド係数列挙型
Definition RenderState.h:18
FK::fk_BlendFactor::ONE_MINUS_SRC_ALPHA
@ ONE_MINUS_SRC_ALPHA
1-Sa
Definition RenderState.h:26
FK::fk_BlendFactor::SRC_ALPHA
@ SRC_ALPHA
Sa
Definition RenderState.h:25
FK::fk_Axis
fk_Axis
座標軸を表す列挙型
Definition Vector.h:16
FK::fk_Type::MODEL
@ MODEL
fk_Model 型
Definition Base.h:46
FK::fk_FogMode::NUM
@ NUM
種類数
Definition Fog.h:15
FK::fk_ElementMode
fk_ElementMode
描画優先モードを表す列挙型
Definition Model.h:29
FK::fk_ElementMode::ELEMENT
@ ELEMENT
形状個別要素設定優先
Definition Model.h:32
FK::fk_MaterialMode
fk_MaterialMode
マテリアルモード型
Definition Palette.h:11
FK::fk_Draw
fk_Draw
描画モードを表す列挙型
Definition DrawMode.h:7