#include <hxcpp.h>

#ifndef INCLUDED_phoenix_PrimitiveType
#include <phoenix/PrimitiveType.h>
#endif
namespace phoenix{

::phoenix::PrimitiveType PrimitiveType_obj::line_loop;

::phoenix::PrimitiveType PrimitiveType_obj::line_strip;

::phoenix::PrimitiveType PrimitiveType_obj::lines;

::phoenix::PrimitiveType PrimitiveType_obj::none;

::phoenix::PrimitiveType PrimitiveType_obj::points;

::phoenix::PrimitiveType PrimitiveType_obj::triangle_fan;

::phoenix::PrimitiveType PrimitiveType_obj::triangle_strip;

::phoenix::PrimitiveType PrimitiveType_obj::triangles;

HX_DEFINE_CREATE_ENUM(PrimitiveType_obj)

int PrimitiveType_obj::__FindIndex(::String inName)
{
	if (inName==HX_CSTRING("line_loop")) return 2;
	if (inName==HX_CSTRING("line_strip")) return 1;
	if (inName==HX_CSTRING("lines")) return 3;
	if (inName==HX_CSTRING("none")) return 0;
	if (inName==HX_CSTRING("points")) return 7;
	if (inName==HX_CSTRING("triangle_fan")) return 6;
	if (inName==HX_CSTRING("triangle_strip")) return 4;
	if (inName==HX_CSTRING("triangles")) return 5;
	return super::__FindIndex(inName);
}

int PrimitiveType_obj::__FindArgCount(::String inName)
{
	if (inName==HX_CSTRING("line_loop")) return 0;
	if (inName==HX_CSTRING("line_strip")) return 0;
	if (inName==HX_CSTRING("lines")) return 0;
	if (inName==HX_CSTRING("none")) return 0;
	if (inName==HX_CSTRING("points")) return 0;
	if (inName==HX_CSTRING("triangle_fan")) return 0;
	if (inName==HX_CSTRING("triangle_strip")) return 0;
	if (inName==HX_CSTRING("triangles")) return 0;
	return super::__FindArgCount(inName);
}

Dynamic PrimitiveType_obj::__Field(const ::String &inName,bool inCallProp)
{
	if (inName==HX_CSTRING("line_loop")) return line_loop;
	if (inName==HX_CSTRING("line_strip")) return line_strip;
	if (inName==HX_CSTRING("lines")) return lines;
	if (inName==HX_CSTRING("none")) return none;
	if (inName==HX_CSTRING("points")) return points;
	if (inName==HX_CSTRING("triangle_fan")) return triangle_fan;
	if (inName==HX_CSTRING("triangle_strip")) return triangle_strip;
	if (inName==HX_CSTRING("triangles")) return triangles;
	return super::__Field(inName,inCallProp);
}

static ::String sStaticFields[] = {
	HX_CSTRING("none"),
	HX_CSTRING("line_strip"),
	HX_CSTRING("line_loop"),
	HX_CSTRING("lines"),
	HX_CSTRING("triangle_strip"),
	HX_CSTRING("triangles"),
	HX_CSTRING("triangle_fan"),
	HX_CSTRING("points"),
	::String(null()) };

static void sMarkStatics(HX_MARK_PARAMS) {
	HX_MARK_MEMBER_NAME(PrimitiveType_obj::line_loop,"line_loop");
	HX_MARK_MEMBER_NAME(PrimitiveType_obj::line_strip,"line_strip");
	HX_MARK_MEMBER_NAME(PrimitiveType_obj::lines,"lines");
	HX_MARK_MEMBER_NAME(PrimitiveType_obj::none,"none");
	HX_MARK_MEMBER_NAME(PrimitiveType_obj::points,"points");
	HX_MARK_MEMBER_NAME(PrimitiveType_obj::triangle_fan,"triangle_fan");
	HX_MARK_MEMBER_NAME(PrimitiveType_obj::triangle_strip,"triangle_strip");
	HX_MARK_MEMBER_NAME(PrimitiveType_obj::triangles,"triangles");
};

#ifdef HXCPP_VISIT_ALLOCS
static void sVisitStatic(HX_VISIT_PARAMS) {
	HX_VISIT_MEMBER_NAME(PrimitiveType_obj::__mClass,"__mClass");
	HX_VISIT_MEMBER_NAME(PrimitiveType_obj::line_loop,"line_loop");
	HX_VISIT_MEMBER_NAME(PrimitiveType_obj::line_strip,"line_strip");
	HX_VISIT_MEMBER_NAME(PrimitiveType_obj::lines,"lines");
	HX_VISIT_MEMBER_NAME(PrimitiveType_obj::none,"none");
	HX_VISIT_MEMBER_NAME(PrimitiveType_obj::points,"points");
	HX_VISIT_MEMBER_NAME(PrimitiveType_obj::triangle_fan,"triangle_fan");
	HX_VISIT_MEMBER_NAME(PrimitiveType_obj::triangle_strip,"triangle_strip");
	HX_VISIT_MEMBER_NAME(PrimitiveType_obj::triangles,"triangles");
};
#endif

static ::String sMemberFields[] = { ::String(null()) };
Class PrimitiveType_obj::__mClass;

Dynamic __Create_PrimitiveType_obj() { return new PrimitiveType_obj; }

void PrimitiveType_obj::__register()
{

hx::Static(__mClass) = hx::RegisterClass(HX_CSTRING("phoenix.PrimitiveType"), hx::TCanCast< PrimitiveType_obj >,sStaticFields,sMemberFields,
	&__Create_PrimitiveType_obj, &__Create,
	&super::__SGetClass(), &CreatePrimitiveType_obj, sMarkStatics
#ifdef HXCPP_VISIT_ALLOCS
    , sVisitStatic
#endif
#ifdef HXCPP_SCRIPTABLE
    , 0
#endif
);
}

void PrimitiveType_obj::__boot()
{
hx::Static(line_loop) = hx::CreateEnum< PrimitiveType_obj >(HX_CSTRING("line_loop"),2);
hx::Static(line_strip) = hx::CreateEnum< PrimitiveType_obj >(HX_CSTRING("line_strip"),1);
hx::Static(lines) = hx::CreateEnum< PrimitiveType_obj >(HX_CSTRING("lines"),3);
hx::Static(none) = hx::CreateEnum< PrimitiveType_obj >(HX_CSTRING("none"),0);
hx::Static(points) = hx::CreateEnum< PrimitiveType_obj >(HX_CSTRING("points"),7);
hx::Static(triangle_fan) = hx::CreateEnum< PrimitiveType_obj >(HX_CSTRING("triangle_fan"),6);
hx::Static(triangle_strip) = hx::CreateEnum< PrimitiveType_obj >(HX_CSTRING("triangle_strip"),4);
hx::Static(triangles) = hx::CreateEnum< PrimitiveType_obj >(HX_CSTRING("triangles"),5);
}


} // end namespace phoenix
