FineKernelToolKit: FK 名前空間

FineKernelToolKit 4.3.0

読み取り中…
検索中…
一致する文字列を見つけられません
名前空間 | クラス | 列挙型 | 関数
FK 名前空間

Fine Kernel Toolkit 名前空間 [詳解]

## 名前空間

namespace | fk_Code
| 簡易文字コード変換用名前空間
namespace | Material
| デフォルトマテリアル用名前空間

## クラス

class | fk_Angle
| オイラー角を表すクラス [詳解]
class | fk_AppWindow
| アプリケーションウィンドウクラス [詳解]
class | fk_Attribute
| 形状や位相要素の属性を付与、取得するクラス [詳解]
class | fk_AudioBase
| オーディオ基底クラス [詳解]
class | fk_AudioOggBuffer
| Ogg Vorbis オーディオバッファクラス [詳解]
class | fk_AudioStream
| オーディオストリームクラス [詳解]
class | fk_AudioWavBuffer
| Wave オーディオバッファクラス [詳解]
class | fk_BaseObject
| FK の各クラスの基盤となる基本クラス [詳解]
class | fk_BezCurve
| Bezier曲線を生成、管理するクラス [詳解]
class | fk_BezSurface
| Bezier曲面を生成、管理するクラス [詳解]
class | fk_Block
| 直方体を生成、管理するクラス [詳解]
class | fk_Boundary
| 境界ボリュームを管理するクラス [詳解]
class | fk_BSplCurve
| B-Spline 曲線を生成、管理するクラス [詳解]
class | fk_BVHMotion
| BVH 形式のモーションデータを読み込み、保持するクラス [詳解]
class | fk_Capsule
| カプセル型を生成、管理するクラス [詳解]
class | fk_Circle
| 円を生成、管理するクラス [詳解]
class | fk_Closedline
| 多角形(辺のみ)を生成、管理するクラス [詳解]
class | fk_Color
| RGB色を管理するクラス [詳解]
class | fk_Cone
| 正多角錐・円錐を生成、管理するクラス [詳解]
class | fk_CSV
| CSV 入出力用クラス [詳解]
class | fk_Curve
| 曲線用純粋仮想クラス [詳解]
class | fk_DataAccess
| ソリッドモデル用位相要素アクセスクラス [詳解]
class | fk_Dimension
| 画像サイズを表すクラス [詳解]
class | fk_DisplayLink
| ディスプレイリストを制御するクラス [詳解]
class | fk_DrawCache
| 描画用キャッシュデータを管理するクラス [詳解]
class | fk_Edge
| ソリッドモデルの稜線位相を管理するクラス [詳解]
class | fk_Fog
| シーン中の霧効果を制御するクラス [詳解]
class | fk_FrameBuffer
| フレームバッファー制御クラス [詳解]
class | fk_FrameController
| フレームレート制御クラス [詳解]
class | fk_Frustum
| 一般透視投影を制御するクラス [詳解]
class | fk_FullscreenController
| フルスクリーン制御クラス [詳解]
class | fk_FVecArray
| シェーダー内 attribute 変数用ベクトル管理クラス [詳解]
class | fk_FVector
| 単精度浮動小数点型3次元ベクトルを管理するクラス [詳解]
class | fk_GenMatrix
| 任意次元正方行列を管理するクラス [詳解]
class | fk_GenVector
| 任意次元ベクトルを管理するクラス [詳解]
class | fk_Graph
| グラフ構造を制御するクラス [詳解]
class | fk_GraphEdge
| グラフ構造の辺を制御するクラス [詳解]
class | fk_GraphNode
| グラフ構造のノードを制御するクラス [詳解]
class | fk_Gregory
| Gregory 曲面を生成、管理するクラス [詳解]
class | fk_GuideObject
| 座標系可視化支援クラス [詳解]
class | fk_Half
| ソリッドモデルの半稜線位相を管理するクラス [詳解]
class | fk_HeapBase
| 重複要素に同一IDを与えるための汎用テンプレート [詳解]
class | fk_HVector
| 4次元ベクトルを管理するクラス [詳解]
class | fk_IFSTexture
| IFSテクスチャを生成、管理するクラス [詳解]
class | fk_Image
| 画像を生成、管理するクラス [詳解]
class | fk_IndexFaceSet
| インデックスフェースセットによる任意形状を生成、管理するクラス [詳解]
class | fk_Light
| 光源を管理するクラス [詳解]
class | fk_Line
| 有向線分を生成、管理するクラス [詳解]
class | fk_Loop
| ソリッドモデルのループ位相を管理するクラス [詳解]
class | fk_Material
| マテリアル(質感)を管理するクラス [詳解]
class | fk_Math
| 数学処理関数集合クラス [詳解]
class | fk_Matrix
| 一般4元正方行列を管理するクラス [詳解]
class | fk_MatrixAdmin
| モデルの位置や姿勢を管理するクラス [詳解]
class | fk_MeshTexture
| メッシュテクスチャを生成、管理するクラス [詳解]
class | fk_Model
| モデルを生成、管理するクラス [詳解]
class | fk_Modify
| ソリッドモデル変形操作用クラス [詳解]
class | fk_Operation
| オイラー操作用クラス [詳解]
class | fk_Ortho
| 平行投影法を制御するクラス [詳解]
class | fk_OrthoMatrix
| 4元正方直交行列を管理するクラス [詳解]
class | fk_Palette
| マテリアルパレットを管理するクラス [詳解]
class | fk_ParserData
| ファイル入出力機能用抽象クラス [詳解]
class | fk_Particle
| パーティクル単体を制御するクラス [詳解]
class | fk_ParticleSet
| パーティクル集合を制御するクラス [詳解]
class | fk_Performer
| FK Performer キャラクターランタイムクラス [詳解]
class | fk_Perspective
| 対称透視投影法を制御するクラス [詳解]
class | fk_Plane
| 幾何平面を管理するクラス [詳解]
class | fk_Point
| 点群を生成、管理するクラス [詳解]
class | fk_Polygon
| 多角形を生成、管理するクラス [詳解]
class | fk_Polyline
| ポリラインを生成、管理するクラス [詳解]
class | fk_Prism
| 正多角柱・円柱を生成、管理するクラス [詳解]
class | fk_ProjectBase
| 投影法の基底クラス [詳解]
class | fk_Quaternion
| 四元数(クォータニオン)を管理するクラス [詳解]
class | fk_Ray
| 干渉判定光線クラス [詳解]
class | fk_RBezCurve
| 有理 Bezier 曲線を生成、管理するクラス [詳解]
class | fk_Rect
| 画像中の矩形領域を表すクラス [詳解]
class | fk_RectTexture
| 矩形テクスチャを生成、管理するクラス [詳解]
class | fk_ReferenceL1
| 位相状態参照用クラス(Level1) [詳解]
class | fk_ReferenceL2
| 位相状態参照用クラス(Level2) [詳解]
class | fk_ReferenceL3
| 位相状態参照用クラス(Level3) [詳解]
class | fk_Renderer
| マルチパスレンダリング制御クラス [詳解]
class | fk_Scene
| シーンを制御するクラス [詳解]
class | fk_ShaderBinder
| シェーダープログラム統括クラス [詳解]
class | fk_ShaderParameter
| シェーダーパラメーター管理クラス [詳解]
class | fk_ShaderProgram
| シェーダープログラム格納クラス [詳解]
class | fk_Shape
| 形状用基底クラス [詳解]
class | fk_ShapeViewer
| 簡易形状表示システム用クラス [詳解]
class | fk_Solid
| 半稜線構造 (Half-Edge Structure) による任意形状を生成、管理するクラス [詳解]
class | fk_SolidBase
| ソリッドモデル形状変換クラス [詳解]
class | fk_Sphere
| 球を生成、管理するクラス [詳解]
class | fk_SpriteModel
| 2D スプライトモデルクラス [詳解]
class | fk_StrConverter
| 日本語文字コード変換クラス [詳解]
class | fk_Surface
| 曲面用純粋仮想クラス [詳解]
class | fk_System
| システム依存関数集合クラス [詳解]
class | fk_TexCoord
| テクスチャ座標を管理するクラス [詳解]
class | fk_TextImage
| 文字列板を管理するクラス [詳解]
class | fk_Texture
| テクスチャ用基底クラス [詳解]
class | fk_Time
| 時間管理用クラス [詳解]
class | fk_Topology
| ソリッドモデル位相要素用基底クラス [詳解]
class | fk_TrackBall
| マウスによる視点操作クラス [詳解]
class | fk_Tree
| 木構造用データベースクラス [詳解]
class | fk_TreeBaseObject
| 木構造オブジェクトデータの基底クラス [詳解]
class | fk_TreeData
| 木構造用ノードデータクラス [詳解]
class | fk_TriTexture
| 3角形テクスチャを生成、管理するクラス [詳解]
class | fk_UniChar
| Unicode の文字を表すクラス [詳解]
class | fk_UniStr
| 文字列板に表示する文字列を制御するクラス [詳解]
class | fk_Vector
| 3次元ベクトルを管理するクラス [詳解]
class | fk_Vertex
| ソリッドモデルの頂点位相を管理するクラス [詳解]
class | fk_Window
| FLTK 用シーン描画ウィジェットクラス [詳解]

