KR100890861B1 - 3차원 응용프로그램 프레임워크를 생성하는 방법 및 그 3차원 응용프로그램 프레임워크를 기반으로 하는 응용프로그램 구현 방법 - Google Patents

3차원 응용프로그램 프레임워크를 생성하는 방법 및 그 3차원 응용프로그램 프레임워크를 기반으로 하는 응용프로그램 구현 방법 Download PDF

Info

Publication number
KR100890861B1
KR100890861B1 KR1020080019855A KR20080019855A KR100890861B1 KR 100890861 B1 KR100890861 B1 KR 100890861B1 KR 1020080019855 A KR1020080019855 A KR 1020080019855A KR 20080019855 A KR20080019855 A KR 20080019855A KR 100890861 B1 KR100890861 B1 KR 100890861B1
Authority
KR
South Korea
Prior art keywords
user
component
function
modeling
model
Prior art date
Application number
KR1020080019855A
Other languages
English (en)
Inventor
정병수
Original Assignee
정병수
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 정병수 filed Critical 정병수
Priority to KR1020080019855A priority Critical patent/KR100890861B1/ko
Priority to US12/672,878 priority patent/US8676723B2/en
Priority to JP2010549565A priority patent/JP5192055B2/ja
Priority to PCT/KR2009/001031 priority patent/WO2009110725A2/ko
Application granted granted Critical
Publication of KR100890861B1 publication Critical patent/KR100890861B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 3차원 응용프로그램 프레임워크를 생성하는 방법 및 그 3차원 응용프로그램 프레임워크를 기반으로 하는 응용프로그램 구현 방법에 관한 것으로, 특히, 3차원 응용프로그램을 쉽고 빠르게 개발할 수 있도록 하는데 그 목적이 있다. 이러한 목적을 달성하기 위하여 본 발명은 모델링 작업을 수행하는 모델링 기능 컴포넌트(131)와, 다수의 3차원 모델 데이터를 관리하며 상기 모델링 작업 결과를 해당 모델 데이터에 반영하는 모델링 커널(132)과, 렌더링 컴포넌트(142)가 연결되며, 상기 모델링 커널(132)의 모델 데이터를 기반으로 다양한 종류의 모델 디스플레이 및 뷰잉(viewing)을 지원하는 디스플레이 컴포넌트(141)와, 상기 화면출력용 모델 데이터를 이용하여 실제 모델 선택 동작을 수행하기 위한 모델선택처리 컴포넌트(143)와, 사용자와의 인터페이스를 제공하는 GUI 컴포넌트(150)와, 사용자의 모델 선택 작업을 상기 모델선택처리 컴포넌트(143)에 요청하며 상기 GUI 컴포넌트(150)를 제어하여 사용자 기능의 GUI를 제어하기 위한 기능관리 컴포넌트(120)와, 사용자 메인모듈(도1에는 미도시)과 각 컴포넌트의 연결 및 각 컴포넌트 간의 연결을 수행하고, 상기 각 컴포넌트들의 동작을 제어하는 프레임워크 시스템(framework system)(110)을 포함하여 구성함을 특징으로 한다.
컴포넌트, 프레임워크 시스템, 사용자 메인모듈, 모델링, GUI

Description

3차원 응용프로그램 프레임워크를 생성하는 방법 및 그 3차원 응용프로그램 프레임워크를 기반으로 하는 응용프로그램 구현 방법{CONSTRUCTION METHOD FOR FRAMEWORK OF 3 DIMENSIONAL APPLICATION PROGRAM AND IMPLEMENTATION METHOD FOR APPLICATION PROGRAM THEREOF}
본 발명은 3차원 응용프로그램에 관한 것으로, 특히, 3차원 응용프로그램 프레임워크를 생성하는 방법 및 그 3차원 응용프로그램 프레임워크를 기반으로 하는 응용프로그램 구현 방법에 관한 것이다.
현재 3차원 영상 및 3D 영상의 모델링을 지원하기 위한 기술이 제시되어 있으며, 이를 기반으로 하는 가전 및 전자기기의 상용화를 위한 기술 개발이 활발히 이루어지고 있다.
가전 및 전자기기에서의 3차원 영상 및 3D 영상의 디스플레이를 위해서는 해당 콘텐츠의 개발이 수반되어야 한다. 이를 위해 다양한 종류의 3차원 응용 프로그램이 제시되어 있다.
상기 다양한 종류의 3차원 응용프로그램은 고유의 모델 및 이와 관련한 모델링 기능을 필요로 하고, 공통적으로 모델의 렌더링(Rendering), 디스플레이(Display) 및 Selection, Undo/Redo Function 관리 기능 등을 필요로 한다.
현재 3차원 응용프로그램은 CAD, 게임(Game) 분야는 물론 기업 R&D 중요성의 확대로 CAE 시스템 분야에 도입이 활발히 증가하고 있다.
또한, 3차원 모델링을 위한 전용 해석시스템 개발수요의 증가는 물론 공학분야 이외에도 의학, 교육, 가상현실 등과 같은 3차원 모델링 응용프로그램 개발분야로 확대되고 있다.
현재 상용화된 3차원 응용프로그램 프레임워크 제품으로는 미국 Tech Soft 3D사(www.techsoft3d.com)의 HOOPS가 있으며, 유사한 분야의 관련 상용화 제품으로 노르웨이 Ceetron ASA사(www.ceetron.com)의 GLView, 미국 Codejock Software사(www.codejock.com)의 ExtremeToolkit 등이 있다.
한편, 3차원 모델링 응용프로그램에 대한 고객요구수준이 높아짐에 따라 소프트웨어 개발기간과 비용 증가는 물론 프로그램의 크기가 커짐에 따라 품질 확보 방안이 갈수록 중요해지고 있다.
따라서, 향후 3차원 모델링을 위한 개발도구 및 컴포넌트의 역할이 매우 중요시되고 관련 시장은 지속적으로 확대될 것으로 예상된다.
하지만, 종래에 제공되고 있는 3차원 응용프로그램 프레임워크 제품은 기본적인 GUI 라이브러리만이 제공되고 있는 것은 물론 가격이 고가임으로 사실상 CAD/CAM/CAE 분야의 고가의 응용프로그램에서만 사용되고 있다.
즉, 현재 상용화된 3차원 응용프로그램은 가격 및 기능 상의 이유로 인해 개인, 연구소, 중소기업 등에서는 사용하기 어렵다는 문제점이 있다.
따라서, 본 발명은 상기의 문제점을 해결하기 위하여 창안한 3차원 응용프로그램 프레임워크를 생성하는 방법 및 그 3차원 응용프로그램 프레임워크를 기반으로 하는 응용프로그램 구현 방법에 관한 것이다.
특히, 본 발명은 사용자(개발자)가 구현하여야 할 이벤트 및 시스템 환경 관리 및 기능을 포함하는 프레임워크를 제공하여 개발자가 사용자 모델, 필요로 하는 실제의 모델링 기능 및 GUI(Graphic User Interface)를 용이하게 확장할 수 있도록 하는데 제1 목적이 있다.
또한, 본 발명은 상기 제1 목적의 프레임워크를 기반으로 3차원 응용프로그램을 구현함으로써 3차원 모델링 응용프로그램의 개발은 물론 유지보수를 쉽고 빠르고 안정적으로 수행할 수 있도록 하는데 제2 목적이 있다.
본 발명은 상기의 제1 목적을 달성하기 위하여, 3차원 모델링 유틸리티(Utility)를 포함하는 제1 모델링 기능과 모델 데이터를 관리하는 모델링 커널을 포함하는 제1 모델링 컴포넌트와, 상기 제1 모델링 컴포넌트를 기반으로 하는 다양한 종류의 모델 디스플레이 및 현재 선택된 모델의 뷰잉(viewing)(예를 들어, 이동, 회전, 확대 등)을 지원하는 제1 디스플레이 컴포넌트와, 상기 제1 디스플레이 컴포넌트에 연결되어 렌더링 툴(Rendering Tool)을 지원하는 제1 렌더링 컴포넌트와, 상기 제1 모델링 컴포넌트를 기반으로 디스플레이된 다양한 종류의 모델 요소(예들 들어, 점, 선, 면 등)에 대한 선택 처리를 수행하는 모델선택처리 컴포넌트와, 모델 디스플레이, 선택 및 뷰잉 등의 동작에 관련하여 사용자와의 인터페이스를 제공하는 제1 GUI(Graphic User Interface) 컴포넌트와, 사용자가 모델링 기능, 디스플레이 기능, 렌더링 기능 및 GUI 기능을 응용프로그램 개발 시에 구현하여 등록할 사용자 확장 컴포넌트와, 상기 사용자 기능들을 관리, 운영함에 있어서, 사용자의 모델 선택 작업을 상기 모델선택처리 컴포넌트에 요청하며 사용자 기능의 GUI 제어를 위해 상기 GUI 컴포넌터를 제어하는 기능관리 컴포넌트와, 3차원 응용프로그램 실행 시의 메인윈도우, 뷰윈도우, 메뉴, 툴바 등을 처리하기 위해 3차원 응용프로그램 개발 시에 구현하는 사용자 메인모듈과 상기 각 컴포넌트의 연결 및 각 컴포넌트 간의 연결을 수행하고, 이벤트 및 시스템 환경 관리를 포함하여 각 컴포넌트의 동작을 제어하는 프레임워크 시스템(framework system)을 포함하여 구성함을 특징으로 한다.
상기 제1 모델링 컴포넌트는 다수의 대용량 모델 데이터를 관리하는 모델링 커널과, 3차원 모델링 유틸리티를 포함하는 모델링 기능 컴포넌트를 포함하여 구성함을 특징으로 한다.
상기 렌더링 컴포넌트는 OpenGL, DirectX 등의 렌더링 툴을 포함하여 구성함을 특징으로 한다.
상기 사용자 확장 컴포넌트는 상기 프레임워크 시스템과 결합되는 사용자 메인모듈과, 응용프로그램의 개발자(이하, '개발자'라 칭함)가 확장 구현한 실제의 모델링 기능 및 기타 소프트웨어 작동기능 등의 사용자 기능을 등록하는 사용자 기능 모듈과, 개발자의 필요에 맞게 확장 등록되는 제2 모델링 컴포넌트와, 다양한 종류의 모델 디스플레이 및 현재 선택된 모델의 뷰잉(viewing)을 지원하도록 개발자에 의해 확장 등록되는 제2 디스플레이 컴포넌트와, 개발자의 필요에 맞게 확장한 렌더링 툴(Rendering Tool)을 등록하는 제2 렌더링 컴포넌트와, 사용자와의 인터페이스를 확장하도록 개발자가 구현하는 제2 GUI 컴포넌트를 포함하여 구성함을 특징으로 한다.
한편, 본 발명은 상기의 제2 목적을 달성하기 위하여, 3차원 응용프로그램 개발에 기본적으로 필요한 구성요소로서 기능관리 컴포넌트, 모델선택처리 컴포넌트 및 3차원 응용프로그램 실행 시에 메인윈도우, 뷰윈도우, 메뉴, 툴바 등의 처리를 위한 사용자 메인 모듈을 상기 컴포넌트들과 결합시키는 프레임워크 시스템을 포함하는 기본 프레임워크를 설치하는 단계와, 3차원 응용프로그램 실행 시 메인윈도우, 뷰윈도우, 메뉴, 툴바 등을 처리하도록 개발자가 작업 프로젝트(project)를 생성하여 사용자 메인모듈을 구현하는 단계와, 상기 기본 프레임워크를 사용자 메인모듈과 결합하는 단계와, 개발자가 사용자 모델 데이터 관리 기능, 모델링 기능, 디스플레이 기능 및 GUI 기능을 확장하여 상기 기본 프레임워크에 등록하는 단계와, 상기 확장 등록된 기능을 실행, 제어하기 위한 사용자 기능을 구현하여, 상기 기본 프레임워크에 추가하는 사용자 기능 구현 단계를 포함하여 구성함을 특징으로 한다.
상기에서 설명한 바와 같은 본 발명은 모델링 커널, Display 및 Selection 모듈 등의 컴포넌트를 제공함으로써 CAD/CAM/CAE 공학, 게임/영상처리, 및 기타 지형처리 분야 등의 3차원 응용프로그램의 개발기간 및 비용을 최소 40%, 특히 유지보수 비용의 경우 70%이상을 절감할 수 있는 효과를 달성할 수 있다.
즉, 본 발명은 사용자가 필수적으로 구현하여야 하는 컴포넌트를 제공함으로써 사용자가 수년에 걸친 작업을 통해서 알 수 있는 3차원 응용프로그램에 대한 노하우(know-how) 없이도 손쉽게 3차원 응용프로그램을 개발할 수 있도록 함으로써 작업시간을 단축시킬 수 있는 효과가 있다.
또한, 본 발명은 사용자가 필연적으로 구현하여야 하는 컴포넌트를 제공함으 로써 다수의 작업을 동시에 수행하는 경우에도 공통으로 사용할 수 있어 메모리의 최적화를 극대화함은 물론 사용자가 구현하려는 고유업무에 집중할 수 있도록 하여 최상의 응용프로그램을 구현할 수 있도록 하는 효과가 있다.
이하, 본 발명의 실시 예에 대한 동작을 도면에 의거하여 상세히 설명하면 다음과 같다.
도1은 본 발명의 실시 예를 위한 기본 프레임워크 구조를 보인 도면으로, 이에 도시한 바와 같이, 3차원 모델링 유틸리티(Utility)를 포함하며, 모델링 작업을 수행하는 모델링 기능 컴포넌트(131)와, 다수의 3차원 모델 데이터를 관리하며 상기 모델링 작업 결과를 해당 모델 데이터에 반영하는 모델링 커널(132)과, openGL, DirectX 등과 같은 렌더링 툴(Rendering Tool)을 지원하는 렌더링 컴포넌트(142)와, 상기 모델링 커널(132)의 모델 데이터를 기반으로 다양한 종류의 모델 디스플레이 및 뷰잉(viewing)(예를 들어, 이동, 회전, 확대 등)을 지원하며, 화면출력용 데이터를 상기 렌더링 컴포넌트(142)에 전달하는 디스플레이 컴포넌트(141)와, 상기 모델링 커널(132)를 기반으로 디스플레이된 모델에 대한 선택 처리를 수행하기 위한 모델선택처리 컴포넌트(143)와, 모델 디스플레이, 선택 및 뷰잉 등의 동작에 관련하여 사용자와의 인터페이스를 제공하는 GUI(Graphic User Interface) 컴포넌트(150)와, History/Batch Operation, Redo/Undo 등의 기능을 포함하여 사용자 기능(예로, 모델링 기능)을 지원함에 있어서, 사용자(프로그램 개발자 또는 작업자)의 모델 선택 작업을 상기 모델선택처리 컴포넌트(143)에 요청하며 상기 GUI 컴포넌트(150)를 제어하여 사용자 기능의 GUI를 제어하기 위한 기능관리 컴포넌트(120)와, 사용자 메인모듈(도1에는 미도시)과 각 컴포넌트의 연결 및 각 컴포넌트 간의 연결을 수행하고, 상기 각 컴포넌트들의 동작을 제어하는 프레임워크 시스템(framework system)(110)을 포함하여 구성한다.
상기 GUI 컴포넌트(150)는 플랫폼에 독립적으로 구현되며, GUI 플랫폼의 대 표적인 예로는 MFC(Microsoft Foundatio Class), QT 등이 있다.
상기 MFC(Microsoft foundation class)는 윈도즈용 응용 프로그램의 통합 개발 환경인 마이크로소프트 비주얼 C++에 부속되는 클래스 라이브러리로서, 윈도즈 응용 프로그램 작성에 유용한 많은 클래스를 제공한다.
또한, 상기 QT는 GUI 프로그램 개발을 위한 크로스 플랫폼 위젯 툴킷으로, 주로 C++를 사용하지만, 파이썬, 루비, C, 펄, 파스칼(pascal)로의 바인딩을 제공하고 있는데, SQL 데이터베이스 접근, XML 처리, 스레드 관리, 단일 크로스 플랫폼 파일 관리 API를 제공한다.
상기 위젯(widget)은 (1).컴퓨터에서 운영 체계(OS) 위의 응용 프로그램을 동작시키고 결과를 화면에 표시하는 작은 그래픽 사용자 인터페이스(GUI) 도구 또는 (2).응용 프로그램 작성 시에 자주 이용하는 사용자 중심의 그래픽과 데이터 처리 프로그램들을 모은 라이브러리를 의미한다. 예를 들어, X 윈도우가 윈도 관리자에 따라서 서로 다른 모습을 가지는 것은 위젯 라이브러리가 다르기 때문이다. 현재 가장 많이 사용되는 위젯 라이브러리는 리눅스 데스크톱 환경(KDE)의 QT 라이브러리와 GNOME의 GTK+ 라이브러리가 있다.
도1의 기본 프레임워크(100)는 본 발명에서 제시한 프레임워크에 대응된다.
상기와 같이 구성한 도1의 기본 프레임워크(100)는 3차원 응용프로그램 개발자(이하, '개발자'라 약칭함)에게 제공되어진다.
이에 따라, 개발자는 본 발명의 기본 프레임워크(100) 컴포넌트를 필요에 따라 확장하거나 새로 구현하고 도2의 사용자 확장 컴포넌트(200)를 구현하여 도1의 기본 프레임워크(100)와 결합함으로써 상기 기본 프레임워크(100) 컴포넌트의 기능을 확장하여 도4와 같은 프레임워크 구조를 갖는 3차원 응용프로그램을 손쉽게 구현할 수 있게 된다.
본 발명의 사용자 확장 컴포넌트(200)는 도2에 도시한 바와 같이, 개발자가 구현하고자 하는 3차원 응용프로그램의 틀에 해당하며, 3차원 응용프로그램 실행 시에 메인윈도우, 뷰윈도우, 메뉴, 툴바 등을 처리하는 사용자 메인 모듈(210)과, 개발자가 3차원 응용프로그램의 작동기능(모델링, 디스플레이 조작 기능 등)을 구현하여 등록하는 사용자 기능 모듈(220)과, 개발자가 확장한 3차원 모델링 유틸리티(Utility)를 포함하는 모델링기능 컴포넌트(231)와, 개발자가 확장한 3차원 모델 데이터를 관리하는 모델링 커널(232)과, 상기 모델링 커널(232)을 기반으로 개발자가 확장한 다양한 종류의 모델 디스플레이 및 뷰잉(viewing)(예를 들어, 이동, 회전, 확대 등)을 지원하는 디스플레이 컴포넌트(241)와, 개발자가 확장 등록한 렌더링 툴(Rendering Tool)을 지원하는 렌더링 컴포넌트(242)와, 개발자가 확장한 모델 디스플레이, 선택 및 뷰잉 등의 동작에 관련하여 사용자와의 인터페이스를 제공하는 GUI(Graphic User Interface) 컴포넌트(250)를 포함하여 구성한다.
따라서, 본 발명의 실시 예에서 도2의 사용자 확장 컴포넌트(200)를 구현하는 동작을 도3의 신호 흐름도를 참조하여 상세히 설명하면 다음과 같다.
도3은 사용자 확장 컴포넌트의 구현을 위한 신호 흐름도로서 이에 도시한 바와같이, 개발툴에 기본 프레임워크(100)가 설치된 후 개발자 정의의 작업 프로젝트(project)를 생성하고, 3차원 응용프로그램의 기능 선택 및 작업 진행을 위한 사용자 메인 모듈(210)을 구현하는 단계(S1)와, 기본 프레임워크(100)와 사용자 메인 모듈(210)을 연결하는 단계(S2)와, 개발자가 상기 기본 프레임워크(100)에 포함되지 않은 사용자 모델, 모델링 기능, 디스플레이 기능 및 GUI 기능을 확장하여 상기 기본 프레임워크(100)에 등록하는 단계(S3)와, 상기 확장 등록된 기능을 실행, 제어하기 위한 사용자 기능을 구현하여 상기 기본 프레임워크(100)에 추가하는 사용자 기능 구현 단계(S4)를 포함하여 구성한다.
이에 따라, 본 발명의 실시 예에서 도3의 사용자 확장 프레임워크 컴포넌트 구현 과정을 상세히 설명하면 다음과 같다.
먼저, 도1 구조의 기본 프레임워크(100)를 구입한 개발자는 개발툴(예로, 컴퓨터)에 상기 기본 프레임워크(100)를 설치하고, 개발자 정의의 프로젝트(project)를 생성하고, 자신이 원하는 3차원 응용프로그램에 맞게, 상기 개발툴을 이용하여 사용자 메인모듈(210)을 구현하게 된다(S1). 상기 기본 프레임워크(100)는 개발툴에서 읽을 수 있는 기록매체 예로 들어, CD, DVD, USB 메모리 등에 기록되어 개발자에게 제공되거나 인터넷 등의 통신망을 통해 제공될 수 있다.
상기 사용자 메인모듈(210)에는 메뉴, 툴바, 메인 윈도우, 뷰 윈도우 기능이 포함된다.
이후, 프레임워크를 이용하기 위해서 상기 생성된 작업 프로젝트(project)에 상기 기본 프레임워크(100)를 포함시키며, 상기에서 구현된 사용자 메인모듈(210)에 기본 프레임워크(100)를 연결하게 된다(S2).
이후, 개발자는 기본 프레임워크(100)에 포함되지 않은 사용자 모델, 모델링 기능, 디스플레이 기능 및 GUI 기능을 확장 구현하고 이를 프레임워크 시스템(110)을 통해 모델링 커널(232), 모델링기능 영역(231), 디스플레이 컴포넌트(241), 렌더링 컴포넌트(242), GUI 컴포넌트(250)에 등록함으로써 상기 기본 프레임워크(100)에 결합시키게 된다(S3).
또한, 개발자는 상기 과정(S1~S3)으로 구현 등록된 기능을 실행, 제어하기 위한 사용자 기능을 구현하고, 그 구현된 사용자 기능을 사용자 기능 모듈(220)에 등록함으로써 상기 기본 프레임워크(100)에 결합시키게 된다(S4).
따라서, 상기와 같은 과정으로 개발자가 사용자 확장 컴포넌트(200)를 기본 프레임워크(100)와 결합하여 상기 기본 프레임워크(100)를 확장하고 등록하게 되면 최종적으로 도4와 같은 프레임워크 구조의 3차원 응용프로그램이 구현되게 된다.
상기와 같이 구현된 3차원 응용프로그램은 상용화되어 최종 사용자(예를 들어, CAD 작업자 등)에게 판매된다.
한편, 상기와 같은 과정으로 하나의 3차원 응용프로그램이 상용화되면, 그 3차원 응용프로그램을 구입한 최종 사용자(이하, '작업자'라 칭함)는 그 3차원 응용프로그램을 이용하여 원하는 모델을 구현하는 작업을 수행하게 되는데, 상기의 동작으로 구현한 3차원 응용프로그램을 이용한 작업 과정을 도4의 프레임워크 구조를 참조하여 설명하면 다음과 같다.
먼저, 작업자가 3차원 응용프로그램을 컴퓨터 상에서 실행시키면 사용자 메인모듈(470)에 구현된 메인 윈도우와 뷰 윈도우, 다양한 메뉴, 툴바 등을 디스플레이하게 된다. 즉, 작업자가 3차원 응용프로그램을 실행시키면 사용자 메인 모듈(470)이 3차원 응용프로그램에서 필요한 사용자 기능을 기능관리 컴포넌트(420)에 전달하며 3차원 응용프로그램이 초기화된 후 상기 사용자 메인 모듈(470)에 구현된 메인윈도우, 뷰윈도우, 메뉴, 툴바 등이 디스플레이된다.
이후, 사용자 메인 모듈(470)은 사용자 입력을 프레임워크 시스템(410)에 전달하며 상기 프레임워크 시스템(410)은 상기 사용자 입력에 대응하는 기능의 실행을 위해 기능관리 컴포넌트(420)에 요청하며, 사용자가 툴바, 메뉴 등을 조작하면 이에 대응하는 기능의 실행을 상기 기능관리 컴포넌트(420)에 요청하게 된다.
이때, 상기 기능관리 컴포넌트(420)는 사용자 입력에 해당하는 기능을 사용자 기능 모듈(430)에서 실행시키고 이어서 상기 사용자 기능 모듈(430)을 통해 상기 실행된 기능에 해당하는 GUI 요소의 생성을 GUI 컴포넌트(460)에 요청하며 아울러 사용자 기능의 GUI 제어를 위해 상기 GUI 컴포넌트(150)를 제어한다.
이에 따라, GUI 컴포넌트(460)는 해당 GUI 요소를 생성하여 화면에 디스플레이시키고 사용자의 GUI 조작에 따라 해당 이벤트를 발생시키며, 기능관리 컴포넌트(420)는 상기 이벤트를 대응하는 사용자 기능에 전달한다.
예를 들어, 작업자가 메뉴나 툴바 등을 이용하여 사용자 기능의 하나인 '모델링 기능'을 실행시키면 기능관리 컴포넌트(420)는 사용자 기능 모듈(430)을 점검하여 요청된 모델링 기능을 실행시키며, 이어서 상기 사용자 기능 모듈(430)을 통해 GUI 컴포넌트(460)를 동작시킴으로써 해당 모델링 기능 화면을 디스플레이시키게 된다.
이후, 작업자가 원하는 모델링 작업에 대응하는 버튼을 클릭하면 GUI 컴포넌 트(460)를 통해 이벤트가 발생되어 기능관리 컴포넌트(420)에 전달되고, 상기 기능관리 컴포넌트(420)는 상기 이벤트를 사용자 기능 모듈(430)에 포함된 현재 실행 중인 모델링 기능에 전송하고, 이벤트를 전송받은 모델링 기능은 모델링 기능 컴포넌트(441)의 모델링 유틸리티(utility)를 이용하여 모델링 커널(442)에 대해 해당 모델링 작업을 수행하게 되며, 이때, 모델링 작업 결과를 디스플레이 컴포넌트(451)와 연동하여 화면에 디스플레이하게 된다.
이후, 작업자가 화면에 디스플레이된 모델에서 자신이 작업하려는 요소(예를 들어, 점, 선, 면 등)를 선택하게 되는데, 기능관리 컴포넌트(420)는 작업자의 선택에 대응하여 사용자 기능 모듈(430)에서 해당하는 모델선택 기능을 찾아 실행하고, 모델선택 기능의 실행에 따라 모델선택처리 컴포넌트(453)가 디스플레이 컴포넌트(451)에 있는 화면출력용 모델 데이터를 이용하여 실제 모델선택 동작을 수행하며, 디스플레이 컴포넌트(451)가 렌더링 컴포넌트(452)를 제어하여 모델 선택 결과를 화면에 디스플레이시키게 된다.
이후, 사용자의 조작에 따라 모델링 작업이 진행됨에 따라 상기 디스플레이 컴포넌트(441)가 3차원 모델링 커널(442)의 모델링 작업이 반영된 모델 데이터를 참고하여 화면출력용 모델 데이터를 갱신하고 렌더링 컴포넌트(442)를 제어하여 화면에 해당 모델링 작업의 결과를 디스플레이시키게 된다.
이에 따라, 작업자가 마우스나 키보드, 또는 대응하는 GUI의 버튼 등을 이 이용하여 화면에 디스플레이된 모델에 대해 수정(예를 들어, 생성, 삭제, 복사, 회전, 이동, 등) 작업을 실행하게 되면 기능관리 컴포넌트(420)는 상기 동작에 상응하여 사용자 기능모듈(430)에 포함된 현재 실행 중인 모델링 기능을 제어함으로써 3차원 모델링 기능(441)을 통해 모델링 작업을 수행하여 해당 모델에 실제 수정 작업을 수행하고 상기 작업결과를 3차원 모델링 커널(442)에 있는 모델 데이터를 반영하여 작업자가 원하는 모델 데이터를 제작하게 된다.
이후, 디스플레이 컴포넌트(451)는 3차원 모델링 커널(442)의 모델링 작업 결과가 반영된 모델 데이터를 참고하여 화면출력용 모델 데이터를 갱신하고 렌더링 컴포넌트(452)를 제어하여 모델링 작업의 결과 화면을 디스플레이시키게 된다.
상기에서 상세히 설명한 바와 같이, 본 발명에 따른 3차원 응용프로그램 프레임워크는 3차원 응용프로그램의 개발에서부터 유지보수까지 지원하는 시스템 솔 루션으로서, 이를 통해 사용자는 쉽고 빠르며 안정적으로 원하는 3차원 응용프로그램을 제작할 수 있다.
한편, 상기에서 설명한 본 발명의 실시 예는 당업자의 이해를 돕기 위한 바람직한 실시 예를 제시한 것일 뿐이며, 본 발명은 상기 설명한 실시 예에 의해서 한정되거나 제한되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 다양한 변경 및 수정이 가능함은 물론 이를 기반으로 하는 다른 실시 예의 구현도 가능하다.
도1은 본 발명의 실시 예를 위한 기본 프레임워크 구조를 보인 도면.
도2는 본 발명의 실시 예에서 사용자 확장 컴포넌트의 구조를 보인 도면.
도3은 본 발명의 실시 예에서 사용자 확장 컴포넌트의 구현 과정을 보인 신호 흐름도.
도4는 도3의 과정을 통해 구현된 응용프로그램 프레임워크 구조를 보인 도면.
** 도면의 각 부분에 대한 간단한 설명 **
110, 410 : 프레임워크 시스템 120,420 : 기능관리 컴포넌트
131,231,441 : 모델링 기능 컴포넌트
132,232,442 : 모델링 커널 141,241,451 : 디스플레이 컴포넌트
142,242,452 : 렌더링 컴포넌트 143,453 : 모델선택처리 컴포넌트
150,250,460 : GUI 컴포넌트 210,470 : 사용자 메인모듈
220,430 : 사용자 기능모듈

