적절한 뷰 볼륨(View Volume)의 설정
원하는 그래픽 객체들을 구현하는데 있어서 적절한 뷰 볼륨을 찾아내는 일은 쉬울 수도 있지만 사실 그렇지 않은 경우가 더 많은 것 같다. 구현하고자 하는 모든 그래픽 객체들을 포함할 수 있는 X 및 Y 범위에 따라 뷰플레인 사각형을 설정해야 하고, 적절한 Z 범위에 따라 가까운 쪽 및 먼 쪽 경계면을 설정해주어야 한다. 그런데 여러 개의 모델 객체들이 하나의 뷰 객체안에 포함이 되는 다소 복잡한 계층구조를 갖는 경우라면, 이러한 적절한 범위값을 찾는 일이 그리 간단하지는 않을 것이다. IDL에서는 이러한 작업을 어느 정도 간단하게 처리하게 해주기 위하여 set_view와 get_bounds라는 프로시저들이, IDL이 설치된 폴더내에서 examples/visual/utility라는 하위폴더안에 마련되어 있다.
이 set_view라는 프로시저는 뷰 객체와 그래픽 디바이스 객체를 인자로 받아들이며, 이 뷰 객체에 대한 적절한 뷰 볼륨을 계산하여 이를 뷰 객체의 VIEWPLANE_RECT 속성으로 부여해주는 역할을 한다. 내부적으로는 get_bounds라는 프로시저를 서브루틴으로 사용하여, 뷰 객체에 속한 하위 객체들의 X, Y, Z 범위를 계산하도록 되어있다. 이 프로시저들의 자세한 사용법은 일단은 자체적으로 들어가있는 주석문을 참조하길 바란다. 어차피 나중에 이 프로시저들을 사용하는 예제가 나올 것이다. 물론 이 프로시저들은 하나의 예제코드일 뿐이기 때문에, 실제 사용자들이 직면하게 될 모든 상황들에 대하여 항상 해결책을 제시한다는 보장은 없다. 실제 적용시 원하는 결과가 나오지 않는다면, 사용자 스스로 이 프로시저를 약간 수정하여 사용하는 것이 바람직할 경우도 있을 것이다.
이제 '객체의 위치 지정'이라는 주제에 관한 내용은 이쯤에서 마무리짓고, 다음 시간부터는 '객체의 변환'이라는 주제의 내용으로 들어갈 예정이다. 여기서 말하는 변환이란 transformation을 뜻하는데, 객체의 이동, 회전, 확대/축소 등에 관한 내용들이 소개될 것이다.
'IDL > Object Graphics' 카테고리의 다른 글
Object Graphics in IDL [22] (0) | 2011.01.24 |
---|---|
Object Graphics in IDL [21] (0) | 2011.01.18 |
Object Graphics in IDL [19] (0) | 2011.01.04 |
Object Graphics in IDL [18] (0) | 2010.12.31 |
Object Graphics in IDL [17] (0) | 2010.12.27 |