## 列挙型

enum class

fk_Type {
BASEOBJECT , MATRIXADMIN , MODEL , DISPLAYLINK ,
SCENE , SHAPE , POLYGON , LINE ,
POLYLINE , POINT , CIRCLE , SPHERE ,
BLOCK , CLOSEDLINE , PRISM , CAPSULE ,
CONE , INDEXFACESET , LIGHT , CURVE ,
BEZCURVE , RBEZCURVE , BSPLCURVE , SURFACE ,
BEZSURFACE , GREGORY , IMAGE , FRAMEBUFFER ,
TEXCOORD , TEXTURE , RECTTEXTURE , TRITEXTURE ,
MESHTEXTURE , IFSTEXTURE , ARTEXTURE , UNICHAR ,
UNISTR , TEXTIMAGE , COLOR , MATERIAL ,
PALETTE , PLANE , WINDOW , PICKDATA ,
PROJECTBASE , PERSPECTIVE , FRUSTUM , ORTHO ,
VERTEX , HALF , EDGE , LOOP ,
SOLID , SHAPEVIEWER , PARTICLE , PARTICLESET ,
GRAPH , GRAPHNODE , GRAPHEDGE , CSV ,
RAY , PHYSICSWORLD , PHYSICSBOX , PHYSICSSPHERE ,
P2PCONST , HINGECONST , FIXEDCONST , SLIDERCONST
}

| オブジェクトインスタンスのタイプを表す列挙型 [詳解]
enum class | fk_BoundaryMode { SPHERE , AABB , OBB , CAPSULE , NONE }
| 境界ボリュームのタイプを表す列挙型 [詳解]
enum class | fk_StereoChannel { LEFT , RIGHT }
| 立体視出力を制御する際に用いる列挙型 [詳解]
enum class | fk_Draw : unsigned int { NONE = 0 , POINT = 1 << 1 , LINE = 1 << 2 , FACE = 1 << 3 , BACK_FACE = ((1 << 4) | FACE) , FRONTBACK_FACE = ((1 << 5) | FACE) , TEXTURE = 1 << 6 , GEOM_LINE = 1 << 7 , GEOM_POINT = 1 << 8 , GEOM_FACE = 1 << 9 }
| 描画モードを表す列挙型 [詳解]
enum class | fk_EdgeStatus { NONE , UNDEF , HALF , BOTH }
| 稜線状態を表す列挙型 [詳解]
enum class | fk_CurveType { BEZ , BSPL }
| 幾何曲線の種類を表す列挙型 [詳解]
enum class | fk_FogMode { LINEAR = 0 , EXP , EXP2 , OFF , NUM }
| 霧効果の減衰関数を表す列挙型 [詳解]
enum class | fk_SamplerSource { COLOR , DEPTH }
| フレームバッファーのサンプリングソースを表す列挙型 [詳解]
enum class | fk_CostStatus { CONTINUE , FINISH , ERROR }
| グラフのコスト算出状況を表す列挙型 [詳解]
enum class | fk_CostType { INT , DOUBLE , LENGTH }
| グラフ内コスト値の型を表す列挙型 [詳解]
enum class | fk_CostDirection { FORWARD , BACK }
| グラフ内コスト算出方向を表す列挙型 [詳解]
enum class | fk_Guide : unsigned int { NO_GUIDE = 0 , AXIS_X = 1 << 1 , AXIS_Y = 1 << 2 , AXIS_Z = 1 << 3 , GRID_XZ = 1 << 4 , GRID_XY = 1 << 5 , GRID_YZ = 1 << 6 }
| 座標ガイドを表す列挙型 [詳解]
enum class | fk_ImageType { BMP , PNG , JPG }
| 画像フォーマットを表す列挙型 [詳解]
enum class | fk_SnapProcMode { FRONT , BACK , WIN32_GDI }
| 画像取り込み方法を表す列挙型 [詳解]
enum class | fk_LightType { PARALLEL , POINT , SPOT }
| 光源タイプを表す列挙型 [詳解]
enum class | fk_LineType { OPEN , CLOSE , HALF }
| fk_Math クラス内での直線群タイプを表す列挙型 [詳解]
enum class | fk_ElementMode { NONE , MODEL , ELEMENT }
| 描画優先モードを表す列挙型 [詳解]
enum class | fk_ShadingMode { GOURAUD = 0 , PHONG , NUM }
| シェーディングモードを表す列挙型 [詳解]
enum class | fk_MaterialMode { NONE , CHILD , PARENT }
| マテリアルモード型 [詳解]
enum class | fk_ProjectMode { NONE , PERSPECTIVE , FRUSTUM , ORTHO }
| 投影法を表す列挙型 [詳解]
enum class | fk_BlendMode { ALPHA , NEGATIVE , ADDITION , SCREEN , LIGHTEN , MULTIPLY , NONE , CUSTOM }
| ブレンドモード列挙型 [詳解]
enum class | fk_BlendFactor { ZERO , ONE , SRC_COLOR , ONE_MINUS_SRC_COLOR , DST_COLOR , ONE_MINUS_DST_COLOR , SRC_ALPHA , ONE_MINUS_SRC_ALPHA , DST_ALPHA , ONE_MINUS_DST_ALPHA }
| ブレンド係数列挙型 [詳解]
enum class | fk_DepthMode : unsigned int { NO_USE = 0 , READ = 1 , WRITE = 2 , READ_AND_WRITE = READ | WRITE }
| デプス読み書きモード列挙型 [詳解]
enum class | fk_ShadowMode { HARD = 0 , SOFT_FAST , SOFT_NICE , OFF , NUM }
| 影モードを表す列挙型 [詳解]
enum class | fk_RealShapeType { IFS , SOLID , TEXTURE , POINT , LINE , CURVE , SURFACE , LIGHT , GRAPH , OTHER }
| 形状データの具体的なデータ構造を表す列挙型 [詳解]
enum class | fk_UV : int { U_S = 0 , U_E = 1 , V_S = 2 , V_E = 3 }
| 曲面の uv 方向を表す列挙型 [詳解]
enum class | fk_TextAlign { LEFT , CENTER , RIGHT }
| 文字列板の文字列配置を表す列挙型 [詳解]
enum class | fk_TextSendingMode { ALL , CHAR , LINE }
| 文字列板の文字送りモードを表す列挙型 [詳解]
enum class | fk_TexMode { MODULATE = 0 , DECAL , REPLACE , NONE , NUM }
| テクスチャモードを表す列挙型 [詳解]
enum class | fk_TexRendMode { NORMAL , SMOOTH }
| テクスチャ描画品質を表す列挙型 [詳解]
enum class | fk_TexWrapMode { REPEAT , CLAMP }
| テクスチャ外周部の描画モードを表す列挙型 [詳解]
enum class | fk_StringCode { UTF16 , UTF8 , JIS , SJIS , EUC }
| 日本語文字コードを表す列挙型 [詳解]
enum class | fk_Axis { X , Y , Z }
| 座標軸を表す列挙型 [詳解]

enum class

fk_Key {
SHIFT_R , SHIFT_L , CTRL_R , CTRL_L ,
ALT_R , ALT_L , ENTER , BACKSPACE ,
DEL , CAPS_LOCK , TAB , PAGE_UP ,
PAGE_DOWN , HOME , END , INSERT ,
LEFT , RIGHT , UP , DOWN ,
F1 , F2 , F3 , F4 ,
F5 , F6 , F7 , F8 ,
F9 , F10 , F11 , F12 ,
SPACE
}