Claims (4)

  1. 3차원 모델 라이브러리를 기반으로 디스플레이된 다양한 종류의 모델에 대한 선택 처리를 수행하기 위한 모델선택처리 컴포넌트와,
    3차원 모델링 커널, 모델링 기능, 디스플레이 기능 및 GUI 기능 등을 사용자가 확장 가능한 사용자 확장 컴포넌트와,
    사용자 입력에 따라 사용자 기능 실행을 상기 사용자 확장 컴포넌트에 요청하며, 모델선택 작업을 상기 모델선택처리 컴포넌트에 요청하기 위한 기능관리 컴포넌트와,
    컴퓨터에서 3차원 응용프로그램 실행 시에 메인윈도우, 뷰윈도우, 메뉴, 툴바 등을 처리하기 위해 사용자가 구현하는 사용자 메인 모듈에 상기 컴포넌트들을 연결시키며, 사용자 조작에 따라 상기 컴포넌트들의 동작을 제어하는 프레임워크 시스템(framework system)을 포함하는 3차원 응용프로그램 프레임워크를 생성하는 방법.
  2. 제1항에 있어서,
    3차원 모델 데이터를 관리하는 모델링 커널 및 3차원 모델링 유틸리티(Utility)를 구비하는 모델링 커널을 포함하여 사용자 확장 컴포넌트를 통해 모델 데이터를 전달받아 모델링 작업을 수행하는 제1 모델링 컴포넌트와,
    상기 제1 모델링 컴포넌트를 기반으로 하는 다양한 종류의 모델 디스플레이 및 현재 선택된 모델의 뷰잉(viewing)(예를 들어, 이동, 회전, 확대 등)을 지원하는 제1 디스플레이 컴포넌트와,
    렌더링 툴(Rendering Tool)을 지원하며 상기 제1 디스플레이 컴포넌트의 제어에 따라 화면에 해당 모델을 디스플레이하는 제1 렌더링 컴포넌트와,
    모델 디스플레이, 선택 및 뷰잉 등의 동작에 관련하여 사용자와의 인터페이스를 제공하며 사용자의 GUI 조작에 따른 이벤트를 발생시키는 제1 GUI(Graphic User Interface) 컴포넌트를 더 포함하여 구성함을 특징으로 하는 3차원 응용프로그램 프레임워크를 생성하는 방법.
  3. 제1항에 있어서, 상기 사용자 확장 컴포넌트는
    3차원 응용프로그램 실행 시 메인윈도우, 뷰윈도우, 메뉴, 툴바 등을 처리하도록 개발자가 구현하여 상기 프레임워크 시스템에 결합시키는 사용자 메인모듈과,
    개발자가 구현한 실제의 모델링 기능 및 작동기능이 등록되며, 기능관리 컴포넌트에서 발생된 이벤트에 따라 해당 기능을 실행시키는 사용자 기능모듈과,
    3차원 모델 데이터를 관리하는 모델 커널 및 3차원 모델링 기능 컴포넌트를 개발자가 확장 등록할 수 있는 제2 모델링 컴포넌트와,
    모델의 디스플레이 및 디스플레이된 모델의 뷰잉(viewing)을 개발자가 확장 등록할 수 있는 제2 디스플레이 컴포넌트와,
    개발자가 선택 구현한 렌더링 툴(Rendering Tool)을 등록하는 제2 렌더링 컴포넌트와,
    사용자와의 인터페이스를 확장하도록 개발자가 구현하는 제2 GUI 컴포넌트를 포함하여 구성함을 특징으로 하는 3차원 응용프로그램 프레임워크를 생성하는 방법.
  4. 3차원 모델 라이브러리를 기반으로 디스플레이된 다양한 종류의 모델에 대한 선택 처리를 수행하는 모델선택처리 컴포넌트와, 상기 모델선택처리 컴포넌트를 제어하여 사용자의 모델링 구현 동작을 지원하기 위한 기능관리 컴포넌트와, 사용자 입력에 따라 상기 컴포넌트들의 동작을 제어하는 프레임워크 시스템(framework system)을 포함하는 기본 프레임워크를 개발툴(컴퓨터)에 설치하는 단계와,
    상기 개발툴에서 개발자 정의의 작업 프로젝트를 생성하고 3차원 응용프로그램 실행 시 메인윈도우, 뷰윈도우, 메뉴, 툴바 등을 처리하는 사용자 메인 모듈을 구현하여, 그 사용자 메인 모듈을 상기 프레임워크 시스템에 결합하는 단계와,
    개발자가 확장한 사용자 모델 관리 기능, 모델링 기능, 디스플레이 기능, 렌더링 기능 및 GUI 기능을 확장하여 상기 기본 프레임워크에 등록하는 단계와,
    상기 확장 등록된 기능의 실행, 제어를 위한 사용자 기능을 구현하여 상기 기본 프레임워크에 추가하는 사용자 기능 구현 단계를 포함하여 구성함을 특징으로 하는 3차원 응용프로그램 프레임워크를 기반으로 하는 응용프로그램 구현 방법.
