MQObject class

頂点と面からなるオブジェクト情報を管理します。

Property

get set Type Name Description
o o string name オブジェクト名
o x long id オブジェクトを識別するユニークID
o o string typeName オブジェクトの種類
[Object] ポリゴンオブジェクト
[PointLight] 点光源
[DirLight] 平行光源
o x int numVertex 頂点数
o x int numFace 面数
o x list<MQVertex> vertex 頂点のリスト
o x list<MQFace> face 面のリスト
o o int visible オブジェクトの表示・非表示
[0] 非表示
[1] 表示
o o int lock オブジェクトの固定
[0] 無効
[1] 固定
o o int select オブジェクトの選択状態
[0] 選択されていない
[1] 選択されている
o o MQColor color 頂点・辺の表示色
o o int colorValid colorの値が有効かどうか
[0] 無効
[1] 有効
o o int shading シェーディングの種類
[0] フラットシェーディング
[1] スムースシェーディング
o o float smoothAngle スムージング角度 [0:180]
o o int patchType 曲面タイプ
[0] なし
[1] スプライン曲面タイプ1
[2] スプライン曲面タイプ2
[3] Catmull-Clark曲面
[4] OpenSubdiv曲面
o o int patchSegment 曲面分割数
o o int patchTriangle Catmull-Clark曲面での三角形の分割方法
[0] 四角形に分割
[1] 三角形に分割
o o int patchSmoothTriangle OpenSubdiv曲面での三角形のスムージング方法
[0] スムージングを行わない
[1] スムージングを行う
o o int patchLimitSurface OpenSubdiv曲面での極限サーフェス
[0] 極限サーフェスを適用しない
[1] 極限サーフェスを適用する
o o int patchMeshInterp OpenSubdiv曲面での開いた面の境界の補間方法
[1] エッジのみ
[2] エッジと角
o o int patchUVInterp OpenSubdiv曲面での開いたUVの境界の境界の補間方法
[0] すべて
[1] なし
[2] 角+1
[3] 境界
[4] 角のみ
[5] 角+2
o o int mirrorType 鏡面のタイプ
[0] なし
[1] 中心で分離した鏡面
[2] 中心をつなぐ鏡面
o o int mirrorAxisX X軸で鏡像生成
[0] なし
[1] 有効
o o int mirrorAxisY Y軸で鏡像生成
[0] なし
[1] 有効
o o int mirrorAxisZ Z軸で鏡像生成
[0] なし
[1] 有効
o o int mirrorAxisLocal ローカル軸に対する鏡像生成
[0] グローバル座標
[1] ローカル座標
o o float mirrorDistance 中心をつなぐ鏡像生成の適用距離
o o int latheType 回転体のタイプ
[0] なし
[1] 表面
[2] 裏面
[3] 両面
o o int latheAxis 回転体の回転軸
[0] X
[1] Y
[2] Z
o o int latheSegment 回転体の分割数
o o int depth 階層の深さ(ルート直下の場合0)
o o int folding 階層の折りたたみ表示
o o MQPoint scaling ローカル座標の拡大率
o o MQAngle rotation ローカル座標の回転角
o o MQPoint translation ローカル座標の位置
o o float lightValue 光源の強度
o o int lightAttenuation 光源の減衰タイプ
[0] なし
[1] 1次線形
[2] 2乗
o o float lightFalloffEnd 光源の終了距離
o o float lightFalloffHalf 光源の半減距離
o o list<int> uvChannels UVチャンネルIDのリスト
o x int activeUVChannel アクティブなUVチャンネルID

Method

