![]() | NXPlanetView Class |
Namespace: Pixoneer.NXDL.NXPlanet
public class NXPlanetView : Panel
The NXPlanetView type exposes the following members.
Name | Description | |
---|---|---|
![]() | NXPlanetView | NXPlanetView 객체를 생성하고 데이터 멤버를 초기화한다. 기본 생성자. |
![]() | NXPlanetView(XFrameCaptureBuffer, Boolean) | 화면에 표시하지 않고 프레임버퍼로 그릴 뷰를 만든다. |
Name | Description | |
---|---|---|
![]() | AutoFocus | 현재 뷰에서 마우스의 이동에 따라 초점을 맞출지 여부를 확인하거나 설정한다. |
![]() | AutoRefreshRate |
자동 화면 갱신 속도를 초당 갱신 횟수로 설정한다.
0이면 자동 갱신을 하지 않는다. (기본값: 0)
|
![]() | Brightness | 밝기 조절을 확인하거나 설정한다. |
![]() | CallbackMode |
콜백 모드: 그래픽 엔진의 주 쓰레드에서 렌더링 엔진을 통해 순차적으로 뷰 렌더링을 제어하는 모드.
콜백 모드가 아닌 쓰레드 모드: 별도의 뷰 전용 쓰레드에서 렌더링을 제어하는 모드.
기본값은 콜백 모드이며 쓰레드 모드는 현재 실험적인 기능이다.
|
![]() | Contrast | 대비 값을 확인하거나 설정한다. |
![]() | EarthMode | Planet의 유형을 확인하거나 설정한다. |
![]() | EnableGroundEffect | 안개, 태양광 효과와 같은 그라운드 쉐이더 효과를 켜거나 끈다. 기본값은 꺼진 상태이고, 끄면 2D와 같이 원본 영상으로 보인다. |
![]() | FrameCapture | 프레임 갈무리 버퍼. 프레임 갈무리 버퍼를 지정하면 렌더 화면을 프레임버퍼(FBO)를 써서 그리고 저장한다. |
![]() | GridType | 현재 보여지고 있는 그리드 유형을 확인하거나 설정한다. |
![]() | InverseMouseButton | 마우스의 오른쪽 버튼과 왼쪽버튼의 교환 여부를 확인하거나 설정한다. |
![]() | InverseMouseWheel | 마우스 휠을 이용한 확대/축소 이벤트 방향을 확인하거나 설정한다. |
![]() | LayerCount | 뷰의 레이어의 개수를 가져온다. |
![]() | LayoutMode | 레이아웃의 모드를 확인하거나 설정한다. |
![]() | Planet2DProjection | 2D 지도 투영(Map Projection) 방식을 확인한다. |
![]() | 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 | 채도 값을 확인하거나 설정한다. |
![]() | ShowGrid | 그리드 레이어의 표시 여부를 확인하거나 설정한다. |
![]() | ShowPBP | 지명을 화면에 도시할지의 여부를 설정하거나 확인한다. |
![]() | ShowStar | 배경 별의 도시 여부를 확인하거나 설정한다. |
![]() | ShowStatusInfo | 현재 도시 상태 정보를 확인하거나 설정한다. |
![]() | ToolboxAreaUnit | 영역 계산시 단위를 확인하거나 설정한다. |
![]() | ToolboxDistUnit | 거리 계산시 단위를 확인하거나 설정한다. |
![]() | ToolboxMode | 도구상자의 작업 모드를 확인하거나 설정한다. |
![]() | ToolboxSet | Planet의 툴박스의 속성을 가져온다. |
![]() | UsePrivateEffects |
뷰 전용 플래닛 효과 사용 설정.
다중 뷰 환경에서 태양 위치 등 각종 효과를 다르게 줄 때 활용한다. (기본값: false)
|
![]() | ViewAreaFOV | 뷰의 각도를 확인하거나 설정한다. |
![]() | ViewAreaID | 뷰의 ID를 확인한다. |
![]() | ViewshedTool | 뷰의 shed 툴을 가져온다. |
![]() | ZoomCenterMode | 마우스 휠의 모드를 확인하거나 설정한다. |
Name | Description | |
---|---|---|
![]() | AddRenderLayer(NXPlanetLayer) | 뷰에 레이어를 추가한다. |
![]() | AddRenderLayer(NXRenderLayer) | 뷰에 레이어를 추가한다. |
![]() | CalcSize | 뷰의 사이즈를 다시 계산하며, 엔진에 의해 자동 호출 된다. |
![]() | CalculateScale | 현재 뷰의 스케일을 계산한다. |
![]() | CaptureScreen | 화면을 캡쳐한다. |
![]() | ChangeLayerOrder | 렌더 레이어의 순서를 바꿔준다. |
![]() | ClearLayer | 뷰에 연결된 모든 레이어를 삭제한다. |
![]() | GeographicToScreen | 위경도 좌표를 스크린 좌표로 변환한다. |
![]() | GeographicToWorld | 위경도 좌표를 세계 좌표로 변환한다. |
![]() | GetCameraState | 현재 카메라의 상태를 가져온다. |
![]() | GetFreezeViewArea | 뷰의 고정여부를 가져온다. |
![]() | GetHandle | 뷰의 컨트롤 핸들을 가져온다. |
![]() | GetIndexMapMode | 인덱스 맵 모드를 가져온다. |
![]() | GetLayer | 렌더 레이어를 가져온다. |
![]() | GetLayerOrder |
현재 렌더 레이어의 순서를 가져온다.
|
![]() | GetMapAltitude(Double) | 입력 축척에 대응하는 카메라의 높이를 가져온다. |
![]() | GetMapAltitude(NXPlanetVieweMapScale) | 입력 축척에 대응하는 카메라의 높이를 가져온다. |
![]() | GetMouseControlMode | 마우스 제어 상태를 가져온다. |
![]() | GetPTMOverlayLayer | Planet의 지형 관리자로부터 오버레이 레이어를 가져온다. |
![]() | GetWOS | 뷰의 WOS를 가져온다( World offset and Scale). |
![]() | IsUnderMouse | 마우스아래 뷰가 있는지 확인한다. |
![]() | LookTarget | 바라보는 위치와 거리, 방위각과 고도 값에 의해 현재 카메라 상태를 설정한다. [Planet 3D뷰를 위함] |
![]() | MaxZoomIn |
고도를 통해 최대 줌인을 설정한다.
|
![]() | MaxZoomOut |
고도를 통해 최대 줌 아웃을 설정한다.
|
![]() | OnKeyDownBridge | 어플리케이션에서 사용할 수 없다. |
![]() | OnKeyUpBridge | 어플리케이션에서 사용할 수 없다. |
![]() | OnMouseWheelBridge | 어플리케이션에서 사용할 수 없다. |
![]() | RefreshLOD | LOD를 기반으로 화면을 갱신하여 도시하도록 요청한다. |
![]() | RefreshScreen | 화면을 갱신하여 도시하도록 요청한다. |
![]() | Release | 뷰에 연결된 엔진과 갈무리 버퍼의 연결을 끊고 모든 레이어를 삭제한다. |
![]() | RemoveRenderLayer(NXPlanetLayer) | 뷰에 레이어를 분리한다. |
![]() | RemoveRenderLayer(NXRenderLayer) | 뷰에 레이어를 분리한다. |
![]() | RequestRender(UInt64) | 새로 렌더링을 요청한다. 카메라 설정 등을 바꾸고 요청 식별자를 특정해서 부를 수 있다. |
![]() | RequestRender(UInt64, Boolean) | 요청 식별자를 특정해서 새로 렌더링을 요청하고 실제 렌더링이 될 때까지 기다릴 수 있다. |
![]() | ScreenToGeographic | 스크린 좌표를 위경도 좌표로 변환한다. |
![]() | ScreenToWorld | 스크린 좌표를 세계 좌표로 변환한다. |
![]() | SetCameraPosition(XGeoPoint, XAngle) | 현재 카메라의 상태를 눈의 위치와 방위각에 의해 설정하며, 기본 기울기의 값은 0 이다 [Planet 2D뷰를 위함] |
![]() | 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 | 인덱스 맵 모드를 설정한다 |
![]() | SetMouseControlMode | 마우스 제어 상태를 가져온다. |
![]() | SetPBIDefaultDataSet | 현재 사용하고 있는 것에 PBI 데이터 소스가 설정된다. |
![]() | SetPBPDefaultDataSet | 현재 사용하고 있는 것에 PBE 데이터 소스가 설정된다. |
![]() | SetRenderArea |
화면에 렌더링되는 영역을 설정한다. Planet2D 모드에서만 적용된다.
RestrictRenderArea를 참으로 설정하면 이 함수를 통해 설정된 값으로 렌더링 영역이 제한된다.
|
![]() | SetRenderSkip | 렌더링 주기를 설정한다. |
![]() | SetUnderMouse | 내부 함수, 마우스 아래에 있는 뷰의 상태를 설정한다. |
![]() | SetViewZoomCenterPosition | 해당 좌표를 기준으로 마우스 휠 줌을 한다. |
![]() | SetWorkSpaceHgt | 카메라의 높이 구간을 설정한다 |
![]() | SetWorkSpaceLat | 카메라의 위도 구간을 설정한다. |
![]() | SetWorkSpaceLon | 카메라의 경도 구간을 설정한다 |
![]() | TraceLayerAndContents | |
![]() | WorldToGeographic | 세계 좌표를 위경도 좌표로 변환한다. |
![]() | WorldToScreen | 세계 좌표를 스크린 좌표로 변환한다. |
Name | Description | |
---|---|---|
![]() | OnKeyDown | 키보드의 키가 다운될 때 발생된다. |
![]() | OnKeyUp | 키보드의 키가 업될 때 발생된다. |
![]() | OnMouseWheel | 마우스 휠이 사용될 때 발생된다. |
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"); } }