오직 BranchGroup만이 프로그램 실행 중에 detach, add 가 가능하기 때문에, BranchGroup의 생성시 이를 지정해 주어야 한다.
Exam code
- BranchGroup branch=new BranchGroup();
- branch.setCapability BranchGroup.ALLOW_DETACH);
- branch.setCapability(BranchGroup.ALLOW_CHILDREN_WRITE);
- branch.setCapability(BranchGroup.ALLOW_CHILDREN_EXTEND);
2번: branchgroup 자신이 parent group에서 분리될 수 있게 선언
3,4번: child group이 확장 되거나 새롭게 add될 수 있게 선언
상호 작용
Parent group과 child group의 branchgroup의 선언이 서로 match가 되어야
제대로 기능할 수 있다.
Exam code
BranchGroup parent=new BranchGroup();
parent.setcapability(BranchGroup.allow_child_write);
...
BranchGroup child=new BranchGroup();
child.setcapability(BranchGroup.allow_detach);
...
parent.addchild(child);
parent.removeall();
앞의 부모 branch에서 자식 branch를 다시 쓸 수 있다고 선언했지만,
아래의 자식 branch에서 스스로 detach 할 수 있다고 선언하지 않으면
parent.removeall()은 동작하지 않는다.
No comments:
Post a Comment