![]() |
XAircraft Class |
public class XAircraft : XEquipObj
The XAircraft type exposes the following members.
Name | Description | |
---|---|---|
![]() | XAircraft | XAircraft 객체를 생성하고 데이터 멤버를 초기화한다. 기본 생성자. |
![]() | XAircraft(eEquipTarget) | XAircraft 객체를 생성하고 데이터 멤버를 초기화한다. 기본 생성자. |
Name | Description | |
---|---|---|
![]() | BlendColor | 모형의 혼합 색상을 확인하거나 설정한다. 현재는 블렌드 모드인 경우 모델의 텍스쳐, 물질 정보를 무시하고 이 색으로 그린다. |
![]() | BlendMode | 혼합 색상 모드를 확인하거나 설정한다. |
![]() | FixSizeOn2D | 모델을 확대축소와 상관없이 Planet2D 모드에서 일정한 크기로 도시하는지 여부를 확인하거나 설정한다. |
![]() | FixSizeOn3D | 모델을 확대축소와 상관없이 Planet3D 모드에서 일정한 크기로 도시하는지 여부를 확인하거나 설정한다. |
![]() | MaxXYZ | 영역의 최대 크기 속성. |
![]() | MinXYZ | 영역의 최소 크기 속성. |
![]() | Scalable | 비율(scale)에 따라 모델의 크기를 조절하는지 여부를 확인하거나 설정한다. |
Name | Description | |
---|---|---|
![]() | AddModel | 파일경로에서 비행체 모델을 로딩하여 모델 목록에 추가한다. 하나 이상의 모델을 이용하여 비행체를 렌더링할 수 있도록 한다. |
![]() | LoadModel(String) | 파일경로에서 비행체 모델을 로딩한다. |
![]() | LoadModel(String, Boolean) | 파일경로에서 비행체 모델을 로딩한다. |
![]() | LoadModelForReloading | 파일경로에서 비행체 모델을 로딩한다. BlendMode 설정에 따라 모델을 도시할 수 있도록 한다. 현재는 3DS 파일만을 지원한다. |
![]() | SetAOA | 받음각(Angle of attack. 비행 방향인 공기 흐름의 속도 방향과 날개 시위선이 만드는 사이 각)을 설정한다. |
![]() | SetDive | 강하(Dive) 각도를 설정한다. |
![]() | SetModelOrientation | 모델 좌표계에서 모델 지향과 상향 벡터를 지정한다. 영벡터가 입력되면 무시한다. |
![]() | SetRot | Rate one turn을 설정한다. |
![]() | SetSpeedMach | 마하(mach) 속도를 설정한다. |
![]() | SetSpeedMPS | Speed on meter per second = mach * 340.3 (sonic speed). |
![]() | UpdateModel | 여러 개의 모델 파일을 추가한 경우, 현재 렌더링하는 모델의 다음 파일로 갱신하도록 한다. 목록의 끝인 경우 처음 모델부터 다시 렌더링한다. |
class MyAircraft : XAircraft { public ArrayList m_Positions; private Object thisLock = new Object(); public MyAircraft() { m_Positions = new ArrayList(); } public override bool SetPosition(XGeoPoint pos) { if (pos == null) return false; lock (thisLock) { m_Positions.Add(pos); if (m_Positions.Count > 300) m_Positions.RemoveAt(0); } return base.SetPosition(pos); } public override bool SetState(XGeoPoint pos, XAttitude att) { if (pos == null) return false; lock (thisLock) { m_Positions.Add(pos); if (m_Positions.Count > 300) m_Positions.RemoveAt(0); } return base.SetState(pos,att); } public override bool DrawBefore(NXPlanetDrawArgs DrawArgs) { return true; } public override bool DrawOver(NXPlanetDrawArgs DrawArgs) { XGraphics g = DrawArgs.Graphics; g.glEnable(XGraphics.GL_BLEND); g.glBlendFunc(XGraphics.GL_SRC_ALPHA, XGraphics.GL_ONE_MINUS_SRC_ALPHA); g.glLineWidth(5.0); g.glColor4d(1.0, 1.0, 0.0, 0.8); g.glBegin(XGraphics.GL_LINE_STRIP); lock (thisLock) { for (int i = 0; i < m_Positions.Count; i++) { XGeoPoint gp = (XGeoPoint)m_Positions[i]; if (gp == null) continue; g.glVertex3d(gp.ecr); } } g.glEnd(); g.glColor(Color.White); g.glLineWidth(1.0); g.glDisable(XGraphics.GL_BLEND); g.glDisable(XGraphics.GL_LINE_SMOOTH); return true; } }