KR20190016686A - 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템 - Google Patents
전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템 Download PDFInfo
- Publication number
- KR20190016686A KR20190016686A KR1020170100918A KR20170100918A KR20190016686A KR 20190016686 A KR20190016686 A KR 20190016686A KR 1020170100918 A KR1020170100918 A KR 1020170100918A KR 20170100918 A KR20170100918 A KR 20170100918A KR 20190016686 A KR20190016686 A KR 20190016686A
- Authority
- KR
- South Korea
- Prior art keywords
- electronic chart
- opengl
- data
- dimensional
- coordinate system
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B29/00—Maps; Plans; Charts; Diagrams, e.g. route diagram
- G09B29/003—Maps
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Remote Sensing (AREA)
- Mathematical Physics (AREA)
- Business, Economics & Management (AREA)
- Educational Administration (AREA)
- Educational Technology (AREA)
- Processing Or Creating Images (AREA)
Abstract
본 발명의 일 실시예는 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템에 관한 것으로, 해결하고자 하는 기술적 과제는 육지 지역, 수심지역과 같은 면 객체를 삼각화하여 3차원으로 표시할 수 있게 하는데 있다.
이를 위해 본 발명의 일 실시예는 3차원 가시화 환경에서 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템이고, 전자해도 데이터를 입력받는 데이터 입력모듈; 및 상기 입력된 전자해도 데이터 중 전자해도 면 객체(즉, 전자해도 다각형 객체)를 삼각형으로 분할한 후, OpenGL ES의 glDrawArrays 함수를 사용해 내부를 동일한 색으로 채워 면 객체 데이터를 생성하는 객체 데이터 생성모듈; 상기 전자해도 데이터를 항정선(Rhumb Line)이 직선으로 표현되는 점장도법(Mercator)을 이용하여 점장하여 점장 좌표 체계를 구성하는 점장 좌표 체계 구성모듈; 및 상기 생성된 면 객체 데이터를 상기 점장 좌표 체계로 구성된 3차원 가시화 환경(OpenGL 또는 OpenGL ES) 상에서 국제수로기구(IHO)의 S-52에 따른 미리 설정된 매핑 기법을 이용하여 표현하는 전자해도 객체 표현모듈을 포함하는 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템을 개시한다.
이를 위해 본 발명의 일 실시예는 3차원 가시화 환경에서 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템이고, 전자해도 데이터를 입력받는 데이터 입력모듈; 및 상기 입력된 전자해도 데이터 중 전자해도 면 객체(즉, 전자해도 다각형 객체)를 삼각형으로 분할한 후, OpenGL ES의 glDrawArrays 함수를 사용해 내부를 동일한 색으로 채워 면 객체 데이터를 생성하는 객체 데이터 생성모듈; 상기 전자해도 데이터를 항정선(Rhumb Line)이 직선으로 표현되는 점장도법(Mercator)을 이용하여 점장하여 점장 좌표 체계를 구성하는 점장 좌표 체계 구성모듈; 및 상기 생성된 면 객체 데이터를 상기 점장 좌표 체계로 구성된 3차원 가시화 환경(OpenGL 또는 OpenGL ES) 상에서 국제수로기구(IHO)의 S-52에 따른 미리 설정된 매핑 기법을 이용하여 표현하는 전자해도 객체 표현모듈을 포함하는 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템을 개시한다.
Description
본 발명의 일 실시예는 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템에 관한 것이다.
선박을 통한 해상운송은 대량의 화물을 경제적인 가격으로 목적지까지 운송하거나, 다수의 인원을 수송하는데 가장 유효한 수단으로 오랫동안 이용되고 있다. 또한, 선박은 현재도 세계의 경제활동을 뒷받침하는 기반이 되고 있다.
이러한 선박의 안전하고 효율적인 운항을 위해 전자해도(Electronic Navigation Chart, ENC)를 사용하고 있다.
전자해도는 종이 해도의 디지털화를 통하여 각종 선박에 사용되는 전자항해장비에 디지털 해도로서 사용되어 선박의 항해 안전을 위해 사용되고 있으며, 이러한 전자해도는 국제수로기구(IHO)가 제정한 디지털 수로데이터 교환표준(S-57)을 채택 사용하고 있다.
전자해도는 S-57에 정의된 표준에 따라 독립점(Isolated Node), 연결점(Connected Node) 및 선분(Edge)으로 점, 선, 면 공간 정보를 모델링하며, S-52에 정해진 표현 방법에 따라 화면에 도시한다. S-57에 정의된 공간 정보(Spatial Data)는 2차원을 바탕으로 자료구조를 구성하였기 때문에 3D로 구현하기에 적합하지 않다.
예를 들면, 수심지역(DEPARE)이나 육지지역(LNDARE)은 구멍(Hole)이 있는 오목다각형으로 표현되는데, 3차원 가시화 환경에서는 오목다각형(concave polygon)을 그리는 함수가 존재하지 않는다. 그러므로 2D 기반의 전자해도를 3차원 가시화 환경에서 그리기 위해서는 Polygon Triangulation 등의 작업이 필요하다.
또한, S-57 표준에 의해 작성되는 전자해도를 처리하는 시스템은 장비의 고성능을 필요로 하고 한다.
특히, 최근에는 해상 통신 인프라와 모바일 장치의 발달로 인하여, 웹 환경을 통한 전자해도 정보의 제공에 대한 필요성이 증대하고 있는 실정이다.
본 발명의 일 실시예는 육지 지역, 수심지역과 같은 면 객체를 삼각화하여 3차원으로 표시하는 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템을 제공한다.
본 발명의 일 실시예에 의한 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템은 3차원 가시화 환경에서 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템이고, 전자해도 데이터를 입력받는 데이터 입력모듈; 및 상기 입력된 전자해도 데이터 중 전자해도 면 객체(즉, 전자해도 다각형 객체)를 삼각형으로 분할한 후, OpenGL ES의 glDrawArrays 함수를 사용해 내부를 동일한 색으로 채워 면 객체 데이터를 생성하는 객체 데이터 생성모듈; 상기 전자해도 데이터를 항정선(Rhumb Line)이 직선으로 표현되는 점장도법(Mercator)을 이용하여 점장하여 점장 좌표 체계를 구성하는 점장 좌표 체계 구성모듈; 및 상기 생성된 면 객체 데이터를 상기 점장 좌표 체계로 구성된 3차원 가시화 환경(OpenGL 또는 OpenGL ES) 상에서 국제수로기구(IHO)의 S-52에 따른 미리 설정된 매핑 기법을 이용하여 표현하는 전자해도 객체 표현모듈을 포함할 수 있다.
상기 전자해도 객체 표현모듈은 미리 설정된 조합 함수 프로그램을 이용하여 상기 점장 좌표 체계를 전자해도의 경위도 좌표에서 3차원 화면 좌표로 변환하는 좌표 변환부; 및 상기 변환된 3차원 화면 좌표에 대하여 상기 생성된 면 객체 데이터를 상기 점장 좌표 체계로 구성된 3차원 가시화 환경(OpenGL 또는 OpenGL ES) 상에서 국제수로기구(IHO)의 S-52에 따른 미리 설정된 매핑 기법을 이용하여 표현하는 객체 표현부;를 포함할 수 있다.
상기 객체 표현부는 상기 생성된 면 객체 데이터를 상기 점장 좌표 체계로 구성된 3차원 가시화 환경(OpenGL 또는 OpenGL ES)에 대응되도록 미리 설정된 매핑 기법을 이용하여 확대, 축소 및 이동이 가능하도록 표현하거나, 상기 점장 좌표 체계로 구성된 3차원 가시화 환경(OpenGL 또는 OpenGL ES) 상에서 미리 설정된 매핑 기법을 이용하여 국제수로기구(IHO)의 S-52에 따른 면 객체 데이터에 대한 그리기를 수행하도록 할 수 있다.
본 발명의 일 실시예에 따른 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템은 수심지역(DEPARE)이나 육지지역(LNDARE)은 구멍(Hole)이 있는 오목다각형으로 표현되는데, 3차원 가시화 환경에서는 오목다각형(concave polygon)을 그리는 함수가 존재하지 않는 종래 기술과 달리 육지 지역, 수심지역과 같은 면 객체를 삼각화하여 3차원으로 표시할 수 있다.
도 1은 본 발명의 일 실시예에 따른 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템을 나타내는 블럭도이다.
도 2는 도 1의 전자해도 객체 표현모듈을 나타내는 블럭도이다.
도 3은 도 1의 점장 좌표 체계 구성모듈에 의한 점장 좌표를 나타내는 도면이다.
도 4는 도 1의 객체 데이터 생성모듈에 의하여 생성된 면 객체 데이터를 나타내는 도면이다.
도 5는 도 4에 의하여 생성된 면 객체 데이터를 도 3의 점장 좌표 체계에 맞게 그리는 순서를 나타내는 도면이다.
도 6은 본 발명의 일 실시예에 따른 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템에 의하여 S-52에 따른 디스플레이 상태를 나타내는 도면이다.
도 7은 본 발명의 일 실시예에 따른 전자해도 좌표 체계 및 텍스쳐 매핑에 의한 객체 표현이 가능한 3차원 전자해도 시스템에 의한 S-57의 전자해도 속성의 공간정보를 담는 클래스 구조를 나타내는 도면이다.
도 8은 본 발명의 일 실시예에 따른 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템에 의한 X, Y, Z 축을 선택하고 회전하여 2D 전자해도가 3축을 중심으로 회전하는 예를 나타내는 도면이다.
도 9는 본 발명의 일 실시예에 따른 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템에 의한 3차원 해저지형 예를 나타내는 도면이다.
도 2는 도 1의 전자해도 객체 표현모듈을 나타내는 블럭도이다.
도 3은 도 1의 점장 좌표 체계 구성모듈에 의한 점장 좌표를 나타내는 도면이다.
도 4는 도 1의 객체 데이터 생성모듈에 의하여 생성된 면 객체 데이터를 나타내는 도면이다.
도 5는 도 4에 의하여 생성된 면 객체 데이터를 도 3의 점장 좌표 체계에 맞게 그리는 순서를 나타내는 도면이다.
도 6은 본 발명의 일 실시예에 따른 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템에 의하여 S-52에 따른 디스플레이 상태를 나타내는 도면이다.
도 7은 본 발명의 일 실시예에 따른 전자해도 좌표 체계 및 텍스쳐 매핑에 의한 객체 표현이 가능한 3차원 전자해도 시스템에 의한 S-57의 전자해도 속성의 공간정보를 담는 클래스 구조를 나타내는 도면이다.
도 8은 본 발명의 일 실시예에 따른 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템에 의한 X, Y, Z 축을 선택하고 회전하여 2D 전자해도가 3축을 중심으로 회전하는 예를 나타내는 도면이다.
도 9는 본 발명의 일 실시예에 따른 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템에 의한 3차원 해저지형 예를 나타내는 도면이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1은 본 발명의 일 실시예에 따른 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템을 나타내는 블록도이고, 도 2는 도 1의 전자해도 객체 표현모듈을 나타내는 블록도이며, 도 3은 도 1의 점장 좌표 체계 구성모듈에 의한 점장 좌표를 나타내는 도면이고, 도 4는 도 1의 객체 데이터 생성모듈에 의하여 생성된 면 객체 데이터를 나타내는 도면이며, 도 5는 도 4에 의하여 생성된 면 객체 데이터를 도 3의 점장 좌표 체계에 맞게 그리는 순서를 나타내는 도면이고, 도 6은 본 발명의 일 실시예에 따른 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템에 의하여 S-52에 따른 디스플레이 상태를 나타내는 도면이며, 도 7은 본 발명의 일 실시예에 따른 전자해도 좌표 체계 및 텍스쳐 매핑에 의한 객체 표현이 가능한 3차원 전자해도 시스템에 의한 S-57의 전자해도 속성의 공간정보를 담는 클래스 구조를 나타내는 도면이고, 도 8은 본 발명의 일 실시예에 따른 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템에 의한 X, Y, Z 축을 선택하고 회전하여 2D 전자해도가 3축을 중심으로 회전하는 예를 나타내는 도면이며, 도 9는 본 발명의 일 실시예에 따른 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템에 의한 3차원 해저지형 예를 나타내는 도면이다
우선, 본 발명의 일 실시예에 따른 전자해도 좌표 체계 및 텍스쳐 매핑에 의한 객체 표현이 가능한 3차원 전자해도 시스템(100)은 OpenGL ES를 모바일 플랫폼에 적용한 전자해도 시스템이다.
이때, OpenGL ES (임베디드 단말을 위한 OpenGL)는 크로노스 그룹이 정의한 3차원 컴퓨터 그래픽스 API인 OpenGL의 서브셋으로, 휴대전화, PDA 등과 같은 임베디드 단말을 위한 API이다.
본 발명은 다음과 같은 주요 특징을 활용하여 전자해도 시스템 개발에 적용한다.
로열티 없는 실제적인 업계 표준: OpenGL ES는 공개 표준으로 누구든지 스펙은 다운로드 받을 수 있으며 OpenGLES에 기반한 제품을 출하할 수 있다.
작은 코드 크기와 낮은 전력 소모: 임베디드 시스템은 400M Hz+64M 램이 장착된 PDA에서부터 50MHz+1M 램이 장착된 휴대폰까지 다양하다. OpenGL ES는 이러한 다양한 환경에 사용될 수 있도록 코드 크기가 작으며 동작에 필요한 메모리나 명령/데이터 트래픽도 최소화되어 있다. 또 부동 소수점이외에도 고정 소수점(Fixd point) 연산을 사용할 수 있다(부동소수점 연산을 사용할 수 없거나 매우 느린 임베디드 시스템에 도움이 된다). 사용자 입장에서 다운로드 받아야 할 프로그램의 크기가 보다 작아지며 적은 메모리만을 차지한다.
매끄러운 하드웨어 가속: OpenGL ES는 비록 고정된 그래픽 프로세싱 파이프라인을 사용하지만 각각의 과정은 어플리케이션 수정 없이 하드웨어 가속, 소프트웨어, 또는 하드웨어 가속과 소프트웨어의 조합으로 실행될 수 있다. 따라서 개발자들은 고속의 하드웨어 가속이되는 장비와 그렇지 않은 장비 모두를 매끄럽게 지원할 수 있다.
확장성 및 진보: OpenGL ES는 OpenGL 확장 매커니즘(OpenGL Extension Mechanism)을 통해서 진보된 하드웨어 기능을 사용하거나 업데이트할 수 있게 지원한다. 만약 확장 기능이 널리 사용되면 그 기능은 OpenGL ES의 표준으로 포함될 수 있다. 이러한 방식은 OpenGL ES이 잘 관리되면서도 빠르게 진보할 수 있도록 한다.
손쉬운 사용: OpenGL ES는 OpenGL에 기반하며 직관적인 디자인과 명령으로 구성되어 있다. 기존의 OpenGL 어플리케이션을 OpenGL ES로 포팅하거나 반대의 작업을 하는데 수월하다.
도 1 내지 도 4를 참조하면, 본 발명의 일 실시예에 따른 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템은 3차원 가시화 환경에서 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템(100)이고, 데이터 입력모듈(110), 객체 데이터 생성모듈(120), 점장 좌표 체계 구성모듈(130) 및 전자해도 객체 표현모듈(140)을 포함할 수 있다.
상기 데이터 입력모듈(110)은 전자해도 데이터를 입력받는 장치로서, 구체적으로 도시하지는 않았지만, 별도의 통신수단이나 입력수단을 통해서 외부 또는 메모리 등의 저장수단으로부터 전자해도(ENC, ELECTRONIC NAVIGATION CHART) 데이터를 입력 받을 수 있다. 이 전자해도 데이터는 국제수로기구(IHO)에서 정한 S-57 표준에 의해 작성될 수 있다.
상기 객체 데이터 생성모듈(120)은 데이터 입력모듈(110)에 입력된 전자해도 데이터 중 전자해도 면 객체(즉, 전자해도 다각형 객체)를 삼각형으로 분할한 후, OpenGL ES의 glDrawArrays 함수를 사용해 내부를 동일한 색으로 채워 면 객체 데이터를 생성한다.
상기 점장 좌표 체계 구성모듈(130)은 전자해도 데이터를 항정선(Rhumb Line)이 직선으로 표현되는 점장도법(Mercator)을 이용하여 점장하여 점장 좌표 체계를 구성한다.
상기 전자해도 객체 표현모듈(140)은 객체 데이터 생성모듈(120)에 의하여 생성된 면 객체 데이터를 점장 좌표 체계로 구성된 3차원 가시화 환경(OpenGL 또는 OpenGL ES) 상에서 국제수로기구(IHO)의 S-52에 따른 미리 설정된 매핑 기법을 이용하여 표현한다.
상기 전자해도 객체 표현모듈(140)은 도 2에 도시된 바와 같이, 좌표 변환부(141) 및 객체 표현부(142)를 포함한다.
상기 좌표 변환부(141)는 미리 설정된 조합 함수 프로그램을 이용하여 점장 좌표 체계를 전자해도의 경위도 좌표에서 3차원 화면 좌표로 변환한다.
상기 객체 표현부(142)는 좌표 변환부(141)에 의하여 변환된 3차원 화면 좌표에 대하여 객체 데이터 생성모듈(120)에 의하여 생성된 면 객체 데이터를 점장 좌표 체계로 구성된 3차원 가시화 환경(OpenGL 또는 OpenGL ES) 상에서 국제수로기구(IHO)의 S-52에 따른 미리 설정된 매핑 기법을 이용하여 표현한다.
상기 객체 표현부(142)는 객체 데이터 생성모듈(120)에 의하여 생성된 면 객체 데이터를 점장 좌표 체계로 구성된 3차원 가시화 환경(OpenGL 또는 OpenGL ES)에 대응되도록 미리 설정된 매핑 기법을 이용하여 확대, 축소 및 이동이 가능하도록 표현하거나, 점장 좌표 체계로 구성된 3차원 가시화 환경(OpenGL 또는 OpenGL ES) 상에서 미리 설정된 매핑 기법을 이용하여 국제수로기구(IHO)의 S-52에 따른 면 객체 데이터에 대한 그리기를 수행하도록 할 수 있다.
일반적으로, 전자해도에 대한 객체의 속성 및 스타일에 대한 내용은 국제수로기구(IHO)의 S-52 표준에 명시되어 있고, 각 객체별 색상, 표시방법 및 심볼 등이 포함될 수 있다.
따라서, 상기 전자해도 객체 표현모듈(140)은 객체 스타일을 국제수로기구(IHO)의 S-52 표준에 따라 설정할 수 있다.
이를 위하여, 상기 전자해도 객체 표현모듈(140)은 전자해도 객체를 묘사하기 위해서 객체 카탈로그 및 속성 카탈로그 정보를 이용하여 Lookup Table의 심볼로지 명령어(Symbology Instruction)를 추출하고, 추출된 심볼로지 명령어에 따라 객체를 묘사하는데, 이때 심볼로지 명령어는 조건부 심볼명령 (Conditional Symbology), 복합선 (Complex Line), 중심심볼 (Centered Symbol) 등을 다양하게 표현할 수 있다.
또한, 상기 전자해도 객체 표현모듈(140)은 S-52에 따른 미리 설정된 매핑 기법을 이용하여 표현된 면 객체 데이터를 외부의 웹 서버(도시하지 않음)(예를 들어, GeoServer)에 등록할 수 있다.
이때, 상기 웹 서버에 등록되는 객체 데이터는 영역별(셀 형태)로 구분될 수 있고, 각 영역 데이터는 축척에 따라 여러 단계로 구성될 수 있다. 상기 전자해도 객체 표현모듈(140)은 GeoServer에서 제공하는 REST API를 이용하여 객체 데이터를 등록할 수 있으며, 객체 데이터 그룹 설정 및 줌 레벨에 따른 보기 속성 등을 설정할 수 있다. 이에 따라, 상기 웹 서버는 객체 데이터가 등록되면, 웹 브라우저(Web browser)를 통해 해당 전자해도에 대한 객체 데이터를 서비스할 수 있다. 결과적으로, 오픈소스 자바스크립트 라이브러리인 OpenLayers 등과 같은 툴을 이용하여 웹 브라우저에서 전자해도를 확인하도록 할 수 있다.
이를 통하여 본 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템(100)은 수심지역과 같은 면 객체를 삼각화하여 3차원으로 표현할 수 있다.
결과적으로, 도 6에 도시된 바와 같이, 본 발명의 일 실시예에 따른 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템(100)은 S-52에 따른 디스플레이를 효과적으로 수행할 수 있다.
이하에서는, 상기와 같이 구성된 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템(100)의 구동에 관하여 상세하게 순차적으로 설명하기로 한다.
좌표체계
WGS84 데이텀을 사용하는 전자해도 데이터를 투영법의 적용 없이 직교좌표계(cartesian coordinate)에 작도하면 원이 납작한 타원으로 표시되게 되며, 화면상에 그려진 침로선(Course Line)이 실제 침로(Course)와 다르게 표시되는 단점이 있으므로 현재의 대부분의 항해용 해도는 항정선(Rhumb Line)이 직선으로 표현되는 점장도법(Mercator)을 사용하며, ECDIS도 점장도법을 사용하고 있다.
점장도법이란 경도선의 간격은 고정하고 위도선의 간격을 조절하여 각도 관계가 정확해지도록 고안한 도법으로 고위도로 갈수록 위도 간의 간격이 점점 넓어지는 특징이 있다.
점장도법에서는 자오선이 적도와 수직인 평행선으로 그려지고 모든 항정선이 직선으로 그려지므로 선박 항해에 가장 적합한 도법으로 알려져 있다.
적도에서 위도 L까지의 길이와 적도에서의 경도 1도의 길이 비(比)를 점장 변위(M)라 하는데 수학식 1로 표현된다.
[수학식 1]
본 발명에서는 화면 표시를 위한 좌표 변환 계산량을 줄이기 위해 모든 공간정보 자료를 점장변위에 따라 미리 점장하여 저장하였고, 확대, 축소 및 이동을 위하여 도 3과 같은 방식의 점장 좌표 체계를 제안한다. 이때, 도 3의 위도는 점장위도를 표시한다.
또한, 본 발명에서는 픽셀단위로 화면크기를 설정하는 glViewport 함수, 정사영투영(Orthographic Projection)을 설정하는 Matrix.Ortho 함수, 화면 중심을 이동하는 translate 함수, 회전을 적용하는 rotate 함수 및 전자해도 객체의 경위도 좌표를 화면 좌표로 변환하는 MoveCenter 함수를 조합하여 전자해도의 경위도 좌표에서 컴퓨터의 3차원 화면 좌표로 변환한다. 도 5는 좌표변환의 구체적인 흐름을 나타내고 있다.
전자해도 면 객체의
삼각화
일반적으로, OpenGL이든 OpenGL ES이든 오목다각형(Concave Polygon)을 작도하는 함수는 존재하지 않는다. 전자해도의 수심지역과 육상지역의 주요 다각형 객체는 모두 오목다각형이므로 오목다각형을 3차원 가시화 환경에서 작도하기 위해서는 삼각화가 필요하다. 다각형의 삼각화에 관한 주제는 최근 100년간 꾸준히 연구되어 온 고전적인 연구 분야로 Recursive Ear Cutting algorithm, Sweep Line algorithm, Incremental Randomized Algorithm의 주요 3가지 알고리듬이 있다 (Wu, Poly2Tri). 본 발명은 Wu의 개선된 Sweep Line Algorithm을 사용하여 삼각화를 수행하였다.
다각형을 삼각형으로 분할한 후에 OpenGL ES의 glDrawArrays 함수를 사용해 내부를 동일한 색으로 채움으로써 다각형을 작도한 것처럼 보이게 한다.
도 4에 의해 만들어진 면 객체를 도 3의 점장 좌표 체계에 맞도록 그리는 순서에 대한 설명을 함수 소스코드 일부와 함께 도 5에 나타내었다.
즉, 도 5에 도시된 바와 같이, 본 발명은 3단계의 간단한 행렬계산으로 화면의 확대, 축소 및 이동이 가능하도록 좌표체계와 그리기 함수를 구성한다.
일반적으로, 전자해도는 공간정보(Spatial Information)와 속성정보(Feature Information)가 따로 저장되는데 공간정보는 서로 겹치지 않게 저장된다. 공간정보는 독립점(Isolated Node), 연결점(connected node)과 선분(edge)으로 구성되며, 면 객체는 선분을 연결하여 구성하게 된다.
본 발명에서는 이러한 구조의 S-57 공간정보와 속성 정보를 저장하고 S-52 Look up table, Presentation Library를 저장할 수 있는 클래스를 설계하고 구현하였다. 프로그램 개발도구로는 다중 플래폼용 프로그램을 제작할 수 있는 QT(https://www.qt.io)(즉, 컴퓨터 프로그래밍에서 GUI 프로그램 개발에 널리 쓰이는 크로스 플랫폼 프레임워크)를 사용하였다.
도 7은 S-57 전자해도 Feature의 공간정보를 담는 클래스 구조를 보여주고 있다.
도 8은 본 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템(100)에 의한 3D ENC Viewer에서 X, Y, Z 축을 선택하고 회전하여 2D 전자해도가 3축을 중심으로 회전하는 것을 보여주고 있다. 이때, 도 8에서의 화면은 육상 지형의 높이 및 해저 지형의 깊이 값을 적용하지 않으므로 그 결과는 2D 전자해도와 같이 보이며, 도 9에서와 같이 수심정보를 이용한 3차원 해저지형 구성을 통하여 3D 데이터로 구현할 수 있다.
[표 1]
한편, 표 1에서와 같이, *.000 확장자를 갖는 공인 전자해도 파일과 변환된 2D SENC 파일 그리고 3D SENC 파일의 크기 변화 및 운영체제에 따른 디스플레이 속도 변화를 알 수 있다. 이에 따라, 3D 데이터로 변환 시 공간정보량이 최대 4배 가량 늘어나지만 디스플레이 속도는 2배 이상 빨라지는 것을 확인하였으며, 안드로이드 스마트 폰에서도 1초 안에 디스플레이가 완료 되는 것을 확인하였다. 시험환경으로 i7 CPU, 8 GB RAM을 갖는 Windows 7 환경의 데스크탑과 삼성 엑시노스 5433 Octa Core 1.9 GHz CPU를 갖는 안드로이드 운영체제의 겔럭시 Note 4를 사용하였다.
이는 OpenGL ES로 3D 전자해도 시스템을 적용하였을 경우 데스크탑에 비해 저성능인 CPU를 사용하는 모바일 플랫폼에서도 속도저하 없이 원활하게 동작함을 의미한다.
한편, 상기 데이터 입력모듈(110), 객체 데이터 생성모듈(120) 및 전자해도 객체 표현모듈(140)의 표면에는 해당 데이터 입력모듈(110), 객체 데이터 생성모듈(120) 및 전자해도 객체 표현모듈(140)의 오지시 및 수명단축의 원인이 되는 표면오염문제를 해결하기 위하여 실리콘 성분을 포함한 표면보호도포층이 형성된다. 상기 표면보호도포층은 미생물 및 부유물 등의 부착을 억제하여 오지시를 방지하고 데이터 입력모듈(110), 객체 데이터 생성모듈(120) 및 전자해도 객체 표현모듈(140)의 사용기간을 반영구적으로 연장할 수 있게 된다. 상기 도포액을 제조하는 방법에 대하여 간략하게 설명하자면, 우선 에틸아세테이트(ethyl acetate)용액에 디메틸디클로로실란 용액을 부피비로 2-5% 용해시켜 도포액을 제조한다. 이때, 상기 디메틸디클로로실란 용액의 함량이 2%에 미치지 못하면 도포의 효과를 충분히 얻을 수 없고, 5%를 초과하면 표면보호도포층이 너무 두꺼워져 효율이 떨어진다. 상기와 같은 비율로 용해된 도포액은 도포시간 및 도포두께를 고려하여 용액의 점도가 0.8-2cp(센티포아제)의 범위인 것이 바람직하다. 이는 점도가 너무 낮으면 도포시간을 오래해야 하며, 점도가 너무 높으면 도포가 두껍게 일어나고 건조가 안되며 또한 불균일한 도포로 인하여 센서의 오지시를 유발할 수 있기 때문이다.본 발명에서는 상기와 같이 제조된 도포용액으로 데이터 입력모듈(110), 객체 데이터 생성모듈(120) 및 전자해도 객체 표현모듈(140)의 표면을 1㎛이하의 두께로 도포한다. 이때, 표면보호도포층의 두께가 1㎛를 초과하면 오히려 센서의 감도를 저하시키기 때문에 본 발명에서는 표면보호도포층의 두께를 1㎛이하로 한정한다. 또한, 상기와 같은 두께로 도포하는 방법으로서는 데이터 입력모듈(110), 객체 데이터 생성모듈(120) 및 전자해도 객체 표현모듈(140) 표면에 2-3회 정도 분사하는 스프레이 방법이 사용될 수 있다.
또한, 상기 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템(100)은 금속재의 케이스로 이루어질 수 있고, 이러한 금속재의 케이스에는 부식방지 및 내오염성 향상용 피복 조성물로 이루어진 부식방지도포층이 도포될 수 있다.
이러한 피복 조성물은 레조르시놀 디글리시딜에테르(Resorcinol diglycidyl ether) 80 중량% 및 프로판올아민 (Propanol amine) 20 중량%를 혼합하여 제조한 수용해성 수지 조성물 100 중량부에 대해, 헥사메틸레이티드-헥사메틸롤 멜라민(Hexamethylated-hexamethylol melamine) 1~10중량부로 구성된다.
본 발명에서는 레조르시놀 디글리시딜에테르의 우수한 내화학성, 치수 안정성 등의 특성과 프로판올아민의 내부식성 등의 특성 및 멜라민 유도체의 우수한 윤활특성 등을 활용하여 보다 친환경적인 케이스의 부식방지를 위한 피복을 형성할 수 있다.
이러한 부식 방지용 피복 조성물을 도포하는 방법은 케이스의 표면에 건조 도막 두께가 10~30㎛가 되도록 도포되는 것이 바람직하다.
건조 도막 두께가 10㎛ 미만이면 수명이 짧아질 수 있고, 30㎛를 초과하는 경우에는 기능상 문제점은 없으나, 경제적 이점이 감소한다.
또한 부직 방지용 피복 조성물이 도포된 케이스는 10~30분 동안 공기 건조시킨 후 100~200℃, 바람직하게는 150~180℃에서 10~50분 동안 경화하여 비점착성이고 광택이 우수한 도막을 얻는 것이 가능하다.
또한, 상기 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템(100)의 케이스 내측에는 흡음층이 도포될 수 있다.
상기 흡음층을 구성하는 펠트로는 니들펀치 펠트가 사용될 수 있다.
니들펀치 펠트로 이루어진 흡음층을 구성하는 섬유의 종류는, 폴리에스테르 섬유, 나일론 섬유, 폴리프로필렌 섬유, 아크릴 섬유, 천연 섬유 등이 있다.
상기 흡음층의 두께는, 0.5 ~ 16㎜인 것이 바람직하다. 상기 흡음층의 두께가 0.5㎜ 미만에서는 충분한 흡음 효과가 얻어지지 않고, 16㎜를 초과하면 케이스의 높이가 저감되어 케이스의 스페이스가 충분히 얻어지지 않는 단점이 되므로 바람직하지 않다.
상기 흡음층의 단위 무게는 5 ~ 500g/m2 로 하는 것이 바람직하다. 5g/m2 미만에서는 충분한 흡음효과가 얻어지지 않고, 또한 500g/m2 을 넘으면 aaaaaaa의 경량성을 확보할 수 없으므로 바람직하지 않다.
상기 흡음층을 구성하는 섬유의 섬도는 0.1 ~ 20데시텍스의 범위인 것이 바람직하다. 0.1데시텍스 미만에서는 저주파 소음의 흡수가 어렵고, 쿠션성도 저하되므로 바람직하지 않다. 또한 20데시텍스를 넘으면 고주파 소음의 흡수가 어려우므로 바람직하지 않다. 그 중에서도 흡음층을 구성하는 섬유의 섬도는 0.1 ~ 15데시텍스의 범위로 하는 것이 보다 바람직하다.
이러한 상기 흡음층이 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템(100)의 케이스의 내측에 구비되므로 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템(100)의 구동시 소음을 저감시킬 수 있다.
이상에서 설명한 것은 본 발명에 의한 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템을 실시하기 위한 하나의 실시예에 불과한 것으로서, 본 발명은 상기 실시예에 한정되지 않고, 이하의 특허청구범위에서 청구하는 바와 같이 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변경 실시가 가능한 범위까지 본 발명의 기술적 정신이 있다고 할 것이다.
100: 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템
110: 데이터 입력모듈 120: 객체 데이터 생성모듈
130: 점장 좌표 체계 구성모듈 140: 전자해도 객체 표현모듈
141: 좌표 변환부 142: 객체 표현부
110: 데이터 입력모듈 120: 객체 데이터 생성모듈
130: 점장 좌표 체계 구성모듈 140: 전자해도 객체 표현모듈
141: 좌표 변환부 142: 객체 표현부
Claims (3)
- 3차원 가시화 환경에서 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템이고,
전자해도 데이터를 입력받는 데이터 입력모듈; 및
상기 입력된 전자해도 데이터 중 전자해도 면 객체(즉, 전자해도 다각형 객체)를 삼각형으로 분할한 후, OpenGL ES의 glDrawArrays 함수를 사용해 내부를 동일한 색으로 채워 면 객체 데이터를 생성하는 객체 데이터 생성모듈;
상기 전자해도 데이터를 항정선(Rhumb Line)이 직선으로 표현되는 점장도법(Mercator)을 이용하여 점장하여 점장 좌표 체계를 구성하는 점장 좌표 체계 구성모듈; 및
상기 생성된 면 객체 데이터를 상기 점장 좌표 체계로 구성된 3차원 가시화 환경(OpenGL 또는 OpenGL ES) 상에서 국제수로기구(IHO)의 S-52에 따른 미리 설정된 매핑 기법을 이용하여 표현하는 전자해도 객체 표현모듈을 포함하는 것을 특징으로 하는 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템. - 제1항에 있어서,
상기 전자해도 객체 표현모듈은
미리 설정된 조합 함수 프로그램을 이용하여 상기 점장 좌표 체계를 전자해도의 경위도 좌표에서 3차원 화면 좌표로 변환하는 좌표 변환부; 및
상기 변환된 3차원 화면 좌표에 대하여 상기 생성된 면 객체 데이터를 상기 점장 좌표 체계로 구성된 3차원 가시화 환경(OpenGL 또는 OpenGL ES) 상에서 국제수로기구(IHO)의 S-52에 따른 미리 설정된 매핑 기법을 이용하여 표현하는 객체 표현부;를 포함하는 것을 특징으로 하는 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템. - 제1항에 있어서,
상기 객체 표현부는
상기 생성된 면 객체 데이터를 상기 점장 좌표 체계로 구성된 3차원 가시화 환경(OpenGL 또는 OpenGL ES)에 대응되도록 미리 설정된 매핑 기법을 이용하여 확대, 축소 및 이동이 가능하도록 표현하거나, 상기 점장 좌표 체계로 구성된 3차원 가시화 환경(OpenGL 또는 OpenGL ES) 상에서 미리 설정된 매핑 기법을 이용하여 국제수로기구(IHO)의 S-52에 따른 면 객체 데이터에 대한 그리기를 수행하도록 하는 것을 특징으로 하는 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170100918A KR101955377B1 (ko) | 2017-08-09 | 2017-08-09 | 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170100918A KR101955377B1 (ko) | 2017-08-09 | 2017-08-09 | 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190016686A true KR20190016686A (ko) | 2019-02-19 |
KR101955377B1 KR101955377B1 (ko) | 2019-05-30 |
Family
ID=65528683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170100918A KR101955377B1 (ko) | 2017-08-09 | 2017-08-09 | 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101955377B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102712035B1 (ko) | 2023-12-22 | 2024-09-30 | 한국해양과학기술원 | 해상 교통상황 기반 해도 표시시스템 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH095107A (ja) * | 1995-06-21 | 1997-01-10 | Tokimec Inc | 電子海図表示情報装置 |
KR19990073309A (ko) * | 1999-07-01 | 1999-10-05 | 김광식 | 3차원전자항해해도를위한모델생성방법및3차원모델을이용한전자해도디스플레이방법 |
KR20050044964A (ko) * | 2003-11-08 | 2005-05-16 | 엘지전자 주식회사 | 3차원 다각형의 화면 표시방법 |
KR20050046377A (ko) * | 2003-11-14 | 2005-05-18 | (주)모바일넷 | 전자해도시스템의 공간 정보 메쉬구조 형성방법, 형성장치및 그것을 형성하는 컴퓨터프로그램이 기록된 컴퓨터로읽을 수 있는 기록매체 |
KR101554498B1 (ko) * | 2014-11-28 | 2015-09-21 | 금호마린테크 (주) | 네트워크 모형화를 이용한 선박의 최적항로 계획 시스템 |
KR101554499B1 (ko) * | 2014-11-28 | 2015-09-21 | 금호마린테크 (주) | 시각적 대화식 최적항로 계획 시스템 |
KR101642861B1 (ko) | 2015-11-13 | 2016-07-26 | 한국해양과학기술원 | 웹 맵 서비스를 위한 전자해도의 처리 시스템 및 방법 |
-
2017
- 2017-08-09 KR KR1020170100918A patent/KR101955377B1/ko active IP Right Grant
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH095107A (ja) * | 1995-06-21 | 1997-01-10 | Tokimec Inc | 電子海図表示情報装置 |
KR19990073309A (ko) * | 1999-07-01 | 1999-10-05 | 김광식 | 3차원전자항해해도를위한모델생성방법및3차원모델을이용한전자해도디스플레이방법 |
KR20050044964A (ko) * | 2003-11-08 | 2005-05-16 | 엘지전자 주식회사 | 3차원 다각형의 화면 표시방법 |
KR20050046377A (ko) * | 2003-11-14 | 2005-05-18 | (주)모바일넷 | 전자해도시스템의 공간 정보 메쉬구조 형성방법, 형성장치및 그것을 형성하는 컴퓨터프로그램이 기록된 컴퓨터로읽을 수 있는 기록매체 |
KR101554498B1 (ko) * | 2014-11-28 | 2015-09-21 | 금호마린테크 (주) | 네트워크 모형화를 이용한 선박의 최적항로 계획 시스템 |
KR101554499B1 (ko) * | 2014-11-28 | 2015-09-21 | 금호마린테크 (주) | 시각적 대화식 최적항로 계획 시스템 |
KR101642861B1 (ko) | 2015-11-13 | 2016-07-26 | 한국해양과학기술원 | 웹 맵 서비스를 위한 전자해도의 처리 시스템 및 방법 |
Non-Patent Citations (2)
Title |
---|
Jiang, X. et al. Efficient booleans algorithms for triangulated meshes of geometric modeling. Computer-Aided Design and Applications 13.4 (2016)* * |
이희용, 3 차원 가시화 환경에서 S-52 표준을 적용하기 위한 전자해도 객체의 표현방법에 관한 연구. Journal of Korean Navigation and Port Reserch 40.6 (2016.12.) * |
Also Published As
Publication number | Publication date |
---|---|
KR101955377B1 (ko) | 2019-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9052199B2 (en) | System and method for indicating user location and facing direction on a digital map | |
AU2010257305B2 (en) | Techniques for density mapping | |
KR101955378B1 (ko) | 전자해도 좌표 체계 및 텍스쳐 매핑에 의한 객체 표현이 가능한 3차원 전자해도 시스템 | |
CN102214368B (zh) | 三维全尺度数字地球的实现方法 | |
US9275493B2 (en) | Rendering vector maps in a geographic information system | |
US8698824B1 (en) | Computing systems, devices and methods for rendering maps remote from a host application | |
US10319062B2 (en) | Rendering map data using descriptions of raster differences | |
US20150019625A1 (en) | Providing indoor map data to a client computing device | |
US8872848B1 (en) | Rendering vector data as tiles | |
US9721363B2 (en) | Encoding polygon data for fast retrieval and rendering | |
US20150332481A1 (en) | Indexed uniform styles for stroke rendering | |
US10204431B1 (en) | Polygon labeling by dominant shapes | |
CN115510175A (zh) | dwg数据的地理坐标转换方法和装置、计算机设备及介质 | |
KR101955377B1 (ko) | 전자해도 면 객체의 삼각화 표현이 가능한 3차원 전자해도 시스템 | |
EP4258092A2 (en) | Interactive geo-contextual navigation tool | |
Wu et al. | GPU ray casting method for visualizing 3D pipelines in a virtual globe | |
CN104932858A (zh) | 一种精确匹配实时漫游的背景地图叠加显示方法 | |
Liu et al. | Generating 3D depiction for a future ECDIS based on digital earth | |
KR101873937B1 (ko) | 자동 업데이트 기능을 구비하는 3차원 전자해도 시스템 | |
CN110223395A (zh) | 一种三维场景物料模型动态构建方法及系统 | |
CN112330769B (zh) | 虚线纹理的生成方法、装置及电子设备 | |
Zhou et al. | Rendering interior-filled polygonal vector data in a virtual globe | |
Gill et al. | Casting shadows: Shading digital elevation models using ray tracing | |
Diguet et al. | Dedicated object processor for mobile augmented reality-sailor assistance case study | |
CN118550980A (zh) | 一种地图显示范围更新方法、系统、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |