#include <hxcpp.h>

#ifndef INCLUDED_hxMath
#include <hxMath.h>
#endif
#ifndef INCLUDED_phoenix_Matrix
#include <phoenix/Matrix.h>
#endif
#ifndef INCLUDED_phoenix_Quaternion
#include <phoenix/Quaternion.h>
#endif
#ifndef INCLUDED_phoenix_Vector
#include <phoenix/Vector.h>
#endif
namespace phoenix{

Void Vector_obj::__construct(hx::Null< Float >  __o__x,hx::Null< Float >  __o__y,hx::Null< Float >  __o__z,hx::Null< Float >  __o__w)
{
HX_STACK_FRAME("phoenix.Vector","new",0x8c9315d4,"phoenix.Vector.new","phoenix/Vector.hx",5,0x5d0bf7fb)

HX_STACK_ARG(__o__x,"_x")

HX_STACK_ARG(__o__y,"_y")

HX_STACK_ARG(__o__z,"_z")

HX_STACK_ARG(__o__w,"_w")
Float _x = __o__x.Default(0);
Float _y = __o__y.Default(0);
Float _z = __o__z.Default(0);
Float _w = __o__w.Default(0);
{
	HX_STACK_LINE(24)
	this->_construct = false;
	HX_STACK_LINE(18)
	this->ignore_listeners = false;
	HX_STACK_LINE(10)
	this->w = (int)0;
	HX_STACK_LINE(9)
	this->z = (int)0;
	HX_STACK_LINE(8)
	this->y = (int)0;
	HX_STACK_LINE(7)
	this->x = (int)0;
	HX_STACK_LINE(28)
	this->_construct = true;
	HX_STACK_LINE(30)
	this->set_x(_x);
	HX_STACK_LINE(31)
	this->set_y(_y);
	HX_STACK_LINE(32)
	this->set_z(_z);
	HX_STACK_LINE(33)
	this->w = _w;
	HX_STACK_LINE(35)
	this->_construct = false;
}
;
	return null();
}

//Vector_obj::~Vector_obj() { }

Dynamic Vector_obj::__CreateEmpty() { return  new Vector_obj; }
hx::ObjectPtr< Vector_obj > Vector_obj::__new(hx::Null< Float >  __o__x,hx::Null< Float >  __o__y,hx::Null< Float >  __o__z,hx::Null< Float >  __o__w)
{  hx::ObjectPtr< Vector_obj > result = new Vector_obj();
	result->__construct(__o__x,__o__y,__o__z,__o__w);
	return result;}

Dynamic Vector_obj::__Create(hx::DynamicArray inArgs)
{  hx::ObjectPtr< Vector_obj > result = new Vector_obj();
	result->__construct(inArgs[0],inArgs[1],inArgs[2],inArgs[3]);
	return result;}

::phoenix::Vector Vector_obj::copy_from( ::phoenix::Vector _other){
	HX_STACK_FRAME("phoenix.Vector","copy_from",0xcfdc49e8,"phoenix.Vector.copy_from","phoenix/Vector.hx",39,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_ARG(_other,"_other")
	HX_STACK_LINE(41)
	this->set(_other->x,_other->y,_other->z,_other->w);
	HX_STACK_LINE(43)
	return hx::ObjectPtr<OBJ_>(this);
}


HX_DEFINE_DYNAMIC_FUNC1(Vector_obj,copy_from,return )

::phoenix::Vector Vector_obj::set( Float _x,Float _y,Float _z,Float _w){
	HX_STACK_FRAME("phoenix.Vector","set",0x8c96e116,"phoenix.Vector.set","phoenix/Vector.hx",47,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_ARG(_x,"_x")
	HX_STACK_ARG(_y,"_y")
	HX_STACK_ARG(_z,"_z")
	HX_STACK_ARG(_w,"_w")
	HX_STACK_LINE(49)
	bool prev = this->ignore_listeners;		HX_STACK_VAR(prev,"prev");
	HX_STACK_LINE(51)
	this->ignore_listeners = true;
	HX_STACK_LINE(53)
	this->set_x(_x);
	HX_STACK_LINE(54)
	this->set_y(_y);
	HX_STACK_LINE(55)
	this->set_z(_z);
	HX_STACK_LINE(56)
	this->w = _w;
	HX_STACK_LINE(58)
	this->ignore_listeners = prev;
	HX_STACK_LINE(60)
	if (((bool((this->listen_x_dyn() != null())) && bool(!(this->ignore_listeners))))){
		HX_STACK_LINE(60)
		this->listen_x(this->x);
	}
	HX_STACK_LINE(61)
	if (((bool((this->listen_y_dyn() != null())) && bool(!(this->ignore_listeners))))){
		HX_STACK_LINE(61)
		this->listen_y(this->y);
	}
	HX_STACK_LINE(62)
	if (((bool((this->listen_z_dyn() != null())) && bool(!(this->ignore_listeners))))){
		HX_STACK_LINE(62)
		this->listen_z(this->z);
	}
	HX_STACK_LINE(64)
	return hx::ObjectPtr<OBJ_>(this);
}


HX_DEFINE_DYNAMIC_FUNC4(Vector_obj,set,return )

::phoenix::Vector Vector_obj::set_xy( Float _x,Float _y){
	HX_STACK_FRAME("phoenix.Vector","set_xy",0xbcfeefca,"phoenix.Vector.set_xy","phoenix/Vector.hx",68,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_ARG(_x,"_x")
	HX_STACK_ARG(_y,"_y")
	HX_STACK_LINE(70)
	bool prev = this->ignore_listeners;		HX_STACK_VAR(prev,"prev");
	HX_STACK_LINE(72)
	this->ignore_listeners = true;
	HX_STACK_LINE(74)
	this->set_x(_x);
	HX_STACK_LINE(75)
	this->set_y(_y);
	HX_STACK_LINE(77)
	this->ignore_listeners = prev;
	HX_STACK_LINE(79)
	if (((bool((this->listen_x_dyn() != null())) && bool(!(this->ignore_listeners))))){
		HX_STACK_LINE(79)
		this->listen_x(this->x);
	}
	HX_STACK_LINE(80)
	if (((bool((this->listen_y_dyn() != null())) && bool(!(this->ignore_listeners))))){
		HX_STACK_LINE(80)
		this->listen_y(this->y);
	}
	HX_STACK_LINE(82)
	return hx::ObjectPtr<OBJ_>(this);
}


HX_DEFINE_DYNAMIC_FUNC2(Vector_obj,set_xy,return )

::phoenix::Vector Vector_obj::set_xyz( Float _x,Float _y,Float _z){
	HX_STACK_FRAME("phoenix.Vector","set_xyz",0xa212e170,"phoenix.Vector.set_xyz","phoenix/Vector.hx",86,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_ARG(_x,"_x")
	HX_STACK_ARG(_y,"_y")
	HX_STACK_ARG(_z,"_z")
	HX_STACK_LINE(88)
	bool prev = this->ignore_listeners;		HX_STACK_VAR(prev,"prev");
	HX_STACK_LINE(90)
	this->ignore_listeners = true;
	HX_STACK_LINE(92)
	this->set_x(_x);
	HX_STACK_LINE(93)
	this->set_y(_y);
	HX_STACK_LINE(94)
	this->set_z(_z);
	HX_STACK_LINE(96)
	this->ignore_listeners = prev;
	HX_STACK_LINE(98)
	if (((bool((this->listen_x_dyn() != null())) && bool(!(this->ignore_listeners))))){
		HX_STACK_LINE(98)
		this->listen_x(this->x);
	}
	HX_STACK_LINE(99)
	if (((bool((this->listen_y_dyn() != null())) && bool(!(this->ignore_listeners))))){
		HX_STACK_LINE(99)
		this->listen_y(this->y);
	}
	HX_STACK_LINE(100)
	if (((bool((this->listen_z_dyn() != null())) && bool(!(this->ignore_listeners))))){
		HX_STACK_LINE(100)
		this->listen_z(this->z);
	}
	HX_STACK_LINE(102)
	return hx::ObjectPtr<OBJ_>(this);
}


HX_DEFINE_DYNAMIC_FUNC3(Vector_obj,set_xyz,return )

::phoenix::Vector Vector_obj::_int( ){
	HX_STACK_FRAME("phoenix.Vector","int",0x8c8f5263,"phoenix.Vector.int","phoenix/Vector.hx",106,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_LINE(108)
	int _g = ::Math_obj::round(this->x);		HX_STACK_VAR(_g,"_g");
	HX_STACK_LINE(108)
	int _g1 = ::Math_obj::round(this->y);		HX_STACK_VAR(_g1,"_g1");
	HX_STACK_LINE(108)
	this->set(_g,_g1,::Math_obj::round(this->z),this->w);
	HX_STACK_LINE(110)
	return hx::ObjectPtr<OBJ_>(this);
}


HX_DEFINE_DYNAMIC_FUNC0(Vector_obj,_int,return )

::phoenix::Vector Vector_obj::int_x( ){
	HX_STACK_FRAME("phoenix.Vector","int_x",0x4cd3445c,"phoenix.Vector.int_x","phoenix/Vector.hx",114,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_LINE(116)
	this->set_x(::Math_obj::round(this->x));
	HX_STACK_LINE(118)
	return hx::ObjectPtr<OBJ_>(this);
}


HX_DEFINE_DYNAMIC_FUNC0(Vector_obj,int_x,return )

::phoenix::Vector Vector_obj::int_y( ){
	HX_STACK_FRAME("phoenix.Vector","int_y",0x4cd3445d,"phoenix.Vector.int_y","phoenix/Vector.hx",122,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_LINE(124)
	this->set_y(::Math_obj::round(this->y));
	HX_STACK_LINE(126)
	return hx::ObjectPtr<OBJ_>(this);
}


HX_DEFINE_DYNAMIC_FUNC0(Vector_obj,int_y,return )

::phoenix::Vector Vector_obj::int_z( ){
	HX_STACK_FRAME("phoenix.Vector","int_z",0x4cd3445e,"phoenix.Vector.int_z","phoenix/Vector.hx",130,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_LINE(132)
	this->set_z(::Math_obj::round(this->z));
	HX_STACK_LINE(134)
	return hx::ObjectPtr<OBJ_>(this);
}


HX_DEFINE_DYNAMIC_FUNC0(Vector_obj,int_z,return )

::String Vector_obj::toString( ){
	HX_STACK_FRAME("phoenix.Vector","toString",0xe91b46b8,"phoenix.Vector.toString","phoenix/Vector.hx",140,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_LINE(140)
	return ((((((HX_CSTRING("{ x:") + this->x) + HX_CSTRING(", y:")) + this->y) + HX_CSTRING(", z:")) + this->z) + HX_CSTRING(" }"));
}


HX_DEFINE_DYNAMIC_FUNC0(Vector_obj,toString,return )

bool Vector_obj::equals( ::phoenix::Vector other){
	HX_STACK_FRAME("phoenix.Vector","equals",0x0d79894b,"phoenix.Vector.equals","phoenix/Vector.hx",145,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_ARG(other,"other")
	HX_STACK_LINE(145)
	return (bool((bool((bool((this->x == other->x)) && bool((this->y == other->y)))) && bool((this->z == other->z)))) && bool((this->w == other->w)));
}


HX_DEFINE_DYNAMIC_FUNC1(Vector_obj,equals,return )

::phoenix::Vector Vector_obj::clone( ){
	HX_STACK_FRAME("phoenix.Vector","clone",0xd7159dd1,"phoenix.Vector.clone","phoenix/Vector.hx",149,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_LINE(149)
	return ::phoenix::Vector_obj::__new(this->x,this->y,this->z,this->w);
}


HX_DEFINE_DYNAMIC_FUNC0(Vector_obj,clone,return )

::phoenix::Vector Vector_obj::normalize( ){
	HX_STACK_FRAME("phoenix.Vector","normalize",0x91dc0c01,"phoenix.Vector.normalize","phoenix/Vector.hx",153,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_LINE(153)
	return this->divideScalar(this->get_length());
}


HX_DEFINE_DYNAMIC_FUNC0(Vector_obj,normalize,return )

Float Vector_obj::dot( ::phoenix::Vector other){
	HX_STACK_FRAME("phoenix.Vector","dot",0x8c8b87fd,"phoenix.Vector.dot","phoenix/Vector.hx",158,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_ARG(other,"other")
	HX_STACK_LINE(158)
	return (((this->x * other->x) + (this->y * other->y)) + (this->z * other->z));
}


HX_DEFINE_DYNAMIC_FUNC1(Vector_obj,dot,return )

::phoenix::Vector Vector_obj::cross( ::phoenix::Vector a,::phoenix::Vector b){
	HX_STACK_FRAME("phoenix.Vector","cross",0xdb0ce9f4,"phoenix.Vector.cross","phoenix/Vector.hx",163,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_ARG(a,"a")
	HX_STACK_ARG(b,"b")
	HX_STACK_LINE(165)
	this->set_xyz(((a->y * b->z) - (a->z * b->y)),((a->z * b->x) - (a->x * b->z)),((a->x * b->y) - (a->y * b->x)));
	HX_STACK_LINE(169)
	return hx::ObjectPtr<OBJ_>(this);
}


HX_DEFINE_DYNAMIC_FUNC2(Vector_obj,cross,return )

::phoenix::Vector Vector_obj::invert( ){
	HX_STACK_FRAME("phoenix.Vector","invert",0xed5f8222,"phoenix.Vector.invert","phoenix/Vector.hx",173,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_LINE(175)
	this->set_xyz(-(this->x),-(this->y),-(this->z));
	HX_STACK_LINE(177)
	return hx::ObjectPtr<OBJ_>(this);
}


HX_DEFINE_DYNAMIC_FUNC0(Vector_obj,invert,return )

::phoenix::Vector Vector_obj::add( ::phoenix::Vector other){
	HX_STACK_FRAME("phoenix.Vector","add",0x8c893795,"phoenix.Vector.add","phoenix/Vector.hx",269,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_ARG(other,"other")
	HX_STACK_LINE(271)
	if (((other == null()))){
		HX_STACK_LINE(272)
		HX_STACK_DO_THROW(HX_CSTRING("vector.add other was handed in as null"));
	}
	HX_STACK_LINE(275)
	this->set_xyz((this->x + other->x),(this->y + other->y),(this->z + other->z));
	HX_STACK_LINE(277)
	return hx::ObjectPtr<OBJ_>(this);
}


HX_DEFINE_DYNAMIC_FUNC1(Vector_obj,add,return )

::phoenix::Vector Vector_obj::subtract( ::phoenix::Vector other){
	HX_STACK_FRAME("phoenix.Vector","subtract",0xa8bdeb20,"phoenix.Vector.subtract","phoenix/Vector.hx",281,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_ARG(other,"other")
	HX_STACK_LINE(283)
	if (((other == null()))){
		HX_STACK_LINE(284)
		HX_STACK_DO_THROW(HX_CSTRING("vector.subtract other was handed in as null"));
	}
	HX_STACK_LINE(287)
	this->set_xyz((this->x - other->x),(this->y - other->y),(this->z - other->z));
	HX_STACK_LINE(289)
	return hx::ObjectPtr<OBJ_>(this);
}


HX_DEFINE_DYNAMIC_FUNC1(Vector_obj,subtract,return )

::phoenix::Vector Vector_obj::multiply( ::phoenix::Vector other){
	HX_STACK_FRAME("phoenix.Vector","multiply",0x4b395830,"phoenix.Vector.multiply","phoenix/Vector.hx",293,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_ARG(other,"other")
	HX_STACK_LINE(295)
	if (((other == null()))){
		HX_STACK_LINE(296)
		HX_STACK_DO_THROW(HX_CSTRING("vector.multiply other was handed in as null"));
	}
	HX_STACK_LINE(299)
	this->set_xyz((this->x * other->x),(this->y * other->y),(this->z * other->z));
	HX_STACK_LINE(301)
	return hx::ObjectPtr<OBJ_>(this);
}


HX_DEFINE_DYNAMIC_FUNC1(Vector_obj,multiply,return )

::phoenix::Vector Vector_obj::divide( ::phoenix::Vector other){
	HX_STACK_FRAME("phoenix.Vector","divide",0x0c98ca85,"phoenix.Vector.divide","phoenix/Vector.hx",305,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_ARG(other,"other")
	HX_STACK_LINE(307)
	if (((other == null()))){
		HX_STACK_LINE(308)
		HX_STACK_DO_THROW(HX_CSTRING("vector.divide other was handed in as null"));
	}
	HX_STACK_LINE(311)
	this->set_xyz((Float(this->x) / Float(other->x)),(Float(this->y) / Float(other->y)),(Float(this->z) / Float(other->z)));
	HX_STACK_LINE(313)
	return hx::ObjectPtr<OBJ_>(this);
}


HX_DEFINE_DYNAMIC_FUNC1(Vector_obj,divide,return )

::phoenix::Vector Vector_obj::addScalar( Float v){
	HX_STACK_FRAME("phoenix.Vector","addScalar",0xda84f0a1,"phoenix.Vector.addScalar","phoenix/Vector.hx",317,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_ARG(v,"v")
	HX_STACK_LINE(319)
	this->set_xyz((this->x + v),(this->y + v),(this->z + v));
	HX_STACK_LINE(321)
	return hx::ObjectPtr<OBJ_>(this);
}


HX_DEFINE_DYNAMIC_FUNC1(Vector_obj,addScalar,return )

::phoenix::Vector Vector_obj::subtractScalar( Float v){
	HX_STACK_FRAME("phoenix.Vector","subtractScalar",0x2be95e6c,"phoenix.Vector.subtractScalar","phoenix/Vector.hx",325,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_ARG(v,"v")
	HX_STACK_LINE(327)
	this->set_xyz((this->x - v),(this->y - v),(this->z - v));
	HX_STACK_LINE(329)
	return hx::ObjectPtr<OBJ_>(this);
}


HX_DEFINE_DYNAMIC_FUNC1(Vector_obj,subtractScalar,return )

::phoenix::Vector Vector_obj::multiplyScalar( Float v){
	HX_STACK_FRAME("phoenix.Vector","multiplyScalar",0x998bf77c,"phoenix.Vector.multiplyScalar","phoenix/Vector.hx",333,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_ARG(v,"v")
	HX_STACK_LINE(335)
	this->set_xyz((this->x * v),(this->y * v),(this->z * v));
	HX_STACK_LINE(337)
	return hx::ObjectPtr<OBJ_>(this);
}


HX_DEFINE_DYNAMIC_FUNC1(Vector_obj,multiplyScalar,return )

::phoenix::Vector Vector_obj::divideScalar( Float v){
	HX_STACK_FRAME("phoenix.Vector","divideScalar",0x89ad5791,"phoenix.Vector.divideScalar","phoenix/Vector.hx",341,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_ARG(v,"v")
	HX_STACK_LINE(343)
	if (((v != (int)0))){
		HX_STACK_LINE(345)
		this->set_xyz((Float(this->x) / Float(v)),(Float(this->y) / Float(v)),(Float(this->z) / Float(v)));
	}
	else{
		HX_STACK_LINE(349)
		this->set_xyz((int)0,(int)0,(int)0);
	}
	HX_STACK_LINE(353)
	return hx::ObjectPtr<OBJ_>(this);
}


HX_DEFINE_DYNAMIC_FUNC1(Vector_obj,divideScalar,return )

Float Vector_obj::set_length( Float value){
	HX_STACK_FRAME("phoenix.Vector","set_length",0x204bb42f,"phoenix.Vector.set_length","phoenix/Vector.hx",360,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_ARG(value,"value")
	HX_STACK_LINE(362)
	this->normalize()->multiplyScalar(value);
	HX_STACK_LINE(364)
	return value;
}


HX_DEFINE_DYNAMIC_FUNC1(Vector_obj,set_length,return )

Float Vector_obj::get_length( ){
	HX_STACK_FRAME("phoenix.Vector","get_length",0x1cce15bb,"phoenix.Vector.get_length","phoenix/Vector.hx",370,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_LINE(370)
	return ::Math_obj::sqrt((((this->x * this->x) + (this->y * this->y)) + (this->z * this->z)));
}


HX_DEFINE_DYNAMIC_FUNC0(Vector_obj,get_length,return )

Float Vector_obj::get_lengthsq( ){
	HX_STACK_FRAME("phoenix.Vector","get_lengthsq",0x7ccb9f19,"phoenix.Vector.get_lengthsq","phoenix/Vector.hx",377,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_LINE(377)
	return (((this->x * this->x) + (this->y * this->y)) + (this->z * this->z));
}


HX_DEFINE_DYNAMIC_FUNC0(Vector_obj,get_lengthsq,return )

::phoenix::Vector Vector_obj::get_normalized( ){
	HX_STACK_FRAME("phoenix.Vector","get_normalized",0x48cf738c,"phoenix.Vector.get_normalized","phoenix/Vector.hx",383,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_LINE(383)
	return ::phoenix::Vector_obj::Divide(hx::ObjectPtr<OBJ_>(this),this->get_length());
}


HX_DEFINE_DYNAMIC_FUNC0(Vector_obj,get_normalized,return )

Float Vector_obj::set_x( Float _x){
	HX_STACK_FRAME("phoenix.Vector","set_x",0x08e225cf,"phoenix.Vector.set_x","phoenix/Vector.hx",387,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_ARG(_x,"_x")
	HX_STACK_LINE(389)
	this->x = _x;
	HX_STACK_LINE(391)
	if ((this->_construct)){
		HX_STACK_LINE(391)
		return this->x;
	}
	HX_STACK_LINE(393)
	if (((bool((this->listen_x_dyn() != null())) && bool(!(this->ignore_listeners))))){
		HX_STACK_LINE(393)
		this->listen_x(_x);
	}
	HX_STACK_LINE(395)
	return this->x;
}


HX_DEFINE_DYNAMIC_FUNC1(Vector_obj,set_x,return )

Float Vector_obj::set_y( Float _y){
	HX_STACK_FRAME("phoenix.Vector","set_y",0x08e225d0,"phoenix.Vector.set_y","phoenix/Vector.hx",399,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_ARG(_y,"_y")
	HX_STACK_LINE(401)
	this->y = _y;
	HX_STACK_LINE(403)
	if ((this->_construct)){
		HX_STACK_LINE(403)
		return this->y;
	}
	HX_STACK_LINE(405)
	if (((bool((this->listen_y_dyn() != null())) && bool(!(this->ignore_listeners))))){
		HX_STACK_LINE(405)
		this->listen_y(_y);
	}
	HX_STACK_LINE(407)
	return this->y;
}


HX_DEFINE_DYNAMIC_FUNC1(Vector_obj,set_y,return )

Float Vector_obj::set_z( Float _z){
	HX_STACK_FRAME("phoenix.Vector","set_z",0x08e225d1,"phoenix.Vector.set_z","phoenix/Vector.hx",411,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_ARG(_z,"_z")
	HX_STACK_LINE(413)
	this->z = _z;
	HX_STACK_LINE(415)
	if ((this->_construct)){
		HX_STACK_LINE(415)
		return this->z;
	}
	HX_STACK_LINE(417)
	if (((bool((this->listen_z_dyn() != null())) && bool(!(this->ignore_listeners))))){
		HX_STACK_LINE(417)
		this->listen_z(_z);
	}
	HX_STACK_LINE(419)
	return this->z;
}


HX_DEFINE_DYNAMIC_FUNC1(Vector_obj,set_z,return )

::phoenix::Vector Vector_obj::get_inverted( ){
	HX_STACK_FRAME("phoenix.Vector","get_inverted",0x5239d10a,"phoenix.Vector.get_inverted","phoenix/Vector.hx",425,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_LINE(425)
	return ::phoenix::Vector_obj::__new(-(this->x),-(this->y),-(this->z),null());
}


HX_DEFINE_DYNAMIC_FUNC0(Vector_obj,get_inverted,return )

Float Vector_obj::set_angle2D( Float value){
	HX_STACK_FRAME("phoenix.Vector","set_angle2D",0xed308afc,"phoenix.Vector.set_angle2D","phoenix/Vector.hx",432,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_ARG(value,"value")
	HX_STACK_LINE(434)
	Float len = this->get_length();		HX_STACK_VAR(len,"len");
	HX_STACK_LINE(436)
	Float _g = (::Math_obj::cos(value) * len);		HX_STACK_VAR(_g,"_g");
	HX_STACK_LINE(436)
	this->set_xy(_g,(::Math_obj::sin(value) * len));
	HX_STACK_LINE(438)
	return value;
}


HX_DEFINE_DYNAMIC_FUNC1(Vector_obj,set_angle2D,return )

Float Vector_obj::get_angle2D( ){
	HX_STACK_FRAME("phoenix.Vector","get_angle2D",0xe2c383f0,"phoenix.Vector.get_angle2D","phoenix/Vector.hx",444,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_LINE(444)
	return ::Math_obj::atan2(this->y,this->x);
}


HX_DEFINE_DYNAMIC_FUNC0(Vector_obj,get_angle2D,return )

::phoenix::Vector Vector_obj::truncate( Float max){
	HX_STACK_FRAME("phoenix.Vector","truncate",0x7fa63472,"phoenix.Vector.truncate","phoenix/Vector.hx",453,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_ARG(max,"max")
	HX_STACK_LINE(455)
	this->set_length(::Math_obj::min(max,this->get_length()));
	HX_STACK_LINE(457)
	return hx::ObjectPtr<OBJ_>(this);
}


HX_DEFINE_DYNAMIC_FUNC1(Vector_obj,truncate,return )

Float Vector_obj::rotationTo( ::phoenix::Vector other){
	HX_STACK_FRAME("phoenix.Vector","rotationTo",0x71bde365,"phoenix.Vector.rotationTo","phoenix/Vector.hx",461,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_ARG(other,"other")
	HX_STACK_LINE(462)
	Float theta = ::Math_obj::atan2((other->x - this->x),(other->y - this->y));		HX_STACK_VAR(theta,"theta");
	HX_STACK_LINE(463)
	Float r = -(((180.0 + (Float((theta * 180.0)) / Float(::Math_obj::PI)))));		HX_STACK_VAR(r,"r");
	HX_STACK_LINE(464)
	return r;
}


HX_DEFINE_DYNAMIC_FUNC1(Vector_obj,rotationTo,return )

::phoenix::Vector Vector_obj::applyQuaternion( ::phoenix::Quaternion q){
	HX_STACK_FRAME("phoenix.Vector","applyQuaternion",0xc78c8fa0,"phoenix.Vector.applyQuaternion","phoenix/Vector.hx",469,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_ARG(q,"q")
	HX_STACK_LINE(471)
	Float qx = q->x;		HX_STACK_VAR(qx,"qx");
	HX_STACK_LINE(472)
	Float qy = q->y;		HX_STACK_VAR(qy,"qy");
	HX_STACK_LINE(473)
	Float qz = q->z;		HX_STACK_VAR(qz,"qz");
	HX_STACK_LINE(474)
	Float qw = q->w;		HX_STACK_VAR(qw,"qw");
	HX_STACK_LINE(476)
	Float ix = (((qw * this->x) + (qy * this->z)) - (qz * this->y));		HX_STACK_VAR(ix,"ix");
	HX_STACK_LINE(477)
	Float iy = (((qw * this->y) + (qz * this->x)) - (qx * this->z));		HX_STACK_VAR(iy,"iy");
	HX_STACK_LINE(478)
	Float iz = (((qw * this->z) + (qx * this->y)) - (qy * this->x));		HX_STACK_VAR(iz,"iz");
	HX_STACK_LINE(479)
	Float iw = (((-(qx) * this->x) - (qy * this->y)) - (qz * this->z));		HX_STACK_VAR(iw,"iw");
	HX_STACK_LINE(481)
	this->set_xyz(((((ix * qw) + (iw * -(qx))) + (iy * -(qz))) - (iz * -(qy))),((((iy * qw) + (iw * -(qy))) + (iz * -(qx))) - (ix * -(qz))),((((iz * qw) + (iw * -(qz))) + (ix * -(qy))) - (iy * -(qx))));
	HX_STACK_LINE(485)
	return hx::ObjectPtr<OBJ_>(this);
}


HX_DEFINE_DYNAMIC_FUNC1(Vector_obj,applyQuaternion,return )

::phoenix::Vector Vector_obj::applyProjection( ::phoenix::Matrix m){
	HX_STACK_FRAME("phoenix.Vector","applyProjection",0x704e0b11,"phoenix.Vector.applyProjection","phoenix/Vector.hx",489,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_ARG(m,"m")
	HX_STACK_LINE(491)
	Array< Float > e = m->elements;		HX_STACK_VAR(e,"e");
	HX_STACK_LINE(492)
	Float x = this->x;		HX_STACK_VAR(x,"x");
	HX_STACK_LINE(492)
	Float y = this->y;		HX_STACK_VAR(y,"y");
	HX_STACK_LINE(492)
	Float z = this->z;		HX_STACK_VAR(z,"z");
	HX_STACK_LINE(493)
	Float d = (Float((int)1) / Float((((((e->__get((int)3) * x) + (e->__get((int)7) * y)) + (e->__get((int)11) * z)) + e->__get((int)15)))));		HX_STACK_VAR(d,"d");
	HX_STACK_LINE(495)
	this->set_xyz(((((((e->__get((int)0) * x) + (e->__get((int)4) * y)) + (e->__get((int)8) * z)) + e->__get((int)12))) * d),((((((e->__get((int)1) * x) + (e->__get((int)5) * y)) + (e->__get((int)9) * z)) + e->__get((int)13))) * d),((((((e->__get((int)2) * x) + (e->__get((int)6) * y)) + (e->__get((int)10) * z)) + e->__get((int)14))) * d));
	HX_STACK_LINE(499)
	return hx::ObjectPtr<OBJ_>(this);
}


HX_DEFINE_DYNAMIC_FUNC1(Vector_obj,applyProjection,return )

::phoenix::Vector Vector_obj::transform( ::phoenix::Matrix _m){
	HX_STACK_FRAME("phoenix.Vector","transform",0x2bce01e0,"phoenix.Vector.transform","phoenix/Vector.hx",503,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_ARG(_m,"_m")
	HX_STACK_LINE(505)
	Float _x = this->x;		HX_STACK_VAR(_x,"_x");
	HX_STACK_LINE(506)
	Float _y = this->y;		HX_STACK_VAR(_y,"_y");
	HX_STACK_LINE(507)
	Float _z = this->z;		HX_STACK_VAR(_z,"_z");
	HX_STACK_LINE(509)
	Array< Float > e = _m->elements;		HX_STACK_VAR(e,"e");
	HX_STACK_LINE(511)
	this->set_xyz(((((e->__get((int)0) * _x) + (e->__get((int)4) * _y)) + (e->__get((int)8) * _z)) + e->__get((int)12)),((((e->__get((int)1) * _x) + (e->__get((int)5) * _y)) + (e->__get((int)9) * _z)) + e->__get((int)13)),((((e->__get((int)2) * _x) + (e->__get((int)6) * _y)) + (e->__get((int)10) * _z)) + e->__get((int)14)));
	HX_STACK_LINE(515)
	return hx::ObjectPtr<OBJ_>(this);
}


HX_DEFINE_DYNAMIC_FUNC1(Vector_obj,transform,return )

::phoenix::Vector Vector_obj::transformDirection( ::phoenix::Matrix m){
	HX_STACK_FRAME("phoenix.Vector","transformDirection",0x2826043f,"phoenix.Vector.transformDirection","phoenix/Vector.hx",519,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_ARG(m,"m")
	HX_STACK_LINE(521)
	Array< Float > e = m->elements;		HX_STACK_VAR(e,"e");
	HX_STACK_LINE(522)
	Float x = this->x;		HX_STACK_VAR(x,"x");
	HX_STACK_LINE(522)
	Float y = this->y;		HX_STACK_VAR(y,"y");
	HX_STACK_LINE(522)
	Float z = this->z;		HX_STACK_VAR(z,"z");
	HX_STACK_LINE(524)
	this->set_xyz((((e->__get((int)0) * x) + (e->__get((int)4) * y)) + (e->__get((int)8) * z)),(((e->__get((int)1) * x) + (e->__get((int)5) * y)) + (e->__get((int)9) * z)),(((e->__get((int)2) * x) + (e->__get((int)6) * y)) + (e->__get((int)10) * z)));
	HX_STACK_LINE(528)
	this->normalize();
	HX_STACK_LINE(530)
	return hx::ObjectPtr<OBJ_>(this);
}


HX_DEFINE_DYNAMIC_FUNC1(Vector_obj,transformDirection,return )

::phoenix::Vector Vector_obj::setEulerFromRotationMatrix( ::phoenix::Matrix m,::String __o_order){
::String order = __o_order.Default(HX_CSTRING("XYZ"));
	HX_STACK_FRAME("phoenix.Vector","setEulerFromRotationMatrix",0x93d27e7c,"phoenix.Vector.setEulerFromRotationMatrix","phoenix/Vector.hx",534,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_ARG(m,"m")
	HX_STACK_ARG(order,"order")
{
		HX_STACK_LINE(536)
		Array< Float > te = m->elements;		HX_STACK_VAR(te,"te");
		HX_STACK_LINE(537)
		Float m11 = te->__get((int)0);		HX_STACK_VAR(m11,"m11");
		HX_STACK_LINE(537)
		Float m12 = te->__get((int)4);		HX_STACK_VAR(m12,"m12");
		HX_STACK_LINE(537)
		Float m13 = te->__get((int)8);		HX_STACK_VAR(m13,"m13");
		HX_STACK_LINE(538)
		Float m21 = te->__get((int)1);		HX_STACK_VAR(m21,"m21");
		HX_STACK_LINE(538)
		Float m22 = te->__get((int)5);		HX_STACK_VAR(m22,"m22");
		HX_STACK_LINE(538)
		Float m23 = te->__get((int)9);		HX_STACK_VAR(m23,"m23");
		HX_STACK_LINE(539)
		Float m31 = te->__get((int)2);		HX_STACK_VAR(m31,"m31");
		HX_STACK_LINE(539)
		Float m32 = te->__get((int)6);		HX_STACK_VAR(m32,"m32");
		HX_STACK_LINE(539)
		Float m33 = te->__get((int)10);		HX_STACK_VAR(m33,"m33");
		HX_STACK_LINE(541)
		Float _x = this->x;		HX_STACK_VAR(_x,"_x");
		HX_STACK_LINE(542)
		Float _y = this->y;		HX_STACK_VAR(_y,"_y");
		HX_STACK_LINE(543)
		Float _z = this->z;		HX_STACK_VAR(_z,"_z");
		HX_STACK_LINE(545)
		if (((order == HX_CSTRING("XYZ")))){
			HX_STACK_LINE(547)
			_y = ::Math_obj::asin((  (((m13 < (int)-1))) ? Float((int)-1) : Float((  (((m13 > (int)1))) ? Float((int)1) : Float(m13) )) ));
			HX_STACK_LINE(549)
			if (((::Math_obj::abs(m13) < 0.99999))){
				HX_STACK_LINE(551)
				_x = ::Math_obj::atan2(-(m23),m33);
				HX_STACK_LINE(552)
				_z = ::Math_obj::atan2(-(m12),m11);
			}
			else{
				HX_STACK_LINE(554)
				_x = ::Math_obj::atan2(m32,m22);
				HX_STACK_LINE(555)
				_z = (int)0;
			}
		}
		else{
			HX_STACK_LINE(558)
			if (((order == HX_CSTRING("YXZ")))){
				HX_STACK_LINE(560)
				_x = ::Math_obj::asin(-(((  (((m23 < (int)-1))) ? Float((int)-1) : Float((  (((m23 > (int)1))) ? Float((int)1) : Float(m23) )) ))));
				HX_STACK_LINE(562)
				if (((::Math_obj::abs(m23) < 0.99999))){
					HX_STACK_LINE(563)
					_y = ::Math_obj::atan2(m13,m33);
					HX_STACK_LINE(564)
					_z = ::Math_obj::atan2(m21,m22);
				}
				else{
					HX_STACK_LINE(566)
					_y = ::Math_obj::atan2(-(m31),m11);
					HX_STACK_LINE(567)
					_z = (int)0;
				}
			}
			else{
				HX_STACK_LINE(570)
				if (((order == HX_CSTRING("ZXY")))){
					HX_STACK_LINE(572)
					_x = ::Math_obj::asin((  (((m32 < (int)-1))) ? Float((int)-1) : Float((  (((m32 > (int)1))) ? Float((int)1) : Float(m32) )) ));
					HX_STACK_LINE(574)
					if (((::Math_obj::abs(m32) < 0.99999))){
						HX_STACK_LINE(575)
						_y = ::Math_obj::atan2(-(m31),m33);
						HX_STACK_LINE(576)
						_z = ::Math_obj::atan2(-(m12),m22);
					}
					else{
						HX_STACK_LINE(578)
						_y = (int)0;
						HX_STACK_LINE(579)
						_z = ::Math_obj::atan2(m21,m11);
					}
				}
				else{
					HX_STACK_LINE(582)
					if (((order == HX_CSTRING("ZYX")))){
						HX_STACK_LINE(584)
						_y = ::Math_obj::asin(-(((  (((m31 < (int)-1))) ? Float((int)-1) : Float((  (((m31 > (int)1))) ? Float((int)1) : Float(m31) )) ))));
						HX_STACK_LINE(586)
						if (((::Math_obj::abs(m31) < 0.99999))){
							HX_STACK_LINE(587)
							_x = ::Math_obj::atan2(m32,m33);
							HX_STACK_LINE(588)
							_z = ::Math_obj::atan2(m21,m11);
						}
						else{
							HX_STACK_LINE(590)
							_x = (int)0;
							HX_STACK_LINE(591)
							_z = ::Math_obj::atan2(-(m12),m22);
						}
					}
					else{
						HX_STACK_LINE(594)
						if (((order == HX_CSTRING("YZX")))){
							HX_STACK_LINE(596)
							_z = ::Math_obj::asin((  (((m21 < (int)-1))) ? Float((int)-1) : Float((  (((m21 > (int)1))) ? Float((int)1) : Float(m21) )) ));
							HX_STACK_LINE(598)
							if (((::Math_obj::abs(m21) < 0.99999))){
								HX_STACK_LINE(599)
								_x = ::Math_obj::atan2(-(m23),m22);
								HX_STACK_LINE(600)
								_y = ::Math_obj::atan2(-(m31),m11);
							}
							else{
								HX_STACK_LINE(602)
								_x = (int)0;
								HX_STACK_LINE(603)
								_y = ::Math_obj::atan2(m13,m33);
							}
						}
						else{
							HX_STACK_LINE(606)
							if (((order == HX_CSTRING("XZY")))){
								HX_STACK_LINE(608)
								_z = ::Math_obj::asin(-(((  (((m12 < (int)-1))) ? Float((int)-1) : Float((  (((m12 > (int)1))) ? Float((int)1) : Float(m12) )) ))));
								HX_STACK_LINE(610)
								if (((::Math_obj::abs(m12) < 0.99999))){
									HX_STACK_LINE(611)
									_x = ::Math_obj::atan2(m32,m22);
									HX_STACK_LINE(612)
									_y = ::Math_obj::atan2(m13,m11);
								}
								else{
									HX_STACK_LINE(614)
									_x = ::Math_obj::atan2(-(m23),m33);
									HX_STACK_LINE(615)
									_y = (int)0;
								}
							}
						}
					}
				}
			}
		}
		HX_STACK_LINE(620)
		this->set_xyz(_x,_y,_z);
		HX_STACK_LINE(622)
		return hx::ObjectPtr<OBJ_>(this);
	}
}


HX_DEFINE_DYNAMIC_FUNC2(Vector_obj,setEulerFromRotationMatrix,return )

::phoenix::Vector Vector_obj::setEulerFromQuaternion( ::phoenix::Quaternion q,::String __o_order){
::String order = __o_order.Default(HX_CSTRING("XYZ"));
	HX_STACK_FRAME("phoenix.Vector","setEulerFromQuaternion",0x59e86efb,"phoenix.Vector.setEulerFromQuaternion","phoenix/Vector.hx",626,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_ARG(q,"q")
	HX_STACK_ARG(order,"order")
{
		HX_STACK_LINE(628)
		Float sqx = (q->x * q->x);		HX_STACK_VAR(sqx,"sqx");
		HX_STACK_LINE(629)
		Float sqy = (q->y * q->y);		HX_STACK_VAR(sqy,"sqy");
		HX_STACK_LINE(630)
		Float sqz = (q->z * q->z);		HX_STACK_VAR(sqz,"sqz");
		HX_STACK_LINE(631)
		Float sqw = (q->w * q->w);		HX_STACK_VAR(sqw,"sqw");
		HX_STACK_LINE(633)
		Float _x = this->x;		HX_STACK_VAR(_x,"_x");
		HX_STACK_LINE(634)
		Float _y = this->y;		HX_STACK_VAR(_y,"_y");
		HX_STACK_LINE(635)
		Float _z = this->z;		HX_STACK_VAR(_z,"_z");
		HX_STACK_LINE(637)
		if (((order == HX_CSTRING("XYZ")))){
			HX_STACK_LINE(638)
			_x = ::Math_obj::atan2(((int)2 * (((q->x * q->w) - (q->y * q->z)))),(((sqw - sqx) - sqy) + sqz));
			struct _Function_2_1{
				inline static Float Block( ::phoenix::Quaternion &q){
					HX_STACK_FRAME("*","closure",0x5bdab937,"*.closure","phoenix/Vector.hx",639,0x5d0bf7fb)
					{
						HX_STACK_LINE(639)
						Float value = ((int)2 * (((q->x * q->z) + (q->y * q->w))));		HX_STACK_VAR(value,"value");
						HX_STACK_LINE(639)
						return (  (((value < (int)-1))) ? Float((int)-1) : Float((  (((value > (int)1))) ? Float((int)1) : Float(value) )) );
					}
					return null();
				}
			};
			HX_STACK_LINE(639)
			_y = ::Math_obj::asin(_Function_2_1::Block(q));
			HX_STACK_LINE(640)
			_z = ::Math_obj::atan2(((int)2 * (((q->z * q->w) - (q->x * q->y)))),(((sqw + sqx) - sqy) - sqz));
		}
		else{
			HX_STACK_LINE(641)
			if (((order == HX_CSTRING("YXZ")))){
				struct _Function_3_1{
					inline static Float Block( ::phoenix::Quaternion &q){
						HX_STACK_FRAME("*","closure",0x5bdab937,"*.closure","phoenix/Vector.hx",642,0x5d0bf7fb)
						{
							HX_STACK_LINE(642)
							Float value = ((int)2 * (((q->x * q->w) - (q->y * q->z))));		HX_STACK_VAR(value,"value");
							HX_STACK_LINE(642)
							return (  (((value < (int)-1))) ? Float((int)-1) : Float((  (((value > (int)1))) ? Float((int)1) : Float(value) )) );
						}
						return null();
					}
				};
				HX_STACK_LINE(642)
				_x = ::Math_obj::asin(_Function_3_1::Block(q));
				HX_STACK_LINE(643)
				_y = ::Math_obj::atan2(((int)2 * (((q->x * q->z) + (q->y * q->w)))),(((sqw - sqx) - sqy) + sqz));
				HX_STACK_LINE(644)
				_z = ::Math_obj::atan2(((int)2 * (((q->x * q->y) + (q->z * q->w)))),(((sqw - sqx) + sqy) - sqz));
			}
			else{
				HX_STACK_LINE(645)
				if (((order == HX_CSTRING("ZXY")))){
					struct _Function_4_1{
						inline static Float Block( ::phoenix::Quaternion &q){
							HX_STACK_FRAME("*","closure",0x5bdab937,"*.closure","phoenix/Vector.hx",646,0x5d0bf7fb)
							{
								HX_STACK_LINE(646)
								Float value = ((int)2 * (((q->x * q->w) + (q->y * q->z))));		HX_STACK_VAR(value,"value");
								HX_STACK_LINE(646)
								return (  (((value < (int)-1))) ? Float((int)-1) : Float((  (((value > (int)1))) ? Float((int)1) : Float(value) )) );
							}
							return null();
						}
					};
					HX_STACK_LINE(646)
					_x = ::Math_obj::asin(_Function_4_1::Block(q));
					HX_STACK_LINE(647)
					_y = ::Math_obj::atan2(((int)2 * (((q->y * q->w) - (q->z * q->x)))),(((sqw - sqx) - sqy) + sqz));
					HX_STACK_LINE(648)
					_z = ::Math_obj::atan2(((int)2 * (((q->z * q->w) - (q->x * q->y)))),(((sqw - sqx) + sqy) - sqz));
				}
				else{
					HX_STACK_LINE(649)
					if (((order == HX_CSTRING("ZYX")))){
						HX_STACK_LINE(650)
						_x = ::Math_obj::atan2(((int)2 * (((q->x * q->w) + (q->z * q->y)))),(((sqw - sqx) - sqy) + sqz));
						struct _Function_5_1{
							inline static Float Block( ::phoenix::Quaternion &q){
								HX_STACK_FRAME("*","closure",0x5bdab937,"*.closure","phoenix/Vector.hx",651,0x5d0bf7fb)
								{
									HX_STACK_LINE(651)
									Float value = ((int)2 * (((q->y * q->w) - (q->x * q->z))));		HX_STACK_VAR(value,"value");
									HX_STACK_LINE(651)
									return (  (((value < (int)-1))) ? Float((int)-1) : Float((  (((value > (int)1))) ? Float((int)1) : Float(value) )) );
								}
								return null();
							}
						};
						HX_STACK_LINE(651)
						_y = ::Math_obj::asin(_Function_5_1::Block(q));
						HX_STACK_LINE(652)
						_z = ::Math_obj::atan2(((int)2 * (((q->x * q->y) + (q->z * q->w)))),(((sqw + sqx) - sqy) - sqz));
					}
					else{
						HX_STACK_LINE(653)
						if (((order == HX_CSTRING("YZX")))){
							HX_STACK_LINE(654)
							_x = ::Math_obj::atan2(((int)2 * (((q->x * q->w) - (q->z * q->y)))),(((sqw - sqx) + sqy) - sqz));
							HX_STACK_LINE(655)
							_y = ::Math_obj::atan2(((int)2 * (((q->y * q->w) - (q->x * q->z)))),(((sqw + sqx) - sqy) - sqz));
							struct _Function_6_1{
								inline static Float Block( ::phoenix::Quaternion &q){
									HX_STACK_FRAME("*","closure",0x5bdab937,"*.closure","phoenix/Vector.hx",656,0x5d0bf7fb)
									{
										HX_STACK_LINE(656)
										Float value = ((int)2 * (((q->x * q->y) + (q->z * q->w))));		HX_STACK_VAR(value,"value");
										HX_STACK_LINE(656)
										return (  (((value < (int)-1))) ? Float((int)-1) : Float((  (((value > (int)1))) ? Float((int)1) : Float(value) )) );
									}
									return null();
								}
							};
							HX_STACK_LINE(656)
							_z = ::Math_obj::asin(_Function_6_1::Block(q));
						}
						else{
							HX_STACK_LINE(657)
							if (((order == HX_CSTRING("XZY")))){
								HX_STACK_LINE(658)
								_x = ::Math_obj::atan2(((int)2 * (((q->x * q->w) + (q->y * q->z)))),(((sqw - sqx) + sqy) - sqz));
								HX_STACK_LINE(659)
								_y = ::Math_obj::atan2(((int)2 * (((q->x * q->z) + (q->y * q->w)))),(((sqw + sqx) - sqy) - sqz));
								struct _Function_7_1{
									inline static Float Block( ::phoenix::Quaternion &q){
										HX_STACK_FRAME("*","closure",0x5bdab937,"*.closure","phoenix/Vector.hx",660,0x5d0bf7fb)
										{
											HX_STACK_LINE(660)
											Float value = ((int)2 * (((q->z * q->w) - (q->x * q->y))));		HX_STACK_VAR(value,"value");
											HX_STACK_LINE(660)
											return (  (((value < (int)-1))) ? Float((int)-1) : Float((  (((value > (int)1))) ? Float((int)1) : Float(value) )) );
										}
										return null();
									}
								};
								HX_STACK_LINE(660)
								_z = ::Math_obj::asin(_Function_7_1::Block(q));
							}
						}
					}
				}
			}
		}
		HX_STACK_LINE(663)
		this->set_xyz(this->x,this->y,this->z);
		HX_STACK_LINE(665)
		return hx::ObjectPtr<OBJ_>(this);
	}
}


HX_DEFINE_DYNAMIC_FUNC2(Vector_obj,setEulerFromQuaternion,return )

::phoenix::Vector Vector_obj::degrees( ){
	HX_STACK_FRAME("phoenix.Vector","degrees",0xc29bf31b,"phoenix.Vector.degrees","phoenix/Vector.hx",669,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_LINE(671)
	this->set_xyz((this->x * 57.29577951308238),(this->y * 57.29577951308238),(this->z * 57.29577951308238));
	HX_STACK_LINE(673)
	return hx::ObjectPtr<OBJ_>(this);
}


HX_DEFINE_DYNAMIC_FUNC0(Vector_obj,degrees,return )

::phoenix::Vector Vector_obj::radians( ){
	HX_STACK_FRAME("phoenix.Vector","radians",0xaf3155e6,"phoenix.Vector.radians","phoenix/Vector.hx",677,0x5d0bf7fb)
	HX_STACK_THIS(this)
	HX_STACK_LINE(679)
	this->set_xyz((this->x * 0.017453292519943278),(this->y * 0.017453292519943278),(this->z * 0.017453292519943278));
	HX_STACK_LINE(681)
	return hx::ObjectPtr<OBJ_>(this);
}


HX_DEFINE_DYNAMIC_FUNC0(Vector_obj,radians,return )

::phoenix::Vector Vector_obj::Add( ::phoenix::Vector a,::phoenix::Vector b){
	HX_STACK_FRAME("phoenix.Vector","Add",0x8c70ef75,"phoenix.Vector.Add","phoenix/Vector.hx",184,0x5d0bf7fb)
	HX_STACK_ARG(a,"a")
	HX_STACK_ARG(b,"b")
	HX_STACK_LINE(184)
	return ::phoenix::Vector_obj::__new((a->x + b->x),(a->y + b->y),(a->z + b->z),null());
}


STATIC_HX_DEFINE_DYNAMIC_FUNC2(Vector_obj,Add,return )

::phoenix::Vector Vector_obj::Subtract( ::phoenix::Vector a,::phoenix::Vector b){
	HX_STACK_FRAME("phoenix.Vector","Subtract",0x826fa740,"phoenix.Vector.Subtract","phoenix/Vector.hx",192,0x5d0bf7fb)
	HX_STACK_ARG(a,"a")
	HX_STACK_ARG(b,"b")
	HX_STACK_LINE(192)
	return ::phoenix::Vector_obj::__new((a->x - b->x),(a->y - b->y),(a->z - b->z),null());
}


STATIC_HX_DEFINE_DYNAMIC_FUNC2(Vector_obj,Subtract,return )

::phoenix::Vector Vector_obj::MultiplyVector( ::phoenix::Vector a,::phoenix::Vector b){
	HX_STACK_FRAME("phoenix.Vector","MultiplyVector",0x9f195533,"phoenix.Vector.MultiplyVector","phoenix/Vector.hx",200,0x5d0bf7fb)
	HX_STACK_ARG(a,"a")
	HX_STACK_ARG(b,"b")
	HX_STACK_LINE(200)
	return ::phoenix::Vector_obj::__new((a->x * b->x),(a->y * b->y),(a->z * b->z),null());
}


STATIC_HX_DEFINE_DYNAMIC_FUNC2(Vector_obj,MultiplyVector,return )

::phoenix::Vector Vector_obj::DivideVector( ::phoenix::Vector a,::phoenix::Vector b){
	HX_STACK_FRAME("phoenix.Vector","DivideVector",0xacf76d48,"phoenix.Vector.DivideVector","phoenix/Vector.hx",208,0x5d0bf7fb)
	HX_STACK_ARG(a,"a")
	HX_STACK_ARG(b,"b")
	HX_STACK_LINE(208)
	return ::phoenix::Vector_obj::__new((Float(a->x) / Float(b->x)),(Float(a->y) / Float(b->y)),(Float(a->z) / Float(b->z)),null());
}


STATIC_HX_DEFINE_DYNAMIC_FUNC2(Vector_obj,DivideVector,return )

::phoenix::Vector Vector_obj::Multiply( ::phoenix::Vector a,Float b){
	HX_STACK_FRAME("phoenix.Vector","Multiply",0x24eb1450,"phoenix.Vector.Multiply","phoenix/Vector.hx",216,0x5d0bf7fb)
	HX_STACK_ARG(a,"a")
	HX_STACK_ARG(b,"b")
	HX_STACK_LINE(216)
	return ::phoenix::Vector_obj::__new((a->x * b),(a->y * b),(a->z * b),null());
}


STATIC_HX_DEFINE_DYNAMIC_FUNC2(Vector_obj,Multiply,return )

::phoenix::Vector Vector_obj::Divide( ::phoenix::Vector a,Float b){
	HX_STACK_FRAME("phoenix.Vector","Divide",0x412d3ea5,"phoenix.Vector.Divide","phoenix/Vector.hx",224,0x5d0bf7fb)
	HX_STACK_ARG(a,"a")
	HX_STACK_ARG(b,"b")
	HX_STACK_LINE(224)
	return ::phoenix::Vector_obj::__new((Float(a->x) / Float(b)),(Float(a->y) / Float(b)),(Float(a->z) / Float(b)),null());
}


STATIC_HX_DEFINE_DYNAMIC_FUNC2(Vector_obj,Divide,return )

::phoenix::Vector Vector_obj::AddScalar( ::phoenix::Vector a,Float b){
	HX_STACK_FRAME("phoenix.Vector","AddScalar",0x7c57d081,"phoenix.Vector.AddScalar","phoenix/Vector.hx",232,0x5d0bf7fb)
	HX_STACK_ARG(a,"a")
	HX_STACK_ARG(b,"b")
	HX_STACK_LINE(232)
	return ::phoenix::Vector_obj::__new((a->x + b),(a->y + b),(a->z + b),null());
}


STATIC_HX_DEFINE_DYNAMIC_FUNC2(Vector_obj,AddScalar,return )

::phoenix::Vector Vector_obj::SubtractScalar( ::phoenix::Vector a,Float b){
	HX_STACK_FRAME("phoenix.Vector","SubtractScalar",0xd63ef28c,"phoenix.Vector.SubtractScalar","phoenix/Vector.hx",240,0x5d0bf7fb)
	HX_STACK_ARG(a,"a")
	HX_STACK_ARG(b,"b")
	HX_STACK_LINE(240)
	return ::phoenix::Vector_obj::__new((a->x - b),(a->y - b),(a->z - b),null());
}


STATIC_HX_DEFINE_DYNAMIC_FUNC2(Vector_obj,SubtractScalar,return )

::phoenix::Vector Vector_obj::Cross( ::phoenix::Vector a,::phoenix::Vector b){
	HX_STACK_FRAME("phoenix.Vector","Cross",0x6e3a59d4,"phoenix.Vector.Cross","phoenix/Vector.hx",248,0x5d0bf7fb)
	HX_STACK_ARG(a,"a")
	HX_STACK_ARG(b,"b")
	HX_STACK_LINE(248)
	return ::phoenix::Vector_obj::__new(((a->y * b->z) - (a->z * b->y)),((a->z * b->x) - (a->x * b->z)),((a->x * b->y) - (a->y * b->x)),null());
}


STATIC_HX_DEFINE_DYNAMIC_FUNC2(Vector_obj,Cross,return )

Float Vector_obj::RotationTo( ::phoenix::Vector a,::phoenix::Vector b){
	HX_STACK_FRAME("phoenix.Vector","RotationTo",0x686ee785,"phoenix.Vector.RotationTo","phoenix/Vector.hx",257,0x5d0bf7fb)
	HX_STACK_ARG(a,"a")
	HX_STACK_ARG(b,"b")
	HX_STACK_LINE(257)
	return a->rotationTo(b);
}


STATIC_HX_DEFINE_DYNAMIC_FUNC2(Vector_obj,RotationTo,return )

Void Vector_obj::listen( ::phoenix::Vector _v,Dynamic listener){
{
		HX_STACK_FRAME("phoenix.Vector","listen",0x3d806353,"phoenix.Vector.listen","phoenix/Vector.hx",261,0x5d0bf7fb)
		HX_STACK_ARG(_v,"_v")
		HX_STACK_ARG(listener,"listener")
		HX_STACK_LINE(262)
		_v->listen_x = listener;
		HX_STACK_LINE(263)
		_v->listen_y = listener;
		HX_STACK_LINE(264)
		_v->listen_z = listener;
	}
return null();
}


STATIC_HX_DEFINE_DYNAMIC_FUNC2(Vector_obj,listen,(void))

::phoenix::Vector Vector_obj::Degrees( ::phoenix::Vector _radian_vector){
	HX_STACK_FRAME("phoenix.Vector","Degrees",0x8fed1afb,"phoenix.Vector.Degrees","phoenix/Vector.hx",687,0x5d0bf7fb)
	HX_STACK_ARG(_radian_vector,"_radian_vector")
	HX_STACK_LINE(687)
	return _radian_vector->clone()->degrees();
}


STATIC_HX_DEFINE_DYNAMIC_FUNC1(Vector_obj,Degrees,return )

::phoenix::Vector Vector_obj::Radians( ::phoenix::Vector _degree_vector){
	HX_STACK_FRAME("phoenix.Vector","Radians",0x7c827dc6,"phoenix.Vector.Radians","phoenix/Vector.hx",693,0x5d0bf7fb)
	HX_STACK_ARG(_degree_vector,"_degree_vector")
	HX_STACK_LINE(693)
	return _degree_vector->clone()->radians();
}


STATIC_HX_DEFINE_DYNAMIC_FUNC1(Vector_obj,Radians,return )


Vector_obj::Vector_obj()
{
}

void Vector_obj::__Mark(HX_MARK_PARAMS)
{
	HX_MARK_BEGIN_CLASS(Vector);
	HX_MARK_MEMBER_NAME(x,"x");
	HX_MARK_MEMBER_NAME(y,"y");
	HX_MARK_MEMBER_NAME(z,"z");
	HX_MARK_MEMBER_NAME(w,"w");
	HX_MARK_MEMBER_NAME(length,"length");
	HX_MARK_MEMBER_NAME(lengthsq,"lengthsq");
	HX_MARK_MEMBER_NAME(angle2D,"angle2D");
	HX_MARK_MEMBER_NAME(normalized,"normalized");
	HX_MARK_MEMBER_NAME(inverted,"inverted");
	HX_MARK_MEMBER_NAME(ignore_listeners,"ignore_listeners");
	HX_MARK_MEMBER_NAME(listen_x,"listen_x");
	HX_MARK_MEMBER_NAME(listen_y,"listen_y");
	HX_MARK_MEMBER_NAME(listen_z,"listen_z");
	HX_MARK_MEMBER_NAME(_construct,"_construct");
	HX_MARK_END_CLASS();
}

void Vector_obj::__Visit(HX_VISIT_PARAMS)
{
	HX_VISIT_MEMBER_NAME(x,"x");
	HX_VISIT_MEMBER_NAME(y,"y");
	HX_VISIT_MEMBER_NAME(z,"z");
	HX_VISIT_MEMBER_NAME(w,"w");
	HX_VISIT_MEMBER_NAME(length,"length");
	HX_VISIT_MEMBER_NAME(lengthsq,"lengthsq");
	HX_VISIT_MEMBER_NAME(angle2D,"angle2D");
	HX_VISIT_MEMBER_NAME(normalized,"normalized");
	HX_VISIT_MEMBER_NAME(inverted,"inverted");
	HX_VISIT_MEMBER_NAME(ignore_listeners,"ignore_listeners");
	HX_VISIT_MEMBER_NAME(listen_x,"listen_x");
	HX_VISIT_MEMBER_NAME(listen_y,"listen_y");
	HX_VISIT_MEMBER_NAME(listen_z,"listen_z");
	HX_VISIT_MEMBER_NAME(_construct,"_construct");
}

Dynamic Vector_obj::__Field(const ::String &inName,bool inCallProp)
{
	switch(inName.length) {
	case 1:
		if (HX_FIELD_EQ(inName,"x") ) { return x; }
		if (HX_FIELD_EQ(inName,"y") ) { return y; }
		if (HX_FIELD_EQ(inName,"z") ) { return z; }
		if (HX_FIELD_EQ(inName,"w") ) { return w; }
		break;
	case 3:
		if (HX_FIELD_EQ(inName,"Add") ) { return Add_dyn(); }
		if (HX_FIELD_EQ(inName,"set") ) { return set_dyn(); }
		if (HX_FIELD_EQ(inName,"int") ) { return _int_dyn(); }
		if (HX_FIELD_EQ(inName,"dot") ) { return dot_dyn(); }
		if (HX_FIELD_EQ(inName,"add") ) { return add_dyn(); }
		break;
	case 5:
		if (HX_FIELD_EQ(inName,"Cross") ) { return Cross_dyn(); }
		if (HX_FIELD_EQ(inName,"int_x") ) { return int_x_dyn(); }
		if (HX_FIELD_EQ(inName,"int_y") ) { return int_y_dyn(); }
		if (HX_FIELD_EQ(inName,"int_z") ) { return int_z_dyn(); }
		if (HX_FIELD_EQ(inName,"clone") ) { return clone_dyn(); }
		if (HX_FIELD_EQ(inName,"cross") ) { return cross_dyn(); }
		if (HX_FIELD_EQ(inName,"set_x") ) { return set_x_dyn(); }
		if (HX_FIELD_EQ(inName,"set_y") ) { return set_y_dyn(); }
		if (HX_FIELD_EQ(inName,"set_z") ) { return set_z_dyn(); }
		break;
	case 6:
		if (HX_FIELD_EQ(inName,"Divide") ) { return Divide_dyn(); }
		if (HX_FIELD_EQ(inName,"listen") ) { return listen_dyn(); }
		if (HX_FIELD_EQ(inName,"length") ) { return inCallProp ? get_length() : length; }
		if (HX_FIELD_EQ(inName,"set_xy") ) { return set_xy_dyn(); }
		if (HX_FIELD_EQ(inName,"equals") ) { return equals_dyn(); }
		if (HX_FIELD_EQ(inName,"invert") ) { return invert_dyn(); }
		if (HX_FIELD_EQ(inName,"divide") ) { return divide_dyn(); }
		break;
	case 7:
		if (HX_FIELD_EQ(inName,"Degrees") ) { return Degrees_dyn(); }
		if (HX_FIELD_EQ(inName,"Radians") ) { return Radians_dyn(); }
		if (HX_FIELD_EQ(inName,"angle2D") ) { return inCallProp ? get_angle2D() : angle2D; }
		if (HX_FIELD_EQ(inName,"set_xyz") ) { return set_xyz_dyn(); }
		if (HX_FIELD_EQ(inName,"degrees") ) { return degrees_dyn(); }
		if (HX_FIELD_EQ(inName,"radians") ) { return radians_dyn(); }
		break;
	case 8:
		if (HX_FIELD_EQ(inName,"Subtract") ) { return Subtract_dyn(); }
		if (HX_FIELD_EQ(inName,"Multiply") ) { return Multiply_dyn(); }
		if (HX_FIELD_EQ(inName,"lengthsq") ) { return inCallProp ? get_lengthsq() : lengthsq; }
		if (HX_FIELD_EQ(inName,"inverted") ) { return inCallProp ? get_inverted() : inverted; }
		if (HX_FIELD_EQ(inName,"listen_x") ) { return listen_x; }
		if (HX_FIELD_EQ(inName,"listen_y") ) { return listen_y; }
		if (HX_FIELD_EQ(inName,"listen_z") ) { return listen_z; }
		if (HX_FIELD_EQ(inName,"toString") ) { return toString_dyn(); }
		if (HX_FIELD_EQ(inName,"subtract") ) { return subtract_dyn(); }
		if (HX_FIELD_EQ(inName,"multiply") ) { return multiply_dyn(); }
		if (HX_FIELD_EQ(inName,"truncate") ) { return truncate_dyn(); }
		break;
	case 9:
		if (HX_FIELD_EQ(inName,"AddScalar") ) { return AddScalar_dyn(); }
		if (HX_FIELD_EQ(inName,"copy_from") ) { return copy_from_dyn(); }
		if (HX_FIELD_EQ(inName,"normalize") ) { return normalize_dyn(); }
		if (HX_FIELD_EQ(inName,"addScalar") ) { return addScalar_dyn(); }
		if (HX_FIELD_EQ(inName,"transform") ) { return transform_dyn(); }
		break;
	case 10:
		if (HX_FIELD_EQ(inName,"RotationTo") ) { return RotationTo_dyn(); }
		if (HX_FIELD_EQ(inName,"normalized") ) { return inCallProp ? get_normalized() : normalized; }
		if (HX_FIELD_EQ(inName,"_construct") ) { return _construct; }
		if (HX_FIELD_EQ(inName,"set_length") ) { return set_length_dyn(); }
		if (HX_FIELD_EQ(inName,"get_length") ) { return get_length_dyn(); }
		if (HX_FIELD_EQ(inName,"rotationTo") ) { return rotationTo_dyn(); }
		break;
	case 11:
		if (HX_FIELD_EQ(inName,"set_angle2D") ) { return set_angle2D_dyn(); }
		if (HX_FIELD_EQ(inName,"get_angle2D") ) { return get_angle2D_dyn(); }
		break;
	case 12:
		if (HX_FIELD_EQ(inName,"DivideVector") ) { return DivideVector_dyn(); }
		if (HX_FIELD_EQ(inName,"divideScalar") ) { return divideScalar_dyn(); }
		if (HX_FIELD_EQ(inName,"get_lengthsq") ) { return get_lengthsq_dyn(); }
		if (HX_FIELD_EQ(inName,"get_inverted") ) { return get_inverted_dyn(); }
		break;
	case 14:
		if (HX_FIELD_EQ(inName,"MultiplyVector") ) { return MultiplyVector_dyn(); }
		if (HX_FIELD_EQ(inName,"SubtractScalar") ) { return SubtractScalar_dyn(); }
		if (HX_FIELD_EQ(inName,"subtractScalar") ) { return subtractScalar_dyn(); }
		if (HX_FIELD_EQ(inName,"multiplyScalar") ) { return multiplyScalar_dyn(); }
		if (HX_FIELD_EQ(inName,"get_normalized") ) { return get_normalized_dyn(); }
		break;
	case 15:
		if (HX_FIELD_EQ(inName,"applyQuaternion") ) { return applyQuaternion_dyn(); }
		if (HX_FIELD_EQ(inName,"applyProjection") ) { return applyProjection_dyn(); }
		break;
	case 16:
		if (HX_FIELD_EQ(inName,"ignore_listeners") ) { return ignore_listeners; }
		break;
	case 18:
		if (HX_FIELD_EQ(inName,"transformDirection") ) { return transformDirection_dyn(); }
		break;
	case 22:
		if (HX_FIELD_EQ(inName,"setEulerFromQuaternion") ) { return setEulerFromQuaternion_dyn(); }
		break;
	case 26:
		if (HX_FIELD_EQ(inName,"setEulerFromRotationMatrix") ) { return setEulerFromRotationMatrix_dyn(); }
	}
	return super::__Field(inName,inCallProp);
}

Dynamic Vector_obj::__SetField(const ::String &inName,const Dynamic &inValue,bool inCallProp)
{
	switch(inName.length) {
	case 1:
		if (HX_FIELD_EQ(inName,"x") ) { if (inCallProp) return set_x(inValue);x=inValue.Cast< Float >(); return inValue; }
		if (HX_FIELD_EQ(inName,"y") ) { if (inCallProp) return set_y(inValue);y=inValue.Cast< Float >(); return inValue; }
		if (HX_FIELD_EQ(inName,"z") ) { if (inCallProp) return set_z(inValue);z=inValue.Cast< Float >(); return inValue; }
		if (HX_FIELD_EQ(inName,"w") ) { w=inValue.Cast< Float >(); return inValue; }
		break;
	case 6:
		if (HX_FIELD_EQ(inName,"length") ) { if (inCallProp) return set_length(inValue);length=inValue.Cast< Float >(); return inValue; }
		break;
	case 7:
		if (HX_FIELD_EQ(inName,"angle2D") ) { if (inCallProp) return set_angle2D(inValue);angle2D=inValue.Cast< Float >(); return inValue; }
		break;
	case 8:
		if (HX_FIELD_EQ(inName,"lengthsq") ) { lengthsq=inValue.Cast< Float >(); return inValue; }
		if (HX_FIELD_EQ(inName,"inverted") ) { inverted=inValue.Cast< ::phoenix::Vector >(); return inValue; }
		if (HX_FIELD_EQ(inName,"listen_x") ) { listen_x=inValue.Cast< Dynamic >(); return inValue; }
		if (HX_FIELD_EQ(inName,"listen_y") ) { listen_y=inValue.Cast< Dynamic >(); return inValue; }
		if (HX_FIELD_EQ(inName,"listen_z") ) { listen_z=inValue.Cast< Dynamic >(); return inValue; }
		break;
	case 10:
		if (HX_FIELD_EQ(inName,"normalized") ) { normalized=inValue.Cast< ::phoenix::Vector >(); return inValue; }
		if (HX_FIELD_EQ(inName,"_construct") ) { _construct=inValue.Cast< bool >(); return inValue; }
		break;
	case 16:
		if (HX_FIELD_EQ(inName,"ignore_listeners") ) { ignore_listeners=inValue.Cast< bool >(); return inValue; }
	}
	return super::__SetField(inName,inValue,inCallProp);
}

void Vector_obj::__GetFields(Array< ::String> &outFields)
{
	outFields->push(HX_CSTRING("x"));
	outFields->push(HX_CSTRING("y"));
	outFields->push(HX_CSTRING("z"));
	outFields->push(HX_CSTRING("w"));
	outFields->push(HX_CSTRING("length"));
	outFields->push(HX_CSTRING("lengthsq"));
	outFields->push(HX_CSTRING("angle2D"));
	outFields->push(HX_CSTRING("normalized"));
	outFields->push(HX_CSTRING("inverted"));
	outFields->push(HX_CSTRING("ignore_listeners"));
	outFields->push(HX_CSTRING("_construct"));
	super::__GetFields(outFields);
};

static ::String sStaticFields[] = {
	HX_CSTRING("Add"),
	HX_CSTRING("Subtract"),
	HX_CSTRING("MultiplyVector"),
	HX_CSTRING("DivideVector"),
	HX_CSTRING("Multiply"),
	HX_CSTRING("Divide"),
	HX_CSTRING("AddScalar"),
	HX_CSTRING("SubtractScalar"),
	HX_CSTRING("Cross"),
	HX_CSTRING("RotationTo"),
	HX_CSTRING("listen"),
	HX_CSTRING("Degrees"),
	HX_CSTRING("Radians"),
	String(null()) };

#if HXCPP_SCRIPTABLE
static hx::StorageInfo sMemberStorageInfo[] = {
	{hx::fsFloat,(int)offsetof(Vector_obj,x),HX_CSTRING("x")},
	{hx::fsFloat,(int)offsetof(Vector_obj,y),HX_CSTRING("y")},
	{hx::fsFloat,(int)offsetof(Vector_obj,z),HX_CSTRING("z")},
	{hx::fsFloat,(int)offsetof(Vector_obj,w),HX_CSTRING("w")},
	{hx::fsFloat,(int)offsetof(Vector_obj,length),HX_CSTRING("length")},
	{hx::fsFloat,(int)offsetof(Vector_obj,lengthsq),HX_CSTRING("lengthsq")},
	{hx::fsFloat,(int)offsetof(Vector_obj,angle2D),HX_CSTRING("angle2D")},
	{hx::fsObject /*::phoenix::Vector*/ ,(int)offsetof(Vector_obj,normalized),HX_CSTRING("normalized")},
	{hx::fsObject /*::phoenix::Vector*/ ,(int)offsetof(Vector_obj,inverted),HX_CSTRING("inverted")},
	{hx::fsBool,(int)offsetof(Vector_obj,ignore_listeners),HX_CSTRING("ignore_listeners")},
	{hx::fsObject /*Dynamic*/ ,(int)offsetof(Vector_obj,listen_x),HX_CSTRING("listen_x")},
	{hx::fsObject /*Dynamic*/ ,(int)offsetof(Vector_obj,listen_y),HX_CSTRING("listen_y")},
	{hx::fsObject /*Dynamic*/ ,(int)offsetof(Vector_obj,listen_z),HX_CSTRING("listen_z")},
	{hx::fsBool,(int)offsetof(Vector_obj,_construct),HX_CSTRING("_construct")},
	{ hx::fsUnknown, 0, null()}
};
#endif

static ::String sMemberFields[] = {
	HX_CSTRING("x"),
	HX_CSTRING("y"),
	HX_CSTRING("z"),
	HX_CSTRING("w"),
	HX_CSTRING("length"),
	HX_CSTRING("lengthsq"),
	HX_CSTRING("angle2D"),
	HX_CSTRING("normalized"),
	HX_CSTRING("inverted"),
	HX_CSTRING("ignore_listeners"),
	HX_CSTRING("listen_x"),
	HX_CSTRING("listen_y"),
	HX_CSTRING("listen_z"),
	HX_CSTRING("_construct"),
	HX_CSTRING("copy_from"),
	HX_CSTRING("set"),
	HX_CSTRING("set_xy"),
	HX_CSTRING("set_xyz"),
	HX_CSTRING("int"),
	HX_CSTRING("int_x"),
	HX_CSTRING("int_y"),
	HX_CSTRING("int_z"),
	HX_CSTRING("toString"),
	HX_CSTRING("equals"),
	HX_CSTRING("clone"),
	HX_CSTRING("normalize"),
	HX_CSTRING("dot"),
	HX_CSTRING("cross"),
	HX_CSTRING("invert"),
	HX_CSTRING("add"),
	HX_CSTRING("subtract"),
	HX_CSTRING("multiply"),
	HX_CSTRING("divide"),
	HX_CSTRING("addScalar"),
	HX_CSTRING("subtractScalar"),
	HX_CSTRING("multiplyScalar"),
	HX_CSTRING("divideScalar"),
	HX_CSTRING("set_length"),
	HX_CSTRING("get_length"),
	HX_CSTRING("get_lengthsq"),
	HX_CSTRING("get_normalized"),
	HX_CSTRING("set_x"),
	HX_CSTRING("set_y"),
	HX_CSTRING("set_z"),
	HX_CSTRING("get_inverted"),
	HX_CSTRING("set_angle2D"),
	HX_CSTRING("get_angle2D"),
	HX_CSTRING("truncate"),
	HX_CSTRING("rotationTo"),
	HX_CSTRING("applyQuaternion"),
	HX_CSTRING("applyProjection"),
	HX_CSTRING("transform"),
	HX_CSTRING("transformDirection"),
	HX_CSTRING("setEulerFromRotationMatrix"),
	HX_CSTRING("setEulerFromQuaternion"),
	HX_CSTRING("degrees"),
	HX_CSTRING("radians"),
	String(null()) };

static void sMarkStatics(HX_MARK_PARAMS) {
	HX_MARK_MEMBER_NAME(Vector_obj::__mClass,"__mClass");
};

#ifdef HXCPP_VISIT_ALLOCS
static void sVisitStatics(HX_VISIT_PARAMS) {
	HX_VISIT_MEMBER_NAME(Vector_obj::__mClass,"__mClass");
};

#endif

Class Vector_obj::__mClass;

void Vector_obj::__register()
{
	hx::Static(__mClass) = hx::RegisterClass(HX_CSTRING("phoenix.Vector"), hx::TCanCast< Vector_obj> ,sStaticFields,sMemberFields,
	&__CreateEmpty, &__Create,
	&super::__SGetClass(), 0, sMarkStatics
#ifdef HXCPP_VISIT_ALLOCS
    , sVisitStatics
#endif
#ifdef HXCPP_SCRIPTABLE
    , sMemberStorageInfo
#endif
);
}

void Vector_obj::__boot()
{
}

} // end namespace phoenix