Member Description
clone オブジェクトを複製します。
merge 2つのオブジェクトを合成します。
freeze 曲面や鏡面などの属性をフリーズします。
clear 頂点・面をすべて削除します。
addVertex 頂点を追加します。
addVertex 頂点を追加します。
deleteVertex 指定した頂点を削除します。
addFace 指定した頂点を取り囲む面を追加します。
insertFace 指定したインデックスに面を挿入します。
deleteFace 指定した面を削除します。
invertFace 面の向きを反転します。
optimizeVertex 指定距離以下にある頂点を結合します。
compact 頂点・面のインデックスを切り詰めます。
getVertexIndexFromUniqueID ユニークIDから頂点のインデックスを取得します。
getFaceIndexFromUniqueID ユニークIDから面のインデックスを取得します。
allocUserData オブジェクトにユーザーデータ用の領域を確保します。
freeUserData ユーザーデータ用領域を解放します。
getUserDataInt オブジェクトユーザーデータからint型(4バイト)の値を取得します。
getUserDataFloat オブジェクトユーザーデータからfloat型(4 bytes) の値を取得します。
getUserDataString オブジェクトユーザーデータからstring型の文字列を取得します。
setUserDataInt オブジェクトユーザーデータにint型(4バイト)の値を設定します。
setUserDataFloat オブジェクトユーザーデータにfloat型(4バイト)の値を設定します。
setUserDataString オブジェクトユーザーデータにstring型の文字列を設定します。
allocVertexUserData 頂点ユーザーデータ用の領域を確保します。
freeVertexUserData ユーザーデータ用領域を解放します。
getVertexUserDataInt 頂点ユーザーデータからint型(4バイト)の値を取得します。
getVertexUserDataFloat 頂点ユーザーデータからfloat型(4 bytes) の値を取得します。
getVertexUserDataString 頂点ユーザーデータからstring型の文字列を取得します。
setVertexUserDataInt 頂点ユーザーデータにint型(4バイト)の値を設定します。
setVertexUserDataFloat 頂点ユーザーデータにfloat型(4バイト)の値を設定します。
setVertexUserDataString 頂点ユーザーデータにstring型の文字列を設定します。
allocFaceUserData 面ユーザーデータ用の領域を確保します。
freeFaceUserData ユーザーデータ用領域を解放します。
getFaceUserDataInt 面ユーザーデータからint型(4バイト)の値を取得します。
getFaceUserDataFloat 面ユーザーデータからfloat型(4バイト)の値を取得します。
getFaceUserDataString 面ユーザーデータからstring型の文字列を取得します。
setFaceUserDataInt 面ユーザーデータにint型(4バイト)の値を設定します。
setFaceUserDataFloat 面ユーザーデータにfloat型(4バイト)の値を設定します。
setFaceUserDataString 面ユーザーデータにstring型の文字列を設定します。
activateUVChannel UVチャンネルをアクティブ化します。
addUVChannel UVチャンネルを追加します。
deleteUVChannel UVチャンネルを削除します。

clone

オブジェクトを複製します。

戻り値:
MQObject - 複製されたオブジェクト

merge(source)

2つのオブジェクトを合成します。

引数:
MQObject source - 合成元オブジェクト
戻り値:
int - 結果
[0] 失敗
[1] 成功

freeze([flag])

曲面や鏡面などの属性をフリーズします。

引数:
int flag - フラグ (組み合わせ)
[1] 曲面
[2] 鏡面
[4] 回転体
[-1] すべて
戻り値:
int - 結果
[0] 失敗
[1] 成功

clear

頂点・面をすべて削除します。

addVertex(point)

頂点を追加します。

引数:
MQPoint point - 頂点の位置
戻り値:
int - 頂点のインデックス
[-1] 追加失敗

addVertex(x, y, z)

頂点を追加します。

引数:
float x - X座標
float y - Y座標
float z - Z座標
戻り値:
int - 頂点のインデックス
[-1] 追加失敗

deleteVertex(index[, delete_face])

指定した頂点を削除します。

引数:
int index - 削除する頂点のインデックス
int delete_face - 共有する面を削除するかどうか
[0] 削除しない (デフォルト)
[1] 削除する

addFace(list)

指定した頂点を取り囲む面を追加します。

引数:
list<int> list - 頂点インデックスのリスト
戻り値:
int - 面のインデックス
[-1] 追加失敗
例:

次の例ではMQObject型のobjに平面を追加します。

v = []
v.append( obj.addVertex(0,0,0) )
v.append( obj.addVertex(100,0,0) )
v.append( obj.addVertex(100,100,0) )
v.append( obj.addVertex(0,100,0) )
obj.addFace(v)

insertFace(index, list)

指定したインデックスに面を挿入します。

引数:
int index - 面のインデックス
list<int> list - 頂点インデックスのリスト
戻り値:
int - 面のインデックス
[-1] 追加失敗

deleteFace(index[, delete_vertex])

指定した面を削除します。

引数:
int index - 削除する面のインデックス
int delete_vertex - 他の面と共有しない頂点を削除するか
[0] 削除しない (デフォルト)
[1] 削除する

invertFace(index)

面の向きを反転します。

引数:
int index - 面のインデックス

optimizeVertex(distance)

指定距離以下にある頂点を結合します。

引数:
float distance - 距離

compact

頂点・面のインデックスを切り詰めます。

getVertexIndexFromUniqueID(id)

ユニークIDから頂点のインデックスを取得します。

引数:
long id - 頂点のユニークID
戻り値:
int - 頂点のインデックス
[-1] 取得失敗

getFaceIndexFromUniqueID(id)

ユニークIDから面のインデックスを取得します。

引数:
long id - 面のユニークID
戻り値:
int - 面のインデックス
[-1] 取得失敗

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 -

allocVertexUserData(userdata_id)

頂点ユーザーデータ用の領域を確保します。

引数:
int userdata_id - 頂点ユーザーデータID
戻り値:
int - 結果
[0] 失敗
[1] 成功

freeVertexUserData(userdata_id)

