2011-09-18 7 views
-1

2 차원 장면 그래프에서 : 노드에서 회전 또는 기타와 같은 변형을 수행 할 때 이러한 작업을 자식 노드에 어떻게 적용해야합니까? 각 어린이에게 수술을 적용하면 시간이 많이 걸릴 수 있습니다. 응용 프로그램이 장면을 렌더링 할 때, 각 노드에서 전역 회전이 현재 노드 회전과 함께 추가되는 것을 생각했습니다. 번역 및 규모와 동일합니다. 그래프에서 상승하는 경우 해당 전역 속성이 차감됩니다. 더 좋은 방법이 있습니까?2 차원 장면 그래프에서 변형 적용

답변

3

현재 변형 행렬을 밀고 팝하는 스택을 사용해야합니다.

def calculateTransformRecursive(self): 

    pushGlobalTransform(); 
    self.calculateAndStoreGlobalTransform(); 
    for node in self.nodes: 
    node.calculateTransformRecursive(); 
    popGlobalTransform(); 

모든 노드가 시간을 그리기에 글로벌 변환을 가지고 있으며, 트리를 갈 때 "실행 취소"변환 할 필요가 없습니다 이쪽으로.