MQSceneクラスはレンダリングビューに関する情報を管理するクラスです。
レンダリング用 | |
InitSize | レンダリングを行う画像のサイズを指定します |
GetProjMatrix | 透視変換用の行列を格納します |
GetViewMatrix | 視野変換用の行列を格納します |
カメラ | |
GetCameraPosition | カメラの位置を取得します |
SetCameraPosition | カメラの位置を設定します |
GetCameraAngle | カメラの向きを取得します |
SetCameraAngle | カメラの向きを設定します |
GetLookAtPosition | カメラの注視点を取得します |
SetLookAtPosition | カメラの注視点を設定します |
GetRotationCenter | ビューの回転中心位置を取得します |
SetRotationCenter | ビューの回転中心を設定します |
GetFOV | ビューの視野角を取得します |
SetFOV | ビューの視野角を設定します |
シーン全体情報 | |
|
|
|
|
AddGlobalDirectionalLight | 平行光源を追加します |
DeleteGlobalDirectionalLight | 平行光源を削除します |
GetGlobalDirectionalLightNum | 平行光源の数を取得します |
GetGlobalDirectionalLightDirection | 平行光源の向きを取得します |
GetGlobalDirectionalLightColor | 平行光源の色を取得します |
SetGlobalDirectionalLightDirection | 平行光源の向きを設定します |
SetGlobalDirectionalLightColor | 平行光源の色を設定します |
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();
(in Rev3.11)
この関数は廃止されました。GetGlobalDirectionalLightDirection()に置換する必要があります。
void MQScene::SetGlobalDirectionalLight(const MQPoint& vec);
(in Rev3.11)
この関数は廃止されました。SetGlobalDirectionalLightDirection()に置換する必要があります。
int MQScene::AddGlobalDirectionalLight();
(new in Rev3.11)
平行光源を追加します。
追加されたインデックスの平行光源に対して、SetGlobalDirectionalLightDirection(), SetGlobalDirectionalLightColor()で向き・色を設定する必要があります。
平行光源の上限数を超えて追加しようとすると、光源は追加されずに-1が返ります。
BOOL MQScene::DeleteGlobalDirectionalLight(int index);
(new in Rev3.11)
平行光源を削除します。
平行光源が一つしかないときは削除されずにFALSEが返ります。
int MQScene::GetGlobalDirectionalLightNum();
(new in Rev3.11)
平行光源の数を取得します。
MQPoint MQScene::GetGlobalDirectionalLightDirection(int index);
(new in Rev3.11)
平行光源の向きを取得します。 index は 0 ~ GetGlobalDirectionalLightNum()-1 となります。
MQColor MQScene::GetGlobalDirectionalLightColor(int index);
(new in Rev3.11)
平行光源の色を取得します。 index は 0 ~ GetGlobalDirectionalLightNum()-1 となります。
void MQScene::SetGlobalDirectionalLightDirection(int index, const MQPoint& vec);
(new in Rev3.11)
平行光源の向きを設定します。 index は 0 ~ GetGlobalDirectionalLightNum()-1 となります。
void MQScene::SetGlobalDirectionalLightColor(int index, const MQColor& color);
(new in Rev3.11)
平行光源の色を設定します。 index は 0 ~ GetGlobalDirectionalLightNum()-1 となります。
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 にセットされます。
面の表示状態は、面の非表示・前面のみ表示時の表裏・視点より手前などによって、状態が変化します。