| 特殊キーを表す列挙型 [詳解]
enum class | fk_MouseButton { M1 , M2 , M3 }
| マウスボタンを表す列挙型 [詳解]
enum class | fk_PutStrMode { NONE , CONSOLE , ERR_CONSOLE , BROWSER , FILE }
| メッセージ出力タイプを表す列挙型 [詳解]
enum class | fk_Switch { RELEASE , UP , DOWN , PRESS }
| ボタン系デバイス状態を表す列挙型 [詳解]

## 関数

fk_Color | operator+ (const fk_Color &, const fk_Color &)
| 色要素和二項演算子
fk_Color | operator- (const fk_Color &, const fk_Color &)
| 色要素差二項演算子
fk_Color | operator* (const fk_Color &, double)
| 実数倍二項演算子1
fk_Color | operator* (double, const fk_Color &)
| 実数倍二項演算子2
fk_Color | operator/ (const fk_Color &, double)
| 実数商二項演算子
fk_Draw | operator| (fk_Draw, fk_Draw)
| 描画モード用ビット論理和演算子
fk_Draw | operator& (fk_Draw, fk_Draw)
| 描画モード用ビット論理積演算子
fk_Draw | operator^ (fk_Draw, fk_Draw)
| 描画モード用ビット XOR 演算子
fk_GenVector | operator* (const fk_GenMatrix &, const fk_GenVector &)
| ベクトル変換二項演算子
fk_GenMatrix | operator+ (const fk_GenMatrix &, const fk_GenMatrix &)
| 行列和二項演算子
fk_GenMatrix | operator- (const fk_GenMatrix &, const fk_GenMatrix &)
| 行列差二項演算子
fk_GenMatrix | operator* (const fk_GenMatrix &, const fk_GenMatrix &)
| 行列積二項演算子
double | operator* (const fk_GenVector &P, const fk_GenVector &Q)
| 内積二項演算子
fk_GenVector | operator+ (const fk_GenVector &P, const fk_GenVector &Q)
| ベクトル和二項演算子
fk_GenVector | operator- (const fk_GenVector &P, const fk_GenVector &Q)
| ベクトル差二項演算子
fk_GenVector | operator* (const fk_GenVector &V, double d)
| 実数倍二項演算子1
fk_GenVector | operator* (double d, const fk_GenVector &V)
| 実数倍二項演算子2
fk_GenVector | operator/ (const fk_GenVector &V, double d)
| 実数商二項演算子
fk_GenVector | operator^ (const fk_GenVector &P, const fk_GenVector &Q)
| 外積二項演算子
fk_Guide | operator| (fk_Guide, fk_Guide)
| 座標ガイド用ビット論理和演算子
fk_Guide | operator& (fk_Guide, fk_Guide)
| 座標ガイド用ビット論理積演算子
fk_Guide | operator^ (fk_Guide, fk_Guide)
| 座標ガイド用ビット XOR 演算子
fk_Dimension | operator+ (const fk_Dimension &, const fk_Dimension &)
| 整数値ベクトル和二項演算子
fk_Dimension | operator- (const fk_Dimension &, const fk_Dimension &)
| 整数値ベクトル差二項演算子
fk_Dimension | operator* (const fk_Dimension &, int)
| 整数値ベクトル倍演算二項演算子1
fk_Dimension | operator* (int, const fk_Dimension &)
| 整数値ベクトル倍演算二項演算子2
fk_Dimension | operator/ (const fk_Dimension &, int)
| 整数値ベクトル商演算二項演算子
void | fk_InitMaterial (void)
fk_HVector | operator* (const fk_OrthoMatrix &, const fk_HVector &)
| ベクトル変換二項演算子
fk_OrthoMatrix | operator* (const fk_OrthoMatrix &, const fk_OrthoMatrix &)
| 行列積二項演算子1
fk_Matrix | operator* (const fk_Matrix &, const fk_OrthoMatrix &)
| 行列積二項演算子2
fk_Matrix | operator* (const fk_OrthoMatrix &, const fk_Matrix &)
| 行列積二項演算子3
fk_Matrix | operator+ (const fk_Matrix &, const fk_OrthoMatrix &)
| 行列和二項演算子1
fk_Matrix | operator+ (const fk_OrthoMatrix &, const fk_Matrix &)
| 行列和二項演算子2
fk_Matrix | operator- (const fk_Matrix &, const fk_OrthoMatrix &)
| 行列差二項演算子1
fk_Matrix | operator- (const fk_OrthoMatrix &, const fk_Matrix &)
| 行列差二項演算子2
fk_HVector | operator* (const fk_Matrix &, const fk_HVector &)
| ベクトル変換二項演算子
fk_Matrix | operator* (const fk_Matrix &, const fk_Matrix &)
| 行列積二項演算子
fk_Matrix | operator* (double, const fk_Matrix &)
| 行列実数倍二項演算子1
fk_Matrix | operator* (const fk_Matrix &, double)
| 行列実数倍二項演算子2
fk_Matrix | operator+ (const fk_Matrix &, const fk_Matrix &)
| 行列和二項演算子
fk_Matrix | operator- (const fk_Matrix &, const fk_Matrix &)
| 行列差二項演算子
fk_Quaternion | operator* (const fk_Quaternion &, const fk_Quaternion &)
| 四元数積二項演算子
fk_Quaternion | operator+ (const fk_Quaternion &, const fk_Quaternion &)
| 四元数和二項演算子
fk_Quaternion | operator- (const fk_Quaternion &, const fk_Quaternion &)
| 四元数差二項演算子
fk_Quaternion | operator* (const fk_Quaternion &, double)
| 四元数スカラー倍二項演算子1
fk_Quaternion | operator* (double, const fk_Quaternion &)
| 四元数スカラー倍二項演算子2
fk_Quaternion | operator/ (const fk_Quaternion &, double)
| 四元数スカラー商二項演算子
fk_Vector | operator* (const fk_Quaternion &, const fk_Vector &)
| 四元数ベクトル変換二項演算子
double | operator^ (const fk_Quaternion &, const fk_Quaternion &)
| 四元数内積二項演算子
fk_DepthMode | operator| (fk_DepthMode argL, fk_DepthMode argR)
| デプス読み書きモード用ビット論理和演算子
fk_DepthMode | operator& (fk_DepthMode argL, fk_DepthMode argR)
| デプス読み書きモード用ビット論理積演算子
fk_DepthMode | operator^ (fk_DepthMode argL, fk_DepthMode argR)
| デプス読み書きモード用ビット XOR 演算子
double | operator* (const fk_Vector &, const fk_Vector &)
| 内積二項演算子
fk_Vector | operator+ (const fk_Vector &, const fk_Vector &)
| ベクトル和二項演算子
fk_Vector | operator- (const fk_Vector &, const fk_Vector &)
| ベクトル差二項演算子
fk_Vector | operator* (const fk_Vector &, double)
| 実数倍二項演算子1
fk_Vector | operator* (double, const fk_Vector &)
| 実数倍二項演算子2
fk_Vector | operator/ (const fk_Vector &, double)
| 実数商二項演算子
fk_Vector | operator^ (const fk_Vector &, const fk_Vector &)
| 外積二項演算子
double | operator* (const fk_HVector &, const fk_HVector &)
| 内積二項演算子

## 詳解

Fine Kernel Toolkit 名前空間

## 列挙型詳解

## ◆ fk_Type

enum class FK::fk_Type

strong

オブジェクトインスタンスのタイプを表す列挙型

