## MQMaterial class

ポリゴン表面に色付けを行うための材質情報を保持します。

### Property

get | set | Type | Name | Description
--- | --- | --- | --- | ---
o | o | string | name | マテリアル名
o | x | long | id | マテリアルを識別するユニークID
o | o | MQColor | color | 基本色
o | o | float | alpha | 不透明度
o | o | float | diffuse | 拡散光
o | o | float | ambient | 環境光(モノクロ)
o | o | MQColor | ambientColor | 環境光
o | o | float | emissive | 発光
o | o | float | specular | 反射光(モノクロ)
o | o | MQColor | specularColor | 反射光
o | o | float | power | 反射強度
o | o | float | reflection | 鏡面反射率
o | o | float | refraction | 屈折率
o | o | int | shader | シェーダの種類
[0] | Classic
[1] | Constant
[2] | Lambert
[3] | Phong
[4] | Blinn
[5] | HLSL
o | x | string | shaderName | シェーダ名（shaderを文字列として取得）
o | o | string | shaderFilename | シェーダ用ファイル名
o | x | MQShaderNode | shaderNode | シェーダノード
[None] | HLSLでないかシェーダファイル名が無効
[MQShaderNode] | HLSLかつ有効なシェーダファイル名
o | x | dictionary | subshaderNodes | サブシェーダノード
[None] | HLSLでないかシェーダファイル名が無効
[dictionary{string : MQShaderNode}] | サブシェーダノードIDとシェーダノードの辞書
o | o | int | vertexColor | 頂点カラー
[0] | なし
[1] | 基本色に適用
o | o | int | doubleSided | 両面表示
[0] | 片面
[1] | 両面
o | o | int | mapType | マッピングの投影方式
[0] | UVマッピング
[1] | 平面マッピング
[2] | 円筒マッピング
[3] | 球マッピング
o | o | MQPoint | mapScaling | マッピングの投影スケーリング
o | o | MQAngle | mapAngle | マッピングの投影角度
o | o | MQPoint | mapPosition | マッピングの投影位置
o | o | string | textureMap | テクスチャマッピングのファイル名
o | o | string | alphaMap | アルファマッピングのファイル名
o | o | string | bumpMap | バンプマッピングのファイル名
o | o | int | textureUVChannel | テクスチャマッピングのUVチャンネルID
[0] | 標準UVチャンネル
[!= 0] | MQDocument.getUVChannelID()で生成・取得するID
o | o | int | alphaUVChannel | アルファマッピングのUVチャンネルID
o | o | int | bumpUVChannel | バンプマッピングのUVチャンネルID
o | o | int | wrapU | マッピングのU方向の境界のラッピング処理
[0] | 繰り返し
[1] | ミラー
[2] | クランプ
o | o | int | wrapV | マッピングのV方向の境界のラッピング処理
[0] | 繰り返し
[1] | ミラー
[2] | クランプ
o | o | int | filter | マッピング画像のフィルタリング
[0] | 最近点補間
[1] | バイリニア補間

### Method

Member | Description
--- | ---
clone | 材質を複製します。
getTextureMapPath | テクスチャマッピングのファイル名を絶対パスとして取得します。
getAlphaMapPath | アルファマッピングのファイル名を絶対パスとして取得します。
getBumpMapPath | バンプマッピングのファイル名を絶対パスとして取得します。
allocUserData | 材質にユーザーデータ用の領域を確保します。
freeUserData | ユーザーデータ用領域を解放します。
getUserDataInt | 材質ユーザーデータからint型(4バイト)の値を取得します。
getUserDataFloat | 材質ユーザーデータからfloat型(4 bytes) の値を取得します。
getUserDataString | 材質ユーザーデータからstring型の文字列を取得します。
setUserDataInt | 材質ユーザーデータにint型(4バイト)の値を設定します。
setUserDataFloat | 材質ユーザーデータにfloat型(4バイト)の値を設定します。
setUserDataString | 材質ユーザーデータにstring型の文字列を設定します。

clone
材質を複製します。
  戻り値：
  MQMaterial | - | 複製された材質

getTextureMapPath
テクスチャマッピングのファイル名を絶対パスとして取得します。
  戻り値：
  string | - | テクスチャマッピングのファイルパス [None] 有効なファイルパスでない
注意点： ドキュメントに登録されていないマテリアルは常にNoneを返します。

getAlphaMapPath
アルファマッピングのファイル名を絶対パスとして取得します。
  戻り値：
  string | - | アルファマッピングのファイルパス [None] 有効なファイルパスでない
注意点： ドキュメントに登録されていないマテリアルは常にNoneを返します。

getBumpMapPath
バンプマッピングのファイル名を絶対パスとして取得します。
  戻り値：
  string | - | バンプマッピングのファイルパス [None] 有効なファイルパスでない
注意点： ドキュメントに登録されていないマテリアルは常にNoneを返します。

allocUserData(userdata_id)
材質にユーザーデータ用の領域を確保します。
  引数：
  int | userdata_id | - | 材質ユーザーデータID
  戻り値：
  int | - | 結果 [0] 失敗 [1] 成功

freeUserData(userdata_id)
ユーザーデータ用領域を解放します。
  引数：
  int | userdata_id | - | 材質ユーザーデータID

getUserDataInt(userdata_id, offset)
材質ユーザーデータからint型(4バイト)の値を取得します。
  引数：
  int | userdata_id | - | 材質ユーザーデータID
  int | offset | - | データの先頭からのオフセット
  戻り値：
  int | - | 値 [None] 取得失敗

getUserDataFloat(userdata_id, offset)
材質ユーザーデータからfloat型(4 bytes) の値を取得します。
  引数：
  int | userdata_id | - | 材質ユーザーデータID
  int | offset | - | データの先頭からのオフセット
  戻り値：
  float | - | 値 [None] 取得失敗

getUserDataString(userdata_id, offset, length)
材質ユーザーデータからstring型の文字列を取得します。
  引数：
  int | userdata_id | - | 材質ユーザーデータID
  int | offset | - | データの先頭からのオフセット
  int | length | - | データ長（バイト単位での文字列の最大長）
  戻り値：
  string | - | 値 [None] 取得失敗

setUserDataInt(userdata_id, offset, value)
材質ユーザーデータにint型(4バイト)の値を設定します。
  引数：
  int | userdata_id | - | 材質ユーザーデータID
  int | offset | - | データの先頭からのオフセット
  int | value | - | 値

setUserDataFloat(userdata_id, offset, value)
材質ユーザーデータにfloat型(4バイト)の値を設定します。
  引数：
  int | userdata_id | - | 材質ユーザーデータID
  int | offset | - | データの先頭からのオフセット
  float | value | - | 値

setUserDataString(userdata_id, offset, length, value)
材質ユーザーデータにstring型の文字列を設定します。
  引数：
  int | userdata_id | - | 材質ユーザーデータID
  int | offset | - | データの先頭からのオフセット
  int | length | - | データ長（バイト単位での文字列の最大長）
  string | value | - | 値