MQMaterialクラス

 MQMaterialクラスは、材質に関する情報を管理するクラスです。

基本操作
DeleteThis マテリアルクラスを消滅させます
GetUniqueID 材質のユニークIDを取得します
各種属性
GetName 名前を取得します
GetSelected 選択状態を取得します
GetShader シェーダの種類を取得します
GetVertexColor 頂点カラーの種類を取得します
GetDoubleSided 両面表示かどうかを取得します
GetColor 基本色を取得します
GetAlpha 不透明度を取得します
GetDiffuse 拡散光を取得します
GetAmbient 環境光を取得します
GetAmbientColor 環境光の色を取得します
GetEmission 自己照明を取得します
GetEmissionColor 自己照明の色を取得します
GetSpecular 反射光を取得します
GetSpecularColor 反射光の色を取得します
GetPower 反射の強さを取得します
GetReflection 鏡面反射率を取得します
GetRefraction 屈折率を取得します
GetTextureName 模様マッピングのファイル名を取得します
GetAlphaName 透明マッピングのファイル名を取得します
GetBumpName 凸凹マッピングのファイル名を取得します
GetMappingType マッピングの投影方式を取得します
GetMappingPosition マッピングの投影位置を取得します
GetMappingScaling マッピングの投影拡大率を取得します
GetMappingAngle マッピングの投影回転角を取得します
SetName 名前を設定します
SetSelected 選択状態を設定します
SetShader シェーダの種類を設定します
SetVertexColor 頂点カラーの種類を設定します
SetDoubleSided 両面表示かどうかを設定します
SetColor 基本色を設定します
SetAlpha 不透明度を設定します
SetDiffuse 拡散光を設定します
SetAmbient 環境光を設定します
SetAmbientColor 環境光を設定します
SetEmission 自己照明を設定します
SetEmissionColor 自己照明を設定します
SetSpecular 反射光を設定します
SetSpecularColor 反射光を設定します
SetPower 反射の強さを設定します
SetReflection 鏡面反射率を設定します
SetRefraction 屈折率を設定します
SetTextureName 模様マッピングのファイル名を設定します
SetAlphaName 透明マッピングのファイル名を設定します
SetBumpName 凸凹マッピングのファイル名を設定します
SetMappingType マッピングの投影方式を設定します
SetMappingPosition マッピングの投影位置を設定します
SetMappingScaling マッピングの投影拡大率を設定します
SetMappingAngle マッピングの投影回転角を設定します
ユーザーデータ
AllocUserData 材質ユーザーデータの確保
FreeUserData 材質ユーザーデータの解放
GetUserData 材質ユーザーデータの取得
GetUserDataPart 材質ユーザーデータの部分取得
SetUserData 材質ユーザーデータの設定
SetUserDataPart 材質ユーザーデータの部分設定

void MQMaterial::DeleteThis(void);

マテリアルクラスを消滅させます。

この関数はドキュメントに登録されていないマテリアルにのみ有効で、ドキュメントに登録されたマテリアルを消滅させる場合はMQDocument::DeleteMaterial()を使用しなければなりません。


UINT MQMaterial::GetUniqueID(void);

戻り値
ユニークID

(new in Rev2.40)

材質のユニークIDを取得します。

ユニークIDはMQDocument::AddMaterial()でドキュメントに登録した時点で割り当てられます。


void MQMaterial::GetName(char *buffer, int size);

buffer
名前を格納するバッファ
size
バッファの大きさ

マテリアルの名前をbufferへ格納します。


BOOL MQMaterial::GetSelected();

戻り値
選択状態

(new in Rev3.10)

マテリアルの選択状態を取得します。

この選択状態は材質パネル上で複数選択したときの状態を示します。カレントマテリアルについてはMQDocument::GetCurrentMaterialIndex()で取得します。


int MQMaterial::GetShader(void);

戻り値
シェーダの種類
[MQMATERIAL_SHADER_CLASSIC] Classicシェーダ
[MQMATERIAL_SHADER_CONSTANT] Constantシェーダ
[MQMATERIAL_SHADER_LAMBERT] Lambertシェーダ
[MQMATERIAL_SHADER_PHONG] Phongシェーダ
[MQMATERIAL_SHADER_BLINN] Blinnシェーダ

