블로그 이미지
자신의 단점을 메꾸는 것을 단(鍛)이라 하고 자신의 강점을 갈고 닦는 것을 련(鍊)이라 하여, 두가지를 합친 것을 단련이라고 부른다. 붕대마음

카테고리

전체목록 (667)
참고사이트 (8)
Goal (4)
Travel (10)
My Life (105)
Game (35)
Game Review (7)
Game Plan (0)
Books (5)
English (1)
Optimizing (12)
Study (218)
유용한 것들_etc (44)
유용한 것들_func (20)
Unity (48)
Unreal (87)
작업장 (54)
RenderMonkey (6)
정리요망 (1)
따라잡기 시리즈 (0)
링크용 (0)
Total345,595
Today85
Yesterday123

'GetName'에 해당되는 글 1건

  1. 2011.04.13 max export 3. 노드관계도를 출력해 보자!!

이제 코딩을 해봐야 할듯 하다..
난 정말 셋팅 하는게 정말 싫다.ㅜㅜ.
드디어 코딩 시간~!!!

이 강좌와 함께 추가한 max 파일을 열어보자
만약 max 파일이 안 열린다면 이 max 파일을 만든 max의 버전 보다 낮은 거니 max 버전업을 하는게....

max 파일을 연 후에 위쪽 메뉴를 보면

Graph Editors 라는 메뉴가 있다.
이 메뉴의 하단에 "New Schematic View"라는 메뉴를 클릭해 보자.


위쪽으로 아래 오브젝트들의 관계도가 뜬다.
이제 이 관계를 출력할 프로그램을 만들어 보자.

간단하게 위의 관계도를 출력하는 프로그램을 만들 계획이다.
출력해야 하는 정보는 노드의 이름과 하위 노드의 갯수 정도면 될것 같다.
하위노드의 관계는 노드가 다시 노드를 가지는 계층구조이므로 재귀함수가 필요하다.


int MgExport2::DoExport(const TCHAR *name,ExpInterface *ei,Interface *i, BOOL suppressPrompts, DWORD options)
{
 // 1. 파일 생성
 if (Begin(name))
 {
  // 2. 부모노드
  INode* pRootNode = i->GetRootNode();

  // 3. 노드 순회
  Export(pRootNode);

  // 4. 파일 종료
  End();

  return TRUE; 
 }
 return FALSE;
}

이정도면 괜찮을 것 같다.
모든 코드를 다 적으면 귀찮으니까 핵심인 Export()함수만 살짝 살표보자.

/*
Action : max의 node를 export 한다, 이 함수는 재귀함수로
max scene tree를 순회하고 각 노드를 방문한 정보를 exporting한다.
*/
void MgExport2::Export(INode* node, int treeDepth)
{
 // 1. 노드 이름
 MCHAR* nodeName = node->GetName();  

 // 2. 노드의 자식 갯수
 int cntChildren   = node->NumberOfChildren();

 // 3. 들여쓰기, 자식 이름, 자식의 갯수를 출력
 Write(treeDepth, "[%s] : %i children", nodeName, cntChildren);

 // 3. 재귀함수
 treeDepth++;
 for(int i=0; i<cntChildren; i++)
 {
  Export(node->GetChildNode(i), treeDepth);
 }
}

DoExport함수에서 root Node를 받아서 노드의 이름을 얻고 자식 노드의 갯수를 구한다.
그리고 자식 갯수의 노드만큼 재귀를 돈다.

이제 Export를 해보자.
미리 설정해둔(소스에서 코딩해둔) shortDesc와 Ext값으로 된 목록을 선택하자



이를 출력하면 결과는 아래와 같다.

[Scene Root] : 1 children
 [BasePivot] : 1 children
  [WheelTrack] : 3 children
   [Wheel] : 0 children
   [RightPyramid] : 0 children
   [LeftPyramid] : 0 children

Posted by 붕대마음

댓글을 달아 주세요

최근에 달린 댓글

최근에 받은 트랙백

글 보관함