//#include <vcclr.h>
#include "orbitersdk.h"
#include "Vessel2Base.h"
#include "Vessel2.h"
#include "Vessel.h"

using namespace System;
using namespace System::Reflection;
using namespace System::Runtime::InteropServices;
using namespace Orbiter;

[assembly:AssemblyVersionAttribute("1.0.0.0")];

namespace Orbiter
{
	namespace Wrapper
	{
		Vessel2Base::Vessel2Base(Vessel2 *vessel2)
		{
			this->vessel2=vessel2;
		}
		Vessel2Base::~Vessel2Base(){}

		Interfaces::Vessel^ Vessel2Base::This::get(void){return me;}
		void Vessel2Base::This::set(Interfaces::Vessel^ value){me=value;}
		Interfaces::Vessel2^ Vessel2Base::Base::get(void){return myBase;}
		void Vessel2Base::Base::set(Interfaces::Vessel2^ value){myBase=value;}
		Interfaces::Vessel2Callback Vessel2Base::CallbackSetting::get(void){return Interfaces::Vessel2Callback::None;}
		void Vessel2Base::DisposeThis(){}
		void Vessel2Base::SetClassCaps (IntPtr configuration){vessel2->SetClassCaps(configuration);}
		void Vessel2Base::SaveState (IntPtr scenario){vessel2->SaveState(scenario);}
		void Vessel2Base::LoadStateEx (IntPtr scenario, IntPtr status){vessel2->LoadStateEx(scenario, status);}
		void Vessel2Base::SetStateEx (Interfaces::VesselStatus2 status){vessel2->SetStateEx(status);}
		void Vessel2Base::PostCreation (){vessel2->PostCreation();}
		void Vessel2Base::FocusChanged (bool getFocus, IntPtr newVessel, IntPtr oldVessel){vessel2->FocusChanged(getFocus, newVessel, oldVessel);}
		void Vessel2Base::PreStep (double simt, double simdt, double mjd){vessel2->PreStep(simt, simdt, mjd);}
		void Vessel2Base::PostStep (double simt, double simdt, double mjd){vessel2->PostStep(simt, simdt, mjd);}
		bool Vessel2Base::PlaybackEvent (double simt, double event_t, String^ event_type, String^ event_name){return vessel2->PlaybackEvent(simt, event_t, event_type, event_name);}
		void Vessel2Base::VisualCreated (IntPtr vis, int refCount){vessel2->VisualCreated(vis, refCount);}
		void Vessel2Base::VisualDestroyed (IntPtr vis, int refCount){vessel2->VisualDestroyed(vis, refCount);}
		void Vessel2Base::DrawHUD (int mode, Interfaces::HudPaintSpecification hps, IntPtr hDC){vessel2->DrawHUD(mode, hps, hDC);}
		void Vessel2Base::RCSMode (int mode){vessel2->RCSMode(mode);}
		void Vessel2Base::ADCtrlMode (int mode){vessel2->ADCtrlMode(mode);}
		void Vessel2Base::HUDMode (int mode){vessel2->HUDMode(mode);}
		void Vessel2Base::MFDMode (int mfd, int mode){vessel2->MFDMode(mfd, mode);}
		void Vessel2Base::NavMode (int mode, bool active){vessel2->NavMode(mode, active);}
		void Vessel2Base::DockEvent (int dock, IntPtr mate){vessel2->DockEvent(dock, mate);}
		void Vessel2Base::Animate (double simt){vessel2->Animate(simt);}
		int  Vessel2Base::ConsumeDirectKey (IntPtr keyState){return vessel2->ConsumeDirectKey(keyState);}
		int  Vessel2Base::ConsumeBufferedKey (int key, bool down, IntPtr keyState){return vessel2->ConsumeBufferedKey(key, down, keyState);}
		bool Vessel2Base::LoadGenericCockpit (){return vessel2->LoadGenericCockpit();}
		bool Vessel2Base::LoadPanel (int id){return vessel2->LoadPanel(id);}
		bool Vessel2Base::PanelMouseEvent (int id, int mouseEvent, int mx, int my){return vessel2->PanelMouseEvent(id, mouseEvent, mx, my);}
		bool Vessel2Base::PanelRedrawEvent (int id, int mouseEvent, IntPtr surface){return vessel2->PanelRedrawEvent(id, mouseEvent, surface);}
		bool Vessel2Base::LoadVC (int id){return vessel2->LoadVC(id);}
		bool Vessel2Base::VCMouseEvent (int id, int mouseEvent, Interfaces::Vector3^ p){return vessel2->VCMouseEvent(id, mouseEvent, p);}
		bool Vessel2Base::VCRedrawEvent (int id, int mouseEvent, IntPtr surface){return vessel2->VCRedrawEvent(id, mouseEvent, surface);}
	}
}