(new in Rev2.30)

マテリアルのシェーダの種類を取得します。


int MQMaterial::GetVertexColor(void);

戻り値
頂点カラーの種類
[MQMATERIAL_VERTEXCOLOR_DISABLE] 無効
[MQMATERIAL_VERTEXCOLOR_DIFFUSE] 拡散光への頂点カラー

(new in Rev2.30)

頂点カラーの種類を取得します。


BOOL MQMaterial::GetDoubleSided(void);

戻り値
表示の種類
[TRUE] 両面表示
[FALSE] 片面表示

(new in Rev3.10)

面を片面・両面のどちらで表示するかを取得します。


MQColor MQMaterial::GetColor(void);

戻り値

 マテリアルの基本色を取得します。


float MQMaterial::GetAlpha(void);

float MQMaterial::GetDiffuse(void);

戻り値
属性の設定値

マテリアルの不透明度(Alpha)、拡散光(Diffuse)を取得します。

戻り値としては0から1の値が返されます。


float MQMaterial::GetAmbient(void);

float MQMaterial::GetEmission(void);

float MQMaterial::GetSpecular(void);

戻り値
属性の設定値

マテリアルの環境光(Ambient)、自己照明(Emission)、反射光(Specular)を取得します。

戻り値としては0から1の値が返されます。

(in Rev4.20)

マテリアルにカラー成分が設定されている場合も従来との互換性のためにこれらの関数を使用でき、各属性の色をモノクロ化したときの明度が戻り値として返されます。今後も引き続きこの関数は使用できますが、可能であれば GetAmbientColor(), GetEmissionColor(), GetSpecularColor() への置換が推奨されます。


MQColor MQMaterial::GetAmbientColor(void);

MQColor MQMaterial::GetEmissionColor(void);

MQColor MQMaterial::GetSpecularColor(void);

戻り値
属性の設定色

(new in Rev4.20)

マテリアルの環境光(Ambient)、自己照明(Emission)、反射光(Specular)の色を取得します。

戻り値としてはRGB各成分とも0から1の値が返されます。


float MQMaterial::GetPower(void);

戻り値
属性の設定値

マテリアルの反射の強さを取得します。

戻り値としては0から100の値が返されます。


float MQMaterial::GetReflection(void);

戻り値
鏡面反射率

(new in Rev4.00)

マテリアルの鏡面反射率を取得します。

戻り値としては0から1の値が返されます。


float MQMaterial::GetRefraction(void);

戻り値
屈折率

(new in Rev4.00)

マテリアルの屈折率を取得します。


void MQMaterial::GetTextureName(char *buffer, int size);

void MQMaterial::GetAlphaName(char *buffer, int size);

void MQMaterial::GetBumpName(char *buffer, int size);

buffer
名前を格納するバッファ
size
バッファの大きさ

マテリアルに割り当てられている模様(Texture)、透明(Alpha)、凸凹(Bump)マッピングのファイル名を相対パスでbufferへ格納します。(元々絶対パスで指定されている場合は絶対パスが返る)

得られたファイル名を絶対パスに変換するにはMQDocument::FindMappingFile()を使用します。


int MQMaterial::GetMappingType(void);

戻り値
マッピングの投影方式
[MQMATERIAL_PROJECTION_UV] UVマッピング
[MQMATERIAL_PROJECTION_FLAT] 平面マッピング
[MQMATERIAL_PROJECTION_CYLINDER] 円筒マッピング
[MQMATERIAL_PROJECTION_SPHERE] 球面マッピング

(new in Rev2.30)

マッピングの投影方式を取得します。


MQPoint MQMaterial::GetMappingPosition(void);

戻り値
マッピングの投影位置

(new in Rev2.30)

マッピングの投影位置を取得します。


MQPoint MQMaterial::GetMappingScaling(void);

戻り値
マッピングの投影拡大率

(new in Rev2.30)

マッピングの投影拡大率を取得します。


MQAngle MQMaterial::GetMappingAngle(void);

戻り値
マッピングの投影回転角

(new in Rev2.30)

マッピングの投影回転角を取得します。


void MQMaterial::SetName(const char *name);

name
名前が格納されているバッファ

マテリアルの名前をセットします。