列挙値
BASEOBJECT | fk_BaseObject 型
MATRIXADMIN | fk_MatrixAdmin 型
MODEL | fk_Model 型
DISPLAYLINK | fk_DisplayLink 型
SCENE | fk_Scene 型
SHAPE | fk_Shape 型
POLYGON | fk_Polygon 型
LINE | fk_Line 型
POLYLINE | fk_Polyline 型
POINT | fk_Point 型
CIRCLE | fk_Circle 型
SPHERE | fk_Sphere 型
BLOCK | fk_Block 型
CLOSEDLINE | fk_Closedline 型
PRISM | fk_Prism 型
CAPSULE | fk_Capsule 型
CONE | fk_Cone 型
INDEXFACESET | fk_IndexFaceSet 型
LIGHT | fk_Light 型
CURVE | fk_Curve 型
BEZCURVE | fk_BezCurve 型
RBEZCURVE | fk_RBezCurve 型
BSPLCURVE | fk_BSplCurve 型
SURFACE | fk_Surface 型
BEZSURFACE | fk_BezSurface 型
GREGORY | fk_Gregory 型
IMAGE | fk_Image 型
FRAMEBUFFER | fk_FrameBuffer 型
TEXCOORD | fk_TexCoord 型
TEXTURE | fk_Texture 型
RECTTEXTURE | fk_RectTexture 型
TRITEXTURE | fk_TriTexture 型
MESHTEXTURE | fk_MeshTexture 型
IFSTEXTURE | fk_IFSTexture 型
ARTEXTURE | fk_ARTexture 型
UNICHAR | fk_UniChar 型
UNISTR | fk_UniStr 型
TEXTIMAGE | fk_TextImage 型
COLOR | fk_Color 型
MATERIAL | fk_Material 型
PALETTE | fk_Palette 型
PLANE | fk_Plane 型
WINDOW | fk_Window 型
PICKDATA | fk_PickData 型
PROJECTBASE | fk_ProjectBase 型
PERSPECTIVE | fk_Perspective 型
FRUSTUM | fk_Frustum 型
ORTHO | fk_Ortho 型
VERTEX | fk_Vertex 型
HALF | fk_Half 型
EDGE | fk_Edge 型
LOOP | fk_Loop 型
SOLID | fk_Solid 型
SHAPEVIEWER | fk_ShapeViewer 型
PARTICLE | fk_Particle 型
PARTICLESET | fk_ParticleSet 型
GRAPH | fk_Graph 型
GRAPHNODE | fk_GraphNode 型
GRAPHEDGE | fk_GraphEdge 型
CSV | fk_CSV 型
RAY | fk_Ray 型
PHYSICSWORLD | fk_PhysicsWorld 型
PHYSICSBOX | fk_PhysicsBox 型
PHYSICSSPHERE | fk_PhysicsSphere 型
P2PCONST | fk_PhysicsP2PConstraint 型
HINGECONST | fk_PhysicsHingeConstraint 型
FIXEDCONST | fk_PhysicsFixedConstraint 型
SLIDERCONST | fk_PhysicsSliderConstraint 型

## ◆ fk_BoundaryMode

enum class FK::fk_BoundaryMode

strong

境界ボリュームのタイプを表す列挙型

列挙値
SPHERE | 境界球
AABB | 軸平行境界ボックス (Axis Aligned Bounding Box)
OBB | 有向境界ボックス (Oriented Bounding Box)
CAPSULE | カプセル型
NONE | 未定義境界

## ◆ fk_StereoChannel

enum class FK::fk_StereoChannel

strong

立体視出力を制御する際に用いる列挙型

列挙値
LEFT | 左目側
RIGHT | 右目側

## ◆ fk_Draw

enum class FK::fk_Draw : unsigned int

strong

描画モードを表す列挙型

列挙値
NONE | 何も表示しない
POINT | 点描画
LINE | 線描画
FACE | 面描画 (表面のみ)
BACK_FACE | 裏面描画
FRONTBACK_FACE | 表裏面描画
TEXTURE | テクスチャー描画
GEOM_LINE | 曲線・曲面グリッド描画
GEOM_POINT | 曲線・曲面点描画
GEOM_FACE | 曲面描画

## ◆ fk_EdgeStatus

enum class FK::fk_EdgeStatus

strong

稜線状態を表す列挙型

列挙値
NONE | 位相の不整合
UNDEF | 未定義稜線
HALF | 半定義稜線
BOTH | 両定義稜線

## ◆ fk_CurveType

enum class FK::fk_CurveType

strong

幾何曲線の種類を表す列挙型

列挙値
BEZ | Bezier 曲線
BSPL | B-Spline 曲線

## ◆ fk_FogMode

enum class FK::fk_FogMode

strong

霧効果の減衰関数を表す列挙型

列挙値
LINEAR | 線形式
EXP | 指数式
EXP2 | 指数(2乗)式
OFF | 無効
NUM | 種類数

## ◆ fk_SamplerSource

enum class FK::fk_SamplerSource

strong

フレームバッファーのサンプリングソースを表す列挙型

列挙値
COLOR | 画面色情報参照
DEPTH | 画面深度情報参照

## ◆ fk_CostStatus

enum class FK::fk_CostStatus

strong

グラフのコスト算出状況を表す列挙型

列挙値
CONTINUE | 途中段階状態
FINISH | 完了状態
ERROR | エラー

## ◆ fk_CostType

enum class FK::fk_CostType

strong

グラフ内コスト値の型を表す列挙型

列挙値
INT | 整数型
DOUBLE | 実数型
LENGTH | 辺長

## ◆ fk_CostDirection

enum class FK::fk_CostDirection

strong

グラフ内コスト算出方向を表す列挙型

列挙値
FORWARD | 出発ノードから開始
BACK | 目標ノードから開始

## ◆ fk_Guide

enum class FK::fk_Guide : unsigned int

strong

座標ガイドを表す列挙型

列挙値
NO_GUIDE | ガイドなし
AXIS_X | x 軸
AXIS_Y | y 軸
AXIS_Z | z 軸
GRID_XZ | xz 平面
GRID_XY | xy 平面
GRID_YZ | yz 平面

## ◆ fk_ImageType

enum class FK::fk_ImageType

strong

画像フォーマットを表す列挙型

列挙値
BMP | Windows Bitmap (BMP) 形式
PNG | PNG 形式
JPG | JPEG 形式

## ◆ fk_SnapProcMode

enum class FK::fk_SnapProcMode

strong

画像取り込み方法を表す列挙型

列挙値
FRONT | OpenGL フロントバッファ
BACK | OpenGL バックバッファ
WIN32_GDI | Win32 GDI (Windows プラットフォームのみ対応)

## ◆ fk_LightType

enum class FK::fk_LightType

strong

光源タイプを表す列挙型

列挙値
PARALLEL | 平行光源
POINT | 点光源
SPOT | スポットライト

## ◆ fk_LineType

enum class FK::fk_LineType

strong

fk_Math クラス内での直線群タイプを表す列挙型

列挙値
OPEN | 直線
CLOSE | 有向線分
HALF | 半直線

## ◆ fk_ElementMode

enum class FK::fk_ElementMode

strong

描画優先モードを表す列挙型

列挙値
NONE | 描画しない
MODEL | モデル設定優先
ELEMENT | 形状個別要素設定優先

## ◆ fk_ShadingMode

enum class FK::fk_ShadingMode

strong

シェーディングモードを表す列挙型

列挙値
GOURAUD | グーローシェーディング
PHONG | フォンシェーディング
NUM | シェーディングモード種類数

## ◆ fk_MaterialMode

enum class FK::fk_MaterialMode

strong

マテリアルモード型

列挙値
NONE | 不描画モード
CHILD | 個別設定モード
PARENT | モデル設定モード

## ◆ fk_ProjectMode

enum class FK::fk_ProjectMode

strong

投影法を表す列挙型

列挙値
NONE | 指定なし
PERSPECTIVE | 対称透視投影法
FRUSTUM | 一般透視投影法
ORTHO | 平行投影法

## ◆ fk_BlendMode

enum class FK::fk_BlendMode

strong

ブレンドモード列挙型

列挙値
ALPHA | アルファブレンド(デフォルト)
NEGATIVE | 反転
ADDITION | 加算
SCREEN | スクリーン
LIGHTEN | 比較(明)
MULTIPLY | 乗算
NONE | ブレンドなし
CUSTOM | カスタム

## ◆ fk_BlendFactor

enum class FK::fk_BlendFactor

strong

ブレンド係数列挙型

列挙値
ZERO | 0
ONE | 1
SRC_COLOR | Sr,Sg,Sb
ONE_MINUS_SRC_COLOR | 1-Sr,Sg,Sb
DST_COLOR | Dr,Dg,Db
ONE_MINUS_DST_COLOR | 1-Dr,Dg,Db
SRC_ALPHA | Sa
ONE_MINUS_SRC_ALPHA | 1-Sa
DST_ALPHA | Da
ONE_MINUS_DST_ALPHA | 1-Da

## ◆ fk_DepthMode

enum class FK::fk_DepthMode : unsigned int

strong

デプス読み書きモード列挙型

列挙値
NO_USE | デプスバッファの参照も更新せず、常に上書きします
READ | デプスバッファを参照し、前後関係のチェックを行います
WRITE | デプスバッファに書き込みを行い、更新します
READ_AND_WRITE | デプスバッファの参照と書き込みを共に行います(初期値)

## ◆ fk_ShadowMode

enum class FK::fk_ShadowMode

strong

影モードを表す列挙型

