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