Namespace PLATEAU.PolygonMesh
Classes
CityObjectList
CityObjectIndexとGML IDを対応付けるネイティブなmapです。
注意:
Meshと紐付けられたCityObjectListはMeshの削除時に一緒に削除されるので、Disposeを呼んではいけません。
したがって勝手に削除される
Mesh
メッシュ情報です。 Unity や Unreal Engine でメッシュを生成するために必要な情報が含まれるよう意図されています。 具体的には 頂点リスト、Indicesリスト、UV、サブメッシュ(含テクスチャ)があります。
詳しくは Model クラスのコメントをご覧ください。
MeshExtractor
MeshGranularityExtension
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 後は、配下のノードやメッシュにもアクセスできなくなります。
Node
Model 以下の階層構造を構成するノードです。 Node は 0個以上の 子Node を持つため階層構造になります。
詳しくは Model クラスのコメントをご覧ください。
Name はゲームエンジン側ではゲームオブジェクトの名前として解釈されることが想定されます。 Mesh はそのゲームオブジェクトの持つメッシュとして解釈されることが想定されます。
SubMesh
SubMesh は、 Mesh の一部 (Indices リストの中のとある範囲)がとあるテクスチャであることを表現します。
詳しくは Model クラスのコメントをご覧ください。
Structs
CityObjectIndex
MeshExtractOptions
GMLファイルから3Dメッシュを取り出すための設定です。
Enums
MeshGranularity
メッシュの結合単位