2017-03-21 2 views
0

ビューアのnodesfragidsは、有向グラフのデータ構造を表していますか?ノードとフラグメントデータstructre

もしそうなら、エッジはどのように表されますか?

2つのノード間のエッジは何を表しますか?

常にツリーを表すか、複数の接続コンポーネントが存在する可能性がありますか?

整数配列とそれが表すグラフの間に視覚的なマップがありますか?

答えて

1

あなたの質問の本質は何ですか?あなたは何を達成しようとしていますか?ノードとフラグメントは、重要な数のコンポーネントを持つ大きなモデルを扱うときにメモリを節約するために配列内でクランチされています。ルートノードから始まっ

-instanceTree.enumNodeChildren

-instanceTree.enumNodeFragments

var instanceTree = viewer.model.getData().instanceTree; 

var rootId = this.rootId = instanceTree.getRootId(); 
var rootName = instanceTree.getNodeName(rootId); 
var childCount = 0; 

instanceTree.enumNodeChildren(rootId, function(childId) { 

    var childName = instanceTree.getNodeName(childId); 

    console.log(childName); 

    childCount++; 
}); 

:ビューアのAPIを使用すると、nodeIdは指定したノードの子ノードまたはその断片を繰り返し処理することができますメソッドを公開します必要なデータ構造を構築することができます。 This article私は役に立つと書いています。

+0

私は、例えば、特定のノードまたは位置までの距離によって最も近いノードを見つけるために、より速く検索する方法を見つけようとしています。そのためのBFS。 – shinzou

1

ノードは元の設計モデルのデータ構造を表すツリー階層に収まるオブジェクトを表します。たとえば、InventorファイルをModel Derivativeに送信すると、各ノードはアセンブリ、サブアセンブリ、またはパーツを表します。ツリーインスタンスは、ノードをリンクしてその構造を反映します。 fragmentIdsはメッシュを表します。特定のオブジェクトは断片の集合であるかもしれません。例えば、オブジェクトはid(元のデザインモデルの一意のIDまたはGUIDにマップされる一意のID)を持ち、各オブジェクトはフラグメントのコレクションであるジオメトリを持つことがあります。 ForgeモデルとForgeビューアAPIでは、ジオメトリは三角形のメッシュとして表されます。したがって、Brep表現とは異なり、サーフェスエッジはありませんが、三角形エッジのみです。 WEBGLレンダラーがメッシュをキャンバスにレンダリングするため、シルエットが画面に表示されますが、Brep定義ごとにエッジではありません。あなたがメッシュを定義するためにそこにある三角の辺について話しているなら、それは別の話です。 しかし、Forge Model Derivative APIは、モデルをSTEP、IGES、STL形式にエクスポートして、最終的にBrep表現を取得することができます。 ノードを表示するには、Viewerからオブジェクトツリー(またはjsonレスポンスのメタデータ)を表示し、メッシュ(fragmentIdsのコレクション)を表示するには、ノードを分離します。

+0

ノードのデータ構造は何ですか?これは配列ですが、ヒープやバイナリツリーのような基底構造を持っていますか? https://en.wikipedia.org/wiki/Binary_tree#Arrays – shinzou

関連する問題