Class Model
DLL側で実装された Model を、C# 側の Model としてデータを受け取るためのクラスです。 (Node, Mesh, SubMesh も同様です。)
Model は、GMLファイルパーサーから読み取った3Dメッシュ情報を各ゲームエンジンに渡すための中間データ構造として設計されています。 そのデータにはメッシュ、テクスチャパス、ゲームオブジェクトの階層構造が含まれており、 DLLの利用者である Unity や Unreal Engine がメッシュやゲームオブジェクトを生成するために必要な情報が入るよう意図されています。 Model はそのデータ構造の階層のトップに位置します。
Model クラスのデータを元に、実際にメッシュやゲームオブジェクトを生成するのは PLATEAU Unity SDK の責務となります。
中間データ構造の階層 : Model -> 所有(0個以上) -> Node(階層構造) -> 所有(0or1個) -> Mesh -> 所有(1個以上) -> SubMesh
Model が所有する Node の階層関係は、ゲームエンジン側でのゲームオブジェクトの階層関係に対応します。 Node が所有する Mesh は、そのゲームオブジェクトが保持する3Dメッシュに対応します。 Mesh が所有する SubMesh は、そのメッシュのサブメッシュ(テクスチャパスを含む)に対応します。
DLLから得た Model を delete するのは C# 側の責務なので、 IDisposable を実装して不要時に delete しています。 delete 後は、配下のノードやメッシュにもアクセスできなくなります。
Inheritance
Namespace: PLATEAU.PolygonMesh
Assembly: cs.temp.dll.dll
Syntax
public class Model : PInvokeDisposable
Constructors
Model(IntPtr)
Declaration
public Model(IntPtr handle)
Parameters
Type | Name | Description |
---|---|---|
IntPtr | handle |
Properties
RootNodesCount
Declaration
public int RootNodesCount { get; }
Property Value
Type | Description |
---|---|
System.Int32 |
Methods
AddNodeByCppMove(Node)
ルートにノードを加えます。 取扱注意: C++の std::move によって Node が移動するので、 実行後は元の node は利用不可になります。
Declaration
public void AddNodeByCppMove(Node node)
Parameters
Type | Name | Description |
---|---|---|
Node | node |
Create()
Declaration
public static Model Create()
Returns
Type | Description |
---|---|
Model |
DebugString()
Model 以下の階層構造を文字列で表現します。
Declaration
public string DebugString()
Returns
Type | Description |
---|---|
System.String |
DisposeNative()
Declaration
protected override void DisposeNative()
Finalize()
Declaration
protected void Finalize()
GetRootNodeAt(Int32)
index
番目の Node を返します。
Declaration
public Node GetRootNodeAt(int index)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | index |
Returns
Type | Description |
---|---|
Node |