|
FineKernelToolKit 4.2.13
|
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 } |
| オブジェクトインスタンスのタイプを表す列挙型 [詳解] | |
| 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 } |
| ボタン系デバイス状態を表す列挙型 [詳解] | |
Fine Kernel Toolkit 名前空間
|
strong |
オブジェクトインスタンスのタイプを表す列挙型
| 列挙値 | |
|---|---|
| BASEOBJECT | |
| MATRIXADMIN | |
| MODEL | fk_Model 型 |
| DISPLAYLINK | |
| SCENE | fk_Scene 型 |
| SHAPE | fk_Shape 型 |
| POLYGON | |
| LINE | fk_Line 型 |
| POLYLINE | |
| POINT | fk_Point 型 |
| CIRCLE | |
| SPHERE | |
| BLOCK | fk_Block 型 |
| CLOSEDLINE | |
| PRISM | fk_Prism 型 |
| CAPSULE | |
| CONE | fk_Cone 型 |
| INDEXFACESET | |
| LIGHT | fk_Light 型 |
| CURVE | fk_Curve 型 |
| BEZCURVE | |
| RBEZCURVE | |
| BSPLCURVE | |
| SURFACE | |
| BEZSURFACE | |
| GREGORY | |
| IMAGE | fk_Image 型 |
| FRAMEBUFFER | |
| TEXCOORD | |
| TEXTURE | |
| RECTTEXTURE | |
| TRITEXTURE | |
| MESHTEXTURE | |
| IFSTEXTURE | |
| ARTEXTURE | fk_ARTexture 型 |
| UNICHAR | |
| UNISTR | |
| TEXTIMAGE | |
| COLOR | fk_Color 型 |
| MATERIAL | |
| PALETTE | |
| PLANE | fk_Plane 型 |
| WINDOW | |
| PICKDATA | fk_PickData 型 |
| PROJECTBASE | |
| PERSPECTIVE | |
| FRUSTUM | |
| ORTHO | fk_Ortho 型 |
| VERTEX | |
| HALF | fk_Half 型 |
| EDGE | fk_Edge 型 |
| LOOP | fk_Loop 型 |
| SOLID | fk_Solid 型 |
| SHAPEVIEWER | |
| PARTICLE | |
| PARTICLESET | |
| GRAPH | fk_Graph 型 |
| GRAPHNODE | |
| GRAPHEDGE | |
| CSV | fk_CSV 型 |
| RAY | fk_Ray 型 |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
fk_Math クラス内での直線群タイプを表す列挙型
| 列挙値 | |
|---|---|
| OPEN | 直線 |
| CLOSE | 有向線分 |
| HALF | 半直線 |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
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 | その他 |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
特殊キーを表す列挙型
|
strong |
|
strong |
|
strong |
色要素和二項演算子
色値 C1 と C2 の和を得るには、以下のように記述します。 C1, C2, C3 はいずれも fk_Color 型の変数です。
C3 = C1 + C2;
なお演算の結果、成分値が 1 を超える場合はその成分を 1 とします。
色要素差二項演算子
色値 C1 と C2 の差を得るには、以下のように記述します。 C1, C2, C3 はいずれも fk_Color 型の変数です。
C3 = C1 - C2;
なお演算の結果、成分値が 0 未満となる場合はその成分を 0 にします。
実数倍二項演算子1
ベクトル C1 のスカラー倍色値を得るには、以下のように記述します。 C1, C2 は共に fk_Color 型の変数で、d は double 型の変数です。
C2 = C1 * d;
色値と実数の順番は逆でも構いません。 なお演算の結果、成分値が 0 未満となる場合はその成分を 0 に、 1 を超える場合はその成分を 1 とします。
実数倍二項演算子2
ベクトル C1 のスカラー倍色値を得るには、以下のように記述します。 C1, C2 は共に fk_Color 型の変数で、d は double 型の変数です。
C2 = d * C1;
色値と実数の順番は逆でも構いません。 なお演算の結果、成分値が 0 未満となる場合はその成分を 0 に、 1 を超える場合はその成分を 1 とします。
実数商二項演算子
ベクトル C1 のスカラー商色値を得るには、以下のように記述します。 C1, C2 は共に fk_Color 型の変数で、d は double 型の変数です。
C2 = C1/d;
なお演算の結果、成分値が 0 未満となる場合はその成分を 0 に、 1 を超える場合はその成分を 1 とします。
| 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 のベクトルを返します。
| fk_GenMatrix FK::operator+ | ( | const fk_GenMatrix & | , |
| const fk_GenMatrix & | |||
| ) |
行列和二項演算子
行列 M1, M2 の行列和 M3 を求めるには、 以下のように記述します。 M1, M2, M3 はいずれも fk_GenMatrix 型です。
M3 = M1 + M2;
| fk_GenMatrix FK::operator- | ( | const fk_GenMatrix & | , |
| const fk_GenMatrix & | |||
| ) |
行列差二項演算子
行列 M1, M2 の行列差 M3 を求めるには、 以下のように記述します。 M1, M2, M3 はいずれも fk_GenMatrix 型です。
M3 = M1 - M2;
| fk_GenMatrix FK::operator* | ( | const fk_GenMatrix & | , |
| const fk_GenMatrix & | |||
| ) |
行列積二項演算子
行列 M1, M2 の行列積 M3 を求めるには、 以下のように記述します。 M1, M2, M3 はいずれも fk_GenMatrix 型の変数です。
M3 = M1 * M2;
| 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 を返します。 なお、内積演算は交換法則が成り立ちます。
| 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 のベクトルを返します。 なお、和演算は交換法則が成り立ちます。
| 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 のベクトルを返します。 なお、差演算は交換法則は成り立ちません。
| fk_GenVector FK::operator* | ( | const fk_GenVector & | V, |
| double | d | ||
| ) |
実数倍二項演算子1
ベクトル V1 のスカラー倍ベクトルを得るには、以下のように記述します。 V1, V2 は共に fk_GenVector 型の変数で、d は double 型の変数です。
V2 = V1 * d;
なお、ベクトルと実数の順番は逆でも構いません。
| fk_GenVector FK::operator* | ( | double | d, |
| const fk_GenVector & | V | ||
| ) |
実数倍二項演算子2
ベクトル V1 のスカラー倍ベクトルを得るには、以下のように記述します。 V1, V2 は共に fk_GenVector 型の変数で、d は double 型の変数です。
V2 = d * V1;
なお、ベクトルと実数の順番は逆でも構いません。
| fk_GenVector FK::operator/ | ( | const fk_GenVector & | V, |
| double | d | ||
| ) |
実数商二項演算子
ベクトル V1 のスカラー商ベクトルを得るには、以下のように記述します。 V1, V2 は共に fk_GenVector 型の変数で、d は double 型の変数です。
V2 = V1/d;
| 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 のベクトルを返します。
| fk_Dimension FK::operator+ | ( | const fk_Dimension & | , |
| const fk_Dimension & | |||
| ) |
整数値ベクトル和二項演算子
| fk_Dimension FK::operator- | ( | const fk_Dimension & | , |
| const fk_Dimension & | |||
| ) |
整数値ベクトル差二項演算子
| fk_Dimension FK::operator* | ( | const fk_Dimension & | , |
| int | |||
| ) |
整数値ベクトル倍演算二項演算子1
| fk_Dimension FK::operator* | ( | int | , |
| const fk_Dimension & | |||
| ) |
整数値ベクトル倍演算二項演算子2
| fk_Dimension FK::operator/ | ( | const fk_Dimension & | , |
| int | |||
| ) |
整数値ベクトル商演算二項演算子
| void FK::fk_InitMaterial | ( | void | ) |
デフォルトマテリアル変数の初期化
この関数は、最初から用意されているマテリアル用変数の初期化を行います。 これを行わないと、各変数に適切な値が入力されません。 この関数を呼んだあとに、各変数のマテリアル要素を設定しなおすことが可能です。 その後改めて初期化するには、再度この関数を呼んで下さい。
| 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 系を採用しており、 行列のベクトル変換の際には行列が左側、ベクトルが右側である必要があります。
| fk_OrthoMatrix FK::operator* | ( | const fk_OrthoMatrix & | , |
| const fk_OrthoMatrix & | |||
| ) |
行列積二項演算子1
直交行列 M1, M2 の行列積 M3 を求めるには、 以下のように記述します。 M1, M2, M3 はいずれも fk_OrthoMatrix 型の変数です。
M3 = M1 * M2;
| 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;
| 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;
| 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;
| 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;
| 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;
| 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;
| 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 系を採用しており、 行列のベクトル変換の際には行列が左側、ベクトルが右側である必要があります。
行列積二項演算子
行列 M1, M2 の行列積 M3 を求めるには、 以下のように記述します。 M1, M2, M3 はいずれも fk_Matrix 型の変数です。
M3 = M1 * M2;
行列実数倍二項演算子1
行列 M1 のスカラー倍行列をエルには、以下のように記述します。 M1, M2 はいずれも fk_Matrix 型の変数で、d は double 型の変数です。
M2 = d * M1;
なお、行列と実数の順番は逆でも構いません。
行列実数倍二項演算子2
行列 M1 のスカラー倍行列をエルには、以下のように記述します。 M1, M2 はいずれも fk_Matrix 型の変数で、d は double 型の変数です。
M2 = M1 * d;
なお、行列と実数の順番は逆でも構いません。
行列和二項演算子
行列 M1, M2 の行列和 M3 を求めるには、 以下のように記述します。 M1, M2, M3 はいずれも fk_Matrix 型です。
M3 = M1 + M2;
行列差二項演算子
行列 M1, M2 の行列差 M3 を求めるには、 以下のように記述します。 M1, M2, M3 はいずれも fk_Matrix 型です。
M3 = M1 - M2;
| 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;
四元数の積は、四元数を回転変換として考えたとき、合成変換を生成することを意味します。 なお、四元数の積は交換法則は成り立ちません。
| fk_Quaternion FK::operator+ | ( | const fk_Quaternion & | , |
| const fk_Quaternion & | |||
| ) |
四元数和二項演算子
四元数の和は、全ての成分同士を加算することで定義されます。 四元数 q1 と q2 の和を得るには、以下のように記述します。 q1, q2, q はいずれも fk_Quaternion 型の変数です。
q = q1 + q2;
| fk_Quaternion FK::operator- | ( | const fk_Quaternion & | , |
| const fk_Quaternion & | |||
| ) |
四元数差二項演算子
四元数の差は、全ての成分同士を減算することで定義されます。 四元数 q1 と q2 の差を得るには、以下のように記述します。 q1, q2, q はいずれも fk_Quaternion 型の変数です。
q = q1 - q2;
| fk_Quaternion FK::operator* | ( | const fk_Quaternion & | , |
| double | |||
| ) |
四元数スカラー倍二項演算子1
四元数のスカラー倍は、全ての成分に与えられた実数を掛けることで定義されます。 これを得るには、以下のように記述します。 q1, q2 はいずれも fk_Quaternion 型の変数で、d は double 型の変数です。
q2 = q1 * d;
なお、四元数と実数の順番は逆でも構いません。
| fk_Quaternion FK::operator* | ( | double | , |
| const fk_Quaternion & | |||
| ) |
四元数スカラー倍二項演算子2
四元数のスカラー倍は、全ての成分に与えられた実数を掛けることで定義されます。 これを得るには、以下のように記述します。 q1, q2 はいずれも fk_Quaternion 型の変数で、d は double 型の変数です。
q2 = d * q1;
なお、四元数と実数の順番は逆でも構いません。
| fk_Quaternion FK::operator/ | ( | const fk_Quaternion & | , |
| double | |||
| ) |
四元数スカラー商二項演算子
四元数のスカラー商は、全ての成分を与えられた実数で割ることで定義されます。 これを得るには、以下のように記述します。 q1, q2 はいずれも fk_Quaternion 型の変数で、d は double 型の変数です。
q2 = q1 / d;
| 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;
| 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;
なお、四元数の内積は交換法則が成り立ちます。
| fk_DepthMode FK::operator| | ( | fk_DepthMode | argL, |
| fk_DepthMode | argR | ||
| ) |
デプス読み書きモード用ビット論理和演算子
| fk_DepthMode FK::operator& | ( | fk_DepthMode | argL, |
| fk_DepthMode | argR | ||
| ) |
デプス読み書きモード用ビット論理積演算子
| fk_DepthMode FK::operator^ | ( | fk_DepthMode | argL, |
| fk_DepthMode | argR | ||
| ) |
デプス読み書きモード用ビット XOR 演算子
内積二項演算子
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;
なお、内積は交換法則が成り立ちます。
ベクトル和二項演算子
ベクトル V1 と V2 の和を得るには、以下のように記述します。 V1, V2, V3 はいずれも fk_Vector 型の変数です。
V3 = V1 + V2;
なお、和演算は交換法則が成り立ちます。
ベクトル差二項演算子
ベクトル V1 と V2 の差を得るには、以下のように記述します。 V1, V2, V3 はいずれも fk_Vector 型の変数です。
V3 = V1 - V2;
なお、差演算は交換法則が成り立ちません。
実数倍二項演算子1
ベクトル V1 のスカラー倍ベクトルを得るには、以下のように記述します。 V1, V2 は共に fk_Vector 型の変数で、d は double 型の変数です。
V2 = V1 * d;
なお、ベクトルと実数の順番は逆でも構いません。
実数倍二項演算子2
ベクトル V1 のスカラー倍ベクトルを得るには、以下のように記述します。 V1, V2 は共に fk_Vector 型の変数で、d は double 型の変数です。
V2 = d * V1;
なお、ベクトルと実数の順番は逆でも構いません。
実数商二項演算子
ベクトル V1 のスカラー商ベクトルを得るには、以下のように記述します。 V1, V2 は共に fk_Vector 型の変数で、d は double 型の変数です。
V2 = V1/d;
外積二項演算子
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;
なお、外積は以下のような法則があります。
| double FK::operator* | ( | const fk_HVector & | , |
| const fk_HVector & | |||
| ) |
内積二項演算子
fk_HVector 型のベクトル V1 と V2 について、 それぞれの3次元ベクトル部の内積値(スカラー積)を得るには、以下のように記述します。 V1, V2 はともに fk_HVector 型の変数で、d は double 型の変数です。
d = V1 * V2;
なお、内積は交換法則が成り立ちます。 同次座標成分については、内積値の算出には利用しません。