KR1020080019855A 2008-03-04 2008-03-04 3차원 응용프로그램 프레임워크를 생성하는 방법 및 그 3차원 응용프로그램 프레임워크를 기반으로 하는 응용프로그램 구현 방법 KR100890861B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020080019855A KR100890861B1 (ko) 2008-03-04 2008-03-04 3차원 응용프로그램 프레임워크를 생성하는 방법 및 그 3차원 응용프로그램 프레임워크를 기반으로 하는 응용프로그램 구현 방법
US12/672,878 US8676723B2 (en) 2008-03-04 2009-03-03 Automated test system based on three-dimensional application software framework and a method thereof
JP2010549565A JP5192055B2 (ja) 2008-03-04 2009-03-03 3次元応用プログラムフレームワーク構造及びこれを基盤とするアプリケーション具現方法、並びに3次元応用ソフトウェアフレームワーク基盤の自動テストシステム及びその方法
PCT/KR2009/001031 WO2009110725A2 (ko) 2008-03-04 2009-03-03 3차원 응용프로그램 프레임워크 구조 및 이를 기반으로 하는 응용프로그램 구현 방법과, 3차원 응용소프트웨어 프레임워크 기반의 자동 테스트 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080019855A KR100890861B1 (ko) 2008-03-04 2008-03-04 3차원 응용프로그램 프레임워크를 생성하는 방법 및 그 3차원 응용프로그램 프레임워크를 기반으로 하는 응용프로그램 구현 방법

