![]() |
Xncw
|
public class XncwObserver : NXRenderLayer
The XncwObserver type exposes the following members.
Name | Description | |
---|---|---|
![]() | XncwObserver | 기본 생성자 |
Name | Description | |
---|---|---|
![]() | AutoDelete | 객체를 자동적으로 삭제하는지 여부를 확인하거나 설정하는 속성. |
![]() | FollowViewMaxZoom | PlanetView의 MaxZoomIn, MaxZoomOut 설정이 반영되도록 설정하거나, 설정값을 확인한다. |
![]() | InverseMouseButton | 마우스의 오른쪽 버튼과 왼쪽버튼의 교환 여부를 확인하거나 설정한다. |
![]() | LayerCapture | 레이어의 갈무리 여부를 확인하거나 설정한다. (기본값: true) (Overrides NXRenderLayerLayerCapture) |
![]() | LayerVisible | 레이어의 도시여부를 확인하거나 설정한다. (기본값: true) (Overrides NXRenderLayerLayerVisible) |
Name | Description | |
---|---|---|
![]() | AttachTo | PlanetView에 레이어를 첨부한다. |
![]() | GetDistance | 대상과 시점 간의 거리를 가져온다. |
![]() | GetLayerID | 레이어 ID를 가져온다. (Overrides NXRenderLayerGetLayerID) |
![]() | Initialize | 내부 초기화 함수. NXPlanetEngine에 의해 자동적으로 호출된다. (Overrides NXRenderLayerInitialize) |
![]() | SetDistance | 대상과 시점 간의 거리를 설정한다. |
![]() | SetHeading | 뷰에 대한 헤딩을 설정한다. |
![]() | SetState | 뷰 모드를 변경한다. |
![]() | SetTilt | 뷰에 대한 기울기를 설정한다. |
![]() | SetYawPitchRollOffset | 뷰 위치를 설정한다. |
![]() | SurveyAutoCenter | 2개 이상의 대상 객체에 대해 자동으로 중심 위치를 기준으로 조망한다. |
![]() | SurveyNone | 뷰 모드를 "Unusable"로 설정하고 카메라를 기본 상태로 설정한다. |
![]() | SurveyTargetObj | 대상 객체를 특정 뷰 모드로 조망한다. |
partial class FormMain { public Pixoneer.NXDL.NNCW.XncwObserver xncwObserver; private void InitializeComponent() { this.xncwObserver = new Pixoneer.NXDL.NNCW.XncwObserver(); } private void FormMain_Load(object sender, EventArgs e) { xncwObserver.AttachTo(nxPlanetView); } private void textBoxDistance_TextChanged(object sender, EventArgs e) { xncwObserver.SetDistance(double.Parse(textBoxDistance.Text)); XAngle rollOff = XAngle.FromDegree(double.Parse(textBoxRollOff.Text)); XAngle yawOff = XAngle.FromDegree(double.Parse(textBoxYawOff.Text)); XAngle pitchOff = XAngle.FromDegree(double.Parse(textBoxPitchOff.Text)); xncwObserver.SetYawPitchRollOffset(yawOff, pitchOff, rollOff); XAngle heading = XAngle.FromDegree(double.Parse(textBoxHeading.Text)); XAngle tilt = XAngle.FromDegree(double.Parse(textBoxTilt.Text)); xncwObserver.SetHeading(heading); xncwObserver.SetTilt(tilt); nxPlanetView.RefreshScreen(); } private void listBoxPlanes_SelectedIndexChanged(object sender, EventArgs e) { if (comboBoxViewMode.SelectedIndex == 0 || comboBoxViewMode.SelectedIndex == 12) { xncwObserver.SurveyNone(); } else { int nUUID = listBoxPlanes.SelectedIndex; XEquipObj obj = xncwTheater.GetEquipment(nUUID); if (obj == null) return; Pixoneer.NXDL.NNCW.XncwObserver.eViewMode view = (Pixoneer.NXDL.NNCW.XncwObserver.eViewMode)comboBoxViewMode.SelectedIndex - 1; xncwObserver.Survey(obj, view); xncwObserver.SetDistance(double.Parse(textBoxDistance.Text)); XAngle rollOff = XAngle.FromDegree(double.Parse(textBoxRollOff.Text)); XAngle yawOff = XAngle.FromDegree(double.Parse(textBoxYawOff.Text)); XAngle pitchOff = XAngle.FromDegree(double.Parse(textBoxPitchOff.Text)); xncwObserver.SetYawPitchRollOffset(yawOff, pitchOff, rollOff); XAngle heading = XAngle.FromDegree(double.Parse(textBoxHeading.Text)); XAngle tilt = XAngle.FromDegree(double.Parse(textBoxTilt.Text)); xncwObserver.SetHeading(heading); xncwObserver.SetTilt(tilt); nxPlanetView.RefreshScreen(); } } private void comboBoxViewMode_SelectedIndexChanged(object sender, EventArgs e) { FreeUsingPlanes(); if (comboBoxViewMode.SelectedIndex == 0) { xncwObserver.SurveyNone(); } else if (comboBoxViewMode.SelectedIndex == 12) // auto center { if (listBoxSelectedPlanes.Items.Count < 2) { MessageBox.Show("AC center need 2 target least"); return; } ArrayList acTargets = new ArrayList(); for (int i = 0; i < listBoxSelectedPlanes.Items.Count; i++) { int nUUID = int.Parse(listBoxSelectedPlanes.Items[i].ToString()); XEquipObj obj = xncwTheater.GetEquipment(nUUID); m_GettedEquips.Add(nUUID); if (obj == null) continue; acTargets.Add(obj); } if (acTargets.Count < 2) { MessageBox.Show("AC center need 2 target least"); return; } xncwObserver.SurveyAutoCenter(acTargets); XAngle heading = XAngle.FromDegree(double.Parse(textBoxHeading.Text)); XAngle tilt = XAngle.FromDegree(double.Parse(textBoxTilt.Text)); xncwObserver.SetHeading(heading); xncwObserver.SetTilt(tilt); nxPlanetView.RefreshScreen(); } else { int nUUID = listBoxPlanes.SelectedIndex; XEquipObj obj = xncwTheater.GetEquipment(nUUID); if (obj == null) return; m_GettedEquips.Add(nUUID); Pixoneer.NXDL.NNCW.XncwObserver.eViewMode view = (Pixoneer.NXDL.NNCW.XncwObserver.eViewMode)comboBoxViewMode.SelectedIndex - 1; xncwObserver.Survey(obj, view); xncwObserver.SetDistance(double.Parse(textBoxDistance.Text)); XAngle rollOff = XAngle.FromDegree(double.Parse(textBoxRollOff.Text)); XAngle yawOff = XAngle.FromDegree(double.Parse(textBoxYawOff.Text)); XAngle pitchOff = XAngle.FromDegree(double.Parse(textBoxPitchOff.Text)); xncwObserver.SetYawPitchRollOffset(yawOff, pitchOff, rollOff); XAngle heading = XAngle.FromDegree(double.Parse(textBoxHeading.Text)); XAngle tilt = XAngle.FromDegree(double.Parse(textBoxTilt.Text)); xncwObserver.SetHeading(heading); xncwObserver.SetTilt(tilt); nxPlanetView.RefreshScreen(); } } private void textBoxDistance_TextChanged(object sender, EventArgs e) { xncwObserver.SetDistance(double.Parse(textBoxDistance.Text)); XAngle rollOff = XAngle.FromDegree(double.Parse(textBoxRollOff.Text)); XAngle yawOff = XAngle.FromDegree(double.Parse(textBoxYawOff.Text)); XAngle pitchOff = XAngle.FromDegree(double.Parse(textBoxPitchOff.Text)); xncwObserver.SetYawPitchRollOffset(yawOff, pitchOff, rollOff); XAngle heading = XAngle.FromDegree(double.Parse(textBoxHeading.Text)); XAngle tilt = XAngle.FromDegree(double.Parse(textBoxTilt.Text)); xncwObserver.SetHeading(heading); xncwObserver.SetTilt(tilt); nxPlanetView.RefreshScreen(); } }