![]() |
NXPlanet
|
public class NXPlanetView : Panel
The NXPlanetView type exposes the following members.
Name | Description | |
---|---|---|
![]() | NXPlanetView | NXPlanetView 객체를 생성하고 데이터 멤버를 초기화한다. 기본 생성자. |
![]() | NXPlanetView(XFrameCaptureBuffer, Boolean) | 화면에 표시하지 않고 프레임버퍼로 그릴 뷰를 만든다. |
Name | Description | |
---|---|---|
![]() | AutoFocus | 현재 뷰에서 마우스의 이동에 따라 초점을 강제적으로 가져올지 여부를 확인하거나 설정한다. 다른 컨트롤에(입력 컨트롤 등) 입력초점을 남기려면 false로 설정한다. |
![]() | AutoRefreshRate | 자동 화면 갱신 속도를 초당 갱신 횟수로 설정한다. 0이면 자동 갱신을 하지 않는다. (기본값: 0) |
![]() | Brightness | 밝기 조절을 확인하거나 설정한다. |
![]() | CallbackMode | 콜백 모드: 그래픽 엔진의 주 쓰레드에서 렌더링 엔진을 통해 순차적으로 뷰 렌더링을 제어하는 모드. 콜백 모드가 아닌 쓰레드 모드: 별도의 뷰 전용 쓰레드에서 렌더링을 제어하는 모드. 기본값은 콜백 모드이며 쓰레드 모드는 현재 실험적인 기능이다. |
![]() | Contrast | 대비 값을 확인하거나 설정한다. |
![]() | DisplayMode | 배경지도의 색상 도시 모드를 확인하거나 설정한다. |
![]() | EarthMode | Planet의 유형을 확인하거나 설정한다. |
![]() | EnableGroundEffect | 안개, 태양광 효과와 같은 그라운드 쉐이더 효과를 적용할지 여부를 설정한다. 기본값은 적용하지 않는 것이고, 이 경우 배경지도가 Planet2D와 같이 원본 영상처럼 보인다. |
![]() | EnableLightingEffect | 빛 효과(주변광(ambient), 분사광(diffuse), 반사광(specular)) 적용여부를 설정한다. Planet3D 모드에서만 적용된다. |
![]() | EnableSkyEffect | 안개, 태양광 효과와 같은 하늘 쉐이더 효과를 적용할지 여부를 설정한다. 기본값은 효과를 적용하는 것이고 Planet3D 모드에서만 적용된다. |
![]() | ForceDraw | true 로 설정하면 View 컨트롤이 보이지 않게 설정되어 있어도 화면 내용을 렌더링한다. |
![]() | FrameCapture | 프레임 갈무리 버퍼. 프레임 갈무리 버퍼를 지정하면 렌더 화면을 프레임버퍼(FBO)를 사용해서 저장한다. |
![]() | GridType | 격자 기준선(grid) 유형을 확인하거나 설정한다. |
![]() | HeightFactor | Planet3D 모드에서의 고도값 증가 또는 감소 비율. 0보다 작거나 1인 경우에는 원본 값을 사용하여 렌더링하도록 한다. |
![]() | InverseMouseButton | 마우스의 오른쪽 버튼과 왼쪽버튼의 이벤트 기능을 확인하거나 설정한다. 기본값은 false이고 이 경우 마우스 왼쪽 버튼으로 영상 이동을, 오른쪽 버튼으로는 회전을 할 수 있다. |
![]() | InverseMouseWheel | 마우스 휠을 이용한 확대/축소 이벤트 방향을 확인하거나 설정한다. 기본값은 false이고 이 경우 마우스 휠을 땅길 때 확대되고, 밀 때 축소된다. |
![]() | LayerCount | 뷰의 레이어 개수를 가져온다. |
![]() | LayoutMode | 레이아웃의 모드를 확인하거나 설정한다. |
![]() | MaxDisplayLevel2D | Planet2D 모드에서 배경지도 렌더링을 위한 최대 도시 레벨을 확인한다. |
![]() | Planet2DProjection | 2D 지도 투영(Map Projection) 방식을 확인한다. 2D 지도 투영 방식은 Planet 환경설정 파일의 Planet2DProjection 태그에서 설정할 수 있다. |
![]() | RelativeHeight | 상대적인 높이 레이아웃을 확인하거나 설정한다 (0.0~1.0) 의미(0%~100%). |
![]() | RelativeLeft | 상대적인 왼쪽 레이아웃을 확인하거나 설정한다 (0.0~1.0) 의미(0%~100%). |
![]() | RelativeTop | 상대적인 오른쪽 레이아웃을 확인하거나 설정한다 (0.0~1.0) 의미(0%~100%). |
![]() | RelativeWidth | 상대적인 폭 레이아웃을 확인하거나 설정한다 (0.0~1.0) 의미(0%~100%). |
![]() | RestrictRenerArea | 화면에 도시되는 영역을 제한하거나 설정을 확인한다. |
![]() | Rotatable | 회전 기능을 확인하거나 설정한다. |
![]() | Saturation | 채도 값을 확인하거나 설정한다. |
![]() | ShowControlPoint | Planet3D 모드의 화면을 기울이거나(tilting) 또는 확대/축소할 때 중심점을 도시할지 여부를 설정하거나 확인한다. |
![]() | ShowGrid | 그리드 레이어의 표시 여부를 확인하거나 설정한다. |
![]() | ShowPBP | 지명(PBP : Pixoneer Base Placename)을 화면에 도시할지의 여부를 설정하거나 확인한다. |
![]() | ShowPBV | 지도 벡터(PBV : Pixoneer Base Vector)를 화면에 도시할지의 여부를 설정하거나 확인한다. |
![]() | ShowStar | 배경 별의 도시 여부를 확인하거나 설정한다. |
![]() | ShowStatusInfo | 현재 도시 상태 정보를 확인하거나 설정한다. |
![]() | SingleBaseMap | 개별젹인 배경지도를 사용할 수 있도록 설정하거나 설정여부를 확인한다. |
![]() | ToolboxAreaUnit | 영역 계산시 단위를 확인하거나 설정한다. |
![]() | ToolboxDistUnit | 거리 계산시 단위를 확인하거나 설정한다. |
![]() | ToolboxMode | 도구상자의 작업 모드를 확인하거나 설정한다. |
![]() | ToolboxSet | Planet의 툴박스의 속성을 가져온다. |
![]() | UsePrivateEffects | 뷰 전용 플래닛 효과 사용 설정. 다중 뷰 환경에서 태양 위치 등 각종 효과를 다르게 줄 때 활용한다. (기본값: false) |
![]() | ViewAreaFOV | 뷰의 각도를 확인하거나 설정한다. |
![]() | ViewAreaID | 뷰의 ID를 확인한다. |
![]() | ViewshedTool | 뷰의 shed 툴을 가져온다. |
![]() | ZoomCenterMode | 마우스 휠에 따른 화면 확대축소의 기준을 확인하거나 설정한다. |
![]() | ZoomWheelMode | 마우스 휠에 대한 기본 줌 모드를 설정한다. |
![]() | ZoomWheelStaticFactor | 마우스 휠에 대한 기본 확대/축소 비율을 설정한다. 0~1 사이값이 유효하다.(0인 경우 확대/축소변환 없음, 1인 경우 2배 확대/축소) |
Name | Description | |
---|---|---|
![]() | AddRenderLayer(NXPlanetLayer) | 뷰에 레이어를 추가한다. |
![]() ![]() | AddRenderLayer(NXRenderLayer) | 뷰에 레이어를 추가한다. |
![]() | CalcSize | 뷰의 사이즈를 다시 계산하며, 엔진에 의해 자동 호출 된다. |
![]() | CalculateCADRGScale | CADRG 축척에 따른 비율을 계산한다. CADRG NS PixelSize과의 비율을 이용하여 축척을 계산하여 반환한다. |
![]() | CalculateScale | 현재 뷰의 스케일을 계산한다. |
![]() | CaptureScreen | 현재 화면을 그대로 캡쳐한다. |
![]() ![]() | CaptureScreen(String, Int32, Int32, Int32, Int32, Int32, Int32, XFrameCaptureBuffereCaptureMode, String, XThread) | Planet View에 도시되어 있는 내용을 해상도 조절하여 저장한다. Planet2D 모드에서만 가능 |
![]() ![]() | CaptureScreenByBlock(String, Int32, Int32, Int32, Int32, Int32, Int32, XFrameCaptureBuffereCaptureMode, NXPlanetView, String, XThread) | Planet View에 도시되어 있는 내용을 임시 PlanetView 를 이용하여 해상도 조절하여 저장한다. 임시 PlanetView 의 Width, Height 는 256 보다 큰 값으로 각각 설정한다. Planet2D 모드에서만 가능 |
![]() | CaptureScreenByBlock(String, Int32, Int32, Int32, Int32, Int32, Int32, XFrameCaptureBuffereCaptureMode, NXPlanetView, String, XThread, Int32) |
Planet View에 도시되어 있는 내용을 임시 PlanetView 를 이용하여 해상도 조절하여 저장한다. 임시 PlanetView 의 Width, Height 는 256 보다 큰 값으로 각각 설정한다. Planet View에서 선택한 영역의 데이타를 임시 PlanetView에 block별(256*256)로 도시한 뒤 캡쳐한다. 이렇게 캡쳐한 block별 영상을 merge 하여 하나의 영상 파일로 저장한다. Planet2D 모드에서만 가능 |
![]() | ChangeLayerOrder | 렌더 레이어의 순서를 바꿔준다. |
![]() | ClearLayer | 뷰에 연결된 모든 레이어를 삭제한다. |
![]() | GeographicToScreen | 위경도 좌표를 스크린 좌표로 변환한다. |
![]() | GeographicToWorld | 위경도 좌표를 세계 좌표로 변환한다. |
![]() | GetCameraState | 현재 카메라의 상태를 가져온다. |
![]() | GetDrawArgs | PlanetView 컨트롤 및 렌더링 정보가 담긴 Draw argument를 가져온다. |
![]() | GetFreezeViewArea | 뷰의 고정여부를 가져온다. |
![]() | GetHandle | 뷰의 컨트롤 핸들을 가져온다. |
![]() | GetIndexMapMode | 인덱스 맵 모드를 가져온다. |
![]() | GetLayer | 렌더 레이어를 가져온다. |
![]() | GetLayerOrder | 현재 렌더 레이어의 순서를 가져온다. |
![]() | GetMapAlitutdeFromCADRGScale | CADRG 축척을 기준으로 카메라 높이를 계산한다. CADRG NS PixelSize와의 비율로 해상도를 계산하고 이에 대한 카메라 높이를 반환한다. |
![]() | GetMapAltitude(Double) | 입력 축척에 대응하는 카메라의 높이를 가져온다. |
![]() | GetMapAltitude(NXPlanetVieweMapScale) | 입력 축척에 대응하는 카메라의 높이를 가져온다. |
![]() | GetMouseControlMode | 마우스 제어 상태를 가져온다. |
![]() | GetPTMOverlayLayer | Planet의 지형 관리자로부터 중첩 레이어(NXOverlayLayer)를 가져온다. |
![]() | GetWOS | 뷰의 WOS를 가져온다( World offset and Scale). |
![]() | IsUnderMouse | 마우스아래 뷰가 있는지 확인한다. |
![]() | LookTarget | 바라보는 위치와 거리, 방위각과 고도 값에 의해 현재 카메라 상태를 설정한다. [Planet 3D뷰를 위함] |
![]() | MaxZoomIn | 고도를 통해 최대 줌인을 설정한다. |
![]() | MaxZoomOut | 고도를 통해 최대 줌 아웃을 설정한다. |
![]() | RefreshBaseMap | 특정 위치와 해상도에 대한 기본 배경 지도를 갱신 요청한다. |
![]() | RefreshLOD | LOD를 기반으로 화면을 갱신하여 도시하도록 요청한다. |
![]() | RefreshScreen | 화면을 갱신하여 도시하도록 요청한다. |
![]() | Release | 뷰에 연결된 엔진과 갈무리 버퍼의 연결을 끊고 모든 레이어를 삭제한다. |
![]() | RemoveRenderLayer(NXPlanetLayer) | 뷰에 레이어를 분리한다. |
![]() | RemoveRenderLayer(NXRenderLayer) | 뷰에 레이어를 분리한다. |
![]() | RequestRender(UInt64) | 새로 렌더링을 요청한다. 카메라 설정 등을 바꾸고 요청 식별자를 특정해서 부를 수 있다. |
![]() | RequestRender(UInt64, Boolean) | 요청 식별자를 특정해서 새로 렌더링을 요청하고 실제 렌더링이 될 때까지 기다릴 수 있다. |
![]() | ScreenToGeographic | 스크린 좌표를 위경도 좌표로 변환한다. |
![]() | ScreenToWorld | 스크린 좌표를 세계 좌표로 변환한다. |
![]() | SetCameraPosition(XGeoPoint, XAngle) | 현재 카메라의 상태를 눈의 위치와 방위각에 의해 설정하며, 기본 기울기의 값은 0 이다 [Planet 2D뷰를 위함] |
![]() | SetCameraPosition(XGeoPoint, XGeoPoint) | 카메라 위치와 대상(LookAt)의 위치를 입력하여 카메라의 상태를 설정한다. 카메라 위치를 기준으로 up 벡터를 계산하여 사용한다. [Planet 3D뷰를 위함] |
![]() | SetCameraPosition(XGeoPoint, XGeoPoint, XVertex3d) | 카메라 위치와 대상(LookAt)의 위치를 입력하여 카메라의 상태를 설정한다. [Planet 3D뷰를 위함] |
![]() | SetCameraPosition(XGeoPoint, XAngle, XAngle, XAngle) | 현재 카메라의 상태를 눈의 위치와 그리고 yaw, pitch, roll에 의해 설정한다. 시선은 아래 방향(D)이다. [Planet 3D뷰를 위함] |
![]() | SetCameraPosition(XGeoPoint, XAngle, XAngle, XAngle, Boolean) | 현재 카메라의 상태를 눈의 위치와 그리고 yaw, pitch, roll에 의해 설정한다. [Planet 3D뷰를 위함] |
![]() | SetCameraState | 현재 카메라의 상태를 설정한다. |
![]() | SetEarthShow | 지구 레이어를 표시 또는 숨기기 여부를 설정한다. |
![]() | SetFreezeViewArea | 뷰를 고정시킬지 여부를 설정한다 |
![]() | SetIndexMapMode | 인덱스 맵 모드를 설정한다 |
![]() | SetLightingFactor | 빛 효과를 위한 주변광, 분사광(diffuse), 반사광(specular) 비율을 설정한다. |
![]() ![]() | SetMouseControlMode | 확대축소, 회전, 이동의 마우스 제어 상태를 설정한다. |
![]() | SetPBEDefaultDataSet | 새로운 PBE 데이터 소스를 설정한다. 기존에 이용하는 PBE 데이터는 삭제되고 새로운 데이터를 로딩하여 도시한다. |
![]() | SetPBIDefaultDataSet | 새로운 PBI 데이터 소스를 설정한다. 기존에 도시되는 PBI 데이터는 삭제되고 새로운 데이터를 로딩하여 도시한다. |
![]() | SetPBPDefaultDataSet | 새로운 PBP 데이터 소스를 설정한다. 기존에 도시되는 PBP 데이터는 삭제되고 새로운 데이터를 로딩하여 도시한다. |
![]() | SetPBVDefaultDataSet | 새로운 PBV 데이터 소스를 설정한다. 기존에 도시되는 PBV 데이터는 삭제되고 새로운 데이터를 로딩하여 도시한다. |
![]() | SetRenderArea | 화면에 렌더링되는 영역을 설정한다. Planet2D 모드에서만 적용된다. RestrictRenderArea를 참으로 설정하면 이 함수를 통해 설정된 값으로 렌더링 영역이 제한된다. |
![]() | SetRenderSkip | 렌더링 주기를 설정한다. |
![]() ![]() | SetSunFollowCamera | 태양의 위치를 카메라의 위치와 동일하게 설정할지를 설정한다. Planet3D 모드에서만 지원 |
![]() ![]() | SetSunPosition(XGeoPoint) | 대기 효과(밤/낮)를 위한 태양의 위치를 설정한다. |
![]() ![]() | SetSunPosition(XGeoPoint, Single) | 대기 효과(밤/낮)를 위한 태양의 위치를 설정한다. |
![]() | SetUnderMouse | 내부 함수, 마우스 아래에 있는 뷰의 상태를 설정한다. |
![]() | SetViewZoomCenterPosition | 해당 좌표를 기준으로 마우스 휠 줌을 한다. |
![]() | SetWorkSpaceHgt | 카메라의 높이 구간을 설정한다 |
![]() | SetWorkSpaceLat | 카메라의 위도 구간을 설정한다. |
![]() | SetWorkSpaceLon | 카메라의 경도 구간을 설정한다 |
![]() ![]() | UpdatePBPDataSet | PBP 데이터소스를 갱신한다. |
![]() ![]() | UpdatePBVDataSet | PBV 데이터소스를 갱신한다. |
![]() | WorldToGeographic | 세계 좌표를 위경도 좌표로 변환한다. |
![]() | WorldToScreen | 세계 좌표를 스크린 좌표로 변환한다. |
Name | Description | |
---|---|---|
![]() | OnInitialized | 뷰의 초기화가 완료되면 발생한다. |
![]() | OnKeyDown | 키보드의 키가 다운될 때 발생한다. |
![]() | OnKeyUp | 키보드의 키가 업될 때 발생한다. |
![]() | OnMouseWheel | 마우스 휠이 사용될 때 발생한다. |
![]() | OnSetDatasetEnd | 뷰의 배경지도 데이터설정이 끝나면 발생한다. |
partial class FormMain { private Pixoneer.NXDL.NXPlanet.NXPlanetView nxPlanetView2D; private void InitializeComponent() { this.nxPlanetView2D = new Pixoneer.NXDL.NXPlanet.NXPlanetView(); this.nxPlanetView2D.BackColor = System.Drawing.SystemColors.ActiveCaptionText; this.nxPlanetView2D.Brightness = 1F; this.nxPlanetView2D.Contrast = 1F; this.nxPlanetView2D.Dock = System.Windows.Forms.DockStyle.Fill; this.nxPlanetView2D.EarthMode = Pixoneer.NXDL.NXPlanet.NXPlanetView.eEarthMode.Planet2D; this.nxPlanetView2D.LayoutMode = Pixoneer.NXDL.NXPlanet.NXPlanetView.eLayoutMode.Windows; this.nxPlanetView2D.Location = new System.Drawing.Point(0, 0); this.nxPlanetView2D.Name = "nxPlanetView2D"; this.nxPlanetView2D.RelativeHeight = 1D; this.nxPlanetView2D.RelativeLeft = 0D; this.nxPlanetView2D.RelativeTop = 0D; this.nxPlanetView2D.RelativeWidth = 1D; this.nxPlanetView2D.Rotatable = true; this.nxPlanetView2D.Saturation = 1F; this.nxPlanetView2D.ShowGrid = true; this.nxPlanetView2D.ShowStatusInfo = false; this.nxPlanetView2D.Size = new System.Drawing.Size(406, 577); this.nxPlanetView2D.TabIndex = 0; this.nxPlanetView2D.ToolboxAreaUnit = Pixoneer.NXDL.NXPlanet.NXPlanetView.eToolboxAreaUnit.SquareMeter; this.nxPlanetView2D.ToolboxDistUnit = Pixoneer.NXDL.NXPlanet.NXPlanetView.eToolboxDistUnit.Meter; this.nxPlanetView2D.ToolboxMode = Pixoneer.NXDL.NXPlanet.NXPlanetView.eToolboxMode.None; this.nxPlanetView2D.ViewAreaID = 0; } private void FormMain_Load(object sender, EventArgs e) { nxPlanetView2D.SetCameraPosition(XGeoPoint.FromDegree(127.4, 38.0, 1500000), XAngle.FromDegree(0.0)); nxPlanetView2D.AddRenderLayer(ref nxPlanetLayer2D); } private void FormMain_FormClosing(object sender, FormClosingEventArgs e) { if (!Pixoneer.NXDL.Xfn.DesignMode && Pixoneer.NXDL.NXPlanet.NXPlanetView.m_PlanetEngine != null) { Pixoneer.NXDL.NXPlanet.NXPlanetView.m_PlanetEngine.Dispose(); if (nxPlanetLayer2D != null) nxPlanetLayer2D.Dispose(); Pixoneer.NXDL.NXPlanet.NXPlanetView.m_PlanetEngine = null; nxPlanetView2D = null; nxPlanetLayer2D = null; Xfn.Close(); } } private void ADDButton_Click(object sender, EventArgs e) { FolderBrowserDialog dialog = new FolderBrowserDialog(); if (dialog.ShowDialog() != System.Windows.Forms.DialogResult.OK) return; string selected = dialog.SelectedPath; string tocFile = string.Empty; string[] SearchFile = Directory.GetFiles(selected, "*.toc"); foreach (string filename in SearchFile) { string ff = filename.ToLower(); if (ff.IndexOf(".toc") >= 0) { tocFile = ff; break; } } if( tocFile == string.Empty ) { MessageBox.Show("Not Exist Toc File", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } ListToc.Items.Add(tocFile); bool bRes = NXPlanetEngine.RemovePBIGroup(nRPFGroupID); if (bRes == false) { MessageBox.Show("Remove PBI Group Fail : " + String.Format("{0}", nRPFGroupID), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } nxPlanetView2D.SetPBIDefaultDataSet("1"); XPBTDataGroup rpfGroup = new XPBTDataGroup(); rpfGroup.ID = 2; rpfGroup.Name = "RPF CADRG"; rpfGroup.Show = true; XPBTDataSource src = new XPBTDataSource(); src.Type = ePBTSourceType.RPF; src.CachingFlag = false; src.CachingFolder = ""; for (int i = 0; i < ListToc.Items.Count; i++) { src.URL += ListToc.Items[i] as string; //if( i != ListToc.Items.Count-1 ) src.URL += "|"; } rpfGroup.Sources.Add(src); NXPlanetEngine.AddPBIGroup(ref rpfGroup); nxPlanetView2D.SetPBIDefaultDataSet("1+2"); } private void RemoveButton_Click(object sender, EventArgs e) { if (ListToc.SelectedIndex > 0) { MessageBox.Show("None Selected Item", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (ListToc.Items.Count == 1) { return; } ListToc.Items.RemoveAt(ListToc.SelectedIndex); bool bRes = NXPlanetEngine.RemovePBIGroup(nRPFGroupID); if (bRes == false) { MessageBox.Show("Remove PBI Group Fail : " + String.Format("{0}", nRPFGroupID), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } nxPlanetView2D.SetPBIDefaultDataSet("1"); XPBTDataGroup rpfGroup = new XPBTDataGroup(); rpfGroup.ID = 2; rpfGroup.Name = "RPF CADRG"; rpfGroup.Show = true; XPBTDataSource src = new XPBTDataSource(); src.Type = ePBTSourceType.RPF; src.CachingFlag = false; src.CachingFolder = ""; for (int i = 0; i < ListToc.Items.Count; i++) { src.URL += ListToc.Items[i] as string; //if( i != ListToc.Items.Count-1 ) src.URL += "|"; } rpfGroup.Sources.Add(src); NXPlanetEngine.AddPBIGroup(ref rpfGroup); nxPlanetView2D.SetPBIDefaultDataSet("1+2"); } }