ユーザーデータ用領域を解放します。

引数:
int userdata_id - 頂点ユーザーデータID

getVertexUserDataInt(userdata_id, index, offset)

頂点ユーザーデータからint型(4バイト)の値を取得します。

引数:
int userdata_id - 頂点ユーザーデータID
int index - 頂点のインデックス
int offset - データの先頭からのオフセット
戻り値:
int -
[None] 取得失敗

getVertexUserDataFloat(userdata_id, index, offset)

頂点ユーザーデータからfloat型(4 bytes) の値を取得します。

引数:
int userdata_id - 頂点ユーザーデータID
int index - 頂点のインデックス
int offset - データの先頭からのオフセット
戻り値:
float -
[None] 取得失敗

getVertexUserDataString(userdata_id, index, offset, length)

頂点ユーザーデータからstring型の文字列を取得します。

引数:
int userdata_id - 頂点ユーザーデータID
int index - 頂点のインデックス
int offset - データの先頭からのオフセット
int length - データ長(バイト単位での文字列の最大長)
戻り値:
string -
[None] 取得失敗

setVertexUserDataInt(userdata_id, index, offset, value)

頂点ユーザーデータにint型(4バイト)の値を設定します。

引数:
int userdata_id - 頂点ユーザーデータID
int index - 頂点のインデックス
int offset - データの先頭からのオフセット
int value -

setVertexUserDataFloat(userdata_id, index, offset, value)

頂点ユーザーデータにfloat型(4バイト)の値を設定します。

引数:
int userdata_id - 頂点ユーザーデータID
int index - 頂点のインデックス
int offset - データの先頭からのオフセット
float value -

setVertexUserDataString(userdata_id, index, offset, length, value)

頂点ユーザーデータにstring型の文字列を設定します。

引数:
int userdata_id - 頂点ユーザーデータID
int index - 頂点のインデックス
int offset - データの先頭からのオフセット
int length - データ長(バイト単位での文字列の最大長)
string value -

allocFaceUserData(userdata_id)

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

引数:
int userdata_id - 面ユーザーデータID
戻り値:
int - 結果
[0] 失敗
[1] 成功

freeFaceUserData(userdata_id)

ユーザーデータ用領域を解放します。

引数:
int userdata_id - 面ユーザーデータID

getFaceUserDataInt(userdata_id, index, offset)

面ユーザーデータからint型(4バイト)の値を取得します。

引数:
int userdata_id - 面ユーザーデータID
int index - 面のインデックス
int offset - データの先頭からのオフセット
戻り値:
int -
[None] 取得失敗

getFaceUserDataFloat(userdata_id, index, offset)

面ユーザーデータからfloat型(4バイト)の値を取得します。

引数:
int userdata_id - 面ユーザーデータID
int index - 面のインデックス
int offset - データの先頭からのオフセット
戻り値:
float -
[None] 取得失敗

getFaceUserDataString(userdata_id, index, offset, length)

面ユーザーデータからstring型の文字列を取得します。

引数:
int userdata_id - 面ユーザーデータID
int index - 面のインデックス
int offset - データの先頭からのオフセット
int length - データ長(バイト単位での文字列の最大長)
戻り値:
string -
[None] 取得失敗

setFaceUserDataInt(userdata_id, index, offset, value)

面ユーザーデータにint型(4バイト)の値を設定します。

引数:
int userdata_id - 面ユーザーデータID
int index - 面のインデックス
int offset - データの先頭からのオフセット
int value -

setFaceUserDataFloat(userdata_id, index, offset, value)

面ユーザーデータにfloat型(4バイト)の値を設定します。

引数:
int userdata_id - 面ユーザーデータID
int index - 面のインデックス
int offset - データの先頭からのオフセット
float value -

setFaceUserDataString(userdata_id, index, offset, length, value)

面ユーザーデータにstring型の文字列を設定します。

引数:
int userdata_id - 面ユーザーデータID
int index - 面のインデックス
int offset - データの先頭からのオフセット
int length - データ長(バイト単位での文字列の最大長)
string value -

activateUVChannel(channel)

UVチャンネルをアクティブ化します。

引数:
int channel - UVチャンネルID
[0] 標準UVチャンネル
[!= 0] MQDocument.getUVChannelID()で生成・取得するID
戻り値:
int - UVチャンネルID
[0] 存在しないUVチャンネル
[1] 成功

addUVChannel(channel)

UVチャンネルを追加します。

引数:
int channel - UVチャンネルID
[!= 0] MQDocument.getUVChannelID()で生成・取得するID
戻り値:
int - 結果
[0] 失敗
[1] 成功

deleteUVChannel(channel)

UVチャンネルを削除します。

引数:
int channel - UVチャンネルID
戻り値:
int - 結果
[0] 失敗
[1] 成功