1#if !defined(__FK_MATH_HEADER__)
2#define __FK_MATH_HEADER__
36 static constexpr double EPS = 1.0e-8;
37 static constexpr double PI = 3.1415926535897932;
51 static double sgn(
double a);
66 static double clamp(
double a,
double min,
double max);
111 static std::tuple<double, double, double>
151#if !defined(FK_DOXYGEN_USER_PROCESS) && !defined(FK_OLD_NONSUPPORT)
201 bool openFlg =
true);
203#if !defined(FK_DOXYGEN_USER_PROCESS) && !defined(FK_OLD_NONSUPPORT)
235#if !defined(FK_DOXYGEN_USER_PROCESS) && !defined(FK_OLD_NONSUPPORT)
236 static std::tuple<double, fk_Vector>
286 static std::tuple<double, double>
290#if !defined(FK_DOXYGEN_USER_PROCESS) && !defined(FK_OLD_NONSUPPORT)
291 static std::tuple<double, double, double, fk_Vector, fk_Vector>
333 static std::tuple<bool, double, double, double>
337#if !defined(FK_DOXYGEN_USER_PROCESS) && !defined(FK_OLD_NONSUPPORT)
338 static std::tuple<bool, double, double, double>
365 static std::tuple<int, double, double>
401 static std::tuple<int, double, double, double, double>
487 static unsigned int rand(
void);
517 static double drand(
double m,
double M);
527 static void seed(
unsigned int s);
531 static inline std::unique_ptr<std::random_device> _rd;
532 static inline std::unique_ptr<std::mt19937> _mt;
533 static void RandInit(
void);
数学処理関数集合クラス
Definition Math.h:34
static constexpr double PI
円周率
Definition Math.h:37
static bool isOnLine(fk_LineType type, fk_Vector A, fk_Vector B, fk_Vector P, bool openFlg=true)
直線群上判定関数
static constexpr double EPS
数値演算用誤差値
Definition Math.h:36
static unsigned int rand(void)
一様整数乱数取得関数
static double sgn(double a)
符号関数
static double clamp(double a, double min, double max)
数値範囲制限関数
static fk_Quaternion quatInterSphere(fk_Quaternion q1, fk_Quaternion q2, double t)
四元数球面線形補間関数
static void seed(unsigned int s)
乱数シード値設定関数
static std::tuple< double, double > calcNearest(fk_LineType t_L, fk_Vector A, fk_Vector B, fk_LineType t_M, fk_Vector C, fk_Vector D)
直線群間最近接点算出関数
static double calcCosine(fk_Vector A, fk_Vector B)
余弦値算出関数
static fk_Quaternion quatInterLinear(fk_Quaternion q1, fk_Quaternion q2, double t)
四元数単純線形補間関数
static double calcNearest(fk_Vector P, fk_LineType type, fk_Vector A, fk_Vector B)
点・直線群間最近接点算出関数
static std::tuple< int, double, double, double, double > calcCrossCylinder(fk_Vector P, fk_Vector Q, double r, fk_LineType type, fk_Vector A, fk_Vector B)
直線群円柱面交差点算出関数
static std::tuple< bool, double, double, double > calcCrossTriangle(fk_LineType type, fk_Vector P, fk_Vector Q, fk_Vector A, fk_Vector B, fk_Vector C)
三角形対線分交差判定関数
static std::tuple< double, double, double > divideVec(fk_Vector V, fk_Vector A, fk_Vector B, fk_Vector C)
ベクトル分離係数算出関数
static bool isCrossLine(fk_LineType t_L, fk_Vector A, fk_Vector B, fk_LineType t_M, fk_Vector C, fk_Vector D, bool openFlg=true)
直線群交差判定関数
static double drand(double m, double M)
範囲付一様実数乱数取得関数
static int rand(int m, int M)
範囲付一様整数乱数取得関数
static std::tuple< int, double, double > calcCrossSphere(fk_Vector P, double r, fk_LineType type, fk_Vector A, fk_Vector B)
直線群球面交差点算出関数
static double drand(void)
一様実数乱数取得関数
四元数(クォータニオン)を管理するクラス
Definition Quaternion.h:44
3次元ベクトルを管理するクラス
Definition Vector.h:45
Fine Kernel Toolkit 名前空間
Definition Angle.h:6
fk_LineType
fk_Math クラス内での直線群タイプを表す列挙型
Definition Math.h:10