MQSceneクラスはレンダリングビューに関する情報を管理するクラスです。
レンダリング用 | |
InitSize | レンダリングを行う画像のサイズを指定します |
GetProjMatrix | 透視変換用の行列を格納します |
GetViewMatrix | 視野変換用の行列を格納します |
カメラ | |
GetCameraPosition | カメラの位置を取得します |
SetCameraPosition | カメラの位置を設定します |
GetCameraAngle | カメラの向きを取得します |
SetCameraAngle | カメラの向きを設定します |
GetLookAtPosition | カメラの注視点を取得します |
SetLookAtPosition | カメラの注視点を設定します |
GetRotationCenter | ビューの回転中心位置を取得します |
SetRotationCenter | ビューの回転中心を設定します |
GetFOV | ビューの視野角を取得します |
SetFOV | ビューの視野角を設定します |
シーン全体情報 | |
GetGlobalDirectionalLight | 平行光源の向きを取得します |
SetGlobalDirectionalLight | 平行光源の向きを設定します |
GetGlobalAmbientColor | シーン全体の環境光の色を取得します |
SetGlobalAmbientColor | シーン全体の環境光の色を設定します |
座標変換 | |
Convert3DToScreen | 3D空間座標からスクリーン座標への変換を行います |
ConvertScreenTo3D | スクリーン座標から3D空間座標への変換を行います |
GetVisibleFace | 面が視野上に表示されるかどうかを取得します |
void MQScene::InitSize(int width, int height);
(new in Rev2.10)
レンダリングを行う画像のサイズを指定します。
void MQScene::GetProjMatrix(float *matrix);
(new in Rev2.10)
16の配列長を持つ matrix で指定したバッファに、透視変換用の行列を格納します。
行列のデータ配置は OpenGL の glLoadMatrixf() で用いるものと互換になっています。ただし、将来のバージョンでの透視変換の計算方法の変更に伴い、パラメータの一部は互換性がなくなる可能性があるので注意して下さい。
void MQScene::GetViewMatrix(float *matrix);
(new in Rev2.10)
16の配列長を持つ matrix で指定したバッファに、視野変換用の行列を格納します。
行列のデータ配置は OpenGL の glLoadMatrixf() で用いるものと互換になっています。
MQPoint MQScene::GetCameraPosition();
(new in Rev2.40)
カメラの位置を取得します。
void MQScene::SetCameraPosition(const MQPoint& p);
(new in Rev2.40)
カメラの位置を設定します。
カメラの位置を変更すると、注視点も連動して動くことがあります。そのため、カメラの位置と注視点の両方を設定する場合は SetLookAtPosition() の前に SetCameraPosition() を呼び出す必要があります。
MQAngle MQScene::GetCameraAngle();
(new in Rev2.40)
カメラの向きを取得します。
void MQScene::SetCameraAngle(const MQAngle& angle);
(new in Rev2.40)
カメラの向きを設定します。
MQPoint MQScene::GetLookAtPosition();
(new in Rev2.40)
カメラの注視点を取得します。
void MQScene::SetLookAtPosition(const MQPoint& p);
(new in Rev2.40)
カメラの注視点を設定します。回転中心も注視点と同じ位置に設定されます。
カメラの位置が変更されると注視点の位置も連動して移動します。そのため、カメラの位置と注視点の両方を設定する場合は SetCameraPosition() の後で SetLookAtPosition() を呼び出す必要があります。
MQPoint MQScene::GetRotationCenter();
(new in Rev2.40)
ビューの回転中心位置を取得します。
void MQScene::SetRotationCenter(const MQPoint& p);
(new in Rev2.40)
ビューの回転中心を設定します。
float MQScene::GetFOV();
(new in Rev2.40)
ビューの視野角を取得します。
void MQScene::SetFOV(float fov);
(new in Rev2.40)
ビューの視野角を設定します。
MQPoint MQScene::GetGlobalDirectionalLight();
(new in Rev2.40)
平行光源の向きを取得します。
void MQScene::SetGlobalDirectionalLight(const MQPoint& vec);
(new in Rev2.40)
平行光源の向きを設定します。
MQColor MQScene::GetGlobalAmbientColor();
(new in Rev2.40)
シーン全体の環境光の色を取得します。
void MQScene::SetGlobalAmbientColor(const MQColor& amb);
(new in Rev2.40)
シーン全体の環境光の色を設定します。
MQPoint MQScene::Convert3DToScreen(const MQPoint& p, float *out_w);
(new in Rev2.40)
3D空間座標からスクリーン座標への変換を行います。
指定した座標が前面クリッピング平面よりも手前にある場合、戻り値は (0,0,0) となります。
MQPoint MQScene::ConvertScreenTo3D(const MQPoint& p);
(new in Rev2.40)
スクリーン座標から3D空間座標への変換を行います。
BOOL MQScene::GetVisibleFace(MQObject obj, BOOL *visible);
(new in Rev2.41)
指定したオブジェクトの面の表示状態を調べます。
visible は MQObject::GetFaceCount() で取得される面数の配列サイズを持っている必要があります。この関数を呼び出すと、各面の表示状態が TRUE または FALSE として visible にセットされます。
面の表示状態は、面の非表示・前面のみ表示時の表裏・視点より手前などによって、状態が変化します。