列挙値
HARD | ハードシャドウ
SOFT_FAST | 速度重視ソフトシャドウ
SOFT_NICE | 質重視ソフトシャドウ
OFF | 影無効
NUM | 影モード種類数

## ◆ fk_RealShapeType

enum class FK::fk_RealShapeType

strong

形状データの具体的なデータ構造を表す列挙型

列挙値
IFS | fk_IndexFaceSet ベース
SOLID | fk_Solid ベース
TEXTURE | fk_Texture ベース
POINT | fk_Point ベース
LINE | fk_Line ベース
CURVE | fk_Curve ベース
SURFACE | fk_Surface ベース
LIGHT | fk_Light ベース
GRAPH | fk_Graph ベース
OTHER | その他

## ◆ fk_UV

enum class FK::fk_UV : int

strong

曲面の uv 方向を表す列挙型

列挙値
U_S | u側(v始点側)
U_E | u側(v終点側)
V_S | v側(u始点側)
V_E | v側(u終点側)

## ◆ fk_TextAlign

enum class FK::fk_TextAlign

strong

文字列板の文字列配置を表す列挙型

列挙値
LEFT | 左寄せ
CENTER | 中寄せ
RIGHT | 右寄せ

## ◆ fk_TextSendingMode

enum class FK::fk_TextSendingMode

strong

文字列板の文字送りモードを表す列挙型

列挙値
ALL | 全体一括
CHAR | 文字単位
LINE | 行単位

## ◆ fk_TexMode

enum class FK::fk_TexMode

strong

テクスチャモードを表す列挙型

列挙値
MODULATE | 積算モード
DECAL | 線形補間モード
REPLACE | 画像モード
NONE | 指定なし
NUM |

## ◆ fk_TexRendMode

enum class FK::fk_TexRendMode

strong

テクスチャ描画品質を表す列挙型

列挙値
NORMAL | 標準品質
SMOOTH | 高品質

## ◆ fk_TexWrapMode

enum class FK::fk_TexWrapMode

strong

テクスチャ外周部の描画モードを表す列挙型

列挙値
REPEAT | 繰り返し式
CLAMP | 縁部伸張式

## ◆ fk_StringCode

enum class FK::fk_StringCode

strong

日本語文字コードを表す列挙型

列挙値
UTF16 | Unicode (UTF-16)
UTF8 | Unicode (UTF-8)
JIS | ISO-2022-JIS (JISコード)
SJIS | Shift-JIS (SJISコード)
EUC | EUC

## ◆ fk_Axis

enum class FK::fk_Axis

strong

座標軸を表す列挙型

列挙値
X | x軸
Y | y軸
Z | z軸

## ◆ fk_Key

enum class FK::fk_Key

strong

特殊キーを表す列挙型

列挙値
SHIFT_R | 右シフトキー
SHIFT_L | 左シフトキー
CTRL_R | 右コントロールキー
CTRL_L | 左コントロールキー
ALT_R | 右オルトキー
ALT_L | 左オルトキー
ENTER | エンター(改行、リターン)キー
BACKSPACE | バックスペース(後退)キー
DEL | デリート(削除)キー
CAPS_LOCK | キャップスロックキー
TAB | タブキー
PAGE_UP | ページアップキー
PAGE_DOWN | ページダウンキー
HOME | ホームキー
END | エンドキー
INSERT | インサートキー
LEFT | 左矢印キー
RIGHT | 右矢印キー
UP | 上矢印キー
DOWN | 下矢印キー
F1 | F1 ファンクションキー
F2 | F2 ファンクションキー
F3 | F3 ファンクションキー
F4 | F4 ファンクションキー
F5 | F5 ファンクションキー
F6 | F6 ファンクションキー
F7 | F7 ファンクションキー
F8 | F8 ファンクションキー
F9 | F9 ファンクションキー
F10 | F10 ファンクションキー
F11 | F11 ファンクションキー
F12 | F12 ファンクションキー
SPACE | スペースキー

## ◆ fk_MouseButton

enum class FK::fk_MouseButton

strong

マウスボタンを表す列挙型

列挙値
M1 | マウス左クリック(第1ボタン)
M2 | マウス中クリック、あるいはホイールクリック(第2ボタン)
M3 | マウス右クリック(第3ボタン)

## ◆ fk_PutStrMode

enum class FK::fk_PutStrMode

strong

メッセージ出力タイプを表す列挙型

列挙値
NONE | 出力なし
CONSOLE | コンソール標準出力
ERR_CONSOLE | コンソールエラー出力
BROWSER | 専用ブラウザ出力
FILE | ファイル出力

## ◆ fk_Switch

enum class FK::fk_Switch

strong

ボタン系デバイス状態を表す列挙型

列挙値
RELEASE | 離しっぱなしの状態
UP | 離した瞬間
DOWN | 押した瞬間
PRESS | 押しっぱなしの状態

## 関数詳解

## ◆ operator+() [1/9]

fk_Color FK::operator+ | ( | const fk_Color & | ,
|  | const fk_Color & | )

色要素和二項演算子

色値 C1 と C2 の和を得るには、以下のように記述します。 C1, C2, C3 はいずれも fk_Color 型の変数です。

    C3 = C1 + C2;

なお演算の結果、成分値が 1 を超える場合はその成分を 1 とします。

## ◆ operator-() [1/9]

fk_Color FK::operator- | ( | const fk_Color & | ,
|  | const fk_Color & | )

色要素差二項演算子

色値 C1 と C2 の差を得るには、以下のように記述します。 C1, C2, C3 はいずれも fk_Color 型の変数です。

    C3 = C1 - C2;

なお演算の結果、成分値が 0 未満となる場合はその成分を 0 にします。

## ◆ operator*() [1/25]

fk_Color FK::operator* | ( | const fk_Color & | ,
|  | double | )

実数倍二項演算子1

ベクトル C1 のスカラー倍色値を得るには、以下のように記述します。 C1, C2 は共に fk_Color 型の変数で、d は double 型の変数です。

    C2 = C1 * d;

色値と実数の順番は逆でも構いません。 なお演算の結果、成分値が 0 未満となる場合はその成分を 0 に、 1 を超える場合はその成分を 1 とします。

## ◆ operator*() [2/25]

fk_Color FK::operator* | ( | double | ,
|  | const fk_Color & | )

実数倍二項演算子2

ベクトル C1 のスカラー倍色値を得るには、以下のように記述します。 C1, C2 は共に fk_Color 型の変数で、d は double 型の変数です。

    C2 = d * C1;

色値と実数の順番は逆でも構いません。 なお演算の結果、成分値が 0 未満となる場合はその成分を 0 に、 1 を超える場合はその成分を 1 とします。

## ◆ operator/() [1/5]

fk_Color FK::operator/ | ( | const fk_Color & | ,
|  | double | )

実数商二項演算子

ベクトル C1 のスカラー商色値を得るには、以下のように記述します。 C1, C2 は共に fk_Color 型の変数で、d は double 型の変数です。

    C2 = C1/d;

なお演算の結果、成分値が 0 未満となる場合はその成分を 0 に、 1 を超える場合はその成分を 1 とします。

## ◆ operator|() [1/3]

fk_Draw FK::operator| | ( | fk_Draw | ,
|  | fk_Draw | )

描画モード用ビット論理和演算子

## ◆ operator&() [1/3]

fk_Draw FK::operator& | ( | fk_Draw | ,
|  | fk_Draw | )

描画モード用ビット論理積演算子

## ◆ operator^() [1/6]

fk_Draw FK::operator^ | ( | fk_Draw | ,
|  | fk_Draw | )

描画モード用ビット XOR 演算子

## ◆ operator*() [3/25]

fk_GenVector FK::operator* | ( | const fk_GenMatrix & | ,
|  | const fk_GenVector & | )

ベクトル変換二項演算子

任意次元ベクトル V1 の、行列 M による変換ベクトル V2 を求めるには、 以下のように記述します。 V1, V2 は共に fk_GenVector 型の変数で、M は fk_GenMatrix 型の変数です。

    V2 = M * V1;

FK では行列体系として MV 系を採用しており、 行列のベクトル変換の際には行列が左側、ベクトルが右側である必要があります。 なお、この演算では M と V1 の次元数が同一である必要があります。 もし次元数が異なった場合は、次元が 0 のベクトルを返します。

## ◆ operator+() [2/9]

fk_GenMatrix FK::operator+ | ( | const fk_GenMatrix & | ,
|  | const fk_GenMatrix & | )

