MQMaterialクラス

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

基本操作
DeleteThis マテリアルクラスを消滅させます
GetUniqueID 材質のユニークIDを取得します
各種属性
GetName 名前を取得します
GetSelected 選択状態を取得します
GetShader シェーダの種類を取得します
GetVertexColor 頂点カラーの種類を取得します
GetDoubleSided 両面表示かどうかを取得します
GetColor 基本色を取得します
GetAlpha 不透明度を取得します
GetDiffuse 拡散光を取得します
GetAmbient 環境光を取得します
GetAmbientColor 環境光の色を取得します
GetEmission 自己照明を取得します
GetEmissionColor 自己照明の色を取得します
GetSpecular 反射光を取得します
GetSpecularColor 反射光の色を取得します
GetPower 反射の強さを取得します
GetReflection 鏡面反射率を取得します
GetRefraction 屈折率を取得します
SetName 名前を設定します
SetSelected 選択状態を設定します
SetShader シェーダの種類を設定します
SetVertexColor 頂点カラーの種類を設定します
SetDoubleSided 両面表示かどうかを設定します
SetColor 基本色を設定します
SetAlpha 不透明度を設定します
SetDiffuse 拡散光を設定します
SetAmbient 環境光を設定します
SetAmbientColor 環境光を設定します
SetEmission 自己照明を設定します
SetEmissionColor 自己照明を設定します
SetSpecular 反射光を設定します
SetSpecularColor 反射光を設定します
SetPower 反射の強さを設定します
SetReflection 鏡面反射率を設定します
SetRefraction 屈折率を設定します
マッピング
GetTextureName 模様マッピングのファイル名を取得します
GetAlphaName 透明マッピングのファイル名を取得します
GetBumpName 凸凹マッピングのファイル名を取得します
GetMappingType マッピングの投影方式を取得します
GetMappingPosition マッピングの投影位置を取得します
GetMappingScaling マッピングの投影拡大率を取得します
GetMappingAngle マッピングの投影回転角を取得します
SetTextureName 模様マッピングのファイル名を設定します
SetAlphaName 透明マッピングのファイル名を設定します
SetBumpName 凸凹マッピングのファイル名を設定します
SetMappingType マッピングの投影方式を設定します
SetMappingPosition マッピングの投影位置を設定します
SetMappingScaling マッピングの投影拡大率を設定します
SetMappingAngle マッピングの投影回転角を設定します
シェーダパラメータ
GetShaderName シェーダ名を取得します。
SetShaderName シェーダ名を設定します。
GetShaderParameterNum シェーダパラメータ数を取得します。
GetShaderParameterName シェーダパラメータ名を取得します。
GetShaderParameterValueType シェーダパラメータの値の種類を取得します。
GetShaderParameterArraySize シェーダパラメータの配列要素数を取得します。
GetShaderParameterBoolValue シェーダパラメータのbool値を取得します。
GetShaderParameterIntValue シェーダパラメータのint値を取得します。
GetShaderParameterFloatValue シェーダパラメータのfloat値を取得します。
GetShaderParameterColorValue シェーダパラメータの色を取得します。
SetShaderParameterBoolValue シェーダパラメータのbool値を設定します。
SetShaderParameterIntValue シェーダパラメータのint値を設定します。
SetShaderParameterFloatValue シェーダパラメータのfloat値を設定します。
SetShaderParameterColorValue シェーダパラメータの色を設定します。
GetShaderMappingNum シェーダマッピング数を取得します。
GetShaderMappingName シェーダマッピング名を取得します。
GetShaderMappingFilename シェーダマッピングのファイルを取得します。
SetShaderMappingFilename シェーダマッピングのファイル名を設定します。
シェーダノード
GetMainShaderNode メインシェーダノードを取得します。
GetSubShaderNodeNum サブシェーダノードの数を取得します。
GetSubShaderNodeID サブシェーダノードのIDを取得します。
GetSubShaderNode サブシェーダノードを取得します。
ユーザーデータ
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);

std::string MQMaterial::GetName();

std::wstring MQMaterial::GetNameW();

buffer
名前を格納するバッファ
size
バッファの大きさ
戻り値
マテリアル名(ANSIまたはワイド文字列)

