XncwObserver Class |
Namespace: Pixoneer.NXDL.NNCW
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(); } }