行列和二項演算子

行列 M1, M2 の行列和 M3 を求めるには、 以下のように記述します。 M1, M2, M3 はいずれも fk_GenMatrix 型です。

    M3 = M1 + M2;

覚え書き
  行列和は交換法則が成り立ちます。 なお、この演算では M1 と M2 の次元数が同一である必要があります。 もし次元数が異なった場合は、次元が 0 の行列を返します。

## ◆ operator-() [2/9]

fk_GenMatrix FK::operator- | ( | const fk_GenMatrix & | ,
|  | const fk_GenMatrix & | )

行列差二項演算子

行列 M1, M2 の行列差 M3 を求めるには、 以下のように記述します。 M1, M2, M3 はいずれも fk_GenMatrix 型です。

    M3 = M1 - M2;

覚え書き
  行列差は交換法則は成り立ちません。 なお、この演算では M1 と M2 の次元数が同一である必要があります。 もし次元数が異なった場合は、次元が 0 の行列を返します。

## ◆ operator*() [4/25]

fk_GenMatrix FK::operator* | ( | const fk_GenMatrix & | ,
|  | const fk_GenMatrix & | )

行列積二項演算子

行列 M1, M2 の行列積 M3 を求めるには、 以下のように記述します。 M1, M2, M3 はいずれも fk_GenMatrix 型の変数です。

    M3 = M1 * M2;

覚え書き
  行列積は交換法則が成り立たないため、 \( \mathbf{M}_1\mathbf{M}_2 \) と \( \mathbf{M}_2\mathbf{M}_1 \) は一般的に結果が異なります。 なお、この演算では M1 と M2 の次元数が同一である必要があります。 もし次元数が異なった場合は、次元が 0 の行列を返します。

## ◆ operator*() [5/25]

double FK::operator* | ( | const fk_GenVector & | P,
|  | const fk_GenVector & | Q )

内積二項演算子

fk_GenVector 型の n 次元ベクトル \( \mathbf{P} \) と \( \mathbf{Q} \) の内積値(スカラー積)は、以下のように定義されます。

\[ \mathbf{P}\cdot\mathbf{Q} = \sum_{i=0}^{n-1} P_iQ_i \]

これを得るには、以下のように記述します。d は double 型の変数です。

    d = P * Q;

P と Q の次元数が異なる場合は、無条件に 0.0 を返します。 なお、内積演算は交換法則が成り立ちます。

## ◆ operator+() [3/9]

fk_GenVector FK::operator+ | ( | const fk_GenVector & | P,
|  | const fk_GenVector & | Q )

ベクトル和二項演算子

ベクトル P と Q の和を得るには、以下のように記述します。 P, Q, R はいずれも fk_GenVector 型の変数です。

    R = P + Q;

P と Q の次元数が異なる場合は、次元数 0 のベクトルを返します。 なお、和演算は交換法則が成り立ちます。

## ◆ operator-() [3/9]

fk_GenVector FK::operator- | ( | const fk_GenVector & | P,
|  | const fk_GenVector & | Q )

ベクトル差二項演算子

ベクトル P と Q の差を得るには、以下のように記述します。 P, Q, R はいずれも fk_GenVector 型の変数です。

    R = P - Q;

P と Q の次元数が異なる場合は、次元数 0 のベクトルを返します。 なお、差演算は交換法則は成り立ちません。

## ◆ operator*() [6/25]

fk_GenVector FK::operator* | ( | const fk_GenVector & | V,
|  | double | d )

実数倍二項演算子1

ベクトル V1 のスカラー倍ベクトルを得るには、以下のように記述します。 V1, V2 は共に fk_GenVector 型の変数で、d は double 型の変数です。

    V2 = V1 * d;

なお、ベクトルと実数の順番は逆でも構いません。

## ◆ operator*() [7/25]

fk_GenVector FK::operator* | ( | double | d,
|  | const fk_GenVector & | V )

実数倍二項演算子2

ベクトル V1 のスカラー倍ベクトルを得るには、以下のように記述します。 V1, V2 は共に fk_GenVector 型の変数で、d は double 型の変数です。

    V2 = d * V1;

なお、ベクトルと実数の順番は逆でも構いません。

## ◆ operator/() [2/5]

fk_GenVector FK::operator/ | ( | const fk_GenVector & | V,
|  | double | d )

実数商二項演算子

ベクトル V1 のスカラー商ベクトルを得るには、以下のように記述します。 V1, V2 は共に fk_GenVector 型の変数で、d は double 型の変数です。

    V2 = V1/d;

## ◆ operator^() [2/6]

fk_GenVector FK::operator^ | ( | const fk_GenVector & | P,
|  | const fk_GenVector & | Q )

外積二項演算子

n次元ベクトル \( \mathbf{P} \) と \( \mathbf{Q} \) の外積ベクトル(ベクトル積)は、以下のように定義されます。

\[ \mathbf{P} \times \mathbf{Q} = \left(P_1Q_2 - P_2Q_1, \; P_2Q_3 - P_3Q_2, \ldots, \; P_{n-2}Q_{n-1} - P_{n-1}Q_{n-2}, \; P_{n-1}Q_0 - P_0Q_{n-1}, \; P_0Q_1 - P_1Q_0\right) \]

これを得るには、以下のように記述します。 P,Q,R はいずれも fk_Vector 型の変数です。

    R = P ^ Q;

P と Q の次元数が異なる場合は、次元数 0 のベクトルを返します。

## ◆ operator|() [2/3]

fk_Guide FK::operator| | ( | fk_Guide | ,
|  | fk_Guide | )

座標ガイド用ビット論理和演算子

## ◆ operator&() [2/3]

fk_Guide FK::operator& | ( | fk_Guide | ,
|  | fk_Guide | )

座標ガイド用ビット論理積演算子

## ◆ operator^() [3/6]

fk_Guide FK::operator^ | ( | fk_Guide | ,
|  | fk_Guide | )

座標ガイド用ビット XOR 演算子

## ◆ operator+() [4/9]

fk_Dimension FK::operator+ | ( | const fk_Dimension & | ,
|  | const fk_Dimension & | )

整数値ベクトル和二項演算子

## ◆ operator-() [4/9]

fk_Dimension FK::operator- | ( | const fk_Dimension & | ,
|  | const fk_Dimension & | )

整数値ベクトル差二項演算子

## ◆ operator*() [8/25]

fk_Dimension FK::operator* | ( | const fk_Dimension & | ,
|  | int | )

整数値ベクトル倍演算二項演算子1

## ◆ operator*() [9/25]

fk_Dimension FK::operator* | ( | int | ,
|  | const fk_Dimension & | )

整数値ベクトル倍演算二項演算子2

## ◆ operator/() [3/5]

fk_Dimension FK::operator/ | ( | const fk_Dimension & | ,
|  | int | )

整数値ベクトル商演算二項演算子

## ◆ fk_InitMaterial()

void FK::fk_InitMaterial | ( | void |  | ) |

デフォルトマテリアル変数の初期化

この関数は、最初から用意されているマテリアル用変数の初期化を行います。 これを行わないと、各変数に適切な値が入力されません。 この関数を呼んだあとに、各変数のマテリアル要素を設定しなおすことが可能です。 その後改めて初期化するには、再度この関数を呼んで下さい。

## ◆ operator*() [10/25]

fk_HVector FK::operator* | ( | const fk_OrthoMatrix & | ,
|  | const fk_HVector & | )

ベクトル変換二項演算子

行列変換二項演算子2

4次元ベクトル V1 の、直交行列 M による変換ベクトル V2 を求めるには、 以下のように記述します。 V1, V2 は共に fk_HVector 型の変数で、M は fk_OrthoMatrix 型の変数です。

    V2 = M * V1;

FK では行列体系として MV 系を採用しており、 行列のベクトル変換の際には行列が左側、ベクトルが右側である必要があります。

以下のコードは、fk_HVector 型の変数 V_org を fk_OrthoMatrix 型の変数 M によって変換した値を、 fk_HVector 型変数 V_new に代入します。

    V_new = M * V_org;

FK では行列体系として MV 系を採用しており、 行列のベクトル変換の際には行列が左側、ベクトルが右側である必要があります。

## ◆ operator*() [11/25]

fk_OrthoMatrix FK::operator* | ( | const fk_OrthoMatrix & | ,
|  | const fk_OrthoMatrix & | )

行列積二項演算子1

