アセンブリ マネージャへのインタフェースを表します。オブジェクトを結合してアセンブリを作成するとき、およびアセンブリをテストおよび操作するときに使用します。
メソッド:
<node>assemblyMgr.Assemble <node array>nodes [ name:<string> ][ classDesc:<class> ] [ select:<bool> ]
name default value: undefined
classDesc default value: undefined
select default value: true
<node array> のノードを使用して新しいアセンブリを作成します。
name または classDesc を指定しない場合は、[アセンブリを作成]ダイアログ ボックスが表示されます。classDesc は MAXClass に渡されます。MAXClass のインスタンスは、アセンブリ ヘッドとして使用されます。この
MAXClass はヘルパー オブジェクトのクラスでなければなりません。アセンブリ ヘッドとして使用するヘルパーを拡張するために、スクリプト化されたプラグインを作成すれば、アセンブリ ヘッドに必要なプロパティを公開することができます。
例
|
object1 = Cylinder()--円柱を作成します。
--> $Cylinder:Cylinder01 @ [0.000000,0.000000,0.000000]
object2 = Box()--ボックスを作成します。
--> $Box:Box01 @ [0.000000,0.000000,0.000000]
object3 = OmniLight()
--> $Omni_Light:Omni01 @ [0.000000,0.000000,0.000000]
obj_array = #(object1, object2, object3)
--> #($Cylinder:Cylinder01 @ [0.000000,0.000000,0.000000], $Box:Box01 @ [0.000000,0.000000,0.000000], $Omni_Light:Omni01 @ [0.000000,0.000000,0.000000])
--オブジェクトから新しいアセンブリを作成し、Test01 という名前を付けて使用します。
--ヘッドとしてのダミー。new_ass にはアセンブリ ヘッドが含まれます。
new_ass = assemblyMgr.assemble obj_array name:"Test01" classDesc:Dummy
--> $Dummy:Test01 @ [0.000000,0.000000,-8.000000]
|
<bool>assemblyMgr.Disassemble <node array>nodes
指定されたノードを非アセンブリします。正常に終了した場合は
true
を返します。
例
|
--上記の例のアセンブリを引き続き使用します。
obj_array
--> #($Cylinder:Cylinder01 @ [0.000000,0.000000,0.000000], $Box:Box01 @ [0.000000,0.000000,0.000000], $Omni_Light:Omni01 @ [0.000000,0.000000,0.000000])
--元の配列は、ヘッド オブジェクトを含まないため、
--非アセンブリできません。
assemblyMgr.Disassemble obj_array
--> false
--配列にヘッドを追加し、再試行します。
append obj_array $Test01
--> #($Cylinder:Cylinder01 @ [0.000000,0.000000,0.000000], $Box:Box01 @ [0.000000,0.000000,0.000000], $Omni_Light:Omni01 @ [0.000000,0.000000,0.000000], $Dummy:Test01 @ [0.000000,0.000000,-8.000000])
--これで、アセンブリのすべてのオブジェクトを指定しました。
--非アセンブリ メソッドが正常終了しました。
assemblyMgr.Disassemble obj_array
--> true
|
<bool>assemblyMgr.Open <node array>nodes [clearSelection:<bool>]
clearSelection default value: true
指定されたノードを開きます。正常に終了した場合、
true
を返します。
clearSelection:
が
false
として指定される場合は、選択内容はクリアされません。
<bool>assemblyMgr.Close <node array>nodes[select:<bool>]
select default value: true
指定されたノードを閉じます。正常に終了した場合は
true
を返します。
<bool>assemblyMgr.Explode <node array>nodes
指定されたノードを分解します。正常に終了した場合、
true
を返します。
<bool>assemblyMgr.Attach <node array>nodes[assembly:<node>]
assembly default value: undefined
指定されたノードをアセンブリにアタッチします。正常に終了した場合は
true
を返します。
<bool>assemblyMgr.Detach <node array>nodes
指定されたノードをアセンブリにデタッチします。正常に終了した場合、
true
を返します。
<bool>assemblyMgr.CanAssemble <node array>nodes
<node array>
にアセンブリ可能なノードがある場合は、
true
を返します。
<bool>assemblyMgr.CanDisassemble <node array>nodes
<node array>
に非アセンブリ可能なノードがある場合は、
true
を返します。
<bool>assemblyMgr.CanExplode <node array>nodes
<node array>
に分解可能なノードがある場合は、
true
を返します。
<bool>assemblyMgr.CanOpen <node array>nodes
<node array>
に開くことができるノードがある場合は、
true
を返します。
<bool>assemblyMgr.CanClose <node array>nodes
<node array>
に閉じることができるノードがある場合は、
true
を返します。
<bool>assemblyMgr.CanAttach <node array>nodes assembly:<node>
assembly default value: undefined
<node array>
のノードがアセンブリにアタッチ可能な場合は、
true
を返します。
<bool>assemblyMgr.CanDetach <node array>nodes
<node array>
のノードがデタッチ可能な場合は、
true
を返します。
<node>assemblyMgr.IsAssembly <node array>nodes
<node array>
に指定されたノードで構成されるアセンブリのヘッド ノードを返すか、またはノードがアセンブリを形成していない場合は
undefined
を返します。
<bool>assemblyMgr.FilterAssembly <node>assemblyHead <value>filterSClassID <&node array>filteredNodes
filteredNodes is Out parameter
スーパークラスのノードのうち、指定されたヘッドを使ってアセンブリに追加するものをすべて抽出し、指定された filterNodes 配列に渡します。正常に終了した場合は
true
を返します。
例:
|
--アセンブリには、ヘッドとして円柱、ボックス、およびダミー ヘルパーが含まれます。
test_array = #($Box01, $Cylinder01)
--> #($Box:Box01 @ [0.000000,0.000000,0.000000], $Cylinder:Cylinder01 @ [0.000000,0.000000,0.000000])
--アセンブリにライトが含まれていることを確認します。
assemblyMgr.IsAssembly test_array
--> undefined
--ヘッドを含め、すべてのアセンブリ ノードを確認します。
test_array = #($Box01, $Cylinder01, $Omni01, $Test01)
--> #($Box:Box01 @ [0.000000,0.000000,0.000000], $Cylinder:Cylinder01 @ [0.000000,0.000000,0.000000], $Omni_Light:Omni01 @ [0.000000,0.000000,0.000000], $Dummy:Test01 @ [0.000000,0.000000,-8.000000])
a_head = assemblyMgr.IsAssembly test_array
--> $Dummy:Test01 @ [0.000000,0.000000,-8.000000]
--a_head には現在、上のオブジェクトを含むアセンブリのヘッドが含まれています。
--アセンブリ a_head に含まれるすべてのライト オブジェクトを検索します。
AssemblyMgr.FilterAssembly a_head Light &lightnodes
--> true
-- lightnodes には現在、スーパークラス Light のオブジェクトに対応するすべてのノードが含まれています。
lightnodes
--> #($Omni_Light:Omni01 @ [0.000000,0.000000,0.000000])
--アセンブリ a_head のすべてのカメラ オブジェクトを検索します。
AssemblyMgr.FilterAssembly a_head Camera &camnodes
--> true
--このアセンブリにカメラはありません。
camnodes
--> #()
|