void MQMaterial::SetSelected(BOOL flag);

flag
選択状態

(new in Rev3.10)

マテリアルの選択状態を設定します。

この選択状態は材質パネル上で複数選択したときの状態を示します。カレントマテリアルについてはMQDocument::SetCurrentMaterialIndex()で設定します。


void MQMaterial::SetShader(int shader);

shader
シェーダの種類
[MQMATERIAL_SHADER_CLASSIC] Classicシェーダ
[MQMATERIAL_SHADER_CONSTANT] Constantシェーダ
[MQMATERIAL_SHADER_LAMBERT] Lambertシェーダ
[MQMATERIAL_SHADER_PHONG] Phongシェーダ
[MQMATERIAL_SHADER_BLINN] Blinnシェーダ

(new in Rev2.30)

マテリアルのシェーダの種類を設定します。


void MQMaterial::SetVertexColor(int value);

value
頂点カラーの種類
[MQMATERIAL_VERTEXCOLOR_DISABLE] 無効
[MQMATERIAL_VERTEXCOLOR_DIFFUSE] 拡散光への頂点カラー

(new in Rev2.30)

頂点カラーの種類を設定します。


void MQMaterial::SetDoubleSided(BOOL value);

value
表示の種類
[TRUE] 両面表示
[FALSE] 片面表示

(new in Rev3.10)

面を片面・両面のどちらで表示するかを設定します。


void MQMaterial::SetColor(MQColor color);

color
色データ

 マテリアルの基本色を設定します。


void MQMaterial::SetAlpha(float value);

void MQMaterial::SetDiffuse(float value);

value
パラメータ

マテリアルの不透明度(Alpha)、拡散光(Diffuse)を設定します。

valueは0から1の値でなければなりません。


void MQMaterial::SetAmbient(float value);

void MQMaterial::SetEmission(float value);

void MQMaterial::SetSpecular(float value);

value
パラメータ

マテリアルの環境光(Ambient)、自己照明(Emission)、反射光(Specular)を設定します。

valueは0から1の値でなければなりません。

(in Rev4.20)

従来との互換性のためにこれらの関数を使用でき、RGB各成分がすべてvalueで指定された値となります。今後も引き続きこの関数を使用できますが、可能であれば SetAmbientColor(), SetEmissionColor(), SetSpecularColor() への置換が推奨されます。


void MQMaterial::SetAmbientColor(MQColor color);

void MQMaterial::SetEmissionColor(MQColor color);

void MQMaterial::SetSpecularColor(MQColor color);

戻り値
属性の設定色

(new in Rev4.20)

マテリアルの環境光(Ambient)、自己照明(Emission)、反射光(Specular)の色を設定します。

colorのRGB各成分とも0から1の値を格納する必要があります。


void MQMaterial::SetPower(float value);

value
パラメータ

マテリアルの反射の強さ(Power)を設定します。

valueは0から100の値でなければなりません。


void MQMaterial::SetReflection(float value);

value
鏡面反射率

(new in Rev4.00)

マテリアルの鏡面反射率を設定します。

valueは0から1の値でなければなりません。


void MQMaterial::SetRefraction(float value);

value
屈折率

(new in Rev4.00)

マテリアルの屈折率を設定します。


void MQMaterial::SetTextureName(const char *name);

void MQMaterial::SetAlphaName(const char *name);

void MQMaterial::SetBumpName(const char *name);

name
名前が格納されているバッファ

マテリアルに割り当てる模様(Texture)、透明(Alpha)、凸凹(Bump)マッピングのファイル名を指定します。ファイル名は相対パス、絶対パスのどちらでも使用することができます。


void MQMaterial::SetMappingType(int type);

type
マッピングの投影方式
[MQMATERIAL_PROJECTION_UV] UVマッピング
[MQMATERIAL_PROJECTION_FLAT] 平面マッピング
[MQMATERIAL_PROJECTION_CYLINDER] 円筒マッピング
[MQMATERIAL_PROJECTION_SPHERE] 球面マッピング

(new in Rev2.30)

マッピングの投影方式を設定します。


void MQMaterial::SetMappingPosition(MQPoint pos);

pos
マッピングの投影位置

(new in Rev2.30)

マッピングの投影位置を設定します。


