Object Graphics의 계층구조
앞선 게시글에서 잠시 언급했듯이, 모든 그래픽 객체들은 전체적으로 하나의 거대한 계층구조(Hierarchy)를 가지며, 각 객체들은 특성에 따라 계층구조상의 특정 단계에 속하게 된다. 이러한 계층구조를 구성하는 핵심이 되는 객체들이 바로 앞서 소개되었던 그래픽 구성 관련 객체들(Display Objects)이다. 이러한 객체들은 다른 종류의 객체들을 포함할 수 있는 특성을 갖고 있다. 우선 계층구조의 예를 그림으로 나타내면 다음과 같다.
이 그림을 보면 4개의 하위레벨 그래픽 객체(Graphic Atom)들이 있고, 이들은 3개의 모델 객체(Model Object)에 소속되어 있다. 하나의 모델 객체안에는 여러 개의 하위레벨 그래픽 객체들이 들어갈 수 있다. 그리고 이 3개의 모델 객체들은 두 개의 뷰 객체(View Object)에 속해있으며, 이 둘은 결국 하나의 씬 객체(Scene Object)에 속해있는 것을 볼 수 있다. 여기서 각 객체 종류별로 어떤 지위를 갖고 있는지를 확인해두는 것이 중요하다.
이와 같은 계층구조를 갖게 되면, 상위레벨의 객체에 대하여 가해진 변경사항이 이에 속한 하위레벨 개체들 모두에게 한꺼번에 적용된다. 예를 들어, 위 그림의 왼쪽 윗부분에 두 개의 그래픽 객체를 보유한 모델 객체의 시선방향을 바꾸게 되면, 그 변동사항은 소속된 두 그래픽 객체 모두에게 동일하게 적용된다. 그리고 씬 객체를 윈도우나 프린터 객체로 부르게 되면, 이에 속한 모든 하위레벨 객체들이 해당 그래픽 디바이스로 출력된다.
본인의 경험으로는 통상적으로는 씬 객체의 단계까지는 구현을 잘 안하고, 주로 뷰 객체 수준까지만 구현하는 경우가 많다. 그래서 Object Graphics상에서 하나의 plot을 그린다고 하면, plot, X축, Y축 등의 개별 그래픽 객체들을 하나의 모델 객체에 넣고, 이 모델 객체는 그 상위의 뷰 객체에 포함되도록 한 다음, 이 뷰 객체가 윈도우 객체로 나타나게끔 작업을 하는 경우가 일반적이다. 그래픽 객체의 수가 아주 많고 복잡한 작업이 아닌 한은 이와 같은 방식만으로도 충분하다.
다음 게시물에서는 계층구조상의 각 요소들에 관하여 자세히 살펴보기로 한다.
'IDL > Object Graphics' 카테고리의 다른 글
Object Graphics in IDL [13] (0) | 2010.12.01 |
---|---|
Object Graphics in IDL의 연재와 관련하여... (0) | 2010.11.12 |
Object Graphics in IDL [11] (0) | 2010.10.01 |
Object Graphics in IDL [10] (0) | 2010.09.30 |
Object Graphics in IDL [09] (0) | 2010.09.27 |