뷰어의 nodes
및 fragids
은 유향 그래프 데이터 구조를 나타 냅니까?노드 및 가상 데이터 구조체
그렇다면 가장자리는 어떻게 표현됩니까?
두 노드 사이의 가장자리는 무엇을 나타내는가?
항상 트리를 나타내거나 둘 이상의 연결된 구성 요소가있을 수 있습니까?
정수 배열과 표현 된 그래프 사이에 시각적 인 예제지도가 있습니까?
뷰어의 nodes
및 fragids
은 유향 그래프 데이터 구조를 나타 냅니까?노드 및 가상 데이터 구조체
그렇다면 가장자리는 어떻게 표현됩니까?
두 노드 사이의 가장자리는 무엇을 나타내는가?
항상 트리를 나타내거나 둘 이상의 연결된 구성 요소가있을 수 있습니까?
정수 배열과 표현 된 그래프 사이에 시각적 인 예제지도가 있습니까?
질문의 핵심은 무엇입니까? 무엇을 성취하려고합니까? 노드와 프래그먼트는 중요한 구성 요소가있는 큰 모델을 다룰 때 메모리를 절약하기 위해 어레이에서 크런치되고 있습니다. 루트 노드에서 시작
-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 내가 쓴 것이 도움이 될 수 있습니다.
노드는 원래 디자인 모델의 데이터 구조를 나타내는 트리 계층 구조로되어있는 객체를 나타냅니다. 예를 들어 Inventor 파일을 Model Derivative로 보내면 각 노드는 어셈블리, 하위 어셈블리 또는 부품을 나타냅니다. 트리 인스턴스는 노드를 연결하여 해당 구조를 반영합니다. fragmentIds는 메시를 나타냅니다. 특정 객체는 조각 모음 일 수 있습니다. 예를 들어, 객체는 id (원래 디자인 모델 고유 ID 또는 GUID에 매핑되는 고유 ID)를 가지며, 각 객체는 조각 모음입니다. Forge 모델 및 Forge 뷰어 API에서 지오메트리는 삼각형이있는 메시로 표시됩니다. 따라서 Brep 표현과 달리 서페이스 가장자리는 없지만 삼각형 가장자리 만 있습니다. WEBGL 렌더러가 메시를 캔버스에 렌더링하기 때문에 실루엣이 화면에 표시되지만 Brep 정의에 따라 가장자리가 아닙니다. 메쉬를 정의하는 삼각형 모서리에 대해 이야기하고 있다면, 그것은 또 다른 이야기입니다. 그러나 Forge Model Derivative API는 모델을 STEP, IGES, STL 형식으로 내 보내어 결국 Brep 표현을 얻을 수 있습니다. 노드를 보려면 뷰어에서 객체 트리 (또는 json 응답의 메타 데이터)를 표시하고 메시 (fragmentIds 컬렉션)를 보려면 노드를 분리하십시오.
그래서 노드의 데이터 구조는 무엇입니까? 그것은 배열이지만 힙이나 이진 트리와 같은 기본 구조를 가지고 있습니까? https://en.wikipedia.org/wiki/Binary_tree#Arrays – shinzou
나는 특정 노드 또는 위치까지의 거리에 가장 가까운 노드를 찾기 위해 더 빨리 검색하는 방법을 찾으려고 노력하고 있습니다. 그것을위한 BFS. – shinzou