|
|
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(); } }