Monday, May 23, 2011

VXSceneStory and VXFunctoinScenario

VXFramework에서 Platform의 직속 Component에 유저 컨트롤에 따른 Function Parameter를 효율적으로 전달하기 위해 무엇을 해야 하는가?
VXFramework의 Managed Frame을 처음 설계할 때 머릿속을 늘 맴돌던 질문이었다.
이 질문에 대한 답을 얻기 위해 그 동안의 경험을 바탕으로 내린 자료 구조는 다음을 만족해야 했다.
  • 계속되는 요청 사항 및 기능 개선에 대응하기 위해 확장 가능한 Parameter의 자료 구조
  • 잦은 Parameter 변동에서 야기되는 Function Interface의 재정의 방지를 위한 자료구조
  • 단일 모듈이 아닌 다양한 모듈의 조합을 위한 자료구조
그리고 생각해 낸 것이 VXSceneStory 와 VXFunctionScenario 이다.

사실 여러 CAD 프로그램을 보면, 삼차원 상에 여러 객체를 조작하기 위해 Main Stage(또는 Scene)을 정의하게 된다. VXFramework도 큰 범주로 보자면 이런 부류이므로 Main Scene과 Scene을 이루는 각종 객체가 계층적으로 정의되야 함은 자명한 사실이다.

그렇다면 이 객체 간의 계층을 어떻게 구성해야 하며, 기왕이면 Volume Processing에 특화되면서 일반 CAD와의 호환성도 보장할 수 있는 구조는 어떻게 이루어져야 하는가 하는 질문에 도달하게 된다.

이를 위해 VXFramework에서는, 단순히 보여 주는 것 외에도 각종 데이터를 처리하는 "동작"을 Scene과 이를 이루는 객체 정의의 핵심으로 두었다. 그리고 이것을 바탕으로, 고안해 낸 것이 바로 객체(들)의 동작을 정의하는 Scenario이며, 이것들의 구성을 통해 Scene의 동작을 정의하는 Story라는 개념을 도입하였다.

이것이 바로 VXFunctionScenarioVXSceneStory 이다.

VXFunctionScenario 은 동작 모듈 ID, 모듈 동작을 위한 Custom Parameter, 모듈에서 사용될Resource들의 ID로 정의된다. VXSceneStory 는 이러한 VXFunctionScenario 들을 List로 갖고 있는 자료구조이며 각각은 편한 코딩을 위해 Helper를 제공하도록 구현되었다.

참 쉽죠잉~

No comments: