MQDocumentクラスは、オブジェクトや材質などのデータを管理するクラスです。
オブジェクト | |
GetObjectCount | オブジェクトの数を取得します |
GetObject | オブジェクトクラスへのポインタを取得します |
GetCurrentObjectIndex | カレントオブジェクトのインデックスを取得します |
AddObject | オブジェクトクラスをドキュメントに登録します |
InsertObject | オブジェクトを指定してオブジェクトの後ろに登録します。 |
DeleteObject | オブジェクトを外し、オブジェクトクラスを消滅させます |
GetObjectIndex | オブジェクトのインデックスを取得します |
GetParentObject | 指定したオブジェクトの親オブジェクトを取得します |
GetChildObjectCount | オブジェクトに属する子オブジェクトの数を取得します |
GetChildObject | オブジェクトの子オブジェクトを取得します |
GetGlobalMatrix | オブジェクトのグローバル座標変換行列を取得します |
GetGlobalInverseMatrix | オブジェクトのグローバル座標逆変換行列を取得します |
マテリアル | |
GetMaterialCount | マテリアルの数を取得します |
GetMaterial | マテリアルクラスへのポインタを取得します |
GetCurrentMaterialIndex | カレントマテリアルのインデックスを取得します |
SetCurrentMaterialIndex | カレントマテリアルをインデックス指定します |
AddMaterial | マテリアルクラスをドキュメントに登録します |
DeleteMaterial | ドキュメントからマテリアルを外し、マテリアルクラスを消滅させます |
メモリ | |
Compact | ドキュメント中の配列に存在するNULLを切り詰めます |
選択 | |
ClearSelect | ドキュメント中の指定した要素の選択をすべて解除します |
AddSelectVertex | 頂点を選択します |
DeleteSelectVertex | 頂点の選択を解除します |
IsSelectVertex | 頂点が選択されているかどうかをチェックします |
AddSelectLine | ラインを選択します |
DeleteSelectLine | ラインの選択を解除します |
IsSelectLine | ラインが選択されているかどうかをチェックします |
AddSelectFace | 面を選択します |
DeleteSelectFace | 面の選択を解除します |
IsSelectFace | 面が選択されているかどうかをチェックします |
AddSelectUVVertex | 頂点をUV選択します |
DeleteSelectUVVertex | 頂点のUV選択を解除します |
IsSelectUVVertex | 頂点がUV選択されているかどうかをチェックします |
マッピング | |
FindMappingFile | ファイル名を絶対パスに変換します |
シーン | |
GetScene | シーンを取得します |
int MQDocument::GetObjectCount(void);
ドキュメント中のオブジェクトの数を取得します。
実際に存在するオブジェクト数ではなく配列要素の大きさが返されるので、
MQDocument::DeleteObject() によりNULLになったものも数として入れられます。正確な数を得るには
MQDocument::GetObject() によりNULL以外のものを数える必要があります。
MQObject MQDocument::GetObject(int index);
オブジェクトクラスへのポインタを取得します。
指定したインデックスにオブジェクトが存在しない場合はNULLが返されます。
int MQDocument::GetCurrentObjectIndex(void);
カレントオブジェクトのインデックスを取得します。
void MQDocument::SetCurrentObjectIndex(int index);
カレントオブジェクトをインデックス指定します。
int MQDocument::AddObject(MQObject obj);
オブジェクトクラスをドキュメントに登録します。
objそのものが参照されるので、ドキュメントに追加されたオブジェクトを
MQObject::DeleteThis() で消滅させてはいけません。
int MQDocument::InsertObject(MQObject obj, MQObject before);
(new in Rev2.41)
オブジェクトクラスをドキュメント内の指定したオブジェクトの後ろのインデックスに登録します。
beforeがNULLの場合、リストの先頭に登録されます。
オブジェクトの挿入により、リストの後ろにあるオブジェクトのインデックスは変更されます。
objそのものが参照されるので、ドキュメントに追加されたオブジェクトを MQObject::DeleteThis() で消滅させてはいけません。
void MQDocument::DeleteObject(int index);
ドキュメントからオブジェクトを外し、オブジェクトクラスを消滅させます。
削除したインデックスに対して MQDocument::GetObject() はNULLを返すようになります。
int MQDocument::GetObjectIndex(MQObject obj);
ドキュメント中のオブジェクトのインデックスを取得します。
指定したオブジェクトがドキュメント中に存在しない場合は-1が返されます。
MQObject MQDocument::GetParentObject(MQObject obj);
(new in Rev2.40)
ドキュメント中の指定したオブジェクトの親オブジェクトを取得します。
指定したオブジェクトがルートにある場合はNULLが返されます。
int MQDocument::GetChildObjectCount(MQObject obj);
(new in Rev2.40)
ドキュメント中の指定したオブジェクトに属する子オブジェクトの数を取得します。
子オブジェクトは直下にあるもののみがカウントされ、孫以下はカウントされません。
MQObject MQDocument::GetChildObject(MQObject obj, int index);
(new in Rev2.40)
ドキュメント中の指定したオブジェクトの子オブジェクトを取得します。
インデックスは MQDocument::GetChildObjectCount()
で返される数より小さい値を指定してください。
void MQDocument::GetGlobalMatrix(MQObject obj, MQMatrix& mtx);
(new in Rev2.40)
ドキュメント中の指定したオブジェクトのグローバル座標変換行列を取得します。
void MQDocument::GetGlobalInverseMatrix(MQObject obj, MQMatrix& mtx);
(new in Rev2.40)
ドキュメント中の指定したオブジェクトのグローバル座標逆変換行列を取得します。
int MQDocument::GetMaterialCount(void);
ドキュメント中のマテリアルの数を取得します。
実際に存在するマテリアル数ではなく配列要素の大きさが返されるので、
MQDocument::DeleteMaterial() によりNULLになったものも数として入れられます。正確な数を得るには
MQDocument::GetMaterial() によりNULL以外のものを数える必要があります。
MQMaterial MQDocument::GetMaterial(int material);
マテリアルクラスへのポインタを取得します。
指定したインデックスにマテリアルが存在しない場合はNULLが返されます。
int MQDocument::GetCurrentMaterialIndex(void);
カレントマテリアルのインデックスを取得します。
-1が返された場合はカレントは未着色面であることを示します。
void MQDocument::SetCurrentMaterialIndex(int index);
カレントマテリアルをインデックス指定します。
int MQDocument::AddMaterial(MQMaterial mat);
マテリアルクラスをドキュメントに登録します。
matそのものが参照されるので、ドキュメントに追加されたマテリアルをMQMaterial::DeleteThis()により消滅させてはいけません。
void MQDocument::DeleteMaterial(int index);
ドキュメントからマテリアルを外し、マテリアルクラスを消滅させます。
削除したインデックスに対して MQDocument::GetMaterial() はNULLを返すようになります。
void MQDocument::Compact(void);
ドキュメント中のオブジェクトやマテリアル配列に存在するNULLを切り詰めて、配列の大きさを実際に存在するオブジェクトやマテリアル数と同じにします。また、オブジェクト中に存在する頂点や面の配列も切り詰めます。ただし、頂点や面のインデックスが変化することに注意して下さい。
データ量が小さくなるので、ドキュメントやオブジェクトに対して大幅な操作を行った後は、このAPIを実行するのが望ましいです。
ファイルの保存の際には自動的に実行されます。
void MQDocument::ClearSelect(DWORD flag);
ドキュメント中の指定した要素の選択をすべて解除します。
BOOL MQDocument::AddSelectVertex(int objindex, int vertindex);
BOOL MQDocument::AddSelectVertex(MQSelectVertex sel);
指定した頂点を選択します。
BOOL MQDocument::DeleteSelectVertex(int objindex, int vertindex);
BOOL MQDocument::DeleteSelectVertex(MQSelectVertex sel);
指定した頂点の選択を解除します。
BOOL MQDocument::IsSelectVertex(int objindex, int vertindex);
BOOL MQDocument::IsSelectVertex(MQSelectVertex sel);
指定した頂点が選択されているかどうかをチェックします。
BOOL MQDocument::AddSelectLine(int objindex, int faceindex, int lineindex);
BOOL MQDocument::AddSelectLine(MQSelectLine sel);
指定したラインを選択します。
BOOL MQDocument::DeleteSelectLine(int objindex, int faceindex, int linelidex);
BOOL MQDocument::DeleteSelectLine(MQSelectLine sel);
指定したラインの選択を解除します。
BOOL MQDocument::IsSelectLine(int objindex, int faceindex, int lineindex);
BOOL MQDocument::IsSelectLine(MQSelectLine sel);
指定したラインが選択されているかどうかをチェックします。
BOOL MQDocument::AddSelectFace(int objindex, int faceindex);
BOOL MQDocument::AddSelectFace(MQSelectFace sel);
指定した面を選択します。
BOOL MQDocument::DeleteSelectFace(int objindex, int faceindex);
BOOL MQDocument::DeleteSelectFace(MQSelectFace sel);
指定した面の選択を解除します。
BOOL MQDocument::IsSelectFace(int objindex, int faceindex);
BOOL MQDocument::IsSelectFace(MQSelectFace sel);
指定した面が選択されているかどうかをチェックします。
BOOL MQDocument::AddSelectUVVertex(int objindex, int faceindex, int vertindex);
(new in Rev2.30)
指定した頂点をUV選択します。
BOOL MQDocument::DeleteSelectUVVertex(int objindex, int faceindex, int vertindex);
(new in Rev2.30)
指定した頂点のUV選択を解除します。
BOOL MQDocument::IsSelectUVVertex(int objindex, int faceindex, int vertindex);
(new in Rev2.30)
指定した頂点がUV選択されているかどうかをチェックします。
BOOL MQDocument::FindMappingFile(char *out_path, const char *filename, DWORD map_type);
(new in Rev2.10)
MQMaterial::GetTextureName(), GetAlphaName(), GetBumpName() で得られるファイル名を絶対パスに変換します。
outpath は MAX_PATH 以上のサイズを持つ必要があります。
MQScene MQDocument::GetScene(int index);
(new in Rev2.10)
ドキュメントに割り当てられているシーンを取得します。
indexに0を指定するとパースペクティブビューが取得されます。現行バージョンではindexは0以外は指定しないで下さい。