2017-03-21 2 views
0

뷰어의 nodesfragids은 유향 그래프 데이터 구조를 나타 냅니까?노드 및 가상 데이터 구조체

그렇다면 가장자리는 어떻게 표현됩니까?

두 노드 사이의 가장자리는 무엇을 나타내는가?

항상 트리를 나타내거나 둘 ​​이상의 연결된 구성 요소가있을 수 있습니까?

정수 배열과 표현 된 그래프 사이에 시각적 인 예제지도가 있습니까?

답변

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는이 (가) 노드 아이디 주어진 노드의 아이 또는 조각을 통해 반복 할 수 있습니다 방법을 노출 원하는 데이터 구조를 구축 할 수 있습니다. 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 표현을 얻을 수 있습니다. 노드를 보려면 뷰어에서 객체 트리 (또는 json 응답의 메타 데이터)를 표시하고 메시 (fragmentIds 컬렉션)를 보려면 노드를 분리하십시오.

+0

그래서 노드의 데이터 구조는 무엇입니까? 그것은 배열이지만 힙이나 이진 트리와 같은 기본 구조를 가지고 있습니까? https://en.wikipedia.org/wiki/Binary_tree#Arrays – shinzou