IDL/Object Graphics

Object Graphics in IDL [09]

이상우_idl 2010. 9. 27. 14:12
728x90
반응형

그래픽 구성 관련 객체들 (Display Objects)


앞선 게시글들에서 예제로 소개되었던 plot, axis와 같은 객체들은 일종의 하위 그래픽 객체들의 성격을 지닌다. 하지만 이러한 객체들이 실제 디스플레이상에서 제대로 표출되기 위해서는, 이보다 더 상위단계에 있는 일종의 그릇에 해당되는 다소 추상적인듯한 의미의 객체들이 있어서 하위 객체들이 이 상위객체의 내부에 포함되어야만 한다. 이것이 바로 객체들의 계층구조(Hierarchy)라는 개념과 연결이 되는 내용인데, 이에 관한 좀 더 자세한 내용은 향후에 ‘Graphics Object Hierarchy’라는 주제에서 다루기로 한다. 일단 이 시점에서는 이 카테고리에 속하는 클래스들 각각에 대한 간략한 소개 정도만 하겠다.


1. Model (IDLgrModel)

모델 객체는 plot의 경우를 예로 들면, 선, 축, 제목 등과 같은 개개의 하위 그래픽 객체들을 포함하는 최소한의 묶음 단위라고 할 수 있다. 어떠한 하위 그래픽 객체든지 무조건 이러한 모델 객체안에 포함이 되어야만 한다. 모델 객체에 포함되지 않은 하위 그래픽 객체는 실제로 구현되지 않는다. 모델 객체안에 타 모델 객체가 포함되는 경우도 있다. 모델 객체는 3차원 공간상에서의 위치 및 방향을 나타내는 3차원 변환행렬을 자체적으로 내장하고 있다. 이 행렬의 요소값들을 변화시키면, 모델 객체안에 포함되어있는 하위 그래픽 객체들이 보이는 위치와 시선방향이 바뀌게 된다. 만약에 모델 객체안에 또 다른 모델 객체가 존재한다면, 각 모델 객체의 변환행렬이 함께 고려된 위치와 방향으로 보이게 된다. 즉 두 모델 객체의 변환행렬을 곱한 행렬이 최종적인 변환행렬이 되는 방식이다. 어쨌든 뭔가 하위 그래픽 객체에 해당되는 것을 하나 정의하면 무조건 이를 모델 객체안에 포함시켜야 한다는 사실을 우선적으로 기억해두자.

2. View (IDLgrView)

뷰 객체는 모델 객체를 포함하는 상위 개념의 객체이다. 각종 그래픽 객체들이 존재하게 될 3차원 공간의 크기나 좌표가 이 레벨에서 설정되며, 나중에 윈도우나 Z-Buffer와 같은 그래픽 표출 객체상에서 직접 표출되는 단위가 된다.

3. View Group (IDLgrViewgroup)

여러 개의 뷰 객체들을 포함하는 단순히 묶음 역할을 하는 객체이다. 실제로 사용되는 경우가 그리 많지는 않은 것 같다.

4. Scene (IDLgrScene)

뷰 객체나 뷰그룹 객체들을 포함하는 최상위 개념의 객체이다. 만약 구현하고자 하는 그래픽 체계상에서 뷰 객체가 하나뿐이라면 굳이 씬 객체를 만들 필요는 없다. 실제로 다른 예제들을 봐도 씬 객체 단계까지 설정되는 경우는 그리 많지 않은 것으로 알고 있다.


그래서 종합적으로 보면, 어떤 하위 그래픽 객체를 하나 정의하면 이를 먼저 모델 객체안에 포함을 시키고, 그 다음에 바로 이 모델 객체를 뷰 객체안에 포함을 시키는 방식으로 작업이 진행되는 경우가 많다. 모델 및 뷰 객체는 꼭 있어야하는 개념이라고 보면 되며, 나중에 일선에서 돌아다니는 각종 예제 및 코드들을 보면 이와 같은 방식으로 작업이 이루어지는 모습을 많이 보게 될 것이다.


이제 다음에는 하위 그래픽 객체들에 구체적으로 어떤 것들이 있는지 살펴보기로 하겠다.

반응형

'IDL > Object Graphics' 카테고리의 다른 글

Object Graphics in IDL [11]  (0) 2010.10.01
Object Graphics in IDL [10]  (0) 2010.09.30
Object Graphics in IDL [08]  (0) 2010.09.16
Object Graphics in IDL [07]  (0) 2010.08.28
Object Graphics in IDL [06]  (0) 2010.08.25