Publications (1)

Publication Number Publication Date
KR100890861B1 true KR100890861B1 (ko) 2009-03-27

Family

ID=40698804

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080019855A KR100890861B1 (ko) 2008-03-04 2008-03-04 3차원 응용프로그램 프레임워크를 생성하는 방법 및 그 3차원 응용프로그램 프레임워크를 기반으로 하는 응용프로그램 구현 방법

Country Status (1)

Country Link
KR (1) KR100890861B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060087995A (ko) * 2004-10-01 2006-08-03 마이크로소프트 코포레이션 작업 흐름을 모델링하는 방법 및 시스템
KR20070000732A (ko) * 2005-06-28 2007-01-03 학교법인 포항공과대학교 아사달 : 휘처 기반 소프트웨어 제품라인 개발 환경을제공하는 시스템
KR20070011058A (ko) * 2004-04-30 2007-01-24 마이크로소프트 코포레이션 모듈러 문서 포맷
KR20070049126A (ko) * 2007-04-11 2007-05-10 학교법인 포항공과대학교 아사달 : 휘처 기반 소프트웨어 제품라인 개발 환경을제공하는 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070011058A (ko) * 2004-04-30 2007-01-24 마이크로소프트 코포레이션 모듈러 문서 포맷
KR20060087995A (ko) * 2004-10-01 2006-08-03 마이크로소프트 코포레이션 작업 흐름을 모델링하는 방법 및 시스템
KR20070000732A (ko) * 2005-06-28 2007-01-03 학교법인 포항공과대학교 아사달 : 휘처 기반 소프트웨어 제품라인 개발 환경을제공하는 시스템
KR20070049126A (ko) * 2007-04-11 2007-05-10 학교법인 포항공과대학교 아사달 : 휘처 기반 소프트웨어 제품라인 개발 환경을제공하는 시스템

