ITreeEnumProc
반응형
맥스에서 개체는 INode로 이루어져 있다.
해당 노드로 부터 bone, dummy, mesh등의 정보를 얻어 올 수 있다.
이 노드를 얻기위해서 두가지 방법이 있다.
하나는 Interface::GetRootNode로 모으는 방법이고
다른 하나는 ExpInterface::theScene->EnumTree(ITreeEnumProc*) 함수로
클래스를 넘겨서 callback 함수가 호출되게 하는 방법이다.
1. Interface::GetRootNode()를 이용하는 방법
void maxProject::PreProcess(INode* node, int& nodeCount)
{
nodeCount++; // 노드의 갯수
mtlList.AddMtl(node->GetMtl());
// 재귀 호출
for (int c = 0; c < node->NumberOfChildren(); c++) {
PreProcess(node->GetChildNode(c), nodeCount);
}
}
2. ExpInterface::theScene->EnumTree(ITreeEnumProc*)를 통한 callback 메소드를 호출하는 방법.
class ITreeEnumProc //ITreeEnumProc 맥스의 원형이다.
{
public:
virtual int callback( INode *node )=0; //순수 가상 함수
};
class MyEnumProc: public ITreeEnumProc //상속
{
public:
int callback( INode *node ) //콜백함수 정의
{
return 0;
}
};
'Study > Character' 카테고리의 다른 글
max export 2. 과감하게 F5를 눌러서 실행되는 모습을 감상해 주자!! (0) | 2011.04.13 |
---|---|
max export 1. 시작이 반이다!! 설정방법 (0) | 2011.04.13 |
3ds Max Plugin Wizard 사용하기 (0) | 2011.03.25 |
Physique Vs Skin modifier and Bones Vs Bipeds (2) | 2010.01.26 |
max plugin과 max script의 차이점 (0) | 2009.10.12 |
TAGS.