引数付きの関数ではマテリアルの名前をbufferへ格納します。引数なしの関数ではANSIまたはワイド文字列として名前を取得します。


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シェーダ
[MQMATERIAL_SHADER_HLSL] HLSLシェーダ (new in Rev4.33)

(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::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シェーダ
[MQMATERIAL_SHADER_HLSL] HLSLシェーダ (new in Rev4.33)

(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::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::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)

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


int MQMaterial::GetShaderName(char *buffer, int buffer_size);
std::string MQMaterial::GetShaderName(void);

buffer
名前を格納するバッファ
buffer_size
バッファのサイズ(文字数)
戻り値
int 本来の文字数
std::string 名前

(new in Rev4.33)

HLSLシェーダの名前を取得します。


bool MQMaterial::SetShaderName(const char *name);

name
シェーダ名
戻り値
設定の可否

(new in Rev4.43)

HLSLシェーダの名前を設定します。

システム側に用意されないシェーダ名を指定した場合、falseが返ります。

シェーダ名が設定されるとGetMainShaderNode()でシェーダノードへのアクセスが可能になります。


int MQMaterial::GetShaderParameterNum(void);

戻り値
パラメータ数

(new in Rev4.33)

シェーダが保持するパラメータの数を取得します。

GetMainShaderNode()->GetParameterNum()と等価です。


int MQMaterial::GetShaderParameterName(int index, char *buffer, int buffer_size);
std::string MQMaterial::GetShaderParameterName(int index);

index
パラメータのインデックス
buffer
名前を格納するバッファ
buffer_size
バッファのサイズ(文字数)
戻り値
int 本来の文字数
std::string 名前

(new in Rev4.33)

シェーダ内のパラメータの名前を取得します。

GetMainShaderNode()->GetParameterName()と等価です。


int MQMaterial::GetShaderParameterValueType(int index);
int MQMaterial::GetShaderParameterValueType(const char *name);

index
パラメータのインデックス
name
パラメータの名前
戻り値
パラメータの値の種類
[MQMATERIAL_SHADER_PARAM_TYPE_NONE] なし
[MQMATERIAL_SHADER_PARAM_TYPE_BOOL] bool型
[MQMATERIAL_SHADER_PARAM_TYPE_INT] int型
[MQMATERIAL_SHADER_PARAM_TYPE_FLOAT] float型
[MQMATERIAL_SHADER_PARAM_TYPE_COLOR]

(new in Rev4.33)

インデックスまたは名前で指定されたシェーダパラメータの値の種類を取得します。

GetMainShaderNode()->GetParameterValueType()と等価です。


int MQMaterial::GetShaderParameterArraySize(int index);
int MQMaterial::GetShaderParameterArraySize(const char *name);

index
パラメータのインデックス
name
パラメータの名前
戻り値
配列の要素数

(new in Rev4.33)

インデックスまたは名前で指定されたシェーダパラメータの値の配列要素数を取得します。

GetMainShaderNode()->GetParameterArraySize()と等価です。


bool MQMaterial::GetShaderParameterBoolValue(int index, int array_index);
bool MQMaterial::GetShaderParameterBoolValue(const char *name, int array_index);
int MQMaterial::GetShaderParameterIntValue(int index, int array_index);
int MQMaterial::GetShaderParameterIntValue(const char *name, int array_index);
float MQMaterial::GetShaderParameterFloatValue(int index, int array_index);
float MQMaterial::GetShaderParameterFloatValue(const char *name, int array_index);
MQColorRGBA MQMaterial::GetShaderParameterColorValue(int index, int array_index);
MQColorRGBA MQMaterial::GetShaderParameterColorValue(const char *name, int array_index);

index
パラメータのインデックス
name
パラメータの名前
array_index
配列要素のインデックス
戻り値

(new in Rev4.33)

インデックスまたは名前で指定されたシェーダパラメータの値をbool/int/float/色で取得します。

GetMainShaderNode()->GetParameter****Value()と等価です。


void MQMaterial::SetShaderParameterBoolValue(int index, int array_index, bool value);
void MQMaterial::SetShaderParameterBoolValue(const char *name, int array_index, bool value);
void MQMaterial::SetShaderParameterIntValue(int index, int array_index, int value);
void MQMaterial::SetShaderParameterIntValue(const char *name, int array_index, int value);
void MQMaterial::SetShaderParameterFloatValue(int index, int array_index, float value);
void MQMaterial::SetShaderParameterFloatValue(const char *name, int array_index, float value);
void MQMaterial::SetShaderParameterColorValue(int index, int array_index, MQColorRGBA color);
void MQMaterial::SetShaderParameterColorValue(const char *name, int array_index, MQColorRGBA color);

index
パラメータのインデックス
name
パラメータの名前
array_index
配列要素のインデックス
value

(new in Rev4.33)

インデックスまたは名前で指定されたシェーダパラメータの値をbool/int/float/色で設定します。

GetMainShaderNode()->SetParameter****Value()と等価です。


int MQMaterial::GetShaderMappingNum(void);

戻り値
マッピング数

(new in Rev4.33)

シェーダが保持するマッピングの数を取得します。

GetMainShaderNode()->GetMappingNum()と等価です。


int MQMaterial::GetShaderMappingName(int index, char *buffer, int buffer_size);
std::string MQMaterial::GetShaderMappingName(int index);

index
マッピングのインデックス
buffer
名前を格納するバッファ
buffer_size
バッファのサイズ(文字数)
戻り値
int 本来の文字数
std::string 名前

(new in Rev4.33)

シェーダ内のマッピングの名前を取得します。

GetMainShaderNode()->GetMappingName()と等価です。


int MQMaterial::GetShaderMappingFilename(int index, char *buffer, int buffer_size);
int MQMaterial::GetShaderMappingFilename(const char *name, char *buffer, int buffer_size);
int MQMaterial::GetShaderMappingFilename(int index, wchar_t *buffer, int buffer_size);
int MQMaterial::GetShaderMappingFilename(const char *name, wchar_t *buffer, int buffer_size);
std::string MQMaterial::GetShaderMappingFilename(int index);
std::string MQMaterial::GetShaderMappingFilename(const char *name);
std::wstring MQMaterial::GetShaderMappingFilenameW(int index);
std::wstring MQMaterial::GetShaderMappingFilenameW(const char *name);

index
マッピングのインデックス
buffer
名前を格納するバッファ(ANSI文字列またはワイド文字列)
buffer_size
バッファのサイズ(文字数)
name
マッピングの名前
戻り値
int 本来の文字数
std::string ファイル名(ANSI文字列)
std::wstring ファイル名(ワイド文字列)

(new in Rev4.33)

シェーダ内のマッピングのファイル名を取得します。

GetMainShaderNode()->GetMappingFilename()と等価です。


void MQMaterial::SetShaderMappingFilename(int index, char *buffer);
void MQMaterial::SetShaderMappingFilename(const char *name, char *buffer);
void MQMaterial::SetShaderMappingFilename(int index, wchar_t *buffer);
void MQMaterial::SetShaderMappingFilename(const char *name, wchar_t *buffer);

index
マッピングのインデックス
buffer
名前を格納するバッファ(ANSI文字列またはワイド文字列)
name
マッピングの名前

(new in Rev4.33)

シェーダ内のマッピングのファイル名を設定します。

GetMainShaderNode()->SetMappingFilename()と等価です。


MQShaderNode MQMaterial::GetMainShaderNode();

戻り値
シェーダノード

(new in Rev4.50)

メインシェーダノードを取得します。

メインシェーダノードはSetShader()MQMATERIAL_SHADER_HLSL、SetShaderName()で適切なシェーダ名を指定した場合に存在し、それ以外の場合はNULLが返ります。


int MQMaterial::GetSubShaderNodeNum();

戻り値
サブシェーダノードの数

(new in Rev4.50)

サブシェーダノードの数を取得します。


std::string MQMaterial::GetSubShaderNodeID(int index);

index
サブシェーダノードのインデックス
戻り値
サブシェーダノードのID

(new in Rev4.50)

サブシェーダノードのIDを取得します。


MQShaderNode MQMaterial::GetSubShaderNode(int index);
MQShaderNode MQMaterial::GetSubShaderNode(const char *id);

index
サブシェーダノードのインデックス
id
サブシェーダノードのID
戻り値
サブシェーダノード

(new in Rev4.50)

インデックスまたはIDによりサブシェーダノードを取得します。


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が返ります。