Similar Documents

Publication Publication Date Title
JP5192055B2 (ja) 3次元応用プログラムフレームワーク構造及びこれを基盤とするアプリケーション具現方法、並びに3次元応用ソフトウェアフレームワーク基盤の自動テストシステム及びその方法
US5621434A (en) Cursor manipulation system and method
US7337409B2 (en) Customizable drag and drop for industrial software applications
KR101153057B1 (ko) 디지털 디바이스 메뉴 편집기를 위한 방법 및 시스템
US7460123B1 (en) Dynamic control of graphic representations of data
US7818690B2 (en) Framework for creating user interfaces containing interactive and dynamic 3-D objects
EP1804177A1 (en) Merge tool for structured object models
US20090254801A1 (en) Model navigation
EP3881171B1 (en) Computer system and method for navigating building information model views
US6232983B1 (en) Positioning and alignment aids for shape objects having authorable behaviors and appearances
CN102915232A (zh) 一种3d控件的交互方法及通信终端
US6512519B1 (en) Infrastructure for shape event handlers
JP6298075B2 (ja) 複合物理モデリングのための再使用可能な形状シーケンスを作成するためのシステムおよび方法
US6219056B1 (en) Shape objects having authorable behaviors and appearances
US20230185427A1 (en) Systems and methods for animated computer generated display
KR100890861B1 (ko) 3차원 응용프로그램 프레임워크를 생성하는 방법 및 그 3차원 응용프로그램 프레임워크를 기반으로 하는 응용프로그램 구현 방법
Allison et al. The geant4 visualisation system
US6064386A (en) Shape objects having authorable behaviors and appearances
Urbanek iPlots eXtreme: next-generation interactive graphics design and implementation of modern interactive graphics
KR100949875B1 (ko) 3차원 응용소프트웨어 프레임워크 기반의 자동 테스트시스템 및 그 방법
Di Trapani et al. NTGsim: A graphical user interface and a 3D simulator for nonlinear trajectory generation methodology
US10684737B1 (en) Identifying a target for a pointing device
KR102646777B1 (ko) 멀티 기기용 반응형 페이지를 위한 그리드 레이아웃 설정 방법 및 이를 수행하는 프로그램
Kuester et al. Virtualexplorer: A plugin-based virtual reality framework
JP2023539010A (ja) コンピュータによって実現されるヒューマンマシーンインタラクション方法及びユーザインタフェース

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130619

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140319

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160318

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170318

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180620

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20190319

Year of fee payment: 11