直交行列 M1, M2 の行列積 M3 を求めるには、 以下のように記述します。 M1, M2, M3 はいずれも fk_OrthoMatrix 型の変数です。

    M3 = M1 * M2;

覚え書き
  行列積は交換法則が成り立たないため、 \( \mathbf{M}_1\mathbf{M}_2 \) と \( \mathbf{M}_2\mathbf{M}_1 \) は一般的に結果が異なります。

## ◆ operator*() [12/25]

fk_Matrix FK::operator* | ( | const fk_Matrix & | ,
|  | const fk_OrthoMatrix & | )

行列積二項演算子2

一般行列 M_ord と直交行列 M_ortho の行列積 M を求めるには、 以下のように記述します。 M_ord, M は fk_Matrix 型、M_ortho は fk_OrthoMatrix 型の変数です。

    M = M_ord * M_ortho;

覚え書き
  行列積は交換法則が成り立たないため、 \( \mathbf{M}_1\mathbf{M}_2 \) と \( \mathbf{M}_2\mathbf{M}_1 \) は一般的に結果が異なります。

## ◆ operator*() [13/25]

fk_Matrix FK::operator* | ( | const fk_OrthoMatrix & | ,
|  | const fk_Matrix & | )

行列積二項演算子3

直交行列 M_ortho と一般行列 M_ord の行列積 M を求めるには、 以下のように記述します。 M_ord, M は fk_Matrix 型、M_ortho は fk_OrthoMatrix 型の変数です。

    M = M_ortho * M_ord;

覚え書き
  行列積は交換法則が成り立たないため、 \( \mathbf{M}_1\mathbf{M}_2 \) と \( \mathbf{M}_2\mathbf{M}_1 \) は一般的に結果が異なります。

## ◆ operator+() [5/9]

fk_Matrix FK::operator+ | ( | const fk_Matrix & | ,
|  | const fk_OrthoMatrix & | )

行列和二項演算子1

一般行列 M_ord と直交行列 M_ortho の行列和 M を求めるには、 以下のように記述します。 M_ord, M は fk_Matrix 型、M_ortho は fk_OrthoMatrix 型の変数です。

    M = M_ord + M_ortho;

覚え書き
  行列和は交換法則が成り立ちます。

## ◆ operator+() [6/9]

fk_Matrix FK::operator+ | ( | const fk_OrthoMatrix & | ,
|  | const fk_Matrix & | )

行列和二項演算子2

直交行列 M_ortho と一般行列 M_ord の行列和 M を求めるには、 以下のように記述します。 M_ord, M は fk_Matrix 型、M_ortho は fk_OrthoMatrix 型の変数です。

    M = M_ortho + M_ord;

覚え書き
  行列和は交換法則が成り立ちます。

## ◆ operator-() [5/9]

fk_Matrix FK::operator- | ( | const fk_Matrix & | ,
|  | const fk_OrthoMatrix & | )

行列差二項演算子1

一般行列 M_ord と直交行列 M_ortho の行列差 M を求めるには、 以下のように記述します。 M_ord, M は fk_Matrix 型、M_ortho は fk_OrthoMatrix 型の変数です。

    M = M_ord - M_ortho;

覚え書き
  行列差は交換法則が成り立ちません。

## ◆ operator-() [6/9]

fk_Matrix FK::operator- | ( | const fk_OrthoMatrix & | ,
|  | const fk_Matrix & | )

行列差二項演算子2

直交行列 M_ortho と一般行列 M_ord の行列差 M を求めるには、 以下のように記述します。 M_ord, M は fk_Matrix 型、M_ortho は fk_OrthoMatrix 型の変数です。

    M = M_ortho - M_ord;

覚え書き
  行列差は交換法則が成り立ちません。

## ◆ operator*() [14/25]

fk_HVector FK::operator* | ( | const fk_Matrix & | ,
|  | const fk_HVector & | )

ベクトル変換二項演算子

行列変換二項演算子1

4次元ベクトル V1 の、行列 M による変換ベクトル V2 を求めるには、 以下のように記述します。 V1, V2 は共に fk_HVector 型の変数で、M は fk_Matrix 型の変数です。

    V2 = M * V1;

FK では行列体系として MV 系を採用しており、 行列のベクトル変換の際には行列が左側、ベクトルが右側である必要があります。

以下のコードは、fk_HVector 型の変数 V_org を fk_Matrix 型の変数 M によって変換した値を、 fk_HVector 型変数 V_new に代入します。

    V_new = M * V_org;

FK では行列体系として MV 系を採用しており、 行列のベクトル変換の際には行列が左側、ベクトルが右側である必要があります。

## ◆ operator*() [15/25]

fk_Matrix FK::operator* | ( | const fk_Matrix & | ,
|  | const fk_Matrix & | )

行列積二項演算子

行列 M1, M2 の行列積 M3 を求めるには、 以下のように記述します。 M1, M2, M3 はいずれも fk_Matrix 型の変数です。

    M3 = M1 * M2;

覚え書き
  行列積は交換法則が成り立たないため、 \( \mathbf{M}_1\mathbf{M}_2 \) と \( \mathbf{M}_2\mathbf{M}_1 \) は一般的に結果が異なります。

## ◆ operator*() [16/25]

fk_Matrix FK::operator* | ( | double | ,
|  | const fk_Matrix & | )

行列実数倍二項演算子1

行列 M1 のスカラー倍行列をエルには、以下のように記述します。 M1, M2 はいずれも fk_Matrix 型の変数で、d は double 型の変数です。

    M2 = d * M1;

なお、行列と実数の順番は逆でも構いません。

## ◆ operator*() [17/25]

fk_Matrix FK::operator* | ( | const fk_Matrix & | ,
|  | double | )

行列実数倍二項演算子2

行列 M1 のスカラー倍行列をエルには、以下のように記述します。 M1, M2 はいずれも fk_Matrix 型の変数で、d は double 型の変数です。

    M2 = M1 * d;

なお、行列と実数の順番は逆でも構いません。

## ◆ operator+() [7/9]

fk_Matrix FK::operator+ | ( | const fk_Matrix & | ,
|  | const fk_Matrix & | )

行列和二項演算子

行列 M1, M2 の行列和 M3 を求めるには、 以下のように記述します。 M1, M2, M3 はいずれも fk_Matrix 型です。

    M3 = M1 + M2;

覚え書き
  行列和は交換法則が成り立ちます。

## ◆ operator-() [7/9]

fk_Matrix FK::operator- | ( | const fk_Matrix & | ,
|  | const fk_Matrix & | )

行列差二項演算子

行列 M1, M2 の行列差 M3 を求めるには、 以下のように記述します。 M1, M2, M3 はいずれも fk_Matrix 型です。

    M3 = M1 - M2;

覚え書き
  行列差は交換法則が成り立ちません。

## ◆ operator*() [18/25]

fk_Quaternion FK::operator* | ( | const fk_Quaternion & | ,
|  | const fk_Quaternion & | )

四元数積二項演算子

2つの四元数 \(\mathbf{q}_1, \mathbf{q}_2\) に対し、 それぞれのスカラー部とベクトル部を以下のように記述するとします。

\[ \mathbf{q}_1 = s_1 + \mathbf{V}_1, \; \mathbf{q}_2 = s_2 + \mathbf{V}_2 \]

このとき、四元数の積は以下のように定義されます。

\[ \mathbf{q}_1\mathbf{q}_2 = \left(s_1s_2 - \mathbf{V}_1\cdot\mathbf{V}_2\right) + \left(s_1\mathbf{V}_2+s_2\mathbf{V}_1 + \mathbf{V}_1 \times \mathbf{V}_2\right) \]

これを得るには、以下のように記述します。 q1, q2, q はいずれも fk_Quaternion 型の変数です。

    q = q1 * q2;

四元数の積は、四元数を回転変換として考えたとき、合成変換を生成することを意味します。 なお、四元数の積は交換法則は成り立ちません。

## ◆ operator+() [8/9]

fk_Quaternion FK::operator+ | ( | const fk_Quaternion & | ,
|  | const fk_Quaternion & | )

四元数和二項演算子

四元数の和は、全ての成分同士を加算することで定義されます。 四元数 q1 と q2 の和を得るには、以下のように記述します。 q1, q2, q はいずれも fk_Quaternion 型の変数です。

    q = q1 + q2;

## ◆ operator-() [8/9]

fk_Quaternion FK::operator- | ( | const fk_Quaternion & | ,
|  | const fk_Quaternion & | )

四元数差二項演算子