void MQMaterial::SetMappingScaling(MQPoint scale);

scale
マッピングの投影拡大率

(new in Rev2.30)

マッピングの投影拡大率を設定します。


void MQMaterial::SetMappingAngle(MQAngle angle);

angle
マッピングの投影回転角

(new in Rev2.30)

マッピングの投影回転角を設定します。


BOOL MQMaterial::AllocUserData(int userdata_id);

userdata_id
材質ユーザーデータID
戻り値
[TRUE] 確保成功
[FALSE] 確保失敗

(new in Rev3.10)

材質にユーザーデータ用の領域を確保します。

userdata_id には MQDocument::CreateMaterialUserData() で生成されたIDを指定します。

既に領域が確保されているユーザーデータIDを指定すると、何も行われずにTRUEが返ります。

ユーザーデータはむやみに確保するとメモリが浪費されるため、実際に設定する必要が出るまでは確保しないでください。


void MQMaterial::FreeUserData(int userdata_id);

userdata_id
材質ユーザーデータID

(new in Rev3.10)

MQMaterial::AllocUserData() で確保されたユーザーデータ用領域を解放します。

ユーザーデータが不要になった時点で、早々に解放してください。不用意に確保し続けるとメモリが浪費されます。


BOOL MQMaterial::GetUserData(int userdata_id, void *buffer);

userdata_id
材質ユーザーデータID
buffer
ユーザーデータを格納するバッファ
戻り値
[TRUE] 取得成功
[FALSE] 取得失敗

(new in Rev3.10)

材質のユーザーデータを取得します。

buffer は MQDocument::CreateMaterialUserData() で指定されたバイト数の領域である必要があります。

確保されていない材質ユーザーデータIDに対して取得を行うとFALSEが返ります。また、MQMaterial::SetUserData() でユーザーデータが設定されていない状態で取得を行うと buffer にはすべて0が格納されます。


BOOL MQMaterial::GetUserDataPart(int userdata_id, int offset, int copy_bytes, void *buffer);

userdata_id
材質ユーザーデータID
offset
データの先頭からのオフセット
copy_bytes
データの転送バイト数
buffer
ユーザーデータを格納するバッファ
戻り値
[TRUE] 取得成功
[FALSE] 取得失敗

(new in Rev3.10)

材質のユーザーデータを部分的に取得します。

ユーザーデータ内のうち offset から始まる領域が buffer に格納されます。

buffer は copy_bytes で指定されたバイト数の領域である必要があります。 copy_bytes に 0 を指定するとユーザーデータ全体、つまりMQDocument::CreateMaterialUserData() で指定されたバイト数が転送されます。

確保されていない材質ユーザーデータIDに対して取得を行うとFALSEが返ります。また、MQMaterial::SetUserData() でユーザーデータが設定されていない状態で取得を行うと buffer にはすべて0が格納されます。


BOOL MQMaterial::SetUserData(int userdata_id, const void *buffer);

userdata_id
材質ユーザーデータID
buffer
ユーザーデータが格納されたバッファ
戻り値
[TRUE] 設定成功
[FALSE] 設定失敗

(new in Rev3.10)

buffer に格納されているデータをユーザーデータとして設定します。

buffer は MQDocument::CreateMaterialUserData() で指定されたバイト数の領域である必要があります。

確保されていない材質ユーザーデータIDに対して取得を行うとFALSEが返ります。


BOOL MQMaterial::SetUserDataPart(int userdata_id, int offset, int copy_bytes, const void *buffer);

userdata_id
材質ユーザーデータID
offset
データの先頭からのオフセット
copy_bytes
データの転送バイト数
buffer
ユーザーデータが格納されたバッファ
戻り値
[TRUE] 設定成功
[FALSE] 設定失敗

(new in Rev3.10)

材質のユーザーデータを部分的に設定します。

buffer に格納されているデータがユーザーデータ内の offset から始まる領域に設定されます。

buffer は copy_bytes で指定されたバイト数の領域である必要があります。 copy_bytes に 0 を指定するとユーザーデータ全体、つまりMQDocument::CreateMaterialUserData() で指定されたバイト数が転送されます。

確保されていない材質ユーザーデータIDに対して取得を行うとFALSEが返ります。