四元数の差は、全ての成分同士を減算することで定義されます。 四元数 q1 と q2 の差を得るには、以下のように記述します。 q1, q2, q はいずれも fk_Quaternion 型の変数です。

    q = q1 - q2;

## ◆ operator*() [19/25]

fk_Quaternion FK::operator* | ( | const fk_Quaternion & | ,
|  | double | )

四元数スカラー倍二項演算子1

四元数のスカラー倍は、全ての成分に与えられた実数を掛けることで定義されます。 これを得るには、以下のように記述します。 q1, q2 はいずれも fk_Quaternion 型の変数で、d は double 型の変数です。

    q2 = q1 * d;

なお、四元数と実数の順番は逆でも構いません。

## ◆ operator*() [20/25]

fk_Quaternion FK::operator* | ( | double | ,
|  | const fk_Quaternion & | )

四元数スカラー倍二項演算子2

四元数のスカラー倍は、全ての成分に与えられた実数を掛けることで定義されます。 これを得るには、以下のように記述します。 q1, q2 はいずれも fk_Quaternion 型の変数で、d は double 型の変数です。

    q2 = d * q1;

なお、四元数と実数の順番は逆でも構いません。

## ◆ operator/() [4/5]

fk_Quaternion FK::operator/ | ( | const fk_Quaternion & | ,
|  | double | )

四元数スカラー商二項演算子

四元数のスカラー商は、全ての成分を与えられた実数で割ることで定義されます。 これを得るには、以下のように記述します。 q1, q2 はいずれも fk_Quaternion 型の変数で、d は double 型の変数です。

    q2 = q1 / d;

## ◆ operator*() [21/25]

fk_Vector FK::operator* | ( | const fk_Quaternion & | ,
|  | const fk_Vector & | )

四元数ベクトル変換二項演算子

四元数は、数学的には任意軸回転変換を表現します。 一つの四元数 \( \mathbf{q} \) は3次元ベクトル \(\mathbf{V}\) に対し、

\[ \mathbf{V}' = \mathbf{q}\mathbf{V}\mathbf{q}^{-1} \]

という演算によって回転変換したベクトル \(\mathbf{V}'\) を求めることができます。

上記の変換ベクトルを得るには、以下のように記述します。 v1, v2 はともに fk_Vector 型の変数、q は fk_Quaternion 型の変数です。 v1 が元のベクトル、v2 が変換後のベクトルを意味します。

    v2 = q * v1;

## ◆ operator^() [4/6]

double FK::operator^ | ( | const fk_Quaternion & | ,
|  | const fk_Quaternion & | )

四元数内積二項演算子

2つの四元数 \(\mathbf{q}_1 = s_1 + x_1i + y_1j + z_1k, \; \mathbf{q}_2 = s_2 + x_2i + y_2j + z_2k \) の内積(スカラー積)は、以下のように定義されます。

\[ \mathbf{q}_1\cdot\mathbf{q}_2 = s_1s_2 + x_1x_2 + y_1y_2 + z_1z_2 \]

これを得るには、以下のように記述します。 q1, q2 は fk_Quaternion 型の変数、d は double 型の変数です。

    d = q1 ^ q2;

なお、四元数の内積は交換法則が成り立ちます。

覚え書き
  ここで演算子として採用されている「^」は、 C++ の仕様上あまり演算子としての優先度が高くありません。 そのため、括弧を適切に使用しないと本来の意図と異なる結果を生じるおそれがあります。

## ◆ operator|() [3/3]

fk_DepthMode FK::operator| | ( | fk_DepthMode | argL,
|  | fk_DepthMode | argR )

デプス読み書きモード用ビット論理和演算子

## ◆ operator&() [3/3]

fk_DepthMode FK::operator& | ( | fk_DepthMode | argL,
|  | fk_DepthMode | argR )

デプス読み書きモード用ビット論理積演算子

## ◆ operator^() [5/6]

fk_DepthMode FK::operator^ | ( | fk_DepthMode | argL,
|  | fk_DepthMode | argR )

デプス読み書きモード用ビット XOR 演算子

## ◆ operator*() [22/25]

double FK::operator* | ( | const fk_Vector & | ,
|  | const fk_Vector & | )

内積二項演算子

3次元ベクトル \( \mathbf{P} \) と \( \mathbf{Q} \) の内積値(スカラー積)は、以下のように定義されます。

\[ \mathbf{P}\cdot\mathbf{Q} = P_xQ_x + P_yQ_y + P_zQ_z \]

これを得るには、以下のように記述します。 P, Q はともに fk_Vector 型の変数で、d は double 型の変数です。

    d = P * Q;

なお、内積は交換法則が成り立ちます。

## ◆ operator+() [9/9]

fk_Vector FK::operator+ | ( | const fk_Vector & | ,
|  | const fk_Vector & | )

ベクトル和二項演算子

ベクトル V1 と V2 の和を得るには、以下のように記述します。 V1, V2, V3 はいずれも fk_Vector 型の変数です。

    V3 = V1 + V2;

なお、和演算は交換法則が成り立ちます。

## ◆ operator-() [9/9]

fk_Vector FK::operator- | ( | const fk_Vector & | ,
|  | const fk_Vector & | )

ベクトル差二項演算子

ベクトル V1 と V2 の差を得るには、以下のように記述します。 V1, V2, V3 はいずれも fk_Vector 型の変数です。

    V3 = V1 - V2;

なお、差演算は交換法則が成り立ちません。

## ◆ operator*() [23/25]

fk_Vector FK::operator* | ( | const fk_Vector & | ,
|  | double | )

実数倍二項演算子1

ベクトル V1 のスカラー倍ベクトルを得るには、以下のように記述します。 V1, V2 は共に fk_Vector 型の変数で、d は double 型の変数です。

    V2 = V1 * d;

なお、ベクトルと実数の順番は逆でも構いません。

## ◆ operator*() [24/25]

fk_Vector FK::operator* | ( | double | ,
|  | const fk_Vector & | )

実数倍二項演算子2

ベクトル V1 のスカラー倍ベクトルを得るには、以下のように記述します。 V1, V2 は共に fk_Vector 型の変数で、d は double 型の変数です。

    V2 = d * V1;

なお、ベクトルと実数の順番は逆でも構いません。

## ◆ operator/() [5/5]

fk_Vector FK::operator/ | ( | const fk_Vector & | ,
|  | double | )

実数商二項演算子

ベクトル V1 のスカラー商ベクトルを得るには、以下のように記述します。 V1, V2 は共に fk_Vector 型の変数で、d は double 型の変数です。

    V2 = V1/d;

## ◆ operator^() [6/6]

fk_Vector FK::operator^ | ( | const fk_Vector & | ,
|  | const fk_Vector & | )

外積二項演算子

3次元ベクトル \( \mathbf{P} \) と \( \mathbf{Q} \) の外積ベクトル(ベクトル積)は、以下のように定義されます。

\[ \mathbf{P} \times \mathbf{Q} = (P_yQ_z - P_zQ_y, \; P_zQ_x - P_xQ_z, \; P_xQ_y - P_yQ_x) \]

これを得るには、以下のように記述します。 P,Q,R はいずれも fk_Vector 型の変数です。

    R = P ^ Q;

なお、外積は以下のような法則があります。

- \(\mathbf{P}\), \(\mathbf{Q}\) が平行でない場合、 上記の \(\mathbf{R}\) は、 \(\mathbf{P}\), \(\mathbf{Q}\) の双方と垂直である。
- \(\mathbf{P}\), \(\mathbf{Q}\) が平行な場合、 \(\mathbf{R}\) は零ベクトルとなる。
- \( (\mathbf{P} \times \mathbf{Q}) = -(\mathbf{Q} \times \mathbf{P}) \) である。
  覚え書き
    ここで演算子として採用されている「^」は、 C++ の仕様上あまり演算子としての優先度が高くありません。 そのため、括弧を適切に使用しないと本来の意図と異なる結果を生じるおそれがあります。

## ◆ operator*() [25/25]

double FK::operator* | ( | const fk_HVector & | ,
|  | const fk_HVector & | )

内積二項演算子

fk_HVector 型のベクトル V1 と V2 について、 それぞれの3次元ベクトル部の内積値(スカラー積)を得るには、以下のように記述します。 V1, V2 はともに fk_HVector 型の変数で、d は double 型の変数です。

    d = V1 * V2;

なお、内積は交換法則が成り立ちます。 同次座標成分については、内積値の算出には利用しません。