#include <hxcpp.h>

#ifndef INCLUDED_nape_constraint_Constraint
#include <hxinc/nape/constraint/Constraint.h>
#endif
#ifndef INCLUDED_nape_constraint_PulleyJoint
#include <hxinc/nape/constraint/PulleyJoint.h>
#endif
#ifndef INCLUDED_nape_geom_MatMN
#include <hxinc/nape/geom/MatMN.h>
#endif
#ifndef INCLUDED_nape_geom_Vec2
#include <hxinc/nape/geom/Vec2.h>
#endif
#ifndef INCLUDED_nape_geom_Vec3
#include <hxinc/nape/geom/Vec3.h>
#endif
#ifndef INCLUDED_nape_phys_Body
#include <hxinc/nape/phys/Body.h>
#endif
#ifndef INCLUDED_nape_phys_Interactor
#include <hxinc/nape/phys/Interactor.h>
#endif
#ifndef INCLUDED_nape_space_Space
#include <hxinc/nape/space/Space.h>
#endif
#ifndef INCLUDED_zpp_nape_constraint_ZPP_Constraint
#include <hxinc/zpp_nape/constraint/ZPP_Constraint.h>
#endif
#ifndef INCLUDED_zpp_nape_constraint_ZPP_PulleyJoint
#include <hxinc/zpp_nape/constraint/ZPP_PulleyJoint.h>
#endif
#ifndef INCLUDED_zpp_nape_geom_ZPP_MatMN
#include <hxinc/zpp_nape/geom/ZPP_MatMN.h>
#endif
#ifndef INCLUDED_zpp_nape_geom_ZPP_Vec2
#include <hxinc/zpp_nape/geom/ZPP_Vec2.h>
#endif
#ifndef INCLUDED_zpp_nape_phys_ZPP_Body
#include <hxinc/zpp_nape/phys/ZPP_Body.h>
#endif
#ifndef INCLUDED_zpp_nape_phys_ZPP_Interactor
#include <hxinc/zpp_nape/phys/ZPP_Interactor.h>
#endif
#ifndef INCLUDED_zpp_nape_space_ZPP_Space
#include <hxinc/zpp_nape/space/ZPP_Space.h>
#endif
#ifndef INCLUDED_zpp_nape_util_ZNPList_ZPP_Constraint
#include <hxinc/zpp_nape/util/ZNPList_ZPP_Constraint.h>
#endif
#ifndef INCLUDED_zpp_nape_util_ZPP_PubPool
#include <hxinc/zpp_nape/util/ZPP_PubPool.h>
#endif

HX_DEFINE_STACK_FRAME(_hx_pos_7d77866d564ee991_187_new,"nape.constraint.PulleyJoint","new",0x06ee1c18,"nape.constraint.PulleyJoint.new","nape/constraint/PulleyJoint.hx",187,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_201_get_body1,"nape.constraint.PulleyJoint","get_body1",0x9deb155e,"nape.constraint.PulleyJoint.get_body1","nape/constraint/PulleyJoint.hx",201,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_203_set_body1,"nape.constraint.PulleyJoint","set_body1",0x813c016a,"nape.constraint.PulleyJoint.set_body1","nape/constraint/PulleyJoint.hx",203,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_239_get_body2,"nape.constraint.PulleyJoint","get_body2",0x9deb155f,"nape.constraint.PulleyJoint.get_body2","nape/constraint/PulleyJoint.hx",239,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_241_set_body2,"nape.constraint.PulleyJoint","set_body2",0x813c016b,"nape.constraint.PulleyJoint.set_body2","nape/constraint/PulleyJoint.hx",241,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_277_get_body3,"nape.constraint.PulleyJoint","get_body3",0x9deb1560,"nape.constraint.PulleyJoint.get_body3","nape/constraint/PulleyJoint.hx",277,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_279_set_body3,"nape.constraint.PulleyJoint","set_body3",0x813c016c,"nape.constraint.PulleyJoint.set_body3","nape/constraint/PulleyJoint.hx",279,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_315_get_body4,"nape.constraint.PulleyJoint","get_body4",0x9deb1561,"nape.constraint.PulleyJoint.get_body4","nape/constraint/PulleyJoint.hx",315,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_317_set_body4,"nape.constraint.PulleyJoint","set_body4",0x813c016d,"nape.constraint.PulleyJoint.set_body4","nape/constraint/PulleyJoint.hx",317,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_351_get_anchor1,"nape.constraint.PulleyJoint","get_anchor1",0x107d0feb,"nape.constraint.PulleyJoint.get_anchor1","nape/constraint/PulleyJoint.hx",351,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_355_set_anchor1,"nape.constraint.PulleyJoint","set_anchor1",0x1aea16f7,"nape.constraint.PulleyJoint.set_anchor1","nape/constraint/PulleyJoint.hx",355,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_376_get_anchor2,"nape.constraint.PulleyJoint","get_anchor2",0x107d0fec,"nape.constraint.PulleyJoint.get_anchor2","nape/constraint/PulleyJoint.hx",376,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_380_set_anchor2,"nape.constraint.PulleyJoint","set_anchor2",0x1aea16f8,"nape.constraint.PulleyJoint.set_anchor2","nape/constraint/PulleyJoint.hx",380,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_401_get_anchor3,"nape.constraint.PulleyJoint","get_anchor3",0x107d0fed,"nape.constraint.PulleyJoint.get_anchor3","nape/constraint/PulleyJoint.hx",401,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_405_set_anchor3,"nape.constraint.PulleyJoint","set_anchor3",0x1aea16f9,"nape.constraint.PulleyJoint.set_anchor3","nape/constraint/PulleyJoint.hx",405,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_426_get_anchor4,"nape.constraint.PulleyJoint","get_anchor4",0x107d0fee,"nape.constraint.PulleyJoint.get_anchor4","nape/constraint/PulleyJoint.hx",426,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_430_set_anchor4,"nape.constraint.PulleyJoint","set_anchor4",0x1aea16fa,"nape.constraint.PulleyJoint.set_anchor4","nape/constraint/PulleyJoint.hx",430,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_452_get_jointMin,"nape.constraint.PulleyJoint","get_jointMin",0x670a2bb9,"nape.constraint.PulleyJoint.get_jointMin","nape/constraint/PulleyJoint.hx",452,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_454_set_jointMin,"nape.constraint.PulleyJoint","set_jointMin",0x7c034f2d,"nape.constraint.PulleyJoint.set_jointMin","nape/constraint/PulleyJoint.hx",454,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_480_get_jointMax,"nape.constraint.PulleyJoint","get_jointMax",0x670a24cb,"nape.constraint.PulleyJoint.get_jointMax","nape/constraint/PulleyJoint.hx",480,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_482_set_jointMax,"nape.constraint.PulleyJoint","set_jointMax",0x7c03483f,"nape.constraint.PulleyJoint.set_jointMax","nape/constraint/PulleyJoint.hx",482,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_508_get_ratio,"nape.constraint.PulleyJoint","get_ratio",0xcb1f771a,"nape.constraint.PulleyJoint.get_ratio","nape/constraint/PulleyJoint.hx",508,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_510_set_ratio,"nape.constraint.PulleyJoint","set_ratio",0xae706326,"nape.constraint.PulleyJoint.set_ratio","nape/constraint/PulleyJoint.hx",510,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_536_isSlack,"nape.constraint.PulleyJoint","isSlack",0x761dddbe,"nape.constraint.PulleyJoint.isSlack","nape/constraint/PulleyJoint.hx",536,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_592_impulse,"nape.constraint.PulleyJoint","impulse",0xc893d86d,"nape.constraint.PulleyJoint.impulse","nape/constraint/PulleyJoint.hx",592,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_600_bodyImpulse,"nape.constraint.PulleyJoint","bodyImpulse",0xe78339eb,"nape.constraint.PulleyJoint.bodyImpulse","nape/constraint/PulleyJoint.hx",600,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_619_visitBodies,"nape.constraint.PulleyJoint","visitBodies",0x6c3fb763,"nape.constraint.PulleyJoint.visitBodies","nape/constraint/PulleyJoint.hx",619,0x2d6ef3f8)
namespace nape{
namespace constraint{

void PulleyJoint_obj::__construct( ::nape::phys::Body body1, ::nape::phys::Body body2, ::nape::phys::Body body3, ::nape::phys::Body body4, ::nape::geom::Vec2 anchor1, ::nape::geom::Vec2 anchor2, ::nape::geom::Vec2 anchor3, ::nape::geom::Vec2 anchor4,Float jointMin,Float jointMax,hx::Null< Float >  __o_ratio){
            		Float ratio = __o_ratio.Default(((Float)1.0));
            	HX_GC_STACKFRAME(&_hx_pos_7d77866d564ee991_187_new)
HXLINE( 191)		this->zpp_inner_zn = null();
HXLINE( 563)		this->zpp_inner_zn =  ::zpp_nape::constraint::ZPP_PulleyJoint_obj::__alloc( HX_CTX );
HXLINE( 564)		this->zpp_inner = this->zpp_inner_zn;
HXLINE( 565)		this->zpp_inner->outer = hx::ObjectPtr<OBJ_>(this);
HXLINE( 566)		this->zpp_inner_zn->outer_zn = hx::ObjectPtr<OBJ_>(this);
HXLINE( 568)		::nape::constraint::Constraint_obj::zpp_internalAlloc = true;
HXLINE( 569)		super::__construct();
HXLINE( 570)		::nape::constraint::Constraint_obj::zpp_internalAlloc = false;
HXLINE( 575)		{
HXLINE( 575)			{
HXLINE( 575)				this->zpp_inner->immutable_midstep((HX_("Constraint::",7d,10,25,6e) + HX_("body1",4f,d3,ef,b6)));
HXDLIN( 575)				 ::zpp_nape::phys::ZPP_Body inbody1;
HXDLIN( 575)				if (hx::IsNull( body1 )) {
HXLINE( 575)					inbody1 = null();
            				}
            				else {
HXLINE( 575)					inbody1 = body1->zpp_inner;
            				}
HXDLIN( 575)				if (hx::IsNotEq( inbody1,this->zpp_inner_zn->b1 )) {
HXLINE( 575)					if (hx::IsNotNull( this->zpp_inner_zn->b1 )) {
HXLINE( 575)						bool _hx_tmp;
HXDLIN( 575)						bool _hx_tmp1;
HXDLIN( 575)						bool _hx_tmp2;
HXDLIN( 575)						 ::nape::space::Space _hx_tmp3;
HXDLIN( 575)						if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 575)							_hx_tmp3 = null();
            						}
            						else {
HXLINE( 575)							_hx_tmp3 = this->zpp_inner->space->outer;
            						}
HXDLIN( 575)						if (hx::IsNotNull( _hx_tmp3 )) {
HXLINE( 575)							_hx_tmp2 = hx::IsNotEq( this->zpp_inner_zn->b2,this->zpp_inner_zn->b1 );
            						}
            						else {
HXLINE( 575)							_hx_tmp2 = false;
            						}
HXDLIN( 575)						if (_hx_tmp2) {
HXLINE( 575)							_hx_tmp1 = hx::IsNotEq( this->zpp_inner_zn->b3,this->zpp_inner_zn->b1 );
            						}
            						else {
HXLINE( 575)							_hx_tmp1 = false;
            						}
HXDLIN( 575)						if (_hx_tmp1) {
HXLINE( 575)							_hx_tmp = hx::IsNotEq( this->zpp_inner_zn->b4,this->zpp_inner_zn->b1 );
            						}
            						else {
HXLINE( 575)							_hx_tmp = false;
            						}
HXDLIN( 575)						if (_hx_tmp) {
HXLINE( 575)							if (hx::IsNotNull( this->zpp_inner_zn->b1 )) {
HXLINE( 575)								this->zpp_inner_zn->b1->constraints->remove(this->zpp_inner);
            							}
            						}
HXDLIN( 575)						bool _hx_tmp4;
HXDLIN( 575)						if (this->zpp_inner->active) {
HXLINE( 575)							 ::nape::space::Space _hx_tmp5;
HXDLIN( 575)							if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 575)								_hx_tmp5 = null();
            							}
            							else {
HXLINE( 575)								_hx_tmp5 = this->zpp_inner->space->outer;
            							}
HXDLIN( 575)							_hx_tmp4 = hx::IsNotNull( _hx_tmp5 );
            						}
            						else {
HXLINE( 575)							_hx_tmp4 = false;
            						}
HXDLIN( 575)						if (_hx_tmp4) {
HXLINE( 575)							this->zpp_inner_zn->b1->wake();
            						}
            					}
HXDLIN( 575)					this->zpp_inner_zn->b1 = inbody1;
HXDLIN( 575)					bool _hx_tmp6;
HXDLIN( 575)					bool _hx_tmp7;
HXDLIN( 575)					bool _hx_tmp8;
HXDLIN( 575)					bool _hx_tmp9;
HXDLIN( 575)					 ::nape::space::Space _hx_tmp10;
HXDLIN( 575)					if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 575)						_hx_tmp10 = null();
            					}
            					else {
HXLINE( 575)						_hx_tmp10 = this->zpp_inner->space->outer;
            					}
HXDLIN( 575)					if (hx::IsNotNull( _hx_tmp10 )) {
HXLINE( 575)						_hx_tmp9 = hx::IsNotNull( inbody1 );
            					}
            					else {
HXLINE( 575)						_hx_tmp9 = false;
            					}
HXDLIN( 575)					if (_hx_tmp9) {
HXLINE( 575)						_hx_tmp8 = hx::IsNotEq( this->zpp_inner_zn->b2,inbody1 );
            					}
            					else {
HXLINE( 575)						_hx_tmp8 = false;
            					}
HXDLIN( 575)					if (_hx_tmp8) {
HXLINE( 575)						_hx_tmp7 = hx::IsNotEq( this->zpp_inner_zn->b3,inbody1 );
            					}
            					else {
HXLINE( 575)						_hx_tmp7 = false;
            					}
HXDLIN( 575)					if (_hx_tmp7) {
HXLINE( 575)						_hx_tmp6 = hx::IsNotEq( this->zpp_inner_zn->b4,inbody1 );
            					}
            					else {
HXLINE( 575)						_hx_tmp6 = false;
            					}
HXDLIN( 575)					if (_hx_tmp6) {
HXLINE( 575)						if (hx::IsNotNull( inbody1 )) {
HXLINE( 575)							inbody1->constraints->add(this->zpp_inner);
            						}
            					}
HXDLIN( 575)					bool _hx_tmp11;
HXDLIN( 575)					if (this->zpp_inner->active) {
HXLINE( 575)						 ::nape::space::Space _hx_tmp12;
HXDLIN( 575)						if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 575)							_hx_tmp12 = null();
            						}
            						else {
HXLINE( 575)							_hx_tmp12 = this->zpp_inner->space->outer;
            						}
HXDLIN( 575)						_hx_tmp11 = hx::IsNotNull( _hx_tmp12 );
            					}
            					else {
HXLINE( 575)						_hx_tmp11 = false;
            					}
HXDLIN( 575)					if (_hx_tmp11) {
HXLINE( 575)						this->zpp_inner->wake();
HXDLIN( 575)						if (hx::IsNotNull( inbody1 )) {
HXLINE( 575)							inbody1->wake();
            						}
            					}
            				}
            			}
HXDLIN( 575)			bool _hx_tmp13 = hx::IsNull( this->zpp_inner_zn->b1 );
            		}
HXLINE( 576)		{
HXLINE( 576)			{
HXLINE( 576)				this->zpp_inner->immutable_midstep((HX_("Constraint::",7d,10,25,6e) + HX_("body2",50,d3,ef,b6)));
HXDLIN( 576)				 ::zpp_nape::phys::ZPP_Body inbody2;
HXDLIN( 576)				if (hx::IsNull( body2 )) {
HXLINE( 576)					inbody2 = null();
            				}
            				else {
HXLINE( 576)					inbody2 = body2->zpp_inner;
            				}
HXDLIN( 576)				if (hx::IsNotEq( inbody2,this->zpp_inner_zn->b2 )) {
HXLINE( 576)					if (hx::IsNotNull( this->zpp_inner_zn->b2 )) {
HXLINE( 576)						bool _hx_tmp14;
HXDLIN( 576)						bool _hx_tmp15;
HXDLIN( 576)						bool _hx_tmp16;
HXDLIN( 576)						 ::nape::space::Space _hx_tmp17;
HXDLIN( 576)						if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 576)							_hx_tmp17 = null();
            						}
            						else {
HXLINE( 576)							_hx_tmp17 = this->zpp_inner->space->outer;
            						}
HXDLIN( 576)						if (hx::IsNotNull( _hx_tmp17 )) {
HXLINE( 576)							_hx_tmp16 = hx::IsNotEq( this->zpp_inner_zn->b1,this->zpp_inner_zn->b2 );
            						}
            						else {
HXLINE( 576)							_hx_tmp16 = false;
            						}
HXDLIN( 576)						if (_hx_tmp16) {
HXLINE( 576)							_hx_tmp15 = hx::IsNotEq( this->zpp_inner_zn->b3,this->zpp_inner_zn->b2 );
            						}
            						else {
HXLINE( 576)							_hx_tmp15 = false;
            						}
HXDLIN( 576)						if (_hx_tmp15) {
HXLINE( 576)							_hx_tmp14 = hx::IsNotEq( this->zpp_inner_zn->b4,this->zpp_inner_zn->b2 );
            						}
            						else {
HXLINE( 576)							_hx_tmp14 = false;
            						}
HXDLIN( 576)						if (_hx_tmp14) {
HXLINE( 576)							if (hx::IsNotNull( this->zpp_inner_zn->b2 )) {
HXLINE( 576)								this->zpp_inner_zn->b2->constraints->remove(this->zpp_inner);
            							}
            						}
HXDLIN( 576)						bool _hx_tmp18;
HXDLIN( 576)						if (this->zpp_inner->active) {
HXLINE( 576)							 ::nape::space::Space _hx_tmp19;
HXDLIN( 576)							if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 576)								_hx_tmp19 = null();
            							}
            							else {
HXLINE( 576)								_hx_tmp19 = this->zpp_inner->space->outer;
            							}
HXDLIN( 576)							_hx_tmp18 = hx::IsNotNull( _hx_tmp19 );
            						}
            						else {
HXLINE( 576)							_hx_tmp18 = false;
            						}
HXDLIN( 576)						if (_hx_tmp18) {
HXLINE( 576)							this->zpp_inner_zn->b2->wake();
            						}
            					}
HXDLIN( 576)					this->zpp_inner_zn->b2 = inbody2;
HXDLIN( 576)					bool _hx_tmp20;
HXDLIN( 576)					bool _hx_tmp21;
HXDLIN( 576)					bool _hx_tmp22;
HXDLIN( 576)					bool _hx_tmp23;
HXDLIN( 576)					 ::nape::space::Space _hx_tmp24;
HXDLIN( 576)					if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 576)						_hx_tmp24 = null();
            					}
            					else {
HXLINE( 576)						_hx_tmp24 = this->zpp_inner->space->outer;
            					}
HXDLIN( 576)					if (hx::IsNotNull( _hx_tmp24 )) {
HXLINE( 576)						_hx_tmp23 = hx::IsNotNull( inbody2 );
            					}
            					else {
HXLINE( 576)						_hx_tmp23 = false;
            					}
HXDLIN( 576)					if (_hx_tmp23) {
HXLINE( 576)						_hx_tmp22 = hx::IsNotEq( this->zpp_inner_zn->b1,inbody2 );
            					}
            					else {
HXLINE( 576)						_hx_tmp22 = false;
            					}
HXDLIN( 576)					if (_hx_tmp22) {
HXLINE( 576)						_hx_tmp21 = hx::IsNotEq( this->zpp_inner_zn->b3,inbody2 );
            					}
            					else {
HXLINE( 576)						_hx_tmp21 = false;
            					}
HXDLIN( 576)					if (_hx_tmp21) {
HXLINE( 576)						_hx_tmp20 = hx::IsNotEq( this->zpp_inner_zn->b4,inbody2 );
            					}
            					else {
HXLINE( 576)						_hx_tmp20 = false;
            					}
HXDLIN( 576)					if (_hx_tmp20) {
HXLINE( 576)						if (hx::IsNotNull( inbody2 )) {
HXLINE( 576)							inbody2->constraints->add(this->zpp_inner);
            						}
            					}
HXDLIN( 576)					bool _hx_tmp25;
HXDLIN( 576)					if (this->zpp_inner->active) {
HXLINE( 576)						 ::nape::space::Space _hx_tmp26;
HXDLIN( 576)						if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 576)							_hx_tmp26 = null();
            						}
            						else {
HXLINE( 576)							_hx_tmp26 = this->zpp_inner->space->outer;
            						}
HXDLIN( 576)						_hx_tmp25 = hx::IsNotNull( _hx_tmp26 );
            					}
            					else {
HXLINE( 576)						_hx_tmp25 = false;
            					}
HXDLIN( 576)					if (_hx_tmp25) {
HXLINE( 576)						this->zpp_inner->wake();
HXDLIN( 576)						if (hx::IsNotNull( inbody2 )) {
HXLINE( 576)							inbody2->wake();
            						}
            					}
            				}
            			}
HXDLIN( 576)			bool _hx_tmp27 = hx::IsNull( this->zpp_inner_zn->b2 );
            		}
HXLINE( 577)		{
HXLINE( 577)			{
HXLINE( 577)				this->zpp_inner->immutable_midstep((HX_("Constraint::",7d,10,25,6e) + HX_("body3",51,d3,ef,b6)));
HXDLIN( 577)				 ::zpp_nape::phys::ZPP_Body inbody3;
HXDLIN( 577)				if (hx::IsNull( body3 )) {
HXLINE( 577)					inbody3 = null();
            				}
            				else {
HXLINE( 577)					inbody3 = body3->zpp_inner;
            				}
HXDLIN( 577)				if (hx::IsNotEq( inbody3,this->zpp_inner_zn->b3 )) {
HXLINE( 577)					if (hx::IsNotNull( this->zpp_inner_zn->b3 )) {
HXLINE( 577)						bool _hx_tmp28;
HXDLIN( 577)						bool _hx_tmp29;
HXDLIN( 577)						bool _hx_tmp30;
HXDLIN( 577)						 ::nape::space::Space _hx_tmp31;
HXDLIN( 577)						if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 577)							_hx_tmp31 = null();
            						}
            						else {
HXLINE( 577)							_hx_tmp31 = this->zpp_inner->space->outer;
            						}
HXDLIN( 577)						if (hx::IsNotNull( _hx_tmp31 )) {
HXLINE( 577)							_hx_tmp30 = hx::IsNotEq( this->zpp_inner_zn->b1,this->zpp_inner_zn->b3 );
            						}
            						else {
HXLINE( 577)							_hx_tmp30 = false;
            						}
HXDLIN( 577)						if (_hx_tmp30) {
HXLINE( 577)							_hx_tmp29 = hx::IsNotEq( this->zpp_inner_zn->b2,this->zpp_inner_zn->b3 );
            						}
            						else {
HXLINE( 577)							_hx_tmp29 = false;
            						}
HXDLIN( 577)						if (_hx_tmp29) {
HXLINE( 577)							_hx_tmp28 = hx::IsNotEq( this->zpp_inner_zn->b4,this->zpp_inner_zn->b3 );
            						}
            						else {
HXLINE( 577)							_hx_tmp28 = false;
            						}
HXDLIN( 577)						if (_hx_tmp28) {
HXLINE( 577)							if (hx::IsNotNull( this->zpp_inner_zn->b3 )) {
HXLINE( 577)								this->zpp_inner_zn->b3->constraints->remove(this->zpp_inner);
            							}
            						}
HXDLIN( 577)						bool _hx_tmp32;
HXDLIN( 577)						if (this->zpp_inner->active) {
HXLINE( 577)							 ::nape::space::Space _hx_tmp33;
HXDLIN( 577)							if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 577)								_hx_tmp33 = null();
            							}
            							else {
HXLINE( 577)								_hx_tmp33 = this->zpp_inner->space->outer;
            							}
HXDLIN( 577)							_hx_tmp32 = hx::IsNotNull( _hx_tmp33 );
            						}
            						else {
HXLINE( 577)							_hx_tmp32 = false;
            						}
HXDLIN( 577)						if (_hx_tmp32) {
HXLINE( 577)							this->zpp_inner_zn->b3->wake();
            						}
            					}
HXDLIN( 577)					this->zpp_inner_zn->b3 = inbody3;
HXDLIN( 577)					bool _hx_tmp34;
HXDLIN( 577)					bool _hx_tmp35;
HXDLIN( 577)					bool _hx_tmp36;
HXDLIN( 577)					bool _hx_tmp37;
HXDLIN( 577)					 ::nape::space::Space _hx_tmp38;
HXDLIN( 577)					if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 577)						_hx_tmp38 = null();
            					}
            					else {
HXLINE( 577)						_hx_tmp38 = this->zpp_inner->space->outer;
            					}
HXDLIN( 577)					if (hx::IsNotNull( _hx_tmp38 )) {
HXLINE( 577)						_hx_tmp37 = hx::IsNotNull( inbody3 );
            					}
            					else {
HXLINE( 577)						_hx_tmp37 = false;
            					}
HXDLIN( 577)					if (_hx_tmp37) {
HXLINE( 577)						_hx_tmp36 = hx::IsNotEq( this->zpp_inner_zn->b1,inbody3 );
            					}
            					else {
HXLINE( 577)						_hx_tmp36 = false;
            					}
HXDLIN( 577)					if (_hx_tmp36) {
HXLINE( 577)						_hx_tmp35 = hx::IsNotEq( this->zpp_inner_zn->b2,inbody3 );
            					}
            					else {
HXLINE( 577)						_hx_tmp35 = false;
            					}
HXDLIN( 577)					if (_hx_tmp35) {
HXLINE( 577)						_hx_tmp34 = hx::IsNotEq( this->zpp_inner_zn->b4,inbody3 );
            					}
            					else {
HXLINE( 577)						_hx_tmp34 = false;
            					}
HXDLIN( 577)					if (_hx_tmp34) {
HXLINE( 577)						if (hx::IsNotNull( inbody3 )) {
HXLINE( 577)							inbody3->constraints->add(this->zpp_inner);
            						}
            					}
HXDLIN( 577)					bool _hx_tmp39;
HXDLIN( 577)					if (this->zpp_inner->active) {
HXLINE( 577)						 ::nape::space::Space _hx_tmp40;
HXDLIN( 577)						if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 577)							_hx_tmp40 = null();
            						}
            						else {
HXLINE( 577)							_hx_tmp40 = this->zpp_inner->space->outer;
            						}
HXDLIN( 577)						_hx_tmp39 = hx::IsNotNull( _hx_tmp40 );
            					}
            					else {
HXLINE( 577)						_hx_tmp39 = false;
            					}
HXDLIN( 577)					if (_hx_tmp39) {
HXLINE( 577)						this->zpp_inner->wake();
HXDLIN( 577)						if (hx::IsNotNull( inbody3 )) {
HXLINE( 577)							inbody3->wake();
            						}
            					}
            				}
            			}
HXDLIN( 577)			bool _hx_tmp41 = hx::IsNull( this->zpp_inner_zn->b3 );
            		}
HXLINE( 578)		{
HXLINE( 578)			{
HXLINE( 578)				this->zpp_inner->immutable_midstep((HX_("Constraint::",7d,10,25,6e) + HX_("body4",52,d3,ef,b6)));
HXDLIN( 578)				 ::zpp_nape::phys::ZPP_Body inbody4;
HXDLIN( 578)				if (hx::IsNull( body4 )) {
HXLINE( 578)					inbody4 = null();
            				}
            				else {
HXLINE( 578)					inbody4 = body4->zpp_inner;
            				}
HXDLIN( 578)				if (hx::IsNotEq( inbody4,this->zpp_inner_zn->b4 )) {
HXLINE( 578)					if (hx::IsNotNull( this->zpp_inner_zn->b4 )) {
HXLINE( 578)						bool _hx_tmp42;
HXDLIN( 578)						bool _hx_tmp43;
HXDLIN( 578)						bool _hx_tmp44;
HXDLIN( 578)						 ::nape::space::Space _hx_tmp45;
HXDLIN( 578)						if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 578)							_hx_tmp45 = null();
            						}
            						else {
HXLINE( 578)							_hx_tmp45 = this->zpp_inner->space->outer;
            						}
HXDLIN( 578)						if (hx::IsNotNull( _hx_tmp45 )) {
HXLINE( 578)							_hx_tmp44 = hx::IsNotEq( this->zpp_inner_zn->b1,this->zpp_inner_zn->b4 );
            						}
            						else {
HXLINE( 578)							_hx_tmp44 = false;
            						}
HXDLIN( 578)						if (_hx_tmp44) {
HXLINE( 578)							_hx_tmp43 = hx::IsNotEq( this->zpp_inner_zn->b2,this->zpp_inner_zn->b4 );
            						}
            						else {
HXLINE( 578)							_hx_tmp43 = false;
            						}
HXDLIN( 578)						if (_hx_tmp43) {
HXLINE( 578)							_hx_tmp42 = hx::IsNotEq( this->zpp_inner_zn->b3,this->zpp_inner_zn->b4 );
            						}
            						else {
HXLINE( 578)							_hx_tmp42 = false;
            						}
HXDLIN( 578)						if (_hx_tmp42) {
HXLINE( 578)							if (hx::IsNotNull( this->zpp_inner_zn->b4 )) {
HXLINE( 578)								this->zpp_inner_zn->b4->constraints->remove(this->zpp_inner);
            							}
            						}
HXDLIN( 578)						bool _hx_tmp46;
HXDLIN( 578)						if (this->zpp_inner->active) {
HXLINE( 578)							 ::nape::space::Space _hx_tmp47;
HXDLIN( 578)							if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 578)								_hx_tmp47 = null();
            							}
            							else {
HXLINE( 578)								_hx_tmp47 = this->zpp_inner->space->outer;
            							}
HXDLIN( 578)							_hx_tmp46 = hx::IsNotNull( _hx_tmp47 );
            						}
            						else {
HXLINE( 578)							_hx_tmp46 = false;
            						}
HXDLIN( 578)						if (_hx_tmp46) {
HXLINE( 578)							this->zpp_inner_zn->b4->wake();
            						}
            					}
HXDLIN( 578)					this->zpp_inner_zn->b4 = inbody4;
HXDLIN( 578)					bool _hx_tmp48;
HXDLIN( 578)					bool _hx_tmp49;
HXDLIN( 578)					bool _hx_tmp50;
HXDLIN( 578)					bool _hx_tmp51;
HXDLIN( 578)					 ::nape::space::Space _hx_tmp52;
HXDLIN( 578)					if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 578)						_hx_tmp52 = null();
            					}
            					else {
HXLINE( 578)						_hx_tmp52 = this->zpp_inner->space->outer;
            					}
HXDLIN( 578)					if (hx::IsNotNull( _hx_tmp52 )) {
HXLINE( 578)						_hx_tmp51 = hx::IsNotNull( inbody4 );
            					}
            					else {
HXLINE( 578)						_hx_tmp51 = false;
            					}
HXDLIN( 578)					if (_hx_tmp51) {
HXLINE( 578)						_hx_tmp50 = hx::IsNotEq( this->zpp_inner_zn->b1,inbody4 );
            					}
            					else {
HXLINE( 578)						_hx_tmp50 = false;
            					}
HXDLIN( 578)					if (_hx_tmp50) {
HXLINE( 578)						_hx_tmp49 = hx::IsNotEq( this->zpp_inner_zn->b2,inbody4 );
            					}
            					else {
HXLINE( 578)						_hx_tmp49 = false;
            					}
HXDLIN( 578)					if (_hx_tmp49) {
HXLINE( 578)						_hx_tmp48 = hx::IsNotEq( this->zpp_inner_zn->b3,inbody4 );
            					}
            					else {
HXLINE( 578)						_hx_tmp48 = false;
            					}
HXDLIN( 578)					if (_hx_tmp48) {
HXLINE( 578)						if (hx::IsNotNull( inbody4 )) {
HXLINE( 578)							inbody4->constraints->add(this->zpp_inner);
            						}
            					}
HXDLIN( 578)					bool _hx_tmp53;
HXDLIN( 578)					if (this->zpp_inner->active) {
HXLINE( 578)						 ::nape::space::Space _hx_tmp54;
HXDLIN( 578)						if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 578)							_hx_tmp54 = null();
            						}
            						else {
HXLINE( 578)							_hx_tmp54 = this->zpp_inner->space->outer;
            						}
HXDLIN( 578)						_hx_tmp53 = hx::IsNotNull( _hx_tmp54 );
            					}
            					else {
HXLINE( 578)						_hx_tmp53 = false;
            					}
HXDLIN( 578)					if (_hx_tmp53) {
HXLINE( 578)						this->zpp_inner->wake();
HXDLIN( 578)						if (hx::IsNotNull( inbody4 )) {
HXLINE( 578)							inbody4->wake();
            						}
            					}
            				}
            			}
HXDLIN( 578)			bool _hx_tmp55 = hx::IsNull( this->zpp_inner_zn->b4 );
            		}
HXLINE( 579)		{
HXLINE( 579)			{
HXLINE( 579)				bool _hx_tmp56;
HXDLIN( 579)				if (hx::IsNotNull( anchor1 )) {
HXLINE( 579)					_hx_tmp56 = anchor1->zpp_disp;
            				}
            				else {
HXLINE( 579)					_hx_tmp56 = false;
            				}
HXDLIN( 579)				if (_hx_tmp56) {
HXLINE( 579)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 579)				if (hx::IsNull( anchor1 )) {
HXLINE( 579)					HX_STACK_DO_THROW(((HX_("Error: Constraint::",cb,f5,02,d5) + HX_("anchor1",1c,ec,a1,02)) + HX_(" cannot be null",07,dc,5d,15)));
            				}
HXDLIN( 579)				{
HXLINE( 579)					if (hx::IsNull( this->zpp_inner_zn->wrap_a1 )) {
HXLINE( 579)						this->zpp_inner_zn->setup_a1();
            					}
HXDLIN( 579)					 ::nape::geom::Vec2 _this = this->zpp_inner_zn->wrap_a1;
HXDLIN( 579)					bool _hx_tmp57;
HXDLIN( 579)					if (hx::IsNotNull( _this )) {
HXLINE( 579)						_hx_tmp57 = _this->zpp_disp;
            					}
            					else {
HXLINE( 579)						_hx_tmp57 = false;
            					}
HXDLIN( 579)					if (_hx_tmp57) {
HXLINE( 579)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 579)					bool _hx_tmp58;
HXDLIN( 579)					if (hx::IsNotNull( anchor1 )) {
HXLINE( 579)						_hx_tmp58 = anchor1->zpp_disp;
            					}
            					else {
HXLINE( 579)						_hx_tmp58 = false;
            					}
HXDLIN( 579)					if (_hx_tmp58) {
HXLINE( 579)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 579)					{
HXLINE( 579)						 ::zpp_nape::geom::ZPP_Vec2 _this1 = _this->zpp_inner;
HXDLIN( 579)						if (_this1->_immutable) {
HXLINE( 579)							HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            						}
HXDLIN( 579)						if (hx::IsNotNull( _this1->_isimmutable )) {
HXLINE( 579)							_this1->_isimmutable();
            						}
            					}
HXDLIN( 579)					if (hx::IsNull( anchor1 )) {
HXLINE( 579)						HX_STACK_DO_THROW(HX_("Error: Cannot assign null Vec2",95,15,46,66));
            					}
HXDLIN( 579)					bool _hx_tmp59;
HXDLIN( 579)					if (hx::IsNotNull( anchor1 )) {
HXLINE( 579)						_hx_tmp59 = anchor1->zpp_disp;
            					}
            					else {
HXLINE( 579)						_hx_tmp59 = false;
            					}
HXDLIN( 579)					if (_hx_tmp59) {
HXLINE( 579)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 579)					{
HXLINE( 579)						 ::zpp_nape::geom::ZPP_Vec2 _this2 = anchor1->zpp_inner;
HXDLIN( 579)						if (hx::IsNotNull( _this2->_validate )) {
HXLINE( 579)							_this2->_validate();
            						}
            					}
HXDLIN( 579)					Float x = anchor1->zpp_inner->x;
HXDLIN( 579)					bool _hx_tmp60;
HXDLIN( 579)					if (hx::IsNotNull( anchor1 )) {
HXLINE( 579)						_hx_tmp60 = anchor1->zpp_disp;
            					}
            					else {
HXLINE( 579)						_hx_tmp60 = false;
            					}
HXDLIN( 579)					if (_hx_tmp60) {
HXLINE( 579)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 579)					{
HXLINE( 579)						 ::zpp_nape::geom::ZPP_Vec2 _this3 = anchor1->zpp_inner;
HXDLIN( 579)						if (hx::IsNotNull( _this3->_validate )) {
HXLINE( 579)							_this3->_validate();
            						}
            					}
HXDLIN( 579)					Float y = anchor1->zpp_inner->y;
HXDLIN( 579)					bool _hx_tmp61;
HXDLIN( 579)					if (hx::IsNotNull( _this )) {
HXLINE( 579)						_hx_tmp61 = _this->zpp_disp;
            					}
            					else {
HXLINE( 579)						_hx_tmp61 = false;
            					}
HXDLIN( 579)					if (_hx_tmp61) {
HXLINE( 579)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 579)					{
HXLINE( 579)						 ::zpp_nape::geom::ZPP_Vec2 _this4 = _this->zpp_inner;
HXDLIN( 579)						if (_this4->_immutable) {
HXLINE( 579)							HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            						}
HXDLIN( 579)						if (hx::IsNotNull( _this4->_isimmutable )) {
HXLINE( 579)							_this4->_isimmutable();
            						}
            					}
HXDLIN( 579)					bool _hx_tmp62;
HXDLIN( 579)					if ((x == x)) {
HXLINE( 579)						_hx_tmp62 = (y != y);
            					}
            					else {
HXLINE( 579)						_hx_tmp62 = true;
            					}
HXDLIN( 579)					if (_hx_tmp62) {
HXLINE( 579)						HX_STACK_DO_THROW(HX_("Error: Vec2 components cannot be NaN",85,ba,d8,c1));
            					}
HXDLIN( 579)					bool _hx_tmp63;
HXDLIN( 579)					bool _hx_tmp64;
HXDLIN( 579)					if (hx::IsNotNull( _this )) {
HXLINE( 579)						_hx_tmp64 = _this->zpp_disp;
            					}
            					else {
HXLINE( 579)						_hx_tmp64 = false;
            					}
HXDLIN( 579)					if (_hx_tmp64) {
HXLINE( 579)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 579)					{
HXLINE( 579)						 ::zpp_nape::geom::ZPP_Vec2 _this5 = _this->zpp_inner;
HXDLIN( 579)						if (hx::IsNotNull( _this5->_validate )) {
HXLINE( 579)							_this5->_validate();
            						}
            					}
HXDLIN( 579)					if ((_this->zpp_inner->x == x)) {
HXLINE( 579)						bool _hx_tmp65;
HXDLIN( 579)						if (hx::IsNotNull( _this )) {
HXLINE( 579)							_hx_tmp65 = _this->zpp_disp;
            						}
            						else {
HXLINE( 579)							_hx_tmp65 = false;
            						}
HXDLIN( 579)						if (_hx_tmp65) {
HXLINE( 579)							HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            						}
HXDLIN( 579)						{
HXLINE( 579)							 ::zpp_nape::geom::ZPP_Vec2 _this6 = _this->zpp_inner;
HXDLIN( 579)							if (hx::IsNotNull( _this6->_validate )) {
HXLINE( 579)								_this6->_validate();
            							}
            						}
HXDLIN( 579)						_hx_tmp63 = (_this->zpp_inner->y == y);
            					}
            					else {
HXLINE( 579)						_hx_tmp63 = false;
            					}
HXDLIN( 579)					if (!(_hx_tmp63)) {
HXLINE( 579)						{
HXLINE( 579)							_this->zpp_inner->x = x;
HXDLIN( 579)							_this->zpp_inner->y = y;
            						}
HXDLIN( 579)						{
HXLINE( 579)							 ::zpp_nape::geom::ZPP_Vec2 _this7 = _this->zpp_inner;
HXDLIN( 579)							if (hx::IsNotNull( _this7->_invalidate )) {
HXLINE( 579)								_this7->_invalidate(_this7);
            							}
            						}
            					}
HXDLIN( 579)					 ::nape::geom::Vec2 ret = _this;
HXDLIN( 579)					if (anchor1->zpp_inner->weak) {
HXLINE( 579)						bool _hx_tmp66;
HXDLIN( 579)						if (hx::IsNotNull( anchor1 )) {
HXLINE( 579)							_hx_tmp66 = anchor1->zpp_disp;
            						}
            						else {
HXLINE( 579)							_hx_tmp66 = false;
            						}
HXDLIN( 579)						if (_hx_tmp66) {
HXLINE( 579)							HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            						}
HXDLIN( 579)						{
HXLINE( 579)							 ::zpp_nape::geom::ZPP_Vec2 _this8 = anchor1->zpp_inner;
HXDLIN( 579)							if (_this8->_immutable) {
HXLINE( 579)								HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            							}
HXDLIN( 579)							if (hx::IsNotNull( _this8->_isimmutable )) {
HXLINE( 579)								_this8->_isimmutable();
            							}
            						}
HXDLIN( 579)						if (anchor1->zpp_inner->_inuse) {
HXLINE( 579)							HX_STACK_DO_THROW(HX_("Error: This Vec2 is not disposable",b5,d1,d1,d8));
            						}
HXDLIN( 579)						 ::zpp_nape::geom::ZPP_Vec2 inner = anchor1->zpp_inner;
HXDLIN( 579)						anchor1->zpp_inner->outer = null();
HXDLIN( 579)						anchor1->zpp_inner = null();
HXDLIN( 579)						{
HXLINE( 579)							 ::nape::geom::Vec2 o = anchor1;
HXDLIN( 579)							o->zpp_pool = null();
HXDLIN( 579)							if (hx::IsNotNull( ::zpp_nape::util::ZPP_PubPool_obj::nextVec2 )) {
HXLINE( 579)								::zpp_nape::util::ZPP_PubPool_obj::nextVec2->zpp_pool = o;
            							}
            							else {
HXLINE( 579)								::zpp_nape::util::ZPP_PubPool_obj::poolVec2 = o;
            							}
HXDLIN( 579)							::zpp_nape::util::ZPP_PubPool_obj::nextVec2 = o;
HXDLIN( 579)							o->zpp_disp = true;
            						}
HXDLIN( 579)						{
HXLINE( 579)							 ::zpp_nape::geom::ZPP_Vec2 o1 = inner;
HXDLIN( 579)							{
HXLINE( 579)								if (hx::IsNotNull( o1->outer )) {
HXLINE( 579)									o1->outer->zpp_inner = null();
HXDLIN( 579)									o1->outer = null();
            								}
HXDLIN( 579)								o1->_isimmutable = null();
HXDLIN( 579)								o1->_validate = null();
HXDLIN( 579)								o1->_invalidate = null();
            							}
HXDLIN( 579)							o1->next = ::zpp_nape::geom::ZPP_Vec2_obj::zpp_pool;
HXDLIN( 579)							::zpp_nape::geom::ZPP_Vec2_obj::zpp_pool = o1;
            						}
            					}
            				}
            			}
HXDLIN( 579)			if (hx::IsNull( this->zpp_inner_zn->wrap_a1 )) {
HXLINE( 579)				this->zpp_inner_zn->setup_a1();
            			}
            		}
HXLINE( 580)		{
HXLINE( 580)			{
HXLINE( 580)				bool _hx_tmp67;
HXDLIN( 580)				if (hx::IsNotNull( anchor2 )) {
HXLINE( 580)					_hx_tmp67 = anchor2->zpp_disp;
            				}
            				else {
HXLINE( 580)					_hx_tmp67 = false;
            				}
HXDLIN( 580)				if (_hx_tmp67) {
HXLINE( 580)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 580)				if (hx::IsNull( anchor2 )) {
HXLINE( 580)					HX_STACK_DO_THROW(((HX_("Error: Constraint::",cb,f5,02,d5) + HX_("anchor2",1d,ec,a1,02)) + HX_(" cannot be null",07,dc,5d,15)));
            				}
HXDLIN( 580)				{
HXLINE( 580)					if (hx::IsNull( this->zpp_inner_zn->wrap_a2 )) {
HXLINE( 580)						this->zpp_inner_zn->setup_a2();
            					}
HXDLIN( 580)					 ::nape::geom::Vec2 _this9 = this->zpp_inner_zn->wrap_a2;
HXDLIN( 580)					bool _hx_tmp68;
HXDLIN( 580)					if (hx::IsNotNull( _this9 )) {
HXLINE( 580)						_hx_tmp68 = _this9->zpp_disp;
            					}
            					else {
HXLINE( 580)						_hx_tmp68 = false;
            					}
HXDLIN( 580)					if (_hx_tmp68) {
HXLINE( 580)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 580)					bool _hx_tmp69;
HXDLIN( 580)					if (hx::IsNotNull( anchor2 )) {
HXLINE( 580)						_hx_tmp69 = anchor2->zpp_disp;
            					}
            					else {
HXLINE( 580)						_hx_tmp69 = false;
            					}
HXDLIN( 580)					if (_hx_tmp69) {
HXLINE( 580)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 580)					{
HXLINE( 580)						 ::zpp_nape::geom::ZPP_Vec2 _this10 = _this9->zpp_inner;
HXDLIN( 580)						if (_this10->_immutable) {
HXLINE( 580)							HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            						}
HXDLIN( 580)						if (hx::IsNotNull( _this10->_isimmutable )) {
HXLINE( 580)							_this10->_isimmutable();
            						}
            					}
HXDLIN( 580)					if (hx::IsNull( anchor2 )) {
HXLINE( 580)						HX_STACK_DO_THROW(HX_("Error: Cannot assign null Vec2",95,15,46,66));
            					}
HXDLIN( 580)					bool _hx_tmp70;
HXDLIN( 580)					if (hx::IsNotNull( anchor2 )) {
HXLINE( 580)						_hx_tmp70 = anchor2->zpp_disp;
            					}
            					else {
HXLINE( 580)						_hx_tmp70 = false;
            					}
HXDLIN( 580)					if (_hx_tmp70) {
HXLINE( 580)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 580)					{
HXLINE( 580)						 ::zpp_nape::geom::ZPP_Vec2 _this11 = anchor2->zpp_inner;
HXDLIN( 580)						if (hx::IsNotNull( _this11->_validate )) {
HXLINE( 580)							_this11->_validate();
            						}
            					}
HXDLIN( 580)					Float x1 = anchor2->zpp_inner->x;
HXDLIN( 580)					bool _hx_tmp71;
HXDLIN( 580)					if (hx::IsNotNull( anchor2 )) {
HXLINE( 580)						_hx_tmp71 = anchor2->zpp_disp;
            					}
            					else {
HXLINE( 580)						_hx_tmp71 = false;
            					}
HXDLIN( 580)					if (_hx_tmp71) {
HXLINE( 580)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 580)					{
HXLINE( 580)						 ::zpp_nape::geom::ZPP_Vec2 _this12 = anchor2->zpp_inner;
HXDLIN( 580)						if (hx::IsNotNull( _this12->_validate )) {
HXLINE( 580)							_this12->_validate();
            						}
            					}
HXDLIN( 580)					Float y1 = anchor2->zpp_inner->y;
HXDLIN( 580)					bool _hx_tmp72;
HXDLIN( 580)					if (hx::IsNotNull( _this9 )) {
HXLINE( 580)						_hx_tmp72 = _this9->zpp_disp;
            					}
            					else {
HXLINE( 580)						_hx_tmp72 = false;
            					}
HXDLIN( 580)					if (_hx_tmp72) {
HXLINE( 580)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 580)					{
HXLINE( 580)						 ::zpp_nape::geom::ZPP_Vec2 _this13 = _this9->zpp_inner;
HXDLIN( 580)						if (_this13->_immutable) {
HXLINE( 580)							HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            						}
HXDLIN( 580)						if (hx::IsNotNull( _this13->_isimmutable )) {
HXLINE( 580)							_this13->_isimmutable();
            						}
            					}
HXDLIN( 580)					bool _hx_tmp73;
HXDLIN( 580)					if ((x1 == x1)) {
HXLINE( 580)						_hx_tmp73 = (y1 != y1);
            					}
            					else {
HXLINE( 580)						_hx_tmp73 = true;
            					}
HXDLIN( 580)					if (_hx_tmp73) {
HXLINE( 580)						HX_STACK_DO_THROW(HX_("Error: Vec2 components cannot be NaN",85,ba,d8,c1));
            					}
HXDLIN( 580)					bool _hx_tmp74;
HXDLIN( 580)					bool _hx_tmp75;
HXDLIN( 580)					if (hx::IsNotNull( _this9 )) {
HXLINE( 580)						_hx_tmp75 = _this9->zpp_disp;
            					}
            					else {
HXLINE( 580)						_hx_tmp75 = false;
            					}
HXDLIN( 580)					if (_hx_tmp75) {
HXLINE( 580)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 580)					{
HXLINE( 580)						 ::zpp_nape::geom::ZPP_Vec2 _this14 = _this9->zpp_inner;
HXDLIN( 580)						if (hx::IsNotNull( _this14->_validate )) {
HXLINE( 580)							_this14->_validate();
            						}
            					}
HXDLIN( 580)					if ((_this9->zpp_inner->x == x1)) {
HXLINE( 580)						bool _hx_tmp76;
HXDLIN( 580)						if (hx::IsNotNull( _this9 )) {
HXLINE( 580)							_hx_tmp76 = _this9->zpp_disp;
            						}
            						else {
HXLINE( 580)							_hx_tmp76 = false;
            						}
HXDLIN( 580)						if (_hx_tmp76) {
HXLINE( 580)							HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            						}
HXDLIN( 580)						{
HXLINE( 580)							 ::zpp_nape::geom::ZPP_Vec2 _this15 = _this9->zpp_inner;
HXDLIN( 580)							if (hx::IsNotNull( _this15->_validate )) {
HXLINE( 580)								_this15->_validate();
            							}
            						}
HXDLIN( 580)						_hx_tmp74 = (_this9->zpp_inner->y == y1);
            					}
            					else {
HXLINE( 580)						_hx_tmp74 = false;
            					}
HXDLIN( 580)					if (!(_hx_tmp74)) {
HXLINE( 580)						{
HXLINE( 580)							_this9->zpp_inner->x = x1;
HXDLIN( 580)							_this9->zpp_inner->y = y1;
            						}
HXDLIN( 580)						{
HXLINE( 580)							 ::zpp_nape::geom::ZPP_Vec2 _this16 = _this9->zpp_inner;
HXDLIN( 580)							if (hx::IsNotNull( _this16->_invalidate )) {
HXLINE( 580)								_this16->_invalidate(_this16);
            							}
            						}
            					}
HXDLIN( 580)					 ::nape::geom::Vec2 ret1 = _this9;
HXDLIN( 580)					if (anchor2->zpp_inner->weak) {
HXLINE( 580)						bool _hx_tmp77;
HXDLIN( 580)						if (hx::IsNotNull( anchor2 )) {
HXLINE( 580)							_hx_tmp77 = anchor2->zpp_disp;
            						}
            						else {
HXLINE( 580)							_hx_tmp77 = false;
            						}
HXDLIN( 580)						if (_hx_tmp77) {
HXLINE( 580)							HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            						}
HXDLIN( 580)						{
HXLINE( 580)							 ::zpp_nape::geom::ZPP_Vec2 _this17 = anchor2->zpp_inner;
HXDLIN( 580)							if (_this17->_immutable) {
HXLINE( 580)								HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            							}
HXDLIN( 580)							if (hx::IsNotNull( _this17->_isimmutable )) {
HXLINE( 580)								_this17->_isimmutable();
            							}
            						}
HXDLIN( 580)						if (anchor2->zpp_inner->_inuse) {
HXLINE( 580)							HX_STACK_DO_THROW(HX_("Error: This Vec2 is not disposable",b5,d1,d1,d8));
            						}
HXDLIN( 580)						 ::zpp_nape::geom::ZPP_Vec2 inner1 = anchor2->zpp_inner;
HXDLIN( 580)						anchor2->zpp_inner->outer = null();
HXDLIN( 580)						anchor2->zpp_inner = null();
HXDLIN( 580)						{
HXLINE( 580)							 ::nape::geom::Vec2 o2 = anchor2;
HXDLIN( 580)							o2->zpp_pool = null();
HXDLIN( 580)							if (hx::IsNotNull( ::zpp_nape::util::ZPP_PubPool_obj::nextVec2 )) {
HXLINE( 580)								::zpp_nape::util::ZPP_PubPool_obj::nextVec2->zpp_pool = o2;
            							}
            							else {
HXLINE( 580)								::zpp_nape::util::ZPP_PubPool_obj::poolVec2 = o2;
            							}
HXDLIN( 580)							::zpp_nape::util::ZPP_PubPool_obj::nextVec2 = o2;
HXDLIN( 580)							o2->zpp_disp = true;
            						}
HXDLIN( 580)						{
HXLINE( 580)							 ::zpp_nape::geom::ZPP_Vec2 o3 = inner1;
HXDLIN( 580)							{
HXLINE( 580)								if (hx::IsNotNull( o3->outer )) {
HXLINE( 580)									o3->outer->zpp_inner = null();
HXDLIN( 580)									o3->outer = null();
            								}
HXDLIN( 580)								o3->_isimmutable = null();
HXDLIN( 580)								o3->_validate = null();
HXDLIN( 580)								o3->_invalidate = null();
            							}
HXDLIN( 580)							o3->next = ::zpp_nape::geom::ZPP_Vec2_obj::zpp_pool;
HXDLIN( 580)							::zpp_nape::geom::ZPP_Vec2_obj::zpp_pool = o3;
            						}
            					}
            				}
            			}
HXDLIN( 580)			if (hx::IsNull( this->zpp_inner_zn->wrap_a2 )) {
HXLINE( 580)				this->zpp_inner_zn->setup_a2();
            			}
            		}
HXLINE( 581)		{
HXLINE( 581)			{
HXLINE( 581)				bool _hx_tmp78;
HXDLIN( 581)				if (hx::IsNotNull( anchor3 )) {
HXLINE( 581)					_hx_tmp78 = anchor3->zpp_disp;
            				}
            				else {
HXLINE( 581)					_hx_tmp78 = false;
            				}
HXDLIN( 581)				if (_hx_tmp78) {
HXLINE( 581)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 581)				if (hx::IsNull( anchor3 )) {
HXLINE( 581)					HX_STACK_DO_THROW(((HX_("Error: Constraint::",cb,f5,02,d5) + HX_("anchor3",1e,ec,a1,02)) + HX_(" cannot be null",07,dc,5d,15)));
            				}
HXDLIN( 581)				{
HXLINE( 581)					if (hx::IsNull( this->zpp_inner_zn->wrap_a3 )) {
HXLINE( 581)						this->zpp_inner_zn->setup_a3();
            					}
HXDLIN( 581)					 ::nape::geom::Vec2 _this18 = this->zpp_inner_zn->wrap_a3;
HXDLIN( 581)					bool _hx_tmp79;
HXDLIN( 581)					if (hx::IsNotNull( _this18 )) {
HXLINE( 581)						_hx_tmp79 = _this18->zpp_disp;
            					}
            					else {
HXLINE( 581)						_hx_tmp79 = false;
            					}
HXDLIN( 581)					if (_hx_tmp79) {
HXLINE( 581)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 581)					bool _hx_tmp80;
HXDLIN( 581)					if (hx::IsNotNull( anchor3 )) {
HXLINE( 581)						_hx_tmp80 = anchor3->zpp_disp;
            					}
            					else {
HXLINE( 581)						_hx_tmp80 = false;
            					}
HXDLIN( 581)					if (_hx_tmp80) {
HXLINE( 581)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 581)					{
HXLINE( 581)						 ::zpp_nape::geom::ZPP_Vec2 _this19 = _this18->zpp_inner;
HXDLIN( 581)						if (_this19->_immutable) {
HXLINE( 581)							HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            						}
HXDLIN( 581)						if (hx::IsNotNull( _this19->_isimmutable )) {
HXLINE( 581)							_this19->_isimmutable();
            						}
            					}
HXDLIN( 581)					if (hx::IsNull( anchor3 )) {
HXLINE( 581)						HX_STACK_DO_THROW(HX_("Error: Cannot assign null Vec2",95,15,46,66));
            					}
HXDLIN( 581)					bool _hx_tmp81;
HXDLIN( 581)					if (hx::IsNotNull( anchor3 )) {
HXLINE( 581)						_hx_tmp81 = anchor3->zpp_disp;
            					}
            					else {
HXLINE( 581)						_hx_tmp81 = false;
            					}
HXDLIN( 581)					if (_hx_tmp81) {
HXLINE( 581)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 581)					{
HXLINE( 581)						 ::zpp_nape::geom::ZPP_Vec2 _this20 = anchor3->zpp_inner;
HXDLIN( 581)						if (hx::IsNotNull( _this20->_validate )) {
HXLINE( 581)							_this20->_validate();
            						}
            					}
HXDLIN( 581)					Float x2 = anchor3->zpp_inner->x;
HXDLIN( 581)					bool _hx_tmp82;
HXDLIN( 581)					if (hx::IsNotNull( anchor3 )) {
HXLINE( 581)						_hx_tmp82 = anchor3->zpp_disp;
            					}
            					else {
HXLINE( 581)						_hx_tmp82 = false;
            					}
HXDLIN( 581)					if (_hx_tmp82) {
HXLINE( 581)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 581)					{
HXLINE( 581)						 ::zpp_nape::geom::ZPP_Vec2 _this21 = anchor3->zpp_inner;
HXDLIN( 581)						if (hx::IsNotNull( _this21->_validate )) {
HXLINE( 581)							_this21->_validate();
            						}
            					}
HXDLIN( 581)					Float y2 = anchor3->zpp_inner->y;
HXDLIN( 581)					bool _hx_tmp83;
HXDLIN( 581)					if (hx::IsNotNull( _this18 )) {
HXLINE( 581)						_hx_tmp83 = _this18->zpp_disp;
            					}
            					else {
HXLINE( 581)						_hx_tmp83 = false;
            					}
HXDLIN( 581)					if (_hx_tmp83) {
HXLINE( 581)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 581)					{
HXLINE( 581)						 ::zpp_nape::geom::ZPP_Vec2 _this22 = _this18->zpp_inner;
HXDLIN( 581)						if (_this22->_immutable) {
HXLINE( 581)							HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            						}
HXDLIN( 581)						if (hx::IsNotNull( _this22->_isimmutable )) {
HXLINE( 581)							_this22->_isimmutable();
            						}
            					}
HXDLIN( 581)					bool _hx_tmp84;
HXDLIN( 581)					if ((x2 == x2)) {
HXLINE( 581)						_hx_tmp84 = (y2 != y2);
            					}
            					else {
HXLINE( 581)						_hx_tmp84 = true;
            					}
HXDLIN( 581)					if (_hx_tmp84) {
HXLINE( 581)						HX_STACK_DO_THROW(HX_("Error: Vec2 components cannot be NaN",85,ba,d8,c1));
            					}
HXDLIN( 581)					bool _hx_tmp85;
HXDLIN( 581)					bool _hx_tmp86;
HXDLIN( 581)					if (hx::IsNotNull( _this18 )) {
HXLINE( 581)						_hx_tmp86 = _this18->zpp_disp;
            					}
            					else {
HXLINE( 581)						_hx_tmp86 = false;
            					}
HXDLIN( 581)					if (_hx_tmp86) {
HXLINE( 581)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 581)					{
HXLINE( 581)						 ::zpp_nape::geom::ZPP_Vec2 _this23 = _this18->zpp_inner;
HXDLIN( 581)						if (hx::IsNotNull( _this23->_validate )) {
HXLINE( 581)							_this23->_validate();
            						}
            					}
HXDLIN( 581)					if ((_this18->zpp_inner->x == x2)) {
HXLINE( 581)						bool _hx_tmp87;
HXDLIN( 581)						if (hx::IsNotNull( _this18 )) {
HXLINE( 581)							_hx_tmp87 = _this18->zpp_disp;
            						}
            						else {
HXLINE( 581)							_hx_tmp87 = false;
            						}
HXDLIN( 581)						if (_hx_tmp87) {
HXLINE( 581)							HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            						}
HXDLIN( 581)						{
HXLINE( 581)							 ::zpp_nape::geom::ZPP_Vec2 _this24 = _this18->zpp_inner;
HXDLIN( 581)							if (hx::IsNotNull( _this24->_validate )) {
HXLINE( 581)								_this24->_validate();
            							}
            						}
HXDLIN( 581)						_hx_tmp85 = (_this18->zpp_inner->y == y2);
            					}
            					else {
HXLINE( 581)						_hx_tmp85 = false;
            					}
HXDLIN( 581)					if (!(_hx_tmp85)) {
HXLINE( 581)						{
HXLINE( 581)							_this18->zpp_inner->x = x2;
HXDLIN( 581)							_this18->zpp_inner->y = y2;
            						}
HXDLIN( 581)						{
HXLINE( 581)							 ::zpp_nape::geom::ZPP_Vec2 _this25 = _this18->zpp_inner;
HXDLIN( 581)							if (hx::IsNotNull( _this25->_invalidate )) {
HXLINE( 581)								_this25->_invalidate(_this25);
            							}
            						}
            					}
HXDLIN( 581)					 ::nape::geom::Vec2 ret2 = _this18;
HXDLIN( 581)					if (anchor3->zpp_inner->weak) {
HXLINE( 581)						bool _hx_tmp88;
HXDLIN( 581)						if (hx::IsNotNull( anchor3 )) {
HXLINE( 581)							_hx_tmp88 = anchor3->zpp_disp;
            						}
            						else {
HXLINE( 581)							_hx_tmp88 = false;
            						}
HXDLIN( 581)						if (_hx_tmp88) {
HXLINE( 581)							HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            						}
HXDLIN( 581)						{
HXLINE( 581)							 ::zpp_nape::geom::ZPP_Vec2 _this26 = anchor3->zpp_inner;
HXDLIN( 581)							if (_this26->_immutable) {
HXLINE( 581)								HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            							}
HXDLIN( 581)							if (hx::IsNotNull( _this26->_isimmutable )) {
HXLINE( 581)								_this26->_isimmutable();
            							}
            						}
HXDLIN( 581)						if (anchor3->zpp_inner->_inuse) {
HXLINE( 581)							HX_STACK_DO_THROW(HX_("Error: This Vec2 is not disposable",b5,d1,d1,d8));
            						}
HXDLIN( 581)						 ::zpp_nape::geom::ZPP_Vec2 inner2 = anchor3->zpp_inner;
HXDLIN( 581)						anchor3->zpp_inner->outer = null();
HXDLIN( 581)						anchor3->zpp_inner = null();
HXDLIN( 581)						{
HXLINE( 581)							 ::nape::geom::Vec2 o4 = anchor3;
HXDLIN( 581)							o4->zpp_pool = null();
HXDLIN( 581)							if (hx::IsNotNull( ::zpp_nape::util::ZPP_PubPool_obj::nextVec2 )) {
HXLINE( 581)								::zpp_nape::util::ZPP_PubPool_obj::nextVec2->zpp_pool = o4;
            							}
            							else {
HXLINE( 581)								::zpp_nape::util::ZPP_PubPool_obj::poolVec2 = o4;
            							}
HXDLIN( 581)							::zpp_nape::util::ZPP_PubPool_obj::nextVec2 = o4;
HXDLIN( 581)							o4->zpp_disp = true;
            						}
HXDLIN( 581)						{
HXLINE( 581)							 ::zpp_nape::geom::ZPP_Vec2 o5 = inner2;
HXDLIN( 581)							{
HXLINE( 581)								if (hx::IsNotNull( o5->outer )) {
HXLINE( 581)									o5->outer->zpp_inner = null();
HXDLIN( 581)									o5->outer = null();
            								}
HXDLIN( 581)								o5->_isimmutable = null();
HXDLIN( 581)								o5->_validate = null();
HXDLIN( 581)								o5->_invalidate = null();
            							}
HXDLIN( 581)							o5->next = ::zpp_nape::geom::ZPP_Vec2_obj::zpp_pool;
HXDLIN( 581)							::zpp_nape::geom::ZPP_Vec2_obj::zpp_pool = o5;
            						}
            					}
            				}
            			}
HXDLIN( 581)			if (hx::IsNull( this->zpp_inner_zn->wrap_a3 )) {
HXLINE( 581)				this->zpp_inner_zn->setup_a3();
            			}
            		}
HXLINE( 582)		{
HXLINE( 582)			{
HXLINE( 582)				bool _hx_tmp89;
HXDLIN( 582)				if (hx::IsNotNull( anchor4 )) {
HXLINE( 582)					_hx_tmp89 = anchor4->zpp_disp;
            				}
            				else {
HXLINE( 582)					_hx_tmp89 = false;
            				}
HXDLIN( 582)				if (_hx_tmp89) {
HXLINE( 582)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 582)				if (hx::IsNull( anchor4 )) {
HXLINE( 582)					HX_STACK_DO_THROW(((HX_("Error: Constraint::",cb,f5,02,d5) + HX_("anchor4",1f,ec,a1,02)) + HX_(" cannot be null",07,dc,5d,15)));
            				}
HXDLIN( 582)				{
HXLINE( 582)					if (hx::IsNull( this->zpp_inner_zn->wrap_a4 )) {
HXLINE( 582)						this->zpp_inner_zn->setup_a4();
            					}
HXDLIN( 582)					 ::nape::geom::Vec2 _this27 = this->zpp_inner_zn->wrap_a4;
HXDLIN( 582)					bool _hx_tmp90;
HXDLIN( 582)					if (hx::IsNotNull( _this27 )) {
HXLINE( 582)						_hx_tmp90 = _this27->zpp_disp;
            					}
            					else {
HXLINE( 582)						_hx_tmp90 = false;
            					}
HXDLIN( 582)					if (_hx_tmp90) {
HXLINE( 582)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 582)					bool _hx_tmp91;
HXDLIN( 582)					if (hx::IsNotNull( anchor4 )) {
HXLINE( 582)						_hx_tmp91 = anchor4->zpp_disp;
            					}
            					else {
HXLINE( 582)						_hx_tmp91 = false;
            					}
HXDLIN( 582)					if (_hx_tmp91) {
HXLINE( 582)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 582)					{
HXLINE( 582)						 ::zpp_nape::geom::ZPP_Vec2 _this28 = _this27->zpp_inner;
HXDLIN( 582)						if (_this28->_immutable) {
HXLINE( 582)							HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            						}
HXDLIN( 582)						if (hx::IsNotNull( _this28->_isimmutable )) {
HXLINE( 582)							_this28->_isimmutable();
            						}
            					}
HXDLIN( 582)					if (hx::IsNull( anchor4 )) {
HXLINE( 582)						HX_STACK_DO_THROW(HX_("Error: Cannot assign null Vec2",95,15,46,66));
            					}
HXDLIN( 582)					bool _hx_tmp92;
HXDLIN( 582)					if (hx::IsNotNull( anchor4 )) {
HXLINE( 582)						_hx_tmp92 = anchor4->zpp_disp;
            					}
            					else {
HXLINE( 582)						_hx_tmp92 = false;
            					}
HXDLIN( 582)					if (_hx_tmp92) {
HXLINE( 582)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 582)					{
HXLINE( 582)						 ::zpp_nape::geom::ZPP_Vec2 _this29 = anchor4->zpp_inner;
HXDLIN( 582)						if (hx::IsNotNull( _this29->_validate )) {
HXLINE( 582)							_this29->_validate();
            						}
            					}
HXDLIN( 582)					Float x3 = anchor4->zpp_inner->x;
HXDLIN( 582)					bool _hx_tmp93;
HXDLIN( 582)					if (hx::IsNotNull( anchor4 )) {
HXLINE( 582)						_hx_tmp93 = anchor4->zpp_disp;
            					}
            					else {
HXLINE( 582)						_hx_tmp93 = false;
            					}
HXDLIN( 582)					if (_hx_tmp93) {
HXLINE( 582)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 582)					{
HXLINE( 582)						 ::zpp_nape::geom::ZPP_Vec2 _this30 = anchor4->zpp_inner;
HXDLIN( 582)						if (hx::IsNotNull( _this30->_validate )) {
HXLINE( 582)							_this30->_validate();
            						}
            					}
HXDLIN( 582)					Float y3 = anchor4->zpp_inner->y;
HXDLIN( 582)					bool _hx_tmp94;
HXDLIN( 582)					if (hx::IsNotNull( _this27 )) {
HXLINE( 582)						_hx_tmp94 = _this27->zpp_disp;
            					}
            					else {
HXLINE( 582)						_hx_tmp94 = false;
            					}
HXDLIN( 582)					if (_hx_tmp94) {
HXLINE( 582)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 582)					{
HXLINE( 582)						 ::zpp_nape::geom::ZPP_Vec2 _this31 = _this27->zpp_inner;
HXDLIN( 582)						if (_this31->_immutable) {
HXLINE( 582)							HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            						}
HXDLIN( 582)						if (hx::IsNotNull( _this31->_isimmutable )) {
HXLINE( 582)							_this31->_isimmutable();
            						}
            					}
HXDLIN( 582)					bool _hx_tmp95;
HXDLIN( 582)					if ((x3 == x3)) {
HXLINE( 582)						_hx_tmp95 = (y3 != y3);
            					}
            					else {
HXLINE( 582)						_hx_tmp95 = true;
            					}
HXDLIN( 582)					if (_hx_tmp95) {
HXLINE( 582)						HX_STACK_DO_THROW(HX_("Error: Vec2 components cannot be NaN",85,ba,d8,c1));
            					}
HXDLIN( 582)					bool _hx_tmp96;
HXDLIN( 582)					bool _hx_tmp97;
HXDLIN( 582)					if (hx::IsNotNull( _this27 )) {
HXLINE( 582)						_hx_tmp97 = _this27->zpp_disp;
            					}
            					else {
HXLINE( 582)						_hx_tmp97 = false;
            					}
HXDLIN( 582)					if (_hx_tmp97) {
HXLINE( 582)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 582)					{
HXLINE( 582)						 ::zpp_nape::geom::ZPP_Vec2 _this32 = _this27->zpp_inner;
HXDLIN( 582)						if (hx::IsNotNull( _this32->_validate )) {
HXLINE( 582)							_this32->_validate();
            						}
            					}
HXDLIN( 582)					if ((_this27->zpp_inner->x == x3)) {
HXLINE( 582)						bool _hx_tmp98;
HXDLIN( 582)						if (hx::IsNotNull( _this27 )) {
HXLINE( 582)							_hx_tmp98 = _this27->zpp_disp;
            						}
            						else {
HXLINE( 582)							_hx_tmp98 = false;
            						}
HXDLIN( 582)						if (_hx_tmp98) {
HXLINE( 582)							HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            						}
HXDLIN( 582)						{
HXLINE( 582)							 ::zpp_nape::geom::ZPP_Vec2 _this33 = _this27->zpp_inner;
HXDLIN( 582)							if (hx::IsNotNull( _this33->_validate )) {
HXLINE( 582)								_this33->_validate();
            							}
            						}
HXDLIN( 582)						_hx_tmp96 = (_this27->zpp_inner->y == y3);
            					}
            					else {
HXLINE( 582)						_hx_tmp96 = false;
            					}
HXDLIN( 582)					if (!(_hx_tmp96)) {
HXLINE( 582)						{
HXLINE( 582)							_this27->zpp_inner->x = x3;
HXDLIN( 582)							_this27->zpp_inner->y = y3;
            						}
HXDLIN( 582)						{
HXLINE( 582)							 ::zpp_nape::geom::ZPP_Vec2 _this34 = _this27->zpp_inner;
HXDLIN( 582)							if (hx::IsNotNull( _this34->_invalidate )) {
HXLINE( 582)								_this34->_invalidate(_this34);
            							}
            						}
            					}
HXDLIN( 582)					 ::nape::geom::Vec2 ret3 = _this27;
HXDLIN( 582)					if (anchor4->zpp_inner->weak) {
HXLINE( 582)						bool _hx_tmp99;
HXDLIN( 582)						if (hx::IsNotNull( anchor4 )) {
HXLINE( 582)							_hx_tmp99 = anchor4->zpp_disp;
            						}
            						else {
HXLINE( 582)							_hx_tmp99 = false;
            						}
HXDLIN( 582)						if (_hx_tmp99) {
HXLINE( 582)							HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            						}
HXDLIN( 582)						{
HXLINE( 582)							 ::zpp_nape::geom::ZPP_Vec2 _this35 = anchor4->zpp_inner;
HXDLIN( 582)							if (_this35->_immutable) {
HXLINE( 582)								HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            							}
HXDLIN( 582)							if (hx::IsNotNull( _this35->_isimmutable )) {
HXLINE( 582)								_this35->_isimmutable();
            							}
            						}
HXDLIN( 582)						if (anchor4->zpp_inner->_inuse) {
HXLINE( 582)							HX_STACK_DO_THROW(HX_("Error: This Vec2 is not disposable",b5,d1,d1,d8));
            						}
HXDLIN( 582)						 ::zpp_nape::geom::ZPP_Vec2 inner3 = anchor4->zpp_inner;
HXDLIN( 582)						anchor4->zpp_inner->outer = null();
HXDLIN( 582)						anchor4->zpp_inner = null();
HXDLIN( 582)						{
HXLINE( 582)							 ::nape::geom::Vec2 o6 = anchor4;
HXDLIN( 582)							o6->zpp_pool = null();
HXDLIN( 582)							if (hx::IsNotNull( ::zpp_nape::util::ZPP_PubPool_obj::nextVec2 )) {
HXLINE( 582)								::zpp_nape::util::ZPP_PubPool_obj::nextVec2->zpp_pool = o6;
            							}
            							else {
HXLINE( 582)								::zpp_nape::util::ZPP_PubPool_obj::poolVec2 = o6;
            							}
HXDLIN( 582)							::zpp_nape::util::ZPP_PubPool_obj::nextVec2 = o6;
HXDLIN( 582)							o6->zpp_disp = true;
            						}
HXDLIN( 582)						{
HXLINE( 582)							 ::zpp_nape::geom::ZPP_Vec2 o7 = inner3;
HXDLIN( 582)							{
HXLINE( 582)								if (hx::IsNotNull( o7->outer )) {
HXLINE( 582)									o7->outer->zpp_inner = null();
HXDLIN( 582)									o7->outer = null();
            								}
HXDLIN( 582)								o7->_isimmutable = null();
HXDLIN( 582)								o7->_validate = null();
HXDLIN( 582)								o7->_invalidate = null();
            							}
HXDLIN( 582)							o7->next = ::zpp_nape::geom::ZPP_Vec2_obj::zpp_pool;
HXDLIN( 582)							::zpp_nape::geom::ZPP_Vec2_obj::zpp_pool = o7;
            						}
            					}
            				}
            			}
HXDLIN( 582)			if (hx::IsNull( this->zpp_inner_zn->wrap_a4 )) {
HXLINE( 582)				this->zpp_inner_zn->setup_a4();
            			}
            		}
HXLINE( 583)		{
HXLINE( 583)			this->zpp_inner->immutable_midstep(HX_("PulleyJoint::ratio",7a,cf,1b,11));
HXDLIN( 583)			if ((ratio != ratio)) {
HXLINE( 583)				HX_STACK_DO_THROW(HX_("Error: PulleyJoint::ratio cannot be NaN",63,48,fa,b0));
            			}
HXDLIN( 583)			if ((this->zpp_inner_zn->ratio != ratio)) {
HXLINE( 583)				this->zpp_inner_zn->ratio = ratio;
HXDLIN( 583)				this->zpp_inner->wake();
            			}
            		}
HXLINE( 584)		{
HXLINE( 584)			this->zpp_inner->immutable_midstep(HX_("PulleyJoint::jointMin",59,4f,c9,70));
HXDLIN( 584)			if ((jointMin != jointMin)) {
HXLINE( 584)				HX_STACK_DO_THROW(HX_("Error: PulleyJoint::jointMin cannot be NaN",a6,94,5b,4c));
            			}
HXDLIN( 584)			if ((jointMin < 0)) {
HXLINE( 584)				HX_STACK_DO_THROW(HX_("Error: PulleyJoint::jointMin must be >= 0",6a,47,db,7e));
            			}
HXDLIN( 584)			if ((this->zpp_inner_zn->jointMin != jointMin)) {
HXLINE( 584)				this->zpp_inner_zn->jointMin = jointMin;
HXDLIN( 584)				this->zpp_inner->wake();
            			}
            		}
HXLINE( 585)		{
HXLINE( 585)			this->zpp_inner->immutable_midstep(HX_("PulleyJoint::jointMax",6b,48,c9,70));
HXDLIN( 585)			if ((jointMax != jointMax)) {
HXLINE( 585)				HX_STACK_DO_THROW(HX_("Error: PulleyJoint::jointMax cannot be NaN",38,89,ae,e4));
            			}
HXDLIN( 585)			if ((jointMax < 0)) {
HXLINE( 585)				HX_STACK_DO_THROW(HX_("Error: PulleyJoint::jointMax must be >= 0",18,8b,c3,71));
            			}
HXDLIN( 585)			if ((this->zpp_inner_zn->jointMax != jointMax)) {
HXLINE( 585)				this->zpp_inner_zn->jointMax = jointMax;
HXDLIN( 585)				this->zpp_inner->wake();
            			}
            		}
            	}

Dynamic PulleyJoint_obj::__CreateEmpty() { return new PulleyJoint_obj; }

void *PulleyJoint_obj::_hx_vtable = 0;

Dynamic PulleyJoint_obj::__Create(hx::DynamicArray inArgs)
{
	hx::ObjectPtr< PulleyJoint_obj > _hx_result = new PulleyJoint_obj();
	_hx_result->__construct(inArgs[0],inArgs[1],inArgs[2],inArgs[3],inArgs[4],inArgs[5],inArgs[6],inArgs[7],inArgs[8],inArgs[9],inArgs[10]);
	return _hx_result;
}

bool PulleyJoint_obj::_hx_isInstanceOf(int inClassId) {
	if (inClassId<=(int)0x00e9fd26) {
		return inClassId==(int)0x00000001 || inClassId==(int)0x00e9fd26;
	} else {
		return inClassId==(int)0x05b69860;
	}
}

 ::nape::phys::Body PulleyJoint_obj::get_body1(){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_201_get_body1)
HXDLIN( 201)		if (hx::IsNull( this->zpp_inner_zn->b1 )) {
HXDLIN( 201)			return null();
            		}
            		else {
HXDLIN( 201)			return this->zpp_inner_zn->b1->outer;
            		}
HXDLIN( 201)		return null();
            	}

HX_DEFINE_DYNAMIC_FUNC0(PulleyJoint_obj,get_body1,return )

 ::nape::phys::Body PulleyJoint_obj::set_body1( ::nape::phys::Body body1){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_203_set_body1)
HXLINE( 204)		{
HXLINE( 205)			this->zpp_inner->immutable_midstep((HX_("Constraint::",7d,10,25,6e) + HX_("body1",4f,d3,ef,b6)));
HXLINE( 206)			 ::zpp_nape::phys::ZPP_Body inbody1;
HXDLIN( 206)			if (hx::IsNull( body1 )) {
HXLINE( 206)				inbody1 = null();
            			}
            			else {
HXLINE( 206)				inbody1 = body1->zpp_inner;
            			}
HXLINE( 207)			if (hx::IsNotEq( inbody1,this->zpp_inner_zn->b1 )) {
HXLINE( 208)				if (hx::IsNotNull( this->zpp_inner_zn->b1 )) {
HXLINE( 209)					bool _hx_tmp;
HXDLIN( 209)					bool _hx_tmp1;
HXDLIN( 209)					bool _hx_tmp2;
HXDLIN( 209)					 ::nape::space::Space _hx_tmp3;
HXDLIN( 209)					if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 209)						_hx_tmp3 = null();
            					}
            					else {
HXLINE( 209)						_hx_tmp3 = this->zpp_inner->space->outer;
            					}
HXDLIN( 209)					if (hx::IsNotNull( _hx_tmp3 )) {
HXLINE( 209)						_hx_tmp2 = hx::IsNotEq( this->zpp_inner_zn->b2,this->zpp_inner_zn->b1 );
            					}
            					else {
HXLINE( 209)						_hx_tmp2 = false;
            					}
HXDLIN( 209)					if (_hx_tmp2) {
HXLINE( 209)						_hx_tmp1 = hx::IsNotEq( this->zpp_inner_zn->b3,this->zpp_inner_zn->b1 );
            					}
            					else {
HXLINE( 209)						_hx_tmp1 = false;
            					}
HXDLIN( 209)					if (_hx_tmp1) {
HXLINE( 209)						_hx_tmp = hx::IsNotEq( this->zpp_inner_zn->b4,this->zpp_inner_zn->b1 );
            					}
            					else {
HXLINE( 209)						_hx_tmp = false;
            					}
HXDLIN( 209)					if (_hx_tmp) {
HXLINE( 211)						if (hx::IsNotNull( this->zpp_inner_zn->b1 )) {
HXLINE( 211)							this->zpp_inner_zn->b1->constraints->remove(this->zpp_inner);
            						}
            					}
HXLINE( 214)					bool _hx_tmp4;
HXDLIN( 214)					if (this->zpp_inner->active) {
HXLINE( 214)						 ::nape::space::Space _hx_tmp5;
HXDLIN( 214)						if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 214)							_hx_tmp5 = null();
            						}
            						else {
HXLINE( 214)							_hx_tmp5 = this->zpp_inner->space->outer;
            						}
HXDLIN( 214)						_hx_tmp4 = hx::IsNotNull( _hx_tmp5 );
            					}
            					else {
HXLINE( 214)						_hx_tmp4 = false;
            					}
HXDLIN( 214)					if (_hx_tmp4) {
HXLINE( 214)						this->zpp_inner_zn->b1->wake();
            					}
            				}
HXLINE( 216)				this->zpp_inner_zn->b1 = inbody1;
HXLINE( 217)				bool _hx_tmp6;
HXDLIN( 217)				bool _hx_tmp7;
HXDLIN( 217)				bool _hx_tmp8;
HXDLIN( 217)				bool _hx_tmp9;
HXDLIN( 217)				 ::nape::space::Space _hx_tmp10;
HXDLIN( 217)				if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 217)					_hx_tmp10 = null();
            				}
            				else {
HXLINE( 217)					_hx_tmp10 = this->zpp_inner->space->outer;
            				}
HXDLIN( 217)				if (hx::IsNotNull( _hx_tmp10 )) {
HXLINE( 217)					_hx_tmp9 = hx::IsNotNull( inbody1 );
            				}
            				else {
HXLINE( 217)					_hx_tmp9 = false;
            				}
HXDLIN( 217)				if (_hx_tmp9) {
HXLINE( 217)					_hx_tmp8 = hx::IsNotEq( this->zpp_inner_zn->b2,inbody1 );
            				}
            				else {
HXLINE( 217)					_hx_tmp8 = false;
            				}
HXDLIN( 217)				if (_hx_tmp8) {
HXLINE( 217)					_hx_tmp7 = hx::IsNotEq( this->zpp_inner_zn->b3,inbody1 );
            				}
            				else {
HXLINE( 217)					_hx_tmp7 = false;
            				}
HXDLIN( 217)				if (_hx_tmp7) {
HXLINE( 217)					_hx_tmp6 = hx::IsNotEq( this->zpp_inner_zn->b4,inbody1 );
            				}
            				else {
HXLINE( 217)					_hx_tmp6 = false;
            				}
HXDLIN( 217)				if (_hx_tmp6) {
HXLINE( 219)					if (hx::IsNotNull( inbody1 )) {
HXLINE( 219)						inbody1->constraints->add(this->zpp_inner);
            					}
            				}
HXLINE( 222)				bool _hx_tmp11;
HXDLIN( 222)				if (this->zpp_inner->active) {
HXLINE( 222)					 ::nape::space::Space _hx_tmp12;
HXDLIN( 222)					if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 222)						_hx_tmp12 = null();
            					}
            					else {
HXLINE( 222)						_hx_tmp12 = this->zpp_inner->space->outer;
            					}
HXDLIN( 222)					_hx_tmp11 = hx::IsNotNull( _hx_tmp12 );
            				}
            				else {
HXLINE( 222)					_hx_tmp11 = false;
            				}
HXDLIN( 222)				if (_hx_tmp11) {
HXLINE( 223)					this->zpp_inner->wake();
HXLINE( 224)					if (hx::IsNotNull( inbody1 )) {
HXLINE( 224)						inbody1->wake();
            					}
            				}
            			}
            		}
HXLINE( 228)		if (hx::IsNull( this->zpp_inner_zn->b1 )) {
HXLINE( 228)			return null();
            		}
            		else {
HXLINE( 228)			return this->zpp_inner_zn->b1->outer;
            		}
HXDLIN( 228)		return null();
            	}

HX_DEFINE_DYNAMIC_FUNC1(PulleyJoint_obj,set_body1,return )

 ::nape::phys::Body PulleyJoint_obj::get_body2(){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_239_get_body2)
HXDLIN( 239)		if (hx::IsNull( this->zpp_inner_zn->b2 )) {
HXDLIN( 239)			return null();
            		}
            		else {
HXDLIN( 239)			return this->zpp_inner_zn->b2->outer;
            		}
HXDLIN( 239)		return null();
            	}

HX_DEFINE_DYNAMIC_FUNC0(PulleyJoint_obj,get_body2,return )

 ::nape::phys::Body PulleyJoint_obj::set_body2( ::nape::phys::Body body2){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_241_set_body2)
HXLINE( 242)		{
HXLINE( 243)			this->zpp_inner->immutable_midstep((HX_("Constraint::",7d,10,25,6e) + HX_("body2",50,d3,ef,b6)));
HXLINE( 244)			 ::zpp_nape::phys::ZPP_Body inbody2;
HXDLIN( 244)			if (hx::IsNull( body2 )) {
HXLINE( 244)				inbody2 = null();
            			}
            			else {
HXLINE( 244)				inbody2 = body2->zpp_inner;
            			}
HXLINE( 245)			if (hx::IsNotEq( inbody2,this->zpp_inner_zn->b2 )) {
HXLINE( 246)				if (hx::IsNotNull( this->zpp_inner_zn->b2 )) {
HXLINE( 247)					bool _hx_tmp;
HXDLIN( 247)					bool _hx_tmp1;
HXDLIN( 247)					bool _hx_tmp2;
HXDLIN( 247)					 ::nape::space::Space _hx_tmp3;
HXDLIN( 247)					if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 247)						_hx_tmp3 = null();
            					}
            					else {
HXLINE( 247)						_hx_tmp3 = this->zpp_inner->space->outer;
            					}
HXDLIN( 247)					if (hx::IsNotNull( _hx_tmp3 )) {
HXLINE( 247)						_hx_tmp2 = hx::IsNotEq( this->zpp_inner_zn->b1,this->zpp_inner_zn->b2 );
            					}
            					else {
HXLINE( 247)						_hx_tmp2 = false;
            					}
HXDLIN( 247)					if (_hx_tmp2) {
HXLINE( 247)						_hx_tmp1 = hx::IsNotEq( this->zpp_inner_zn->b3,this->zpp_inner_zn->b2 );
            					}
            					else {
HXLINE( 247)						_hx_tmp1 = false;
            					}
HXDLIN( 247)					if (_hx_tmp1) {
HXLINE( 247)						_hx_tmp = hx::IsNotEq( this->zpp_inner_zn->b4,this->zpp_inner_zn->b2 );
            					}
            					else {
HXLINE( 247)						_hx_tmp = false;
            					}
HXDLIN( 247)					if (_hx_tmp) {
HXLINE( 249)						if (hx::IsNotNull( this->zpp_inner_zn->b2 )) {
HXLINE( 249)							this->zpp_inner_zn->b2->constraints->remove(this->zpp_inner);
            						}
            					}
HXLINE( 252)					bool _hx_tmp4;
HXDLIN( 252)					if (this->zpp_inner->active) {
HXLINE( 252)						 ::nape::space::Space _hx_tmp5;
HXDLIN( 252)						if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 252)							_hx_tmp5 = null();
            						}
            						else {
HXLINE( 252)							_hx_tmp5 = this->zpp_inner->space->outer;
            						}
HXDLIN( 252)						_hx_tmp4 = hx::IsNotNull( _hx_tmp5 );
            					}
            					else {
HXLINE( 252)						_hx_tmp4 = false;
            					}
HXDLIN( 252)					if (_hx_tmp4) {
HXLINE( 252)						this->zpp_inner_zn->b2->wake();
            					}
            				}
HXLINE( 254)				this->zpp_inner_zn->b2 = inbody2;
HXLINE( 255)				bool _hx_tmp6;
HXDLIN( 255)				bool _hx_tmp7;
HXDLIN( 255)				bool _hx_tmp8;
HXDLIN( 255)				bool _hx_tmp9;
HXDLIN( 255)				 ::nape::space::Space _hx_tmp10;
HXDLIN( 255)				if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 255)					_hx_tmp10 = null();
            				}
            				else {
HXLINE( 255)					_hx_tmp10 = this->zpp_inner->space->outer;
            				}
HXDLIN( 255)				if (hx::IsNotNull( _hx_tmp10 )) {
HXLINE( 255)					_hx_tmp9 = hx::IsNotNull( inbody2 );
            				}
            				else {
HXLINE( 255)					_hx_tmp9 = false;
            				}
HXDLIN( 255)				if (_hx_tmp9) {
HXLINE( 255)					_hx_tmp8 = hx::IsNotEq( this->zpp_inner_zn->b1,inbody2 );
            				}
            				else {
HXLINE( 255)					_hx_tmp8 = false;
            				}
HXDLIN( 255)				if (_hx_tmp8) {
HXLINE( 255)					_hx_tmp7 = hx::IsNotEq( this->zpp_inner_zn->b3,inbody2 );
            				}
            				else {
HXLINE( 255)					_hx_tmp7 = false;
            				}
HXDLIN( 255)				if (_hx_tmp7) {
HXLINE( 255)					_hx_tmp6 = hx::IsNotEq( this->zpp_inner_zn->b4,inbody2 );
            				}
            				else {
HXLINE( 255)					_hx_tmp6 = false;
            				}
HXDLIN( 255)				if (_hx_tmp6) {
HXLINE( 257)					if (hx::IsNotNull( inbody2 )) {
HXLINE( 257)						inbody2->constraints->add(this->zpp_inner);
            					}
            				}
HXLINE( 260)				bool _hx_tmp11;
HXDLIN( 260)				if (this->zpp_inner->active) {
HXLINE( 260)					 ::nape::space::Space _hx_tmp12;
HXDLIN( 260)					if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 260)						_hx_tmp12 = null();
            					}
            					else {
HXLINE( 260)						_hx_tmp12 = this->zpp_inner->space->outer;
            					}
HXDLIN( 260)					_hx_tmp11 = hx::IsNotNull( _hx_tmp12 );
            				}
            				else {
HXLINE( 260)					_hx_tmp11 = false;
            				}
HXDLIN( 260)				if (_hx_tmp11) {
HXLINE( 261)					this->zpp_inner->wake();
HXLINE( 262)					if (hx::IsNotNull( inbody2 )) {
HXLINE( 262)						inbody2->wake();
            					}
            				}
            			}
            		}
HXLINE( 266)		if (hx::IsNull( this->zpp_inner_zn->b2 )) {
HXLINE( 266)			return null();
            		}
            		else {
HXLINE( 266)			return this->zpp_inner_zn->b2->outer;
            		}
HXDLIN( 266)		return null();
            	}

HX_DEFINE_DYNAMIC_FUNC1(PulleyJoint_obj,set_body2,return )

 ::nape::phys::Body PulleyJoint_obj::get_body3(){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_277_get_body3)
HXDLIN( 277)		if (hx::IsNull( this->zpp_inner_zn->b3 )) {
HXDLIN( 277)			return null();
            		}
            		else {
HXDLIN( 277)			return this->zpp_inner_zn->b3->outer;
            		}
HXDLIN( 277)		return null();
            	}

HX_DEFINE_DYNAMIC_FUNC0(PulleyJoint_obj,get_body3,return )

 ::nape::phys::Body PulleyJoint_obj::set_body3( ::nape::phys::Body body3){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_279_set_body3)
HXLINE( 280)		{
HXLINE( 281)			this->zpp_inner->immutable_midstep((HX_("Constraint::",7d,10,25,6e) + HX_("body3",51,d3,ef,b6)));
HXLINE( 282)			 ::zpp_nape::phys::ZPP_Body inbody3;
HXDLIN( 282)			if (hx::IsNull( body3 )) {
HXLINE( 282)				inbody3 = null();
            			}
            			else {
HXLINE( 282)				inbody3 = body3->zpp_inner;
            			}
HXLINE( 283)			if (hx::IsNotEq( inbody3,this->zpp_inner_zn->b3 )) {
HXLINE( 284)				if (hx::IsNotNull( this->zpp_inner_zn->b3 )) {
HXLINE( 285)					bool _hx_tmp;
HXDLIN( 285)					bool _hx_tmp1;
HXDLIN( 285)					bool _hx_tmp2;
HXDLIN( 285)					 ::nape::space::Space _hx_tmp3;
HXDLIN( 285)					if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 285)						_hx_tmp3 = null();
            					}
            					else {
HXLINE( 285)						_hx_tmp3 = this->zpp_inner->space->outer;
            					}
HXDLIN( 285)					if (hx::IsNotNull( _hx_tmp3 )) {
HXLINE( 285)						_hx_tmp2 = hx::IsNotEq( this->zpp_inner_zn->b1,this->zpp_inner_zn->b3 );
            					}
            					else {
HXLINE( 285)						_hx_tmp2 = false;
            					}
HXDLIN( 285)					if (_hx_tmp2) {
HXLINE( 285)						_hx_tmp1 = hx::IsNotEq( this->zpp_inner_zn->b2,this->zpp_inner_zn->b3 );
            					}
            					else {
HXLINE( 285)						_hx_tmp1 = false;
            					}
HXDLIN( 285)					if (_hx_tmp1) {
HXLINE( 285)						_hx_tmp = hx::IsNotEq( this->zpp_inner_zn->b4,this->zpp_inner_zn->b3 );
            					}
            					else {
HXLINE( 285)						_hx_tmp = false;
            					}
HXDLIN( 285)					if (_hx_tmp) {
HXLINE( 287)						if (hx::IsNotNull( this->zpp_inner_zn->b3 )) {
HXLINE( 287)							this->zpp_inner_zn->b3->constraints->remove(this->zpp_inner);
            						}
            					}
HXLINE( 290)					bool _hx_tmp4;
HXDLIN( 290)					if (this->zpp_inner->active) {
HXLINE( 290)						 ::nape::space::Space _hx_tmp5;
HXDLIN( 290)						if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 290)							_hx_tmp5 = null();
            						}
            						else {
HXLINE( 290)							_hx_tmp5 = this->zpp_inner->space->outer;
            						}
HXDLIN( 290)						_hx_tmp4 = hx::IsNotNull( _hx_tmp5 );
            					}
            					else {
HXLINE( 290)						_hx_tmp4 = false;
            					}
HXDLIN( 290)					if (_hx_tmp4) {
HXLINE( 290)						this->zpp_inner_zn->b3->wake();
            					}
            				}
HXLINE( 292)				this->zpp_inner_zn->b3 = inbody3;
HXLINE( 293)				bool _hx_tmp6;
HXDLIN( 293)				bool _hx_tmp7;
HXDLIN( 293)				bool _hx_tmp8;
HXDLIN( 293)				bool _hx_tmp9;
HXDLIN( 293)				 ::nape::space::Space _hx_tmp10;
HXDLIN( 293)				if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 293)					_hx_tmp10 = null();
            				}
            				else {
HXLINE( 293)					_hx_tmp10 = this->zpp_inner->space->outer;
            				}
HXDLIN( 293)				if (hx::IsNotNull( _hx_tmp10 )) {
HXLINE( 293)					_hx_tmp9 = hx::IsNotNull( inbody3 );
            				}
            				else {
HXLINE( 293)					_hx_tmp9 = false;
            				}
HXDLIN( 293)				if (_hx_tmp9) {
HXLINE( 293)					_hx_tmp8 = hx::IsNotEq( this->zpp_inner_zn->b1,inbody3 );
            				}
            				else {
HXLINE( 293)					_hx_tmp8 = false;
            				}
HXDLIN( 293)				if (_hx_tmp8) {
HXLINE( 293)					_hx_tmp7 = hx::IsNotEq( this->zpp_inner_zn->b2,inbody3 );
            				}
            				else {
HXLINE( 293)					_hx_tmp7 = false;
            				}
HXDLIN( 293)				if (_hx_tmp7) {
HXLINE( 293)					_hx_tmp6 = hx::IsNotEq( this->zpp_inner_zn->b4,inbody3 );
            				}
            				else {
HXLINE( 293)					_hx_tmp6 = false;
            				}
HXDLIN( 293)				if (_hx_tmp6) {
HXLINE( 295)					if (hx::IsNotNull( inbody3 )) {
HXLINE( 295)						inbody3->constraints->add(this->zpp_inner);
            					}
            				}
HXLINE( 298)				bool _hx_tmp11;
HXDLIN( 298)				if (this->zpp_inner->active) {
HXLINE( 298)					 ::nape::space::Space _hx_tmp12;
HXDLIN( 298)					if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 298)						_hx_tmp12 = null();
            					}
            					else {
HXLINE( 298)						_hx_tmp12 = this->zpp_inner->space->outer;
            					}
HXDLIN( 298)					_hx_tmp11 = hx::IsNotNull( _hx_tmp12 );
            				}
            				else {
HXLINE( 298)					_hx_tmp11 = false;
            				}
HXDLIN( 298)				if (_hx_tmp11) {
HXLINE( 299)					this->zpp_inner->wake();
HXLINE( 300)					if (hx::IsNotNull( inbody3 )) {
HXLINE( 300)						inbody3->wake();
            					}
            				}
            			}
            		}
HXLINE( 304)		if (hx::IsNull( this->zpp_inner_zn->b3 )) {
HXLINE( 304)			return null();
            		}
            		else {
HXLINE( 304)			return this->zpp_inner_zn->b3->outer;
            		}
HXDLIN( 304)		return null();
            	}

HX_DEFINE_DYNAMIC_FUNC1(PulleyJoint_obj,set_body3,return )

 ::nape::phys::Body PulleyJoint_obj::get_body4(){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_315_get_body4)
HXDLIN( 315)		if (hx::IsNull( this->zpp_inner_zn->b4 )) {
HXDLIN( 315)			return null();
            		}
            		else {
HXDLIN( 315)			return this->zpp_inner_zn->b4->outer;
            		}
HXDLIN( 315)		return null();
            	}

HX_DEFINE_DYNAMIC_FUNC0(PulleyJoint_obj,get_body4,return )

 ::nape::phys::Body PulleyJoint_obj::set_body4( ::nape::phys::Body body4){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_317_set_body4)
HXLINE( 318)		{
HXLINE( 319)			this->zpp_inner->immutable_midstep((HX_("Constraint::",7d,10,25,6e) + HX_("body4",52,d3,ef,b6)));
HXLINE( 320)			 ::zpp_nape::phys::ZPP_Body inbody4;
HXDLIN( 320)			if (hx::IsNull( body4 )) {
HXLINE( 320)				inbody4 = null();
            			}
            			else {
HXLINE( 320)				inbody4 = body4->zpp_inner;
            			}
HXLINE( 321)			if (hx::IsNotEq( inbody4,this->zpp_inner_zn->b4 )) {
HXLINE( 322)				if (hx::IsNotNull( this->zpp_inner_zn->b4 )) {
HXLINE( 323)					bool _hx_tmp;
HXDLIN( 323)					bool _hx_tmp1;
HXDLIN( 323)					bool _hx_tmp2;
HXDLIN( 323)					 ::nape::space::Space _hx_tmp3;
HXDLIN( 323)					if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 323)						_hx_tmp3 = null();
            					}
            					else {
HXLINE( 323)						_hx_tmp3 = this->zpp_inner->space->outer;
            					}
HXDLIN( 323)					if (hx::IsNotNull( _hx_tmp3 )) {
HXLINE( 323)						_hx_tmp2 = hx::IsNotEq( this->zpp_inner_zn->b1,this->zpp_inner_zn->b4 );
            					}
            					else {
HXLINE( 323)						_hx_tmp2 = false;
            					}
HXDLIN( 323)					if (_hx_tmp2) {
HXLINE( 323)						_hx_tmp1 = hx::IsNotEq( this->zpp_inner_zn->b2,this->zpp_inner_zn->b4 );
            					}
            					else {
HXLINE( 323)						_hx_tmp1 = false;
            					}
HXDLIN( 323)					if (_hx_tmp1) {
HXLINE( 323)						_hx_tmp = hx::IsNotEq( this->zpp_inner_zn->b3,this->zpp_inner_zn->b4 );
            					}
            					else {
HXLINE( 323)						_hx_tmp = false;
            					}
HXDLIN( 323)					if (_hx_tmp) {
HXLINE( 325)						if (hx::IsNotNull( this->zpp_inner_zn->b4 )) {
HXLINE( 325)							this->zpp_inner_zn->b4->constraints->remove(this->zpp_inner);
            						}
            					}
HXLINE( 328)					bool _hx_tmp4;
HXDLIN( 328)					if (this->zpp_inner->active) {
HXLINE( 328)						 ::nape::space::Space _hx_tmp5;
HXDLIN( 328)						if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 328)							_hx_tmp5 = null();
            						}
            						else {
HXLINE( 328)							_hx_tmp5 = this->zpp_inner->space->outer;
            						}
HXDLIN( 328)						_hx_tmp4 = hx::IsNotNull( _hx_tmp5 );
            					}
            					else {
HXLINE( 328)						_hx_tmp4 = false;
            					}
HXDLIN( 328)					if (_hx_tmp4) {
HXLINE( 328)						this->zpp_inner_zn->b4->wake();
            					}
            				}
HXLINE( 330)				this->zpp_inner_zn->b4 = inbody4;
HXLINE( 331)				bool _hx_tmp6;
HXDLIN( 331)				bool _hx_tmp7;
HXDLIN( 331)				bool _hx_tmp8;
HXDLIN( 331)				bool _hx_tmp9;
HXDLIN( 331)				 ::nape::space::Space _hx_tmp10;
HXDLIN( 331)				if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 331)					_hx_tmp10 = null();
            				}
            				else {
HXLINE( 331)					_hx_tmp10 = this->zpp_inner->space->outer;
            				}
HXDLIN( 331)				if (hx::IsNotNull( _hx_tmp10 )) {
HXLINE( 331)					_hx_tmp9 = hx::IsNotNull( inbody4 );
            				}
            				else {
HXLINE( 331)					_hx_tmp9 = false;
            				}
HXDLIN( 331)				if (_hx_tmp9) {
HXLINE( 331)					_hx_tmp8 = hx::IsNotEq( this->zpp_inner_zn->b1,inbody4 );
            				}
            				else {
HXLINE( 331)					_hx_tmp8 = false;
            				}
HXDLIN( 331)				if (_hx_tmp8) {
HXLINE( 331)					_hx_tmp7 = hx::IsNotEq( this->zpp_inner_zn->b2,inbody4 );
            				}
            				else {
HXLINE( 331)					_hx_tmp7 = false;
            				}
HXDLIN( 331)				if (_hx_tmp7) {
HXLINE( 331)					_hx_tmp6 = hx::IsNotEq( this->zpp_inner_zn->b3,inbody4 );
            				}
            				else {
HXLINE( 331)					_hx_tmp6 = false;
            				}
HXDLIN( 331)				if (_hx_tmp6) {
HXLINE( 333)					if (hx::IsNotNull( inbody4 )) {
HXLINE( 333)						inbody4->constraints->add(this->zpp_inner);
            					}
            				}
HXLINE( 336)				bool _hx_tmp11;
HXDLIN( 336)				if (this->zpp_inner->active) {
HXLINE( 336)					 ::nape::space::Space _hx_tmp12;
HXDLIN( 336)					if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 336)						_hx_tmp12 = null();
            					}
            					else {
HXLINE( 336)						_hx_tmp12 = this->zpp_inner->space->outer;
            					}
HXDLIN( 336)					_hx_tmp11 = hx::IsNotNull( _hx_tmp12 );
            				}
            				else {
HXLINE( 336)					_hx_tmp11 = false;
            				}
HXDLIN( 336)				if (_hx_tmp11) {
HXLINE( 337)					this->zpp_inner->wake();
HXLINE( 338)					if (hx::IsNotNull( inbody4 )) {
HXLINE( 338)						inbody4->wake();
            					}
            				}
            			}
            		}
HXLINE( 342)		if (hx::IsNull( this->zpp_inner_zn->b4 )) {
HXLINE( 342)			return null();
            		}
            		else {
HXLINE( 342)			return this->zpp_inner_zn->b4->outer;
            		}
HXDLIN( 342)		return null();
            	}

HX_DEFINE_DYNAMIC_FUNC1(PulleyJoint_obj,set_body4,return )

 ::nape::geom::Vec2 PulleyJoint_obj::get_anchor1(){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_351_get_anchor1)
HXLINE( 352)		if (hx::IsNull( this->zpp_inner_zn->wrap_a1 )) {
HXLINE( 352)			this->zpp_inner_zn->setup_a1();
            		}
HXLINE( 353)		return this->zpp_inner_zn->wrap_a1;
            	}

HX_DEFINE_DYNAMIC_FUNC0(PulleyJoint_obj,get_anchor1,return )

 ::nape::geom::Vec2 PulleyJoint_obj::set_anchor1( ::nape::geom::Vec2 anchor1){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_355_set_anchor1)
HXLINE( 356)		{
HXLINE( 359)			bool _hx_tmp;
HXDLIN( 359)			if (hx::IsNotNull( anchor1 )) {
HXLINE( 359)				_hx_tmp = anchor1->zpp_disp;
            			}
            			else {
HXLINE( 359)				_hx_tmp = false;
            			}
HXDLIN( 359)			if (_hx_tmp) {
HXLINE( 359)				HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            			}
HXLINE( 363)			if (hx::IsNull( anchor1 )) {
HXLINE( 363)				HX_STACK_DO_THROW(((HX_("Error: Constraint::",cb,f5,02,d5) + HX_("anchor1",1c,ec,a1,02)) + HX_(" cannot be null",07,dc,5d,15)));
            			}
HXLINE( 365)			{
HXLINE( 365)				if (hx::IsNull( this->zpp_inner_zn->wrap_a1 )) {
HXLINE( 365)					this->zpp_inner_zn->setup_a1();
            				}
HXDLIN( 365)				 ::nape::geom::Vec2 _this = this->zpp_inner_zn->wrap_a1;
HXDLIN( 365)				bool _hx_tmp1;
HXDLIN( 365)				if (hx::IsNotNull( _this )) {
HXLINE( 365)					_hx_tmp1 = _this->zpp_disp;
            				}
            				else {
HXLINE( 365)					_hx_tmp1 = false;
            				}
HXDLIN( 365)				if (_hx_tmp1) {
HXLINE( 365)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 365)				bool _hx_tmp2;
HXDLIN( 365)				if (hx::IsNotNull( anchor1 )) {
HXLINE( 365)					_hx_tmp2 = anchor1->zpp_disp;
            				}
            				else {
HXLINE( 365)					_hx_tmp2 = false;
            				}
HXDLIN( 365)				if (_hx_tmp2) {
HXLINE( 365)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 365)				{
HXLINE( 365)					 ::zpp_nape::geom::ZPP_Vec2 _this1 = _this->zpp_inner;
HXDLIN( 365)					if (_this1->_immutable) {
HXLINE( 365)						HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            					}
HXDLIN( 365)					if (hx::IsNotNull( _this1->_isimmutable )) {
HXLINE( 365)						_this1->_isimmutable();
            					}
            				}
HXDLIN( 365)				if (hx::IsNull( anchor1 )) {
HXLINE( 365)					HX_STACK_DO_THROW(HX_("Error: Cannot assign null Vec2",95,15,46,66));
            				}
HXDLIN( 365)				bool _hx_tmp3;
HXDLIN( 365)				if (hx::IsNotNull( anchor1 )) {
HXLINE( 365)					_hx_tmp3 = anchor1->zpp_disp;
            				}
            				else {
HXLINE( 365)					_hx_tmp3 = false;
            				}
HXDLIN( 365)				if (_hx_tmp3) {
HXLINE( 365)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 365)				{
HXLINE( 365)					 ::zpp_nape::geom::ZPP_Vec2 _this2 = anchor1->zpp_inner;
HXDLIN( 365)					if (hx::IsNotNull( _this2->_validate )) {
HXLINE( 365)						_this2->_validate();
            					}
            				}
HXDLIN( 365)				Float x = anchor1->zpp_inner->x;
HXDLIN( 365)				bool _hx_tmp4;
HXDLIN( 365)				if (hx::IsNotNull( anchor1 )) {
HXLINE( 365)					_hx_tmp4 = anchor1->zpp_disp;
            				}
            				else {
HXLINE( 365)					_hx_tmp4 = false;
            				}
HXDLIN( 365)				if (_hx_tmp4) {
HXLINE( 365)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 365)				{
HXLINE( 365)					 ::zpp_nape::geom::ZPP_Vec2 _this3 = anchor1->zpp_inner;
HXDLIN( 365)					if (hx::IsNotNull( _this3->_validate )) {
HXLINE( 365)						_this3->_validate();
            					}
            				}
HXDLIN( 365)				Float y = anchor1->zpp_inner->y;
HXDLIN( 365)				bool _hx_tmp5;
HXDLIN( 365)				if (hx::IsNotNull( _this )) {
HXLINE( 365)					_hx_tmp5 = _this->zpp_disp;
            				}
            				else {
HXLINE( 365)					_hx_tmp5 = false;
            				}
HXDLIN( 365)				if (_hx_tmp5) {
HXLINE( 365)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 365)				{
HXLINE( 365)					 ::zpp_nape::geom::ZPP_Vec2 _this4 = _this->zpp_inner;
HXDLIN( 365)					if (_this4->_immutable) {
HXLINE( 365)						HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            					}
HXDLIN( 365)					if (hx::IsNotNull( _this4->_isimmutable )) {
HXLINE( 365)						_this4->_isimmutable();
            					}
            				}
HXDLIN( 365)				bool _hx_tmp6;
HXDLIN( 365)				if ((x == x)) {
HXLINE( 365)					_hx_tmp6 = (y != y);
            				}
            				else {
HXLINE( 365)					_hx_tmp6 = true;
            				}
HXDLIN( 365)				if (_hx_tmp6) {
HXLINE( 365)					HX_STACK_DO_THROW(HX_("Error: Vec2 components cannot be NaN",85,ba,d8,c1));
            				}
HXDLIN( 365)				bool _hx_tmp7;
HXDLIN( 365)				bool _hx_tmp8;
HXDLIN( 365)				if (hx::IsNotNull( _this )) {
HXLINE( 365)					_hx_tmp8 = _this->zpp_disp;
            				}
            				else {
HXLINE( 365)					_hx_tmp8 = false;
            				}
HXDLIN( 365)				if (_hx_tmp8) {
HXLINE( 365)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 365)				{
HXLINE( 365)					 ::zpp_nape::geom::ZPP_Vec2 _this5 = _this->zpp_inner;
HXDLIN( 365)					if (hx::IsNotNull( _this5->_validate )) {
HXLINE( 365)						_this5->_validate();
            					}
            				}
HXDLIN( 365)				if ((_this->zpp_inner->x == x)) {
HXLINE( 365)					bool _hx_tmp9;
HXDLIN( 365)					if (hx::IsNotNull( _this )) {
HXLINE( 365)						_hx_tmp9 = _this->zpp_disp;
            					}
            					else {
HXLINE( 365)						_hx_tmp9 = false;
            					}
HXDLIN( 365)					if (_hx_tmp9) {
HXLINE( 365)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 365)					{
HXLINE( 365)						 ::zpp_nape::geom::ZPP_Vec2 _this6 = _this->zpp_inner;
HXDLIN( 365)						if (hx::IsNotNull( _this6->_validate )) {
HXLINE( 365)							_this6->_validate();
            						}
            					}
HXDLIN( 365)					_hx_tmp7 = (_this->zpp_inner->y == y);
            				}
            				else {
HXLINE( 365)					_hx_tmp7 = false;
            				}
HXDLIN( 365)				if (!(_hx_tmp7)) {
HXLINE( 365)					{
HXLINE( 365)						_this->zpp_inner->x = x;
HXDLIN( 365)						_this->zpp_inner->y = y;
            					}
HXDLIN( 365)					{
HXLINE( 365)						 ::zpp_nape::geom::ZPP_Vec2 _this7 = _this->zpp_inner;
HXDLIN( 365)						if (hx::IsNotNull( _this7->_invalidate )) {
HXLINE( 365)							_this7->_invalidate(_this7);
            						}
            					}
            				}
HXDLIN( 365)				 ::nape::geom::Vec2 ret = _this;
HXDLIN( 365)				if (anchor1->zpp_inner->weak) {
HXLINE( 365)					bool _hx_tmp10;
HXDLIN( 365)					if (hx::IsNotNull( anchor1 )) {
HXLINE( 365)						_hx_tmp10 = anchor1->zpp_disp;
            					}
            					else {
HXLINE( 365)						_hx_tmp10 = false;
            					}
HXDLIN( 365)					if (_hx_tmp10) {
HXLINE( 365)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 365)					{
HXLINE( 365)						 ::zpp_nape::geom::ZPP_Vec2 _this8 = anchor1->zpp_inner;
HXDLIN( 365)						if (_this8->_immutable) {
HXLINE( 365)							HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            						}
HXDLIN( 365)						if (hx::IsNotNull( _this8->_isimmutable )) {
HXLINE( 365)							_this8->_isimmutable();
            						}
            					}
HXDLIN( 365)					if (anchor1->zpp_inner->_inuse) {
HXLINE( 365)						HX_STACK_DO_THROW(HX_("Error: This Vec2 is not disposable",b5,d1,d1,d8));
            					}
HXDLIN( 365)					 ::zpp_nape::geom::ZPP_Vec2 inner = anchor1->zpp_inner;
HXDLIN( 365)					anchor1->zpp_inner->outer = null();
HXDLIN( 365)					anchor1->zpp_inner = null();
HXDLIN( 365)					{
HXLINE( 365)						 ::nape::geom::Vec2 o = anchor1;
HXDLIN( 365)						o->zpp_pool = null();
HXDLIN( 365)						if (hx::IsNotNull( ::zpp_nape::util::ZPP_PubPool_obj::nextVec2 )) {
HXLINE( 365)							::zpp_nape::util::ZPP_PubPool_obj::nextVec2->zpp_pool = o;
            						}
            						else {
HXLINE( 365)							::zpp_nape::util::ZPP_PubPool_obj::poolVec2 = o;
            						}
HXDLIN( 365)						::zpp_nape::util::ZPP_PubPool_obj::nextVec2 = o;
HXDLIN( 365)						o->zpp_disp = true;
            					}
HXDLIN( 365)					{
HXLINE( 365)						 ::zpp_nape::geom::ZPP_Vec2 o1 = inner;
HXDLIN( 365)						{
HXLINE( 365)							if (hx::IsNotNull( o1->outer )) {
HXLINE( 365)								o1->outer->zpp_inner = null();
HXDLIN( 365)								o1->outer = null();
            							}
HXDLIN( 365)							o1->_isimmutable = null();
HXDLIN( 365)							o1->_validate = null();
HXDLIN( 365)							o1->_invalidate = null();
            						}
HXDLIN( 365)						o1->next = ::zpp_nape::geom::ZPP_Vec2_obj::zpp_pool;
HXDLIN( 365)						::zpp_nape::geom::ZPP_Vec2_obj::zpp_pool = o1;
            					}
            				}
            			}
            		}
HXLINE( 367)		if (hx::IsNull( this->zpp_inner_zn->wrap_a1 )) {
HXLINE( 367)			this->zpp_inner_zn->setup_a1();
            		}
HXDLIN( 367)		return this->zpp_inner_zn->wrap_a1;
            	}

HX_DEFINE_DYNAMIC_FUNC1(PulleyJoint_obj,set_anchor1,return )

 ::nape::geom::Vec2 PulleyJoint_obj::get_anchor2(){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_376_get_anchor2)
HXLINE( 377)		if (hx::IsNull( this->zpp_inner_zn->wrap_a2 )) {
HXLINE( 377)			this->zpp_inner_zn->setup_a2();
            		}
HXLINE( 378)		return this->zpp_inner_zn->wrap_a2;
            	}

HX_DEFINE_DYNAMIC_FUNC0(PulleyJoint_obj,get_anchor2,return )

 ::nape::geom::Vec2 PulleyJoint_obj::set_anchor2( ::nape::geom::Vec2 anchor2){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_380_set_anchor2)
HXLINE( 381)		{
HXLINE( 384)			bool _hx_tmp;
HXDLIN( 384)			if (hx::IsNotNull( anchor2 )) {
HXLINE( 384)				_hx_tmp = anchor2->zpp_disp;
            			}
            			else {
HXLINE( 384)				_hx_tmp = false;
            			}
HXDLIN( 384)			if (_hx_tmp) {
HXLINE( 384)				HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            			}
HXLINE( 388)			if (hx::IsNull( anchor2 )) {
HXLINE( 388)				HX_STACK_DO_THROW(((HX_("Error: Constraint::",cb,f5,02,d5) + HX_("anchor2",1d,ec,a1,02)) + HX_(" cannot be null",07,dc,5d,15)));
            			}
HXLINE( 390)			{
HXLINE( 390)				if (hx::IsNull( this->zpp_inner_zn->wrap_a2 )) {
HXLINE( 390)					this->zpp_inner_zn->setup_a2();
            				}
HXDLIN( 390)				 ::nape::geom::Vec2 _this = this->zpp_inner_zn->wrap_a2;
HXDLIN( 390)				bool _hx_tmp1;
HXDLIN( 390)				if (hx::IsNotNull( _this )) {
HXLINE( 390)					_hx_tmp1 = _this->zpp_disp;
            				}
            				else {
HXLINE( 390)					_hx_tmp1 = false;
            				}
HXDLIN( 390)				if (_hx_tmp1) {
HXLINE( 390)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 390)				bool _hx_tmp2;
HXDLIN( 390)				if (hx::IsNotNull( anchor2 )) {
HXLINE( 390)					_hx_tmp2 = anchor2->zpp_disp;
            				}
            				else {
HXLINE( 390)					_hx_tmp2 = false;
            				}
HXDLIN( 390)				if (_hx_tmp2) {
HXLINE( 390)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 390)				{
HXLINE( 390)					 ::zpp_nape::geom::ZPP_Vec2 _this1 = _this->zpp_inner;
HXDLIN( 390)					if (_this1->_immutable) {
HXLINE( 390)						HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            					}
HXDLIN( 390)					if (hx::IsNotNull( _this1->_isimmutable )) {
HXLINE( 390)						_this1->_isimmutable();
            					}
            				}
HXDLIN( 390)				if (hx::IsNull( anchor2 )) {
HXLINE( 390)					HX_STACK_DO_THROW(HX_("Error: Cannot assign null Vec2",95,15,46,66));
            				}
HXDLIN( 390)				bool _hx_tmp3;
HXDLIN( 390)				if (hx::IsNotNull( anchor2 )) {
HXLINE( 390)					_hx_tmp3 = anchor2->zpp_disp;
            				}
            				else {
HXLINE( 390)					_hx_tmp3 = false;
            				}
HXDLIN( 390)				if (_hx_tmp3) {
HXLINE( 390)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 390)				{
HXLINE( 390)					 ::zpp_nape::geom::ZPP_Vec2 _this2 = anchor2->zpp_inner;
HXDLIN( 390)					if (hx::IsNotNull( _this2->_validate )) {
HXLINE( 390)						_this2->_validate();
            					}
            				}
HXDLIN( 390)				Float x = anchor2->zpp_inner->x;
HXDLIN( 390)				bool _hx_tmp4;
HXDLIN( 390)				if (hx::IsNotNull( anchor2 )) {
HXLINE( 390)					_hx_tmp4 = anchor2->zpp_disp;
            				}
            				else {
HXLINE( 390)					_hx_tmp4 = false;
            				}
HXDLIN( 390)				if (_hx_tmp4) {
HXLINE( 390)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 390)				{
HXLINE( 390)					 ::zpp_nape::geom::ZPP_Vec2 _this3 = anchor2->zpp_inner;
HXDLIN( 390)					if (hx::IsNotNull( _this3->_validate )) {
HXLINE( 390)						_this3->_validate();
            					}
            				}
HXDLIN( 390)				Float y = anchor2->zpp_inner->y;
HXDLIN( 390)				bool _hx_tmp5;
HXDLIN( 390)				if (hx::IsNotNull( _this )) {
HXLINE( 390)					_hx_tmp5 = _this->zpp_disp;
            				}
            				else {
HXLINE( 390)					_hx_tmp5 = false;
            				}
HXDLIN( 390)				if (_hx_tmp5) {
HXLINE( 390)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 390)				{
HXLINE( 390)					 ::zpp_nape::geom::ZPP_Vec2 _this4 = _this->zpp_inner;
HXDLIN( 390)					if (_this4->_immutable) {
HXLINE( 390)						HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            					}
HXDLIN( 390)					if (hx::IsNotNull( _this4->_isimmutable )) {
HXLINE( 390)						_this4->_isimmutable();
            					}
            				}
HXDLIN( 390)				bool _hx_tmp6;
HXDLIN( 390)				if ((x == x)) {
HXLINE( 390)					_hx_tmp6 = (y != y);
            				}
            				else {
HXLINE( 390)					_hx_tmp6 = true;
            				}
HXDLIN( 390)				if (_hx_tmp6) {
HXLINE( 390)					HX_STACK_DO_THROW(HX_("Error: Vec2 components cannot be NaN",85,ba,d8,c1));
            				}
HXDLIN( 390)				bool _hx_tmp7;
HXDLIN( 390)				bool _hx_tmp8;
HXDLIN( 390)				if (hx::IsNotNull( _this )) {
HXLINE( 390)					_hx_tmp8 = _this->zpp_disp;
            				}
            				else {
HXLINE( 390)					_hx_tmp8 = false;
            				}
HXDLIN( 390)				if (_hx_tmp8) {
HXLINE( 390)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 390)				{
HXLINE( 390)					 ::zpp_nape::geom::ZPP_Vec2 _this5 = _this->zpp_inner;
HXDLIN( 390)					if (hx::IsNotNull( _this5->_validate )) {
HXLINE( 390)						_this5->_validate();
            					}
            				}
HXDLIN( 390)				if ((_this->zpp_inner->x == x)) {
HXLINE( 390)					bool _hx_tmp9;
HXDLIN( 390)					if (hx::IsNotNull( _this )) {
HXLINE( 390)						_hx_tmp9 = _this->zpp_disp;
            					}
            					else {
HXLINE( 390)						_hx_tmp9 = false;
            					}
HXDLIN( 390)					if (_hx_tmp9) {
HXLINE( 390)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 390)					{
HXLINE( 390)						 ::zpp_nape::geom::ZPP_Vec2 _this6 = _this->zpp_inner;
HXDLIN( 390)						if (hx::IsNotNull( _this6->_validate )) {
HXLINE( 390)							_this6->_validate();
            						}
            					}
HXDLIN( 390)					_hx_tmp7 = (_this->zpp_inner->y == y);
            				}
            				else {
HXLINE( 390)					_hx_tmp7 = false;
            				}
HXDLIN( 390)				if (!(_hx_tmp7)) {
HXLINE( 390)					{
HXLINE( 390)						_this->zpp_inner->x = x;
HXDLIN( 390)						_this->zpp_inner->y = y;
            					}
HXDLIN( 390)					{
HXLINE( 390)						 ::zpp_nape::geom::ZPP_Vec2 _this7 = _this->zpp_inner;
HXDLIN( 390)						if (hx::IsNotNull( _this7->_invalidate )) {
HXLINE( 390)							_this7->_invalidate(_this7);
            						}
            					}
            				}
HXDLIN( 390)				 ::nape::geom::Vec2 ret = _this;
HXDLIN( 390)				if (anchor2->zpp_inner->weak) {
HXLINE( 390)					bool _hx_tmp10;
HXDLIN( 390)					if (hx::IsNotNull( anchor2 )) {
HXLINE( 390)						_hx_tmp10 = anchor2->zpp_disp;
            					}
            					else {
HXLINE( 390)						_hx_tmp10 = false;
            					}
HXDLIN( 390)					if (_hx_tmp10) {
HXLINE( 390)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 390)					{
HXLINE( 390)						 ::zpp_nape::geom::ZPP_Vec2 _this8 = anchor2->zpp_inner;
HXDLIN( 390)						if (_this8->_immutable) {
HXLINE( 390)							HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            						}
HXDLIN( 390)						if (hx::IsNotNull( _this8->_isimmutable )) {
HXLINE( 390)							_this8->_isimmutable();
            						}
            					}
HXDLIN( 390)					if (anchor2->zpp_inner->_inuse) {
HXLINE( 390)						HX_STACK_DO_THROW(HX_("Error: This Vec2 is not disposable",b5,d1,d1,d8));
            					}
HXDLIN( 390)					 ::zpp_nape::geom::ZPP_Vec2 inner = anchor2->zpp_inner;
HXDLIN( 390)					anchor2->zpp_inner->outer = null();
HXDLIN( 390)					anchor2->zpp_inner = null();
HXDLIN( 390)					{
HXLINE( 390)						 ::nape::geom::Vec2 o = anchor2;
HXDLIN( 390)						o->zpp_pool = null();
HXDLIN( 390)						if (hx::IsNotNull( ::zpp_nape::util::ZPP_PubPool_obj::nextVec2 )) {
HXLINE( 390)							::zpp_nape::util::ZPP_PubPool_obj::nextVec2->zpp_pool = o;
            						}
            						else {
HXLINE( 390)							::zpp_nape::util::ZPP_PubPool_obj::poolVec2 = o;
            						}
HXDLIN( 390)						::zpp_nape::util::ZPP_PubPool_obj::nextVec2 = o;
HXDLIN( 390)						o->zpp_disp = true;
            					}
HXDLIN( 390)					{
HXLINE( 390)						 ::zpp_nape::geom::ZPP_Vec2 o1 = inner;
HXDLIN( 390)						{
HXLINE( 390)							if (hx::IsNotNull( o1->outer )) {
HXLINE( 390)								o1->outer->zpp_inner = null();
HXDLIN( 390)								o1->outer = null();
            							}
HXDLIN( 390)							o1->_isimmutable = null();
HXDLIN( 390)							o1->_validate = null();
HXDLIN( 390)							o1->_invalidate = null();
            						}
HXDLIN( 390)						o1->next = ::zpp_nape::geom::ZPP_Vec2_obj::zpp_pool;
HXDLIN( 390)						::zpp_nape::geom::ZPP_Vec2_obj::zpp_pool = o1;
            					}
            				}
            			}
            		}
HXLINE( 392)		if (hx::IsNull( this->zpp_inner_zn->wrap_a2 )) {
HXLINE( 392)			this->zpp_inner_zn->setup_a2();
            		}
HXDLIN( 392)		return this->zpp_inner_zn->wrap_a2;
            	}

HX_DEFINE_DYNAMIC_FUNC1(PulleyJoint_obj,set_anchor2,return )

 ::nape::geom::Vec2 PulleyJoint_obj::get_anchor3(){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_401_get_anchor3)
HXLINE( 402)		if (hx::IsNull( this->zpp_inner_zn->wrap_a3 )) {
HXLINE( 402)			this->zpp_inner_zn->setup_a3();
            		}
HXLINE( 403)		return this->zpp_inner_zn->wrap_a3;
            	}

HX_DEFINE_DYNAMIC_FUNC0(PulleyJoint_obj,get_anchor3,return )

 ::nape::geom::Vec2 PulleyJoint_obj::set_anchor3( ::nape::geom::Vec2 anchor3){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_405_set_anchor3)
HXLINE( 406)		{
HXLINE( 409)			bool _hx_tmp;
HXDLIN( 409)			if (hx::IsNotNull( anchor3 )) {
HXLINE( 409)				_hx_tmp = anchor3->zpp_disp;
            			}
            			else {
HXLINE( 409)				_hx_tmp = false;
            			}
HXDLIN( 409)			if (_hx_tmp) {
HXLINE( 409)				HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            			}
HXLINE( 413)			if (hx::IsNull( anchor3 )) {
HXLINE( 413)				HX_STACK_DO_THROW(((HX_("Error: Constraint::",cb,f5,02,d5) + HX_("anchor3",1e,ec,a1,02)) + HX_(" cannot be null",07,dc,5d,15)));
            			}
HXLINE( 415)			{
HXLINE( 415)				if (hx::IsNull( this->zpp_inner_zn->wrap_a3 )) {
HXLINE( 415)					this->zpp_inner_zn->setup_a3();
            				}
HXDLIN( 415)				 ::nape::geom::Vec2 _this = this->zpp_inner_zn->wrap_a3;
HXDLIN( 415)				bool _hx_tmp1;
HXDLIN( 415)				if (hx::IsNotNull( _this )) {
HXLINE( 415)					_hx_tmp1 = _this->zpp_disp;
            				}
            				else {
HXLINE( 415)					_hx_tmp1 = false;
            				}
HXDLIN( 415)				if (_hx_tmp1) {
HXLINE( 415)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 415)				bool _hx_tmp2;
HXDLIN( 415)				if (hx::IsNotNull( anchor3 )) {
HXLINE( 415)					_hx_tmp2 = anchor3->zpp_disp;
            				}
            				else {
HXLINE( 415)					_hx_tmp2 = false;
            				}
HXDLIN( 415)				if (_hx_tmp2) {
HXLINE( 415)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 415)				{
HXLINE( 415)					 ::zpp_nape::geom::ZPP_Vec2 _this1 = _this->zpp_inner;
HXDLIN( 415)					if (_this1->_immutable) {
HXLINE( 415)						HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            					}
HXDLIN( 415)					if (hx::IsNotNull( _this1->_isimmutable )) {
HXLINE( 415)						_this1->_isimmutable();
            					}
            				}
HXDLIN( 415)				if (hx::IsNull( anchor3 )) {
HXLINE( 415)					HX_STACK_DO_THROW(HX_("Error: Cannot assign null Vec2",95,15,46,66));
            				}
HXDLIN( 415)				bool _hx_tmp3;
HXDLIN( 415)				if (hx::IsNotNull( anchor3 )) {
HXLINE( 415)					_hx_tmp3 = anchor3->zpp_disp;
            				}
            				else {
HXLINE( 415)					_hx_tmp3 = false;
            				}
HXDLIN( 415)				if (_hx_tmp3) {
HXLINE( 415)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 415)				{
HXLINE( 415)					 ::zpp_nape::geom::ZPP_Vec2 _this2 = anchor3->zpp_inner;
HXDLIN( 415)					if (hx::IsNotNull( _this2->_validate )) {
HXLINE( 415)						_this2->_validate();
            					}
            				}
HXDLIN( 415)				Float x = anchor3->zpp_inner->x;
HXDLIN( 415)				bool _hx_tmp4;
HXDLIN( 415)				if (hx::IsNotNull( anchor3 )) {
HXLINE( 415)					_hx_tmp4 = anchor3->zpp_disp;
            				}
            				else {
HXLINE( 415)					_hx_tmp4 = false;
            				}
HXDLIN( 415)				if (_hx_tmp4) {
HXLINE( 415)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 415)				{
HXLINE( 415)					 ::zpp_nape::geom::ZPP_Vec2 _this3 = anchor3->zpp_inner;
HXDLIN( 415)					if (hx::IsNotNull( _this3->_validate )) {
HXLINE( 415)						_this3->_validate();
            					}
            				}
HXDLIN( 415)				Float y = anchor3->zpp_inner->y;
HXDLIN( 415)				bool _hx_tmp5;
HXDLIN( 415)				if (hx::IsNotNull( _this )) {
HXLINE( 415)					_hx_tmp5 = _this->zpp_disp;
            				}
            				else {
HXLINE( 415)					_hx_tmp5 = false;
            				}
HXDLIN( 415)				if (_hx_tmp5) {
HXLINE( 415)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 415)				{
HXLINE( 415)					 ::zpp_nape::geom::ZPP_Vec2 _this4 = _this->zpp_inner;
HXDLIN( 415)					if (_this4->_immutable) {
HXLINE( 415)						HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            					}
HXDLIN( 415)					if (hx::IsNotNull( _this4->_isimmutable )) {
HXLINE( 415)						_this4->_isimmutable();
            					}
            				}
HXDLIN( 415)				bool _hx_tmp6;
HXDLIN( 415)				if ((x == x)) {
HXLINE( 415)					_hx_tmp6 = (y != y);
            				}
            				else {
HXLINE( 415)					_hx_tmp6 = true;
            				}
HXDLIN( 415)				if (_hx_tmp6) {
HXLINE( 415)					HX_STACK_DO_THROW(HX_("Error: Vec2 components cannot be NaN",85,ba,d8,c1));
            				}
HXDLIN( 415)				bool _hx_tmp7;
HXDLIN( 415)				bool _hx_tmp8;
HXDLIN( 415)				if (hx::IsNotNull( _this )) {
HXLINE( 415)					_hx_tmp8 = _this->zpp_disp;
            				}
            				else {
HXLINE( 415)					_hx_tmp8 = false;
            				}
HXDLIN( 415)				if (_hx_tmp8) {
HXLINE( 415)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 415)				{
HXLINE( 415)					 ::zpp_nape::geom::ZPP_Vec2 _this5 = _this->zpp_inner;
HXDLIN( 415)					if (hx::IsNotNull( _this5->_validate )) {
HXLINE( 415)						_this5->_validate();
            					}
            				}
HXDLIN( 415)				if ((_this->zpp_inner->x == x)) {
HXLINE( 415)					bool _hx_tmp9;
HXDLIN( 415)					if (hx::IsNotNull( _this )) {
HXLINE( 415)						_hx_tmp9 = _this->zpp_disp;
            					}
            					else {
HXLINE( 415)						_hx_tmp9 = false;
            					}
HXDLIN( 415)					if (_hx_tmp9) {
HXLINE( 415)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 415)					{
HXLINE( 415)						 ::zpp_nape::geom::ZPP_Vec2 _this6 = _this->zpp_inner;
HXDLIN( 415)						if (hx::IsNotNull( _this6->_validate )) {
HXLINE( 415)							_this6->_validate();
            						}
            					}
HXDLIN( 415)					_hx_tmp7 = (_this->zpp_inner->y == y);
            				}
            				else {
HXLINE( 415)					_hx_tmp7 = false;
            				}
HXDLIN( 415)				if (!(_hx_tmp7)) {
HXLINE( 415)					{
HXLINE( 415)						_this->zpp_inner->x = x;
HXDLIN( 415)						_this->zpp_inner->y = y;
            					}
HXDLIN( 415)					{
HXLINE( 415)						 ::zpp_nape::geom::ZPP_Vec2 _this7 = _this->zpp_inner;
HXDLIN( 415)						if (hx::IsNotNull( _this7->_invalidate )) {
HXLINE( 415)							_this7->_invalidate(_this7);
            						}
            					}
            				}
HXDLIN( 415)				 ::nape::geom::Vec2 ret = _this;
HXDLIN( 415)				if (anchor3->zpp_inner->weak) {
HXLINE( 415)					bool _hx_tmp10;
HXDLIN( 415)					if (hx::IsNotNull( anchor3 )) {
HXLINE( 415)						_hx_tmp10 = anchor3->zpp_disp;
            					}
            					else {
HXLINE( 415)						_hx_tmp10 = false;
            					}
HXDLIN( 415)					if (_hx_tmp10) {
HXLINE( 415)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 415)					{
HXLINE( 415)						 ::zpp_nape::geom::ZPP_Vec2 _this8 = anchor3->zpp_inner;
HXDLIN( 415)						if (_this8->_immutable) {
HXLINE( 415)							HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            						}
HXDLIN( 415)						if (hx::IsNotNull( _this8->_isimmutable )) {
HXLINE( 415)							_this8->_isimmutable();
            						}
            					}
HXDLIN( 415)					if (anchor3->zpp_inner->_inuse) {
HXLINE( 415)						HX_STACK_DO_THROW(HX_("Error: This Vec2 is not disposable",b5,d1,d1,d8));
            					}
HXDLIN( 415)					 ::zpp_nape::geom::ZPP_Vec2 inner = anchor3->zpp_inner;
HXDLIN( 415)					anchor3->zpp_inner->outer = null();
HXDLIN( 415)					anchor3->zpp_inner = null();
HXDLIN( 415)					{
HXLINE( 415)						 ::nape::geom::Vec2 o = anchor3;
HXDLIN( 415)						o->zpp_pool = null();
HXDLIN( 415)						if (hx::IsNotNull( ::zpp_nape::util::ZPP_PubPool_obj::nextVec2 )) {
HXLINE( 415)							::zpp_nape::util::ZPP_PubPool_obj::nextVec2->zpp_pool = o;
            						}
            						else {
HXLINE( 415)							::zpp_nape::util::ZPP_PubPool_obj::poolVec2 = o;
            						}
HXDLIN( 415)						::zpp_nape::util::ZPP_PubPool_obj::nextVec2 = o;
HXDLIN( 415)						o->zpp_disp = true;
            					}
HXDLIN( 415)					{
HXLINE( 415)						 ::zpp_nape::geom::ZPP_Vec2 o1 = inner;
HXDLIN( 415)						{
HXLINE( 415)							if (hx::IsNotNull( o1->outer )) {
HXLINE( 415)								o1->outer->zpp_inner = null();
HXDLIN( 415)								o1->outer = null();
            							}
HXDLIN( 415)							o1->_isimmutable = null();
HXDLIN( 415)							o1->_validate = null();
HXDLIN( 415)							o1->_invalidate = null();
            						}
HXDLIN( 415)						o1->next = ::zpp_nape::geom::ZPP_Vec2_obj::zpp_pool;
HXDLIN( 415)						::zpp_nape::geom::ZPP_Vec2_obj::zpp_pool = o1;
            					}
            				}
            			}
            		}
HXLINE( 417)		if (hx::IsNull( this->zpp_inner_zn->wrap_a3 )) {
HXLINE( 417)			this->zpp_inner_zn->setup_a3();
            		}
HXDLIN( 417)		return this->zpp_inner_zn->wrap_a3;
            	}

HX_DEFINE_DYNAMIC_FUNC1(PulleyJoint_obj,set_anchor3,return )

 ::nape::geom::Vec2 PulleyJoint_obj::get_anchor4(){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_426_get_anchor4)
HXLINE( 427)		if (hx::IsNull( this->zpp_inner_zn->wrap_a4 )) {
HXLINE( 427)			this->zpp_inner_zn->setup_a4();
            		}
HXLINE( 428)		return this->zpp_inner_zn->wrap_a4;
            	}

HX_DEFINE_DYNAMIC_FUNC0(PulleyJoint_obj,get_anchor4,return )

 ::nape::geom::Vec2 PulleyJoint_obj::set_anchor4( ::nape::geom::Vec2 anchor4){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_430_set_anchor4)
HXLINE( 431)		{
HXLINE( 434)			bool _hx_tmp;
HXDLIN( 434)			if (hx::IsNotNull( anchor4 )) {
HXLINE( 434)				_hx_tmp = anchor4->zpp_disp;
            			}
            			else {
HXLINE( 434)				_hx_tmp = false;
            			}
HXDLIN( 434)			if (_hx_tmp) {
HXLINE( 434)				HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            			}
HXLINE( 438)			if (hx::IsNull( anchor4 )) {
HXLINE( 438)				HX_STACK_DO_THROW(((HX_("Error: Constraint::",cb,f5,02,d5) + HX_("anchor4",1f,ec,a1,02)) + HX_(" cannot be null",07,dc,5d,15)));
            			}
HXLINE( 440)			{
HXLINE( 440)				if (hx::IsNull( this->zpp_inner_zn->wrap_a4 )) {
HXLINE( 440)					this->zpp_inner_zn->setup_a4();
            				}
HXDLIN( 440)				 ::nape::geom::Vec2 _this = this->zpp_inner_zn->wrap_a4;
HXDLIN( 440)				bool _hx_tmp1;
HXDLIN( 440)				if (hx::IsNotNull( _this )) {
HXLINE( 440)					_hx_tmp1 = _this->zpp_disp;
            				}
            				else {
HXLINE( 440)					_hx_tmp1 = false;
            				}
HXDLIN( 440)				if (_hx_tmp1) {
HXLINE( 440)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 440)				bool _hx_tmp2;
HXDLIN( 440)				if (hx::IsNotNull( anchor4 )) {
HXLINE( 440)					_hx_tmp2 = anchor4->zpp_disp;
            				}
            				else {
HXLINE( 440)					_hx_tmp2 = false;
            				}
HXDLIN( 440)				if (_hx_tmp2) {
HXLINE( 440)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 440)				{
HXLINE( 440)					 ::zpp_nape::geom::ZPP_Vec2 _this1 = _this->zpp_inner;
HXDLIN( 440)					if (_this1->_immutable) {
HXLINE( 440)						HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            					}
HXDLIN( 440)					if (hx::IsNotNull( _this1->_isimmutable )) {
HXLINE( 440)						_this1->_isimmutable();
            					}
            				}
HXDLIN( 440)				if (hx::IsNull( anchor4 )) {
HXLINE( 440)					HX_STACK_DO_THROW(HX_("Error: Cannot assign null Vec2",95,15,46,66));
            				}
HXDLIN( 440)				bool _hx_tmp3;
HXDLIN( 440)				if (hx::IsNotNull( anchor4 )) {
HXLINE( 440)					_hx_tmp3 = anchor4->zpp_disp;
            				}
            				else {
HXLINE( 440)					_hx_tmp3 = false;
            				}
HXDLIN( 440)				if (_hx_tmp3) {
HXLINE( 440)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 440)				{
HXLINE( 440)					 ::zpp_nape::geom::ZPP_Vec2 _this2 = anchor4->zpp_inner;
HXDLIN( 440)					if (hx::IsNotNull( _this2->_validate )) {
HXLINE( 440)						_this2->_validate();
            					}
            				}
HXDLIN( 440)				Float x = anchor4->zpp_inner->x;
HXDLIN( 440)				bool _hx_tmp4;
HXDLIN( 440)				if (hx::IsNotNull( anchor4 )) {
HXLINE( 440)					_hx_tmp4 = anchor4->zpp_disp;
            				}
            				else {
HXLINE( 440)					_hx_tmp4 = false;
            				}
HXDLIN( 440)				if (_hx_tmp4) {
HXLINE( 440)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 440)				{
HXLINE( 440)					 ::zpp_nape::geom::ZPP_Vec2 _this3 = anchor4->zpp_inner;
HXDLIN( 440)					if (hx::IsNotNull( _this3->_validate )) {
HXLINE( 440)						_this3->_validate();
            					}
            				}
HXDLIN( 440)				Float y = anchor4->zpp_inner->y;
HXDLIN( 440)				bool _hx_tmp5;
HXDLIN( 440)				if (hx::IsNotNull( _this )) {
HXLINE( 440)					_hx_tmp5 = _this->zpp_disp;
            				}
            				else {
HXLINE( 440)					_hx_tmp5 = false;
            				}
HXDLIN( 440)				if (_hx_tmp5) {
HXLINE( 440)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 440)				{
HXLINE( 440)					 ::zpp_nape::geom::ZPP_Vec2 _this4 = _this->zpp_inner;
HXDLIN( 440)					if (_this4->_immutable) {
HXLINE( 440)						HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            					}
HXDLIN( 440)					if (hx::IsNotNull( _this4->_isimmutable )) {
HXLINE( 440)						_this4->_isimmutable();
            					}
            				}
HXDLIN( 440)				bool _hx_tmp6;
HXDLIN( 440)				if ((x == x)) {
HXLINE( 440)					_hx_tmp6 = (y != y);
            				}
            				else {
HXLINE( 440)					_hx_tmp6 = true;
            				}
HXDLIN( 440)				if (_hx_tmp6) {
HXLINE( 440)					HX_STACK_DO_THROW(HX_("Error: Vec2 components cannot be NaN",85,ba,d8,c1));
            				}
HXDLIN( 440)				bool _hx_tmp7;
HXDLIN( 440)				bool _hx_tmp8;
HXDLIN( 440)				if (hx::IsNotNull( _this )) {
HXLINE( 440)					_hx_tmp8 = _this->zpp_disp;
            				}
            				else {
HXLINE( 440)					_hx_tmp8 = false;
            				}
HXDLIN( 440)				if (_hx_tmp8) {
HXLINE( 440)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 440)				{
HXLINE( 440)					 ::zpp_nape::geom::ZPP_Vec2 _this5 = _this->zpp_inner;
HXDLIN( 440)					if (hx::IsNotNull( _this5->_validate )) {
HXLINE( 440)						_this5->_validate();
            					}
            				}
HXDLIN( 440)				if ((_this->zpp_inner->x == x)) {
HXLINE( 440)					bool _hx_tmp9;
HXDLIN( 440)					if (hx::IsNotNull( _this )) {
HXLINE( 440)						_hx_tmp9 = _this->zpp_disp;
            					}
            					else {
HXLINE( 440)						_hx_tmp9 = false;
            					}
HXDLIN( 440)					if (_hx_tmp9) {
HXLINE( 440)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 440)					{
HXLINE( 440)						 ::zpp_nape::geom::ZPP_Vec2 _this6 = _this->zpp_inner;
HXDLIN( 440)						if (hx::IsNotNull( _this6->_validate )) {
HXLINE( 440)							_this6->_validate();
            						}
            					}
HXDLIN( 440)					_hx_tmp7 = (_this->zpp_inner->y == y);
            				}
            				else {
HXLINE( 440)					_hx_tmp7 = false;
            				}
HXDLIN( 440)				if (!(_hx_tmp7)) {
HXLINE( 440)					{
HXLINE( 440)						_this->zpp_inner->x = x;
HXDLIN( 440)						_this->zpp_inner->y = y;
            					}
HXDLIN( 440)					{
HXLINE( 440)						 ::zpp_nape::geom::ZPP_Vec2 _this7 = _this->zpp_inner;
HXDLIN( 440)						if (hx::IsNotNull( _this7->_invalidate )) {
HXLINE( 440)							_this7->_invalidate(_this7);
            						}
            					}
            				}
HXDLIN( 440)				 ::nape::geom::Vec2 ret = _this;
HXDLIN( 440)				if (anchor4->zpp_inner->weak) {
HXLINE( 440)					bool _hx_tmp10;
HXDLIN( 440)					if (hx::IsNotNull( anchor4 )) {
HXLINE( 440)						_hx_tmp10 = anchor4->zpp_disp;
            					}
            					else {
HXLINE( 440)						_hx_tmp10 = false;
            					}
HXDLIN( 440)					if (_hx_tmp10) {
HXLINE( 440)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 440)					{
HXLINE( 440)						 ::zpp_nape::geom::ZPP_Vec2 _this8 = anchor4->zpp_inner;
HXDLIN( 440)						if (_this8->_immutable) {
HXLINE( 440)							HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            						}
HXDLIN( 440)						if (hx::IsNotNull( _this8->_isimmutable )) {
HXLINE( 440)							_this8->_isimmutable();
            						}
            					}
HXDLIN( 440)					if (anchor4->zpp_inner->_inuse) {
HXLINE( 440)						HX_STACK_DO_THROW(HX_("Error: This Vec2 is not disposable",b5,d1,d1,d8));
            					}
HXDLIN( 440)					 ::zpp_nape::geom::ZPP_Vec2 inner = anchor4->zpp_inner;
HXDLIN( 440)					anchor4->zpp_inner->outer = null();
HXDLIN( 440)					anchor4->zpp_inner = null();
HXDLIN( 440)					{
HXLINE( 440)						 ::nape::geom::Vec2 o = anchor4;
HXDLIN( 440)						o->zpp_pool = null();
HXDLIN( 440)						if (hx::IsNotNull( ::zpp_nape::util::ZPP_PubPool_obj::nextVec2 )) {
HXLINE( 440)							::zpp_nape::util::ZPP_PubPool_obj::nextVec2->zpp_pool = o;
            						}
            						else {
HXLINE( 440)							::zpp_nape::util::ZPP_PubPool_obj::poolVec2 = o;
            						}
HXDLIN( 440)						::zpp_nape::util::ZPP_PubPool_obj::nextVec2 = o;
HXDLIN( 440)						o->zpp_disp = true;
            					}
HXDLIN( 440)					{
HXLINE( 440)						 ::zpp_nape::geom::ZPP_Vec2 o1 = inner;
HXDLIN( 440)						{
HXLINE( 440)							if (hx::IsNotNull( o1->outer )) {
HXLINE( 440)								o1->outer->zpp_inner = null();
HXDLIN( 440)								o1->outer = null();
            							}
HXDLIN( 440)							o1->_isimmutable = null();
HXDLIN( 440)							o1->_validate = null();
HXDLIN( 440)							o1->_invalidate = null();
            						}
HXDLIN( 440)						o1->next = ::zpp_nape::geom::ZPP_Vec2_obj::zpp_pool;
HXDLIN( 440)						::zpp_nape::geom::ZPP_Vec2_obj::zpp_pool = o1;
            					}
            				}
            			}
            		}
HXLINE( 442)		if (hx::IsNull( this->zpp_inner_zn->wrap_a4 )) {
HXLINE( 442)			this->zpp_inner_zn->setup_a4();
            		}
HXDLIN( 442)		return this->zpp_inner_zn->wrap_a4;
            	}

HX_DEFINE_DYNAMIC_FUNC1(PulleyJoint_obj,set_anchor4,return )

Float PulleyJoint_obj::get_jointMin(){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_452_get_jointMin)
HXDLIN( 452)		return this->zpp_inner_zn->jointMin;
            	}

HX_DEFINE_DYNAMIC_FUNC0(PulleyJoint_obj,get_jointMin,return )

Float PulleyJoint_obj::set_jointMin(Float jointMin){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_454_set_jointMin)
HXLINE( 455)		{
HXLINE( 456)			this->zpp_inner->immutable_midstep(HX_("PulleyJoint::jointMin",59,4f,c9,70));
HXLINE( 458)			if ((jointMin != jointMin)) {
HXLINE( 459)				HX_STACK_DO_THROW(HX_("Error: PulleyJoint::jointMin cannot be NaN",a6,94,5b,4c));
            			}
HXLINE( 461)			if ((jointMin < 0)) {
HXLINE( 462)				HX_STACK_DO_THROW(HX_("Error: PulleyJoint::jointMin must be >= 0",6a,47,db,7e));
            			}
HXLINE( 465)			if ((this->zpp_inner_zn->jointMin != jointMin)) {
HXLINE( 466)				this->zpp_inner_zn->jointMin = jointMin;
HXLINE( 467)				this->zpp_inner->wake();
            			}
            		}
HXLINE( 470)		return this->zpp_inner_zn->jointMin;
            	}

HX_DEFINE_DYNAMIC_FUNC1(PulleyJoint_obj,set_jointMin,return )

Float PulleyJoint_obj::get_jointMax(){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_480_get_jointMax)
HXDLIN( 480)		return this->zpp_inner_zn->jointMax;
            	}

HX_DEFINE_DYNAMIC_FUNC0(PulleyJoint_obj,get_jointMax,return )

Float PulleyJoint_obj::set_jointMax(Float jointMax){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_482_set_jointMax)
HXLINE( 483)		{
HXLINE( 484)			this->zpp_inner->immutable_midstep(HX_("PulleyJoint::jointMax",6b,48,c9,70));
HXLINE( 486)			if ((jointMax != jointMax)) {
HXLINE( 487)				HX_STACK_DO_THROW(HX_("Error: PulleyJoint::jointMax cannot be NaN",38,89,ae,e4));
            			}
HXLINE( 489)			if ((jointMax < 0)) {
HXLINE( 490)				HX_STACK_DO_THROW(HX_("Error: PulleyJoint::jointMax must be >= 0",18,8b,c3,71));
            			}
HXLINE( 493)			if ((this->zpp_inner_zn->jointMax != jointMax)) {
HXLINE( 494)				this->zpp_inner_zn->jointMax = jointMax;
HXLINE( 495)				this->zpp_inner->wake();
            			}
            		}
HXLINE( 498)		return this->zpp_inner_zn->jointMax;
            	}

HX_DEFINE_DYNAMIC_FUNC1(PulleyJoint_obj,set_jointMax,return )

Float PulleyJoint_obj::get_ratio(){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_508_get_ratio)
HXDLIN( 508)		return this->zpp_inner_zn->ratio;
            	}

HX_DEFINE_DYNAMIC_FUNC0(PulleyJoint_obj,get_ratio,return )

Float PulleyJoint_obj::set_ratio(Float ratio){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_510_set_ratio)
HXLINE( 511)		{
HXLINE( 512)			this->zpp_inner->immutable_midstep(HX_("PulleyJoint::ratio",7a,cf,1b,11));
HXLINE( 514)			if ((ratio != ratio)) {
HXLINE( 515)				HX_STACK_DO_THROW(HX_("Error: PulleyJoint::ratio cannot be NaN",63,48,fa,b0));
            			}
HXLINE( 518)			if ((this->zpp_inner_zn->ratio != ratio)) {
HXLINE( 519)				this->zpp_inner_zn->ratio = ratio;
HXLINE( 520)				this->zpp_inner->wake();
            			}
            		}
HXLINE( 523)		return this->zpp_inner_zn->ratio;
            	}

HX_DEFINE_DYNAMIC_FUNC1(PulleyJoint_obj,set_ratio,return )

bool PulleyJoint_obj::isSlack(){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_536_isSlack)
HXLINE( 538)		bool _hx_tmp;
HXDLIN( 538)		bool _hx_tmp1;
HXDLIN( 538)		bool _hx_tmp2;
HXDLIN( 538)		 ::nape::phys::Body _hx_tmp3;
HXDLIN( 538)		if (hx::IsNull( this->zpp_inner_zn->b1 )) {
HXLINE( 538)			_hx_tmp3 = null();
            		}
            		else {
HXLINE( 538)			_hx_tmp3 = this->zpp_inner_zn->b1->outer;
            		}
HXDLIN( 538)		if (hx::IsNotNull( _hx_tmp3 )) {
HXLINE( 538)			 ::nape::phys::Body _hx_tmp4;
HXDLIN( 538)			if (hx::IsNull( this->zpp_inner_zn->b2 )) {
HXLINE( 538)				_hx_tmp4 = null();
            			}
            			else {
HXLINE( 538)				_hx_tmp4 = this->zpp_inner_zn->b2->outer;
            			}
HXDLIN( 538)			_hx_tmp2 = hx::IsNull( _hx_tmp4 );
            		}
            		else {
HXLINE( 538)			_hx_tmp2 = true;
            		}
HXDLIN( 538)		if (!(_hx_tmp2)) {
HXLINE( 538)			 ::nape::phys::Body _hx_tmp5;
HXDLIN( 538)			if (hx::IsNull( this->zpp_inner_zn->b3 )) {
HXLINE( 538)				_hx_tmp5 = null();
            			}
            			else {
HXLINE( 538)				_hx_tmp5 = this->zpp_inner_zn->b3->outer;
            			}
HXDLIN( 538)			_hx_tmp1 = hx::IsNull( _hx_tmp5 );
            		}
            		else {
HXLINE( 538)			_hx_tmp1 = true;
            		}
HXDLIN( 538)		if (!(_hx_tmp1)) {
HXLINE( 538)			 ::nape::phys::Body _hx_tmp6;
HXDLIN( 538)			if (hx::IsNull( this->zpp_inner_zn->b4 )) {
HXLINE( 538)				_hx_tmp6 = null();
            			}
            			else {
HXLINE( 538)				_hx_tmp6 = this->zpp_inner_zn->b4->outer;
            			}
HXDLIN( 538)			_hx_tmp = hx::IsNull( _hx_tmp6 );
            		}
            		else {
HXLINE( 538)			_hx_tmp = true;
            		}
HXDLIN( 538)		if (_hx_tmp) {
HXLINE( 539)			HX_STACK_DO_THROW(HX_("Error: Cannot compute slack for PulleyJoint if either body is null.",e9,7c,ad,f9));
            		}
HXLINE( 542)		return this->zpp_inner_zn->slack;
            	}

HX_DEFINE_DYNAMIC_FUNC0(PulleyJoint_obj,isSlack,return )

 ::nape::geom::MatMN PulleyJoint_obj::impulse(){
            	HX_GC_STACKFRAME(&_hx_pos_7d77866d564ee991_592_impulse)
HXLINE( 593)		 ::nape::geom::MatMN ret =  ::nape::geom::MatMN_obj::__alloc( HX_CTX ,1,1);
HXLINE( 594)		{
HXLINE( 594)			bool _hx_tmp;
HXDLIN( 594)			if ((0 < ret->zpp_inner->m)) {
HXLINE( 594)				_hx_tmp = (0 >= ret->zpp_inner->n);
            			}
            			else {
HXLINE( 594)				_hx_tmp = true;
            			}
HXDLIN( 594)			if (_hx_tmp) {
HXLINE( 594)				HX_STACK_DO_THROW(HX_("Error: MatMN indices out of range",cc,72,58,e6));
            			}
HXDLIN( 594)			ret->zpp_inner->x[(0 * ret->zpp_inner->n)] = this->zpp_inner_zn->jAcc;
            		}
HXLINE( 595)		return ret;
            	}

 ::nape::geom::Vec3 PulleyJoint_obj::bodyImpulse( ::nape::phys::Body body){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_600_bodyImpulse)
HXLINE( 602)		if (hx::IsNull( body )) {
HXLINE( 603)			HX_STACK_DO_THROW(HX_("Error: Cannot evaluate impulse on null body",9d,b5,dc,16));
            		}
HXLINE( 605)		bool _hx_tmp;
HXDLIN( 605)		bool _hx_tmp1;
HXDLIN( 605)		bool _hx_tmp2;
HXDLIN( 605)		 ::nape::phys::Body _hx_tmp3;
HXDLIN( 605)		if (hx::IsNull( this->zpp_inner_zn->b1 )) {
HXLINE( 605)			_hx_tmp3 = null();
            		}
            		else {
HXLINE( 605)			_hx_tmp3 = this->zpp_inner_zn->b1->outer;
            		}
HXDLIN( 605)		if (hx::IsNotEq( body,_hx_tmp3 )) {
HXLINE( 605)			 ::nape::phys::Body _hx_tmp4;
HXDLIN( 605)			if (hx::IsNull( this->zpp_inner_zn->b2 )) {
HXLINE( 605)				_hx_tmp4 = null();
            			}
            			else {
HXLINE( 605)				_hx_tmp4 = this->zpp_inner_zn->b2->outer;
            			}
HXDLIN( 605)			_hx_tmp2 = hx::IsNotEq( body,_hx_tmp4 );
            		}
            		else {
HXLINE( 605)			_hx_tmp2 = false;
            		}
HXDLIN( 605)		if (_hx_tmp2) {
HXLINE( 605)			 ::nape::phys::Body _hx_tmp5;
HXDLIN( 605)			if (hx::IsNull( this->zpp_inner_zn->b3 )) {
HXLINE( 605)				_hx_tmp5 = null();
            			}
            			else {
HXLINE( 605)				_hx_tmp5 = this->zpp_inner_zn->b3->outer;
            			}
HXDLIN( 605)			_hx_tmp1 = hx::IsNotEq( body,_hx_tmp5 );
            		}
            		else {
HXLINE( 605)			_hx_tmp1 = false;
            		}
HXDLIN( 605)		if (_hx_tmp1) {
HXLINE( 605)			 ::nape::phys::Body _hx_tmp6;
HXDLIN( 605)			if (hx::IsNull( this->zpp_inner_zn->b4 )) {
HXLINE( 605)				_hx_tmp6 = null();
            			}
            			else {
HXLINE( 605)				_hx_tmp6 = this->zpp_inner_zn->b4->outer;
            			}
HXDLIN( 605)			_hx_tmp = hx::IsNotEq( body,_hx_tmp6 );
            		}
            		else {
HXLINE( 605)			_hx_tmp = false;
            		}
HXDLIN( 605)		if (_hx_tmp) {
HXLINE( 606)			HX_STACK_DO_THROW(HX_("Error: Body is not linked to this constraint",2e,e5,48,bf));
            		}
HXLINE( 609)		if (!(this->zpp_inner->active)) {
HXLINE( 610)			return ::nape::geom::Vec3_obj::get(null(),null(),null());
            		}
            		else {
HXLINE( 613)			return this->zpp_inner_zn->bodyImpulse(body->zpp_inner);
            		}
HXLINE( 609)		return null();
            	}

void PulleyJoint_obj::visitBodies( ::Dynamic lambda){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_619_visitBodies)
HXLINE( 620)		 ::nape::phys::Body _hx_tmp;
HXDLIN( 620)		if (hx::IsNull( this->zpp_inner_zn->b1 )) {
HXLINE( 620)			_hx_tmp = null();
            		}
            		else {
HXLINE( 620)			_hx_tmp = this->zpp_inner_zn->b1->outer;
            		}
HXDLIN( 620)		if (hx::IsNotNull( _hx_tmp )) {
HXLINE( 621)			 ::nape::phys::Body _hx_tmp1;
HXDLIN( 621)			if (hx::IsNull( this->zpp_inner_zn->b1 )) {
HXLINE( 621)				_hx_tmp1 = null();
            			}
            			else {
HXLINE( 621)				_hx_tmp1 = this->zpp_inner_zn->b1->outer;
            			}
HXDLIN( 621)			lambda(_hx_tmp1);
            		}
HXLINE( 623)		bool _hx_tmp2;
HXDLIN( 623)		 ::nape::phys::Body _hx_tmp3;
HXDLIN( 623)		if (hx::IsNull( this->zpp_inner_zn->b2 )) {
HXLINE( 623)			_hx_tmp3 = null();
            		}
            		else {
HXLINE( 623)			_hx_tmp3 = this->zpp_inner_zn->b2->outer;
            		}
HXDLIN( 623)		if (hx::IsNotNull( _hx_tmp3 )) {
HXLINE( 623)			 ::nape::phys::Body _hx_tmp4;
HXDLIN( 623)			if (hx::IsNull( this->zpp_inner_zn->b2 )) {
HXLINE( 623)				_hx_tmp4 = null();
            			}
            			else {
HXLINE( 623)				_hx_tmp4 = this->zpp_inner_zn->b2->outer;
            			}
HXDLIN( 623)			 ::nape::phys::Body _hx_tmp5;
HXDLIN( 623)			if (hx::IsNull( this->zpp_inner_zn->b1 )) {
HXLINE( 623)				_hx_tmp5 = null();
            			}
            			else {
HXLINE( 623)				_hx_tmp5 = this->zpp_inner_zn->b1->outer;
            			}
HXDLIN( 623)			_hx_tmp2 = hx::IsNotEq( _hx_tmp4,_hx_tmp5 );
            		}
            		else {
HXLINE( 623)			_hx_tmp2 = false;
            		}
HXDLIN( 623)		if (_hx_tmp2) {
HXLINE( 624)			 ::nape::phys::Body _hx_tmp6;
HXDLIN( 624)			if (hx::IsNull( this->zpp_inner_zn->b2 )) {
HXLINE( 624)				_hx_tmp6 = null();
            			}
            			else {
HXLINE( 624)				_hx_tmp6 = this->zpp_inner_zn->b2->outer;
            			}
HXDLIN( 624)			lambda(_hx_tmp6);
            		}
HXLINE( 626)		bool _hx_tmp7;
HXDLIN( 626)		bool _hx_tmp8;
HXDLIN( 626)		 ::nape::phys::Body _hx_tmp9;
HXDLIN( 626)		if (hx::IsNull( this->zpp_inner_zn->b3 )) {
HXLINE( 626)			_hx_tmp9 = null();
            		}
            		else {
HXLINE( 626)			_hx_tmp9 = this->zpp_inner_zn->b3->outer;
            		}
HXDLIN( 626)		if (hx::IsNotNull( _hx_tmp9 )) {
HXLINE( 626)			 ::nape::phys::Body _hx_tmp10;
HXDLIN( 626)			if (hx::IsNull( this->zpp_inner_zn->b3 )) {
HXLINE( 626)				_hx_tmp10 = null();
            			}
            			else {
HXLINE( 626)				_hx_tmp10 = this->zpp_inner_zn->b3->outer;
            			}
HXDLIN( 626)			 ::nape::phys::Body _hx_tmp11;
HXDLIN( 626)			if (hx::IsNull( this->zpp_inner_zn->b1 )) {
HXLINE( 626)				_hx_tmp11 = null();
            			}
            			else {
HXLINE( 626)				_hx_tmp11 = this->zpp_inner_zn->b1->outer;
            			}
HXDLIN( 626)			_hx_tmp8 = hx::IsNotEq( _hx_tmp10,_hx_tmp11 );
            		}
            		else {
HXLINE( 626)			_hx_tmp8 = false;
            		}
HXDLIN( 626)		if (_hx_tmp8) {
HXLINE( 626)			 ::nape::phys::Body _hx_tmp12;
HXDLIN( 626)			if (hx::IsNull( this->zpp_inner_zn->b3 )) {
HXLINE( 626)				_hx_tmp12 = null();
            			}
            			else {
HXLINE( 626)				_hx_tmp12 = this->zpp_inner_zn->b3->outer;
            			}
HXDLIN( 626)			 ::nape::phys::Body _hx_tmp13;
HXDLIN( 626)			if (hx::IsNull( this->zpp_inner_zn->b2 )) {
HXLINE( 626)				_hx_tmp13 = null();
            			}
            			else {
HXLINE( 626)				_hx_tmp13 = this->zpp_inner_zn->b2->outer;
            			}
HXDLIN( 626)			_hx_tmp7 = hx::IsNotEq( _hx_tmp12,_hx_tmp13 );
            		}
            		else {
HXLINE( 626)			_hx_tmp7 = false;
            		}
HXDLIN( 626)		if (_hx_tmp7) {
HXLINE( 627)			 ::nape::phys::Body _hx_tmp14;
HXDLIN( 627)			if (hx::IsNull( this->zpp_inner_zn->b3 )) {
HXLINE( 627)				_hx_tmp14 = null();
            			}
            			else {
HXLINE( 627)				_hx_tmp14 = this->zpp_inner_zn->b3->outer;
            			}
HXDLIN( 627)			lambda(_hx_tmp14);
            		}
HXLINE( 629)		bool _hx_tmp15;
HXDLIN( 629)		bool _hx_tmp16;
HXDLIN( 629)		bool _hx_tmp17;
HXDLIN( 629)		 ::nape::phys::Body _hx_tmp18;
HXDLIN( 629)		if (hx::IsNull( this->zpp_inner_zn->b4 )) {
HXLINE( 629)			_hx_tmp18 = null();
            		}
            		else {
HXLINE( 629)			_hx_tmp18 = this->zpp_inner_zn->b4->outer;
            		}
HXDLIN( 629)		if (hx::IsNotNull( _hx_tmp18 )) {
HXLINE( 629)			 ::nape::phys::Body _hx_tmp19;
HXDLIN( 629)			if (hx::IsNull( this->zpp_inner_zn->b4 )) {
HXLINE( 629)				_hx_tmp19 = null();
            			}
            			else {
HXLINE( 629)				_hx_tmp19 = this->zpp_inner_zn->b4->outer;
            			}
HXDLIN( 629)			 ::nape::phys::Body _hx_tmp20;
HXDLIN( 629)			if (hx::IsNull( this->zpp_inner_zn->b1 )) {
HXLINE( 629)				_hx_tmp20 = null();
            			}
            			else {
HXLINE( 629)				_hx_tmp20 = this->zpp_inner_zn->b1->outer;
            			}
HXDLIN( 629)			_hx_tmp17 = hx::IsNotEq( _hx_tmp19,_hx_tmp20 );
            		}
            		else {
HXLINE( 629)			_hx_tmp17 = false;
            		}
HXDLIN( 629)		if (_hx_tmp17) {
HXLINE( 629)			 ::nape::phys::Body _hx_tmp21;
HXDLIN( 629)			if (hx::IsNull( this->zpp_inner_zn->b4 )) {
HXLINE( 629)				_hx_tmp21 = null();
            			}
            			else {
HXLINE( 629)				_hx_tmp21 = this->zpp_inner_zn->b4->outer;
            			}
HXDLIN( 629)			 ::nape::phys::Body _hx_tmp22;
HXDLIN( 629)			if (hx::IsNull( this->zpp_inner_zn->b2 )) {
HXLINE( 629)				_hx_tmp22 = null();
            			}
            			else {
HXLINE( 629)				_hx_tmp22 = this->zpp_inner_zn->b2->outer;
            			}
HXDLIN( 629)			_hx_tmp16 = hx::IsNotEq( _hx_tmp21,_hx_tmp22 );
            		}
            		else {
HXLINE( 629)			_hx_tmp16 = false;
            		}
HXDLIN( 629)		if (_hx_tmp16) {
HXLINE( 629)			 ::nape::phys::Body _hx_tmp23;
HXDLIN( 629)			if (hx::IsNull( this->zpp_inner_zn->b4 )) {
HXLINE( 629)				_hx_tmp23 = null();
            			}
            			else {
HXLINE( 629)				_hx_tmp23 = this->zpp_inner_zn->b4->outer;
            			}
HXDLIN( 629)			 ::nape::phys::Body _hx_tmp24;
HXDLIN( 629)			if (hx::IsNull( this->zpp_inner_zn->b3 )) {
HXLINE( 629)				_hx_tmp24 = null();
            			}
            			else {
HXLINE( 629)				_hx_tmp24 = this->zpp_inner_zn->b3->outer;
            			}
HXDLIN( 629)			_hx_tmp15 = hx::IsNotEq( _hx_tmp23,_hx_tmp24 );
            		}
            		else {
HXLINE( 629)			_hx_tmp15 = false;
            		}
HXDLIN( 629)		if (_hx_tmp15) {
HXLINE( 630)			 ::nape::phys::Body _hx_tmp25;
HXDLIN( 630)			if (hx::IsNull( this->zpp_inner_zn->b4 )) {
HXLINE( 630)				_hx_tmp25 = null();
            			}
            			else {
HXLINE( 630)				_hx_tmp25 = this->zpp_inner_zn->b4->outer;
            			}
HXDLIN( 630)			lambda(_hx_tmp25);
            		}
            	}

hx::ObjectPtr< PulleyJoint_obj > PulleyJoint_obj::__new( ::nape::phys::Body body1, ::nape::phys::Body body2, ::nape::phys::Body body3, ::nape::phys::Body body4, ::nape::geom::Vec2 anchor1, ::nape::geom::Vec2 anchor2, ::nape::geom::Vec2 anchor3, ::nape::geom::Vec2 anchor4,Float jointMin,Float jointMax,hx::Null< Float >  __o_ratio) {
	hx::ObjectPtr< PulleyJoint_obj > __this = new PulleyJoint_obj();
	__this->__construct(body1,body2,body3,body4,anchor1,anchor2,anchor3,anchor4,jointMin,jointMax,__o_ratio);
	return __this;
}

hx::ObjectPtr< PulleyJoint_obj > PulleyJoint_obj::__alloc(hx::Ctx *_hx_ctx, ::nape::phys::Body body1, ::nape::phys::Body body2, ::nape::phys::Body body3, ::nape::phys::Body body4, ::nape::geom::Vec2 anchor1, ::nape::geom::Vec2 anchor2, ::nape::geom::Vec2 anchor3, ::nape::geom::Vec2 anchor4,Float jointMin,Float jointMax,hx::Null< Float >  __o_ratio) {
	PulleyJoint_obj *__this = (PulleyJoint_obj*)(hx::Ctx::alloc(_hx_ctx, sizeof(PulleyJoint_obj), true, "nape.constraint.PulleyJoint"));
	*(void **)__this = PulleyJoint_obj::_hx_vtable;
	__this->__construct(body1,body2,body3,body4,anchor1,anchor2,anchor3,anchor4,jointMin,jointMax,__o_ratio);
	return __this;
}

PulleyJoint_obj::PulleyJoint_obj()
{
}

void PulleyJoint_obj::__Mark(HX_MARK_PARAMS)
{
	HX_MARK_BEGIN_CLASS(PulleyJoint);
	HX_MARK_MEMBER_NAME(zpp_inner_zn,"zpp_inner_zn");
	 ::nape::constraint::Constraint_obj::__Mark(HX_MARK_ARG);
	HX_MARK_END_CLASS();
}

void PulleyJoint_obj::__Visit(HX_VISIT_PARAMS)
{
	HX_VISIT_MEMBER_NAME(zpp_inner_zn,"zpp_inner_zn");
	 ::nape::constraint::Constraint_obj::__Visit(HX_VISIT_ARG);
}

hx::Val PulleyJoint_obj::__Field(const ::String &inName,hx::PropertyAccess inCallProp)
{
	switch(inName.length) {
	case 5:
		if (HX_FIELD_EQ(inName,"body1") ) { if (inCallProp == hx::paccAlways) return hx::Val( get_body1() ); }
		if (HX_FIELD_EQ(inName,"body2") ) { if (inCallProp == hx::paccAlways) return hx::Val( get_body2() ); }
		if (HX_FIELD_EQ(inName,"body3") ) { if (inCallProp == hx::paccAlways) return hx::Val( get_body3() ); }
		if (HX_FIELD_EQ(inName,"body4") ) { if (inCallProp == hx::paccAlways) return hx::Val( get_body4() ); }
		if (HX_FIELD_EQ(inName,"ratio") ) { if (inCallProp == hx::paccAlways) return hx::Val( get_ratio() ); }
		break;
	case 7:
		if (HX_FIELD_EQ(inName,"anchor1") ) { if (inCallProp == hx::paccAlways) return hx::Val( get_anchor1() ); }
		if (HX_FIELD_EQ(inName,"anchor2") ) { if (inCallProp == hx::paccAlways) return hx::Val( get_anchor2() ); }
		if (HX_FIELD_EQ(inName,"anchor3") ) { if (inCallProp == hx::paccAlways) return hx::Val( get_anchor3() ); }
		if (HX_FIELD_EQ(inName,"anchor4") ) { if (inCallProp == hx::paccAlways) return hx::Val( get_anchor4() ); }
		if (HX_FIELD_EQ(inName,"isSlack") ) { return hx::Val( isSlack_dyn() ); }
		if (HX_FIELD_EQ(inName,"impulse") ) { return hx::Val( impulse_dyn() ); }
		break;
	case 8:
		if (HX_FIELD_EQ(inName,"jointMin") ) { if (inCallProp == hx::paccAlways) return hx::Val( get_jointMin() ); }
		if (HX_FIELD_EQ(inName,"jointMax") ) { if (inCallProp == hx::paccAlways) return hx::Val( get_jointMax() ); }
		break;
	case 9:
		if (HX_FIELD_EQ(inName,"get_body1") ) { return hx::Val( get_body1_dyn() ); }
		if (HX_FIELD_EQ(inName,"set_body1") ) { return hx::Val( set_body1_dyn() ); }
		if (HX_FIELD_EQ(inName,"get_body2") ) { return hx::Val( get_body2_dyn() ); }
		if (HX_FIELD_EQ(inName,"set_body2") ) { return hx::Val( set_body2_dyn() ); }
		if (HX_FIELD_EQ(inName,"get_body3") ) { return hx::Val( get_body3_dyn() ); }
		if (HX_FIELD_EQ(inName,"set_body3") ) { return hx::Val( set_body3_dyn() ); }
		if (HX_FIELD_EQ(inName,"get_body4") ) { return hx::Val( get_body4_dyn() ); }
		if (HX_FIELD_EQ(inName,"set_body4") ) { return hx::Val( set_body4_dyn() ); }
		if (HX_FIELD_EQ(inName,"get_ratio") ) { return hx::Val( get_ratio_dyn() ); }
		if (HX_FIELD_EQ(inName,"set_ratio") ) { return hx::Val( set_ratio_dyn() ); }
		break;
	case 11:
		if (HX_FIELD_EQ(inName,"get_anchor1") ) { return hx::Val( get_anchor1_dyn() ); }
		if (HX_FIELD_EQ(inName,"set_anchor1") ) { return hx::Val( set_anchor1_dyn() ); }
		if (HX_FIELD_EQ(inName,"get_anchor2") ) { return hx::Val( get_anchor2_dyn() ); }
		if (HX_FIELD_EQ(inName,"set_anchor2") ) { return hx::Val( set_anchor2_dyn() ); }
		if (HX_FIELD_EQ(inName,"get_anchor3") ) { return hx::Val( get_anchor3_dyn() ); }
		if (HX_FIELD_EQ(inName,"set_anchor3") ) { return hx::Val( set_anchor3_dyn() ); }
		if (HX_FIELD_EQ(inName,"get_anchor4") ) { return hx::Val( get_anchor4_dyn() ); }
		if (HX_FIELD_EQ(inName,"set_anchor4") ) { return hx::Val( set_anchor4_dyn() ); }
		if (HX_FIELD_EQ(inName,"bodyImpulse") ) { return hx::Val( bodyImpulse_dyn() ); }
		if (HX_FIELD_EQ(inName,"visitBodies") ) { return hx::Val( visitBodies_dyn() ); }
		break;
	case 12:
		if (HX_FIELD_EQ(inName,"zpp_inner_zn") ) { return hx::Val( zpp_inner_zn ); }
		if (HX_FIELD_EQ(inName,"get_jointMin") ) { return hx::Val( get_jointMin_dyn() ); }
		if (HX_FIELD_EQ(inName,"set_jointMin") ) { return hx::Val( set_jointMin_dyn() ); }
		if (HX_FIELD_EQ(inName,"get_jointMax") ) { return hx::Val( get_jointMax_dyn() ); }
		if (HX_FIELD_EQ(inName,"set_jointMax") ) { return hx::Val( set_jointMax_dyn() ); }
	}
	return super::__Field(inName,inCallProp);
}

hx::Val PulleyJoint_obj::__SetField(const ::String &inName,const hx::Val &inValue,hx::PropertyAccess inCallProp)
{
	switch(inName.length) {
	case 5:
		if (HX_FIELD_EQ(inName,"body1") ) { if (inCallProp == hx::paccAlways) return hx::Val( set_body1(inValue.Cast<  ::nape::phys::Body >()) ); }
		if (HX_FIELD_EQ(inName,"body2") ) { if (inCallProp == hx::paccAlways) return hx::Val( set_body2(inValue.Cast<  ::nape::phys::Body >()) ); }
		if (HX_FIELD_EQ(inName,"body3") ) { if (inCallProp == hx::paccAlways) return hx::Val( set_body3(inValue.Cast<  ::nape::phys::Body >()) ); }
		if (HX_FIELD_EQ(inName,"body4") ) { if (inCallProp == hx::paccAlways) return hx::Val( set_body4(inValue.Cast<  ::nape::phys::Body >()) ); }
		if (HX_FIELD_EQ(inName,"ratio") ) { if (inCallProp == hx::paccAlways) return hx::Val( set_ratio(inValue.Cast< Float >()) ); }
		break;
	case 7:
		if (HX_FIELD_EQ(inName,"anchor1") ) { if (inCallProp == hx::paccAlways) return hx::Val( set_anchor1(inValue.Cast<  ::nape::geom::Vec2 >()) ); }
		if (HX_FIELD_EQ(inName,"anchor2") ) { if (inCallProp == hx::paccAlways) return hx::Val( set_anchor2(inValue.Cast<  ::nape::geom::Vec2 >()) ); }
		if (HX_FIELD_EQ(inName,"anchor3") ) { if (inCallProp == hx::paccAlways) return hx::Val( set_anchor3(inValue.Cast<  ::nape::geom::Vec2 >()) ); }
		if (HX_FIELD_EQ(inName,"anchor4") ) { if (inCallProp == hx::paccAlways) return hx::Val( set_anchor4(inValue.Cast<  ::nape::geom::Vec2 >()) ); }
		break;
	case 8:
		if (HX_FIELD_EQ(inName,"jointMin") ) { if (inCallProp == hx::paccAlways) return hx::Val( set_jointMin(inValue.Cast< Float >()) ); }
		if (HX_FIELD_EQ(inName,"jointMax") ) { if (inCallProp == hx::paccAlways) return hx::Val( set_jointMax(inValue.Cast< Float >()) ); }
		break;
	case 12:
		if (HX_FIELD_EQ(inName,"zpp_inner_zn") ) { zpp_inner_zn=inValue.Cast<  ::zpp_nape::constraint::ZPP_PulleyJoint >(); return inValue; }
	}
	return super::__SetField(inName,inValue,inCallProp);
}

void PulleyJoint_obj::__GetFields(Array< ::String> &outFields)
{
	outFields->push(HX_("zpp_inner_zn",22,84,fa,e0));
	outFields->push(HX_("body1",4f,d3,ef,b6));
	outFields->push(HX_("body2",50,d3,ef,b6));
	outFields->push(HX_("body3",51,d3,ef,b6));
	outFields->push(HX_("body4",52,d3,ef,b6));
	outFields->push(HX_("anchor1",1c,ec,a1,02));
	outFields->push(HX_("anchor2",1d,ec,a1,02));
	outFields->push(HX_("anchor3",1e,ec,a1,02));
	outFields->push(HX_("anchor4",1f,ec,a1,02));
	outFields->push(HX_("jointMin",68,fa,25,55));
	outFields->push(HX_("jointMax",7a,f3,25,55));
	outFields->push(HX_("ratio",0b,35,24,e4));
	super::__GetFields(outFields);
};

#ifdef HXCPP_SCRIPTABLE
static hx::StorageInfo PulleyJoint_obj_sMemberStorageInfo[] = {
	{hx::fsObject  ,(int)offsetof(PulleyJoint_obj,zpp_inner_zn),HX_("zpp_inner_zn",22,84,fa,e0)},
	{ hx::fsUnknown, 0, null()}
};
static hx::StaticInfo *PulleyJoint_obj_sStaticStorageInfo = 0;
#endif

static ::String PulleyJoint_obj_sMemberFields[] = {
	HX_("zpp_inner_zn",22,84,fa,e0),
	HX_("get_body1",a6,2f,99,fa),
	HX_("set_body1",b2,1b,ea,dd),
	HX_("get_body2",a7,2f,99,fa),
	HX_("set_body2",b3,1b,ea,dd),
	HX_("get_body3",a8,2f,99,fa),
	HX_("set_body3",b4,1b,ea,dd),
	HX_("get_body4",a9,2f,99,fa),
	HX_("set_body4",b5,1b,ea,dd),
	HX_("get_anchor1",33,4c,9c,88),
	HX_("set_anchor1",3f,53,09,93),
	HX_("get_anchor2",34,4c,9c,88),
	HX_("set_anchor2",40,53,09,93),
	HX_("get_anchor3",35,4c,9c,88),
	HX_("set_anchor3",41,53,09,93),
	HX_("get_anchor4",36,4c,9c,88),
	HX_("set_anchor4",42,53,09,93),
	HX_("get_jointMin",71,ae,3f,0a),
	HX_("set_jointMin",e5,d1,38,1f),
	HX_("get_jointMax",83,a7,3f,0a),
	HX_("set_jointMax",f7,ca,38,1f),
	HX_("get_ratio",62,91,cd,27),
	HX_("set_ratio",6e,7d,1e,0b),
	HX_("isSlack",06,56,47,1b),
	HX_("impulse",b5,50,bd,6d),
	HX_("bodyImpulse",33,76,a2,5f),
	HX_("visitBodies",ab,f3,5e,e4),
	::String(null()) };

hx::Class PulleyJoint_obj::__mClass;

void PulleyJoint_obj::__register()
{
	PulleyJoint_obj _hx_dummy;
	PulleyJoint_obj::_hx_vtable = *(void **)&_hx_dummy;
	hx::Static(__mClass) = new hx::Class_obj();
	__mClass->mName = HX_("nape.constraint.PulleyJoint",26,70,00,26);
	__mClass->mSuper = &super::__SGetClass();
	__mClass->mConstructEmpty = &__CreateEmpty;
	__mClass->mConstructArgs = &__Create;
	__mClass->mGetStaticField = &hx::Class_obj::GetNoStaticField;
	__mClass->mSetStaticField = &hx::Class_obj::SetNoStaticField;
	__mClass->mStatics = hx::Class_obj::dupFunctions(0 );
	__mClass->mMembers = hx::Class_obj::dupFunctions(PulleyJoint_obj_sMemberFields);
	__mClass->mCanCast = hx::TCanCast< PulleyJoint_obj >;
#ifdef HXCPP_SCRIPTABLE
	__mClass->mMemberStorageInfo = PulleyJoint_obj_sMemberStorageInfo;
#endif
#ifdef HXCPP_SCRIPTABLE
	__mClass->mStaticStorageInfo = PulleyJoint_obj_sStaticStorageInfo;
#endif
	hx::_hx_RegisterClass(__mClass->mName, __mClass);
}

} 
}
// Generated by Haxe 4.0.0-preview.5
#include <hxcpp.h>

#ifndef INCLUDED_nape_constraint_Constraint
#include <hxinc/nape/constraint/Constraint.h>
#endif
#ifndef INCLUDED_nape_constraint_PulleyJoint
#include <hxinc/nape/constraint/PulleyJoint.h>
#endif
#ifndef INCLUDED_nape_geom_MatMN
#include <hxinc/nape/geom/MatMN.h>
#endif
#ifndef INCLUDED_nape_geom_Vec2
#include <hxinc/nape/geom/Vec2.h>
#endif
#ifndef INCLUDED_nape_geom_Vec3
#include <hxinc/nape/geom/Vec3.h>
#endif
#ifndef INCLUDED_nape_phys_Body
#include <hxinc/nape/phys/Body.h>
#endif
#ifndef INCLUDED_nape_phys_Interactor
#include <hxinc/nape/phys/Interactor.h>
#endif
#ifndef INCLUDED_nape_space_Space
#include <hxinc/nape/space/Space.h>
#endif
#ifndef INCLUDED_zpp_nape_constraint_ZPP_Constraint
#include <hxinc/zpp_nape/constraint/ZPP_Constraint.h>
#endif
#ifndef INCLUDED_zpp_nape_constraint_ZPP_PulleyJoint
#include <hxinc/zpp_nape/constraint/ZPP_PulleyJoint.h>
#endif
#ifndef INCLUDED_zpp_nape_geom_ZPP_MatMN
#include <hxinc/zpp_nape/geom/ZPP_MatMN.h>
#endif
#ifndef INCLUDED_zpp_nape_geom_ZPP_Vec2
#include <hxinc/zpp_nape/geom/ZPP_Vec2.h>
#endif
#ifndef INCLUDED_zpp_nape_phys_ZPP_Body
#include <hxinc/zpp_nape/phys/ZPP_Body.h>
#endif
#ifndef INCLUDED_zpp_nape_phys_ZPP_Interactor
#include <hxinc/zpp_nape/phys/ZPP_Interactor.h>
#endif
#ifndef INCLUDED_zpp_nape_space_ZPP_Space
#include <hxinc/zpp_nape/space/ZPP_Space.h>
#endif
#ifndef INCLUDED_zpp_nape_util_ZNPList_ZPP_Constraint
#include <hxinc/zpp_nape/util/ZNPList_ZPP_Constraint.h>
#endif
#ifndef INCLUDED_zpp_nape_util_ZPP_PubPool
#include <hxinc/zpp_nape/util/ZPP_PubPool.h>
#endif

HX_DEFINE_STACK_FRAME(_hx_pos_7d77866d564ee991_187_new,"nape.constraint.PulleyJoint","new",0x06ee1c18,"nape.constraint.PulleyJoint.new","nape/constraint/PulleyJoint.hx",187,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_201_get_body1,"nape.constraint.PulleyJoint","get_body1",0x9deb155e,"nape.constraint.PulleyJoint.get_body1","nape/constraint/PulleyJoint.hx",201,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_203_set_body1,"nape.constraint.PulleyJoint","set_body1",0x813c016a,"nape.constraint.PulleyJoint.set_body1","nape/constraint/PulleyJoint.hx",203,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_239_get_body2,"nape.constraint.PulleyJoint","get_body2",0x9deb155f,"nape.constraint.PulleyJoint.get_body2","nape/constraint/PulleyJoint.hx",239,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_241_set_body2,"nape.constraint.PulleyJoint","set_body2",0x813c016b,"nape.constraint.PulleyJoint.set_body2","nape/constraint/PulleyJoint.hx",241,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_277_get_body3,"nape.constraint.PulleyJoint","get_body3",0x9deb1560,"nape.constraint.PulleyJoint.get_body3","nape/constraint/PulleyJoint.hx",277,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_279_set_body3,"nape.constraint.PulleyJoint","set_body3",0x813c016c,"nape.constraint.PulleyJoint.set_body3","nape/constraint/PulleyJoint.hx",279,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_315_get_body4,"nape.constraint.PulleyJoint","get_body4",0x9deb1561,"nape.constraint.PulleyJoint.get_body4","nape/constraint/PulleyJoint.hx",315,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_317_set_body4,"nape.constraint.PulleyJoint","set_body4",0x813c016d,"nape.constraint.PulleyJoint.set_body4","nape/constraint/PulleyJoint.hx",317,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_351_get_anchor1,"nape.constraint.PulleyJoint","get_anchor1",0x107d0feb,"nape.constraint.PulleyJoint.get_anchor1","nape/constraint/PulleyJoint.hx",351,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_355_set_anchor1,"nape.constraint.PulleyJoint","set_anchor1",0x1aea16f7,"nape.constraint.PulleyJoint.set_anchor1","nape/constraint/PulleyJoint.hx",355,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_376_get_anchor2,"nape.constraint.PulleyJoint","get_anchor2",0x107d0fec,"nape.constraint.PulleyJoint.get_anchor2","nape/constraint/PulleyJoint.hx",376,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_380_set_anchor2,"nape.constraint.PulleyJoint","set_anchor2",0x1aea16f8,"nape.constraint.PulleyJoint.set_anchor2","nape/constraint/PulleyJoint.hx",380,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_401_get_anchor3,"nape.constraint.PulleyJoint","get_anchor3",0x107d0fed,"nape.constraint.PulleyJoint.get_anchor3","nape/constraint/PulleyJoint.hx",401,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_405_set_anchor3,"nape.constraint.PulleyJoint","set_anchor3",0x1aea16f9,"nape.constraint.PulleyJoint.set_anchor3","nape/constraint/PulleyJoint.hx",405,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_426_get_anchor4,"nape.constraint.PulleyJoint","get_anchor4",0x107d0fee,"nape.constraint.PulleyJoint.get_anchor4","nape/constraint/PulleyJoint.hx",426,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_430_set_anchor4,"nape.constraint.PulleyJoint","set_anchor4",0x1aea16fa,"nape.constraint.PulleyJoint.set_anchor4","nape/constraint/PulleyJoint.hx",430,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_452_get_jointMin,"nape.constraint.PulleyJoint","get_jointMin",0x670a2bb9,"nape.constraint.PulleyJoint.get_jointMin","nape/constraint/PulleyJoint.hx",452,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_454_set_jointMin,"nape.constraint.PulleyJoint","set_jointMin",0x7c034f2d,"nape.constraint.PulleyJoint.set_jointMin","nape/constraint/PulleyJoint.hx",454,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_480_get_jointMax,"nape.constraint.PulleyJoint","get_jointMax",0x670a24cb,"nape.constraint.PulleyJoint.get_jointMax","nape/constraint/PulleyJoint.hx",480,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_482_set_jointMax,"nape.constraint.PulleyJoint","set_jointMax",0x7c03483f,"nape.constraint.PulleyJoint.set_jointMax","nape/constraint/PulleyJoint.hx",482,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_508_get_ratio,"nape.constraint.PulleyJoint","get_ratio",0xcb1f771a,"nape.constraint.PulleyJoint.get_ratio","nape/constraint/PulleyJoint.hx",508,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_510_set_ratio,"nape.constraint.PulleyJoint","set_ratio",0xae706326,"nape.constraint.PulleyJoint.set_ratio","nape/constraint/PulleyJoint.hx",510,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_536_isSlack,"nape.constraint.PulleyJoint","isSlack",0x761dddbe,"nape.constraint.PulleyJoint.isSlack","nape/constraint/PulleyJoint.hx",536,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_592_impulse,"nape.constraint.PulleyJoint","impulse",0xc893d86d,"nape.constraint.PulleyJoint.impulse","nape/constraint/PulleyJoint.hx",592,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_600_bodyImpulse,"nape.constraint.PulleyJoint","bodyImpulse",0xe78339eb,"nape.constraint.PulleyJoint.bodyImpulse","nape/constraint/PulleyJoint.hx",600,0x2d6ef3f8)
HX_LOCAL_STACK_FRAME(_hx_pos_7d77866d564ee991_619_visitBodies,"nape.constraint.PulleyJoint","visitBodies",0x6c3fb763,"nape.constraint.PulleyJoint.visitBodies","nape/constraint/PulleyJoint.hx",619,0x2d6ef3f8)
namespace nape{
namespace constraint{

void PulleyJoint_obj::__construct( ::nape::phys::Body body1, ::nape::phys::Body body2, ::nape::phys::Body body3, ::nape::phys::Body body4, ::nape::geom::Vec2 anchor1, ::nape::geom::Vec2 anchor2, ::nape::geom::Vec2 anchor3, ::nape::geom::Vec2 anchor4,Float jointMin,Float jointMax,hx::Null< Float >  __o_ratio){
            		Float ratio = __o_ratio.Default(((Float)1.0));
            	HX_GC_STACKFRAME(&_hx_pos_7d77866d564ee991_187_new)
HXLINE( 191)		this->zpp_inner_zn = null();
HXLINE( 563)		this->zpp_inner_zn =  ::zpp_nape::constraint::ZPP_PulleyJoint_obj::__alloc( HX_CTX );
HXLINE( 564)		this->zpp_inner = this->zpp_inner_zn;
HXLINE( 565)		this->zpp_inner->outer = hx::ObjectPtr<OBJ_>(this);
HXLINE( 566)		this->zpp_inner_zn->outer_zn = hx::ObjectPtr<OBJ_>(this);
HXLINE( 568)		::nape::constraint::Constraint_obj::zpp_internalAlloc = true;
HXLINE( 569)		super::__construct();
HXLINE( 570)		::nape::constraint::Constraint_obj::zpp_internalAlloc = false;
HXLINE( 575)		{
HXLINE( 575)			{
HXLINE( 575)				this->zpp_inner->immutable_midstep((HX_("Constraint::",7d,10,25,6e) + HX_("body1",4f,d3,ef,b6)));
HXDLIN( 575)				 ::zpp_nape::phys::ZPP_Body inbody1;
HXDLIN( 575)				if (hx::IsNull( body1 )) {
HXLINE( 575)					inbody1 = null();
            				}
            				else {
HXLINE( 575)					inbody1 = body1->zpp_inner;
            				}
HXDLIN( 575)				if (hx::IsNotEq( inbody1,this->zpp_inner_zn->b1 )) {
HXLINE( 575)					if (hx::IsNotNull( this->zpp_inner_zn->b1 )) {
HXLINE( 575)						bool _hx_tmp;
HXDLIN( 575)						bool _hx_tmp1;
HXDLIN( 575)						bool _hx_tmp2;
HXDLIN( 575)						 ::nape::space::Space _hx_tmp3;
HXDLIN( 575)						if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 575)							_hx_tmp3 = null();
            						}
            						else {
HXLINE( 575)							_hx_tmp3 = this->zpp_inner->space->outer;
            						}
HXDLIN( 575)						if (hx::IsNotNull( _hx_tmp3 )) {
HXLINE( 575)							_hx_tmp2 = hx::IsNotEq( this->zpp_inner_zn->b2,this->zpp_inner_zn->b1 );
            						}
            						else {
HXLINE( 575)							_hx_tmp2 = false;
            						}
HXDLIN( 575)						if (_hx_tmp2) {
HXLINE( 575)							_hx_tmp1 = hx::IsNotEq( this->zpp_inner_zn->b3,this->zpp_inner_zn->b1 );
            						}
            						else {
HXLINE( 575)							_hx_tmp1 = false;
            						}
HXDLIN( 575)						if (_hx_tmp1) {
HXLINE( 575)							_hx_tmp = hx::IsNotEq( this->zpp_inner_zn->b4,this->zpp_inner_zn->b1 );
            						}
            						else {
HXLINE( 575)							_hx_tmp = false;
            						}
HXDLIN( 575)						if (_hx_tmp) {
HXLINE( 575)							if (hx::IsNotNull( this->zpp_inner_zn->b1 )) {
HXLINE( 575)								this->zpp_inner_zn->b1->constraints->remove(this->zpp_inner);
            							}
            						}
HXDLIN( 575)						bool _hx_tmp4;
HXDLIN( 575)						if (this->zpp_inner->active) {
HXLINE( 575)							 ::nape::space::Space _hx_tmp5;
HXDLIN( 575)							if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 575)								_hx_tmp5 = null();
            							}
            							else {
HXLINE( 575)								_hx_tmp5 = this->zpp_inner->space->outer;
            							}
HXDLIN( 575)							_hx_tmp4 = hx::IsNotNull( _hx_tmp5 );
            						}
            						else {
HXLINE( 575)							_hx_tmp4 = false;
            						}
HXDLIN( 575)						if (_hx_tmp4) {
HXLINE( 575)							this->zpp_inner_zn->b1->wake();
            						}
            					}
HXDLIN( 575)					this->zpp_inner_zn->b1 = inbody1;
HXDLIN( 575)					bool _hx_tmp6;
HXDLIN( 575)					bool _hx_tmp7;
HXDLIN( 575)					bool _hx_tmp8;
HXDLIN( 575)					bool _hx_tmp9;
HXDLIN( 575)					 ::nape::space::Space _hx_tmp10;
HXDLIN( 575)					if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 575)						_hx_tmp10 = null();
            					}
            					else {
HXLINE( 575)						_hx_tmp10 = this->zpp_inner->space->outer;
            					}
HXDLIN( 575)					if (hx::IsNotNull( _hx_tmp10 )) {
HXLINE( 575)						_hx_tmp9 = hx::IsNotNull( inbody1 );
            					}
            					else {
HXLINE( 575)						_hx_tmp9 = false;
            					}
HXDLIN( 575)					if (_hx_tmp9) {
HXLINE( 575)						_hx_tmp8 = hx::IsNotEq( this->zpp_inner_zn->b2,inbody1 );
            					}
            					else {
HXLINE( 575)						_hx_tmp8 = false;
            					}
HXDLIN( 575)					if (_hx_tmp8) {
HXLINE( 575)						_hx_tmp7 = hx::IsNotEq( this->zpp_inner_zn->b3,inbody1 );
            					}
            					else {
HXLINE( 575)						_hx_tmp7 = false;
            					}
HXDLIN( 575)					if (_hx_tmp7) {
HXLINE( 575)						_hx_tmp6 = hx::IsNotEq( this->zpp_inner_zn->b4,inbody1 );
            					}
            					else {
HXLINE( 575)						_hx_tmp6 = false;
            					}
HXDLIN( 575)					if (_hx_tmp6) {
HXLINE( 575)						if (hx::IsNotNull( inbody1 )) {
HXLINE( 575)							inbody1->constraints->add(this->zpp_inner);
            						}
            					}
HXDLIN( 575)					bool _hx_tmp11;
HXDLIN( 575)					if (this->zpp_inner->active) {
HXLINE( 575)						 ::nape::space::Space _hx_tmp12;
HXDLIN( 575)						if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 575)							_hx_tmp12 = null();
            						}
            						else {
HXLINE( 575)							_hx_tmp12 = this->zpp_inner->space->outer;
            						}
HXDLIN( 575)						_hx_tmp11 = hx::IsNotNull( _hx_tmp12 );
            					}
            					else {
HXLINE( 575)						_hx_tmp11 = false;
            					}
HXDLIN( 575)					if (_hx_tmp11) {
HXLINE( 575)						this->zpp_inner->wake();
HXDLIN( 575)						if (hx::IsNotNull( inbody1 )) {
HXLINE( 575)							inbody1->wake();
            						}
            					}
            				}
            			}
HXDLIN( 575)			bool _hx_tmp13 = hx::IsNull( this->zpp_inner_zn->b1 );
            		}
HXLINE( 576)		{
HXLINE( 576)			{
HXLINE( 576)				this->zpp_inner->immutable_midstep((HX_("Constraint::",7d,10,25,6e) + HX_("body2",50,d3,ef,b6)));
HXDLIN( 576)				 ::zpp_nape::phys::ZPP_Body inbody2;
HXDLIN( 576)				if (hx::IsNull( body2 )) {
HXLINE( 576)					inbody2 = null();
            				}
            				else {
HXLINE( 576)					inbody2 = body2->zpp_inner;
            				}
HXDLIN( 576)				if (hx::IsNotEq( inbody2,this->zpp_inner_zn->b2 )) {
HXLINE( 576)					if (hx::IsNotNull( this->zpp_inner_zn->b2 )) {
HXLINE( 576)						bool _hx_tmp14;
HXDLIN( 576)						bool _hx_tmp15;
HXDLIN( 576)						bool _hx_tmp16;
HXDLIN( 576)						 ::nape::space::Space _hx_tmp17;
HXDLIN( 576)						if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 576)							_hx_tmp17 = null();
            						}
            						else {
HXLINE( 576)							_hx_tmp17 = this->zpp_inner->space->outer;
            						}
HXDLIN( 576)						if (hx::IsNotNull( _hx_tmp17 )) {
HXLINE( 576)							_hx_tmp16 = hx::IsNotEq( this->zpp_inner_zn->b1,this->zpp_inner_zn->b2 );
            						}
            						else {
HXLINE( 576)							_hx_tmp16 = false;
            						}
HXDLIN( 576)						if (_hx_tmp16) {
HXLINE( 576)							_hx_tmp15 = hx::IsNotEq( this->zpp_inner_zn->b3,this->zpp_inner_zn->b2 );
            						}
            						else {
HXLINE( 576)							_hx_tmp15 = false;
            						}
HXDLIN( 576)						if (_hx_tmp15) {
HXLINE( 576)							_hx_tmp14 = hx::IsNotEq( this->zpp_inner_zn->b4,this->zpp_inner_zn->b2 );
            						}
            						else {
HXLINE( 576)							_hx_tmp14 = false;
            						}
HXDLIN( 576)						if (_hx_tmp14) {
HXLINE( 576)							if (hx::IsNotNull( this->zpp_inner_zn->b2 )) {
HXLINE( 576)								this->zpp_inner_zn->b2->constraints->remove(this->zpp_inner);
            							}
            						}
HXDLIN( 576)						bool _hx_tmp18;
HXDLIN( 576)						if (this->zpp_inner->active) {
HXLINE( 576)							 ::nape::space::Space _hx_tmp19;
HXDLIN( 576)							if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 576)								_hx_tmp19 = null();
            							}
            							else {
HXLINE( 576)								_hx_tmp19 = this->zpp_inner->space->outer;
            							}
HXDLIN( 576)							_hx_tmp18 = hx::IsNotNull( _hx_tmp19 );
            						}
            						else {
HXLINE( 576)							_hx_tmp18 = false;
            						}
HXDLIN( 576)						if (_hx_tmp18) {
HXLINE( 576)							this->zpp_inner_zn->b2->wake();
            						}
            					}
HXDLIN( 576)					this->zpp_inner_zn->b2 = inbody2;
HXDLIN( 576)					bool _hx_tmp20;
HXDLIN( 576)					bool _hx_tmp21;
HXDLIN( 576)					bool _hx_tmp22;
HXDLIN( 576)					bool _hx_tmp23;
HXDLIN( 576)					 ::nape::space::Space _hx_tmp24;
HXDLIN( 576)					if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 576)						_hx_tmp24 = null();
            					}
            					else {
HXLINE( 576)						_hx_tmp24 = this->zpp_inner->space->outer;
            					}
HXDLIN( 576)					if (hx::IsNotNull( _hx_tmp24 )) {
HXLINE( 576)						_hx_tmp23 = hx::IsNotNull( inbody2 );
            					}
            					else {
HXLINE( 576)						_hx_tmp23 = false;
            					}
HXDLIN( 576)					if (_hx_tmp23) {
HXLINE( 576)						_hx_tmp22 = hx::IsNotEq( this->zpp_inner_zn->b1,inbody2 );
            					}
            					else {
HXLINE( 576)						_hx_tmp22 = false;
            					}
HXDLIN( 576)					if (_hx_tmp22) {
HXLINE( 576)						_hx_tmp21 = hx::IsNotEq( this->zpp_inner_zn->b3,inbody2 );
            					}
            					else {
HXLINE( 576)						_hx_tmp21 = false;
            					}
HXDLIN( 576)					if (_hx_tmp21) {
HXLINE( 576)						_hx_tmp20 = hx::IsNotEq( this->zpp_inner_zn->b4,inbody2 );
            					}
            					else {
HXLINE( 576)						_hx_tmp20 = false;
            					}
HXDLIN( 576)					if (_hx_tmp20) {
HXLINE( 576)						if (hx::IsNotNull( inbody2 )) {
HXLINE( 576)							inbody2->constraints->add(this->zpp_inner);
            						}
            					}
HXDLIN( 576)					bool _hx_tmp25;
HXDLIN( 576)					if (this->zpp_inner->active) {
HXLINE( 576)						 ::nape::space::Space _hx_tmp26;
HXDLIN( 576)						if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 576)							_hx_tmp26 = null();
            						}
            						else {
HXLINE( 576)							_hx_tmp26 = this->zpp_inner->space->outer;
            						}
HXDLIN( 576)						_hx_tmp25 = hx::IsNotNull( _hx_tmp26 );
            					}
            					else {
HXLINE( 576)						_hx_tmp25 = false;
            					}
HXDLIN( 576)					if (_hx_tmp25) {
HXLINE( 576)						this->zpp_inner->wake();
HXDLIN( 576)						if (hx::IsNotNull( inbody2 )) {
HXLINE( 576)							inbody2->wake();
            						}
            					}
            				}
            			}
HXDLIN( 576)			bool _hx_tmp27 = hx::IsNull( this->zpp_inner_zn->b2 );
            		}
HXLINE( 577)		{
HXLINE( 577)			{
HXLINE( 577)				this->zpp_inner->immutable_midstep((HX_("Constraint::",7d,10,25,6e) + HX_("body3",51,d3,ef,b6)));
HXDLIN( 577)				 ::zpp_nape::phys::ZPP_Body inbody3;
HXDLIN( 577)				if (hx::IsNull( body3 )) {
HXLINE( 577)					inbody3 = null();
            				}
            				else {
HXLINE( 577)					inbody3 = body3->zpp_inner;
            				}
HXDLIN( 577)				if (hx::IsNotEq( inbody3,this->zpp_inner_zn->b3 )) {
HXLINE( 577)					if (hx::IsNotNull( this->zpp_inner_zn->b3 )) {
HXLINE( 577)						bool _hx_tmp28;
HXDLIN( 577)						bool _hx_tmp29;
HXDLIN( 577)						bool _hx_tmp30;
HXDLIN( 577)						 ::nape::space::Space _hx_tmp31;
HXDLIN( 577)						if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 577)							_hx_tmp31 = null();
            						}
            						else {
HXLINE( 577)							_hx_tmp31 = this->zpp_inner->space->outer;
            						}
HXDLIN( 577)						if (hx::IsNotNull( _hx_tmp31 )) {
HXLINE( 577)							_hx_tmp30 = hx::IsNotEq( this->zpp_inner_zn->b1,this->zpp_inner_zn->b3 );
            						}
            						else {
HXLINE( 577)							_hx_tmp30 = false;
            						}
HXDLIN( 577)						if (_hx_tmp30) {
HXLINE( 577)							_hx_tmp29 = hx::IsNotEq( this->zpp_inner_zn->b2,this->zpp_inner_zn->b3 );
            						}
            						else {
HXLINE( 577)							_hx_tmp29 = false;
            						}
HXDLIN( 577)						if (_hx_tmp29) {
HXLINE( 577)							_hx_tmp28 = hx::IsNotEq( this->zpp_inner_zn->b4,this->zpp_inner_zn->b3 );
            						}
            						else {
HXLINE( 577)							_hx_tmp28 = false;
            						}
HXDLIN( 577)						if (_hx_tmp28) {
HXLINE( 577)							if (hx::IsNotNull( this->zpp_inner_zn->b3 )) {
HXLINE( 577)								this->zpp_inner_zn->b3->constraints->remove(this->zpp_inner);
            							}
            						}
HXDLIN( 577)						bool _hx_tmp32;
HXDLIN( 577)						if (this->zpp_inner->active) {
HXLINE( 577)							 ::nape::space::Space _hx_tmp33;
HXDLIN( 577)							if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 577)								_hx_tmp33 = null();
            							}
            							else {
HXLINE( 577)								_hx_tmp33 = this->zpp_inner->space->outer;
            							}
HXDLIN( 577)							_hx_tmp32 = hx::IsNotNull( _hx_tmp33 );
            						}
            						else {
HXLINE( 577)							_hx_tmp32 = false;
            						}
HXDLIN( 577)						if (_hx_tmp32) {
HXLINE( 577)							this->zpp_inner_zn->b3->wake();
            						}
            					}
HXDLIN( 577)					this->zpp_inner_zn->b3 = inbody3;
HXDLIN( 577)					bool _hx_tmp34;
HXDLIN( 577)					bool _hx_tmp35;
HXDLIN( 577)					bool _hx_tmp36;
HXDLIN( 577)					bool _hx_tmp37;
HXDLIN( 577)					 ::nape::space::Space _hx_tmp38;
HXDLIN( 577)					if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 577)						_hx_tmp38 = null();
            					}
            					else {
HXLINE( 577)						_hx_tmp38 = this->zpp_inner->space->outer;
            					}
HXDLIN( 577)					if (hx::IsNotNull( _hx_tmp38 )) {
HXLINE( 577)						_hx_tmp37 = hx::IsNotNull( inbody3 );
            					}
            					else {
HXLINE( 577)						_hx_tmp37 = false;
            					}
HXDLIN( 577)					if (_hx_tmp37) {
HXLINE( 577)						_hx_tmp36 = hx::IsNotEq( this->zpp_inner_zn->b1,inbody3 );
            					}
            					else {
HXLINE( 577)						_hx_tmp36 = false;
            					}
HXDLIN( 577)					if (_hx_tmp36) {
HXLINE( 577)						_hx_tmp35 = hx::IsNotEq( this->zpp_inner_zn->b2,inbody3 );
            					}
            					else {
HXLINE( 577)						_hx_tmp35 = false;
            					}
HXDLIN( 577)					if (_hx_tmp35) {
HXLINE( 577)						_hx_tmp34 = hx::IsNotEq( this->zpp_inner_zn->b4,inbody3 );
            					}
            					else {
HXLINE( 577)						_hx_tmp34 = false;
            					}
HXDLIN( 577)					if (_hx_tmp34) {
HXLINE( 577)						if (hx::IsNotNull( inbody3 )) {
HXLINE( 577)							inbody3->constraints->add(this->zpp_inner);
            						}
            					}
HXDLIN( 577)					bool _hx_tmp39;
HXDLIN( 577)					if (this->zpp_inner->active) {
HXLINE( 577)						 ::nape::space::Space _hx_tmp40;
HXDLIN( 577)						if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 577)							_hx_tmp40 = null();
            						}
            						else {
HXLINE( 577)							_hx_tmp40 = this->zpp_inner->space->outer;
            						}
HXDLIN( 577)						_hx_tmp39 = hx::IsNotNull( _hx_tmp40 );
            					}
            					else {
HXLINE( 577)						_hx_tmp39 = false;
            					}
HXDLIN( 577)					if (_hx_tmp39) {
HXLINE( 577)						this->zpp_inner->wake();
HXDLIN( 577)						if (hx::IsNotNull( inbody3 )) {
HXLINE( 577)							inbody3->wake();
            						}
            					}
            				}
            			}
HXDLIN( 577)			bool _hx_tmp41 = hx::IsNull( this->zpp_inner_zn->b3 );
            		}
HXLINE( 578)		{
HXLINE( 578)			{
HXLINE( 578)				this->zpp_inner->immutable_midstep((HX_("Constraint::",7d,10,25,6e) + HX_("body4",52,d3,ef,b6)));
HXDLIN( 578)				 ::zpp_nape::phys::ZPP_Body inbody4;
HXDLIN( 578)				if (hx::IsNull( body4 )) {
HXLINE( 578)					inbody4 = null();
            				}
            				else {
HXLINE( 578)					inbody4 = body4->zpp_inner;
            				}
HXDLIN( 578)				if (hx::IsNotEq( inbody4,this->zpp_inner_zn->b4 )) {
HXLINE( 578)					if (hx::IsNotNull( this->zpp_inner_zn->b4 )) {
HXLINE( 578)						bool _hx_tmp42;
HXDLIN( 578)						bool _hx_tmp43;
HXDLIN( 578)						bool _hx_tmp44;
HXDLIN( 578)						 ::nape::space::Space _hx_tmp45;
HXDLIN( 578)						if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 578)							_hx_tmp45 = null();
            						}
            						else {
HXLINE( 578)							_hx_tmp45 = this->zpp_inner->space->outer;
            						}
HXDLIN( 578)						if (hx::IsNotNull( _hx_tmp45 )) {
HXLINE( 578)							_hx_tmp44 = hx::IsNotEq( this->zpp_inner_zn->b1,this->zpp_inner_zn->b4 );
            						}
            						else {
HXLINE( 578)							_hx_tmp44 = false;
            						}
HXDLIN( 578)						if (_hx_tmp44) {
HXLINE( 578)							_hx_tmp43 = hx::IsNotEq( this->zpp_inner_zn->b2,this->zpp_inner_zn->b4 );
            						}
            						else {
HXLINE( 578)							_hx_tmp43 = false;
            						}
HXDLIN( 578)						if (_hx_tmp43) {
HXLINE( 578)							_hx_tmp42 = hx::IsNotEq( this->zpp_inner_zn->b3,this->zpp_inner_zn->b4 );
            						}
            						else {
HXLINE( 578)							_hx_tmp42 = false;
            						}
HXDLIN( 578)						if (_hx_tmp42) {
HXLINE( 578)							if (hx::IsNotNull( this->zpp_inner_zn->b4 )) {
HXLINE( 578)								this->zpp_inner_zn->b4->constraints->remove(this->zpp_inner);
            							}
            						}
HXDLIN( 578)						bool _hx_tmp46;
HXDLIN( 578)						if (this->zpp_inner->active) {
HXLINE( 578)							 ::nape::space::Space _hx_tmp47;
HXDLIN( 578)							if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 578)								_hx_tmp47 = null();
            							}
            							else {
HXLINE( 578)								_hx_tmp47 = this->zpp_inner->space->outer;
            							}
HXDLIN( 578)							_hx_tmp46 = hx::IsNotNull( _hx_tmp47 );
            						}
            						else {
HXLINE( 578)							_hx_tmp46 = false;
            						}
HXDLIN( 578)						if (_hx_tmp46) {
HXLINE( 578)							this->zpp_inner_zn->b4->wake();
            						}
            					}
HXDLIN( 578)					this->zpp_inner_zn->b4 = inbody4;
HXDLIN( 578)					bool _hx_tmp48;
HXDLIN( 578)					bool _hx_tmp49;
HXDLIN( 578)					bool _hx_tmp50;
HXDLIN( 578)					bool _hx_tmp51;
HXDLIN( 578)					 ::nape::space::Space _hx_tmp52;
HXDLIN( 578)					if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 578)						_hx_tmp52 = null();
            					}
            					else {
HXLINE( 578)						_hx_tmp52 = this->zpp_inner->space->outer;
            					}
HXDLIN( 578)					if (hx::IsNotNull( _hx_tmp52 )) {
HXLINE( 578)						_hx_tmp51 = hx::IsNotNull( inbody4 );
            					}
            					else {
HXLINE( 578)						_hx_tmp51 = false;
            					}
HXDLIN( 578)					if (_hx_tmp51) {
HXLINE( 578)						_hx_tmp50 = hx::IsNotEq( this->zpp_inner_zn->b1,inbody4 );
            					}
            					else {
HXLINE( 578)						_hx_tmp50 = false;
            					}
HXDLIN( 578)					if (_hx_tmp50) {
HXLINE( 578)						_hx_tmp49 = hx::IsNotEq( this->zpp_inner_zn->b2,inbody4 );
            					}
            					else {
HXLINE( 578)						_hx_tmp49 = false;
            					}
HXDLIN( 578)					if (_hx_tmp49) {
HXLINE( 578)						_hx_tmp48 = hx::IsNotEq( this->zpp_inner_zn->b3,inbody4 );
            					}
            					else {
HXLINE( 578)						_hx_tmp48 = false;
            					}
HXDLIN( 578)					if (_hx_tmp48) {
HXLINE( 578)						if (hx::IsNotNull( inbody4 )) {
HXLINE( 578)							inbody4->constraints->add(this->zpp_inner);
            						}
            					}
HXDLIN( 578)					bool _hx_tmp53;
HXDLIN( 578)					if (this->zpp_inner->active) {
HXLINE( 578)						 ::nape::space::Space _hx_tmp54;
HXDLIN( 578)						if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 578)							_hx_tmp54 = null();
            						}
            						else {
HXLINE( 578)							_hx_tmp54 = this->zpp_inner->space->outer;
            						}
HXDLIN( 578)						_hx_tmp53 = hx::IsNotNull( _hx_tmp54 );
            					}
            					else {
HXLINE( 578)						_hx_tmp53 = false;
            					}
HXDLIN( 578)					if (_hx_tmp53) {
HXLINE( 578)						this->zpp_inner->wake();
HXDLIN( 578)						if (hx::IsNotNull( inbody4 )) {
HXLINE( 578)							inbody4->wake();
            						}
            					}
            				}
            			}
HXDLIN( 578)			bool _hx_tmp55 = hx::IsNull( this->zpp_inner_zn->b4 );
            		}
HXLINE( 579)		{
HXLINE( 579)			{
HXLINE( 579)				bool _hx_tmp56;
HXDLIN( 579)				if (hx::IsNotNull( anchor1 )) {
HXLINE( 579)					_hx_tmp56 = anchor1->zpp_disp;
            				}
            				else {
HXLINE( 579)					_hx_tmp56 = false;
            				}
HXDLIN( 579)				if (_hx_tmp56) {
HXLINE( 579)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 579)				if (hx::IsNull( anchor1 )) {
HXLINE( 579)					HX_STACK_DO_THROW(((HX_("Error: Constraint::",cb,f5,02,d5) + HX_("anchor1",1c,ec,a1,02)) + HX_(" cannot be null",07,dc,5d,15)));
            				}
HXDLIN( 579)				{
HXLINE( 579)					if (hx::IsNull( this->zpp_inner_zn->wrap_a1 )) {
HXLINE( 579)						this->zpp_inner_zn->setup_a1();
            					}
HXDLIN( 579)					 ::nape::geom::Vec2 _this = this->zpp_inner_zn->wrap_a1;
HXDLIN( 579)					bool _hx_tmp57;
HXDLIN( 579)					if (hx::IsNotNull( _this )) {
HXLINE( 579)						_hx_tmp57 = _this->zpp_disp;
            					}
            					else {
HXLINE( 579)						_hx_tmp57 = false;
            					}
HXDLIN( 579)					if (_hx_tmp57) {
HXLINE( 579)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 579)					bool _hx_tmp58;
HXDLIN( 579)					if (hx::IsNotNull( anchor1 )) {
HXLINE( 579)						_hx_tmp58 = anchor1->zpp_disp;
            					}
            					else {
HXLINE( 579)						_hx_tmp58 = false;
            					}
HXDLIN( 579)					if (_hx_tmp58) {
HXLINE( 579)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 579)					{
HXLINE( 579)						 ::zpp_nape::geom::ZPP_Vec2 _this1 = _this->zpp_inner;
HXDLIN( 579)						if (_this1->_immutable) {
HXLINE( 579)							HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            						}
HXDLIN( 579)						if (hx::IsNotNull( _this1->_isimmutable )) {
HXLINE( 579)							_this1->_isimmutable();
            						}
            					}
HXDLIN( 579)					if (hx::IsNull( anchor1 )) {
HXLINE( 579)						HX_STACK_DO_THROW(HX_("Error: Cannot assign null Vec2",95,15,46,66));
            					}
HXDLIN( 579)					bool _hx_tmp59;
HXDLIN( 579)					if (hx::IsNotNull( anchor1 )) {
HXLINE( 579)						_hx_tmp59 = anchor1->zpp_disp;
            					}
            					else {
HXLINE( 579)						_hx_tmp59 = false;
            					}
HXDLIN( 579)					if (_hx_tmp59) {
HXLINE( 579)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 579)					{
HXLINE( 579)						 ::zpp_nape::geom::ZPP_Vec2 _this2 = anchor1->zpp_inner;
HXDLIN( 579)						if (hx::IsNotNull( _this2->_validate )) {
HXLINE( 579)							_this2->_validate();
            						}
            					}
HXDLIN( 579)					Float x = anchor1->zpp_inner->x;
HXDLIN( 579)					bool _hx_tmp60;
HXDLIN( 579)					if (hx::IsNotNull( anchor1 )) {
HXLINE( 579)						_hx_tmp60 = anchor1->zpp_disp;
            					}
            					else {
HXLINE( 579)						_hx_tmp60 = false;
            					}
HXDLIN( 579)					if (_hx_tmp60) {
HXLINE( 579)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 579)					{
HXLINE( 579)						 ::zpp_nape::geom::ZPP_Vec2 _this3 = anchor1->zpp_inner;
HXDLIN( 579)						if (hx::IsNotNull( _this3->_validate )) {
HXLINE( 579)							_this3->_validate();
            						}
            					}
HXDLIN( 579)					Float y = anchor1->zpp_inner->y;
HXDLIN( 579)					bool _hx_tmp61;
HXDLIN( 579)					if (hx::IsNotNull( _this )) {
HXLINE( 579)						_hx_tmp61 = _this->zpp_disp;
            					}
            					else {
HXLINE( 579)						_hx_tmp61 = false;
            					}
HXDLIN( 579)					if (_hx_tmp61) {
HXLINE( 579)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 579)					{
HXLINE( 579)						 ::zpp_nape::geom::ZPP_Vec2 _this4 = _this->zpp_inner;
HXDLIN( 579)						if (_this4->_immutable) {
HXLINE( 579)							HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            						}
HXDLIN( 579)						if (hx::IsNotNull( _this4->_isimmutable )) {
HXLINE( 579)							_this4->_isimmutable();
            						}
            					}
HXDLIN( 579)					bool _hx_tmp62;
HXDLIN( 579)					if ((x == x)) {
HXLINE( 579)						_hx_tmp62 = (y != y);
            					}
            					else {
HXLINE( 579)						_hx_tmp62 = true;
            					}
HXDLIN( 579)					if (_hx_tmp62) {
HXLINE( 579)						HX_STACK_DO_THROW(HX_("Error: Vec2 components cannot be NaN",85,ba,d8,c1));
            					}
HXDLIN( 579)					bool _hx_tmp63;
HXDLIN( 579)					bool _hx_tmp64;
HXDLIN( 579)					if (hx::IsNotNull( _this )) {
HXLINE( 579)						_hx_tmp64 = _this->zpp_disp;
            					}
            					else {
HXLINE( 579)						_hx_tmp64 = false;
            					}
HXDLIN( 579)					if (_hx_tmp64) {
HXLINE( 579)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 579)					{
HXLINE( 579)						 ::zpp_nape::geom::ZPP_Vec2 _this5 = _this->zpp_inner;
HXDLIN( 579)						if (hx::IsNotNull( _this5->_validate )) {
HXLINE( 579)							_this5->_validate();
            						}
            					}
HXDLIN( 579)					if ((_this->zpp_inner->x == x)) {
HXLINE( 579)						bool _hx_tmp65;
HXDLIN( 579)						if (hx::IsNotNull( _this )) {
HXLINE( 579)							_hx_tmp65 = _this->zpp_disp;
            						}
            						else {
HXLINE( 579)							_hx_tmp65 = false;
            						}
HXDLIN( 579)						if (_hx_tmp65) {
HXLINE( 579)							HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            						}
HXDLIN( 579)						{
HXLINE( 579)							 ::zpp_nape::geom::ZPP_Vec2 _this6 = _this->zpp_inner;
HXDLIN( 579)							if (hx::IsNotNull( _this6->_validate )) {
HXLINE( 579)								_this6->_validate();
            							}
            						}
HXDLIN( 579)						_hx_tmp63 = (_this->zpp_inner->y == y);
            					}
            					else {
HXLINE( 579)						_hx_tmp63 = false;
            					}
HXDLIN( 579)					if (!(_hx_tmp63)) {
HXLINE( 579)						{
HXLINE( 579)							_this->zpp_inner->x = x;
HXDLIN( 579)							_this->zpp_inner->y = y;
            						}
HXDLIN( 579)						{
HXLINE( 579)							 ::zpp_nape::geom::ZPP_Vec2 _this7 = _this->zpp_inner;
HXDLIN( 579)							if (hx::IsNotNull( _this7->_invalidate )) {
HXLINE( 579)								_this7->_invalidate(_this7);
            							}
            						}
            					}
HXDLIN( 579)					 ::nape::geom::Vec2 ret = _this;
HXDLIN( 579)					if (anchor1->zpp_inner->weak) {
HXLINE( 579)						bool _hx_tmp66;
HXDLIN( 579)						if (hx::IsNotNull( anchor1 )) {
HXLINE( 579)							_hx_tmp66 = anchor1->zpp_disp;
            						}
            						else {
HXLINE( 579)							_hx_tmp66 = false;
            						}
HXDLIN( 579)						if (_hx_tmp66) {
HXLINE( 579)							HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            						}
HXDLIN( 579)						{
HXLINE( 579)							 ::zpp_nape::geom::ZPP_Vec2 _this8 = anchor1->zpp_inner;
HXDLIN( 579)							if (_this8->_immutable) {
HXLINE( 579)								HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            							}
HXDLIN( 579)							if (hx::IsNotNull( _this8->_isimmutable )) {
HXLINE( 579)								_this8->_isimmutable();
            							}
            						}
HXDLIN( 579)						if (anchor1->zpp_inner->_inuse) {
HXLINE( 579)							HX_STACK_DO_THROW(HX_("Error: This Vec2 is not disposable",b5,d1,d1,d8));
            						}
HXDLIN( 579)						 ::zpp_nape::geom::ZPP_Vec2 inner = anchor1->zpp_inner;
HXDLIN( 579)						anchor1->zpp_inner->outer = null();
HXDLIN( 579)						anchor1->zpp_inner = null();
HXDLIN( 579)						{
HXLINE( 579)							 ::nape::geom::Vec2 o = anchor1;
HXDLIN( 579)							o->zpp_pool = null();
HXDLIN( 579)							if (hx::IsNotNull( ::zpp_nape::util::ZPP_PubPool_obj::nextVec2 )) {
HXLINE( 579)								::zpp_nape::util::ZPP_PubPool_obj::nextVec2->zpp_pool = o;
            							}
            							else {
HXLINE( 579)								::zpp_nape::util::ZPP_PubPool_obj::poolVec2 = o;
            							}
HXDLIN( 579)							::zpp_nape::util::ZPP_PubPool_obj::nextVec2 = o;
HXDLIN( 579)							o->zpp_disp = true;
            						}
HXDLIN( 579)						{
HXLINE( 579)							 ::zpp_nape::geom::ZPP_Vec2 o1 = inner;
HXDLIN( 579)							{
HXLINE( 579)								if (hx::IsNotNull( o1->outer )) {
HXLINE( 579)									o1->outer->zpp_inner = null();
HXDLIN( 579)									o1->outer = null();
            								}
HXDLIN( 579)								o1->_isimmutable = null();
HXDLIN( 579)								o1->_validate = null();
HXDLIN( 579)								o1->_invalidate = null();
            							}
HXDLIN( 579)							o1->next = ::zpp_nape::geom::ZPP_Vec2_obj::zpp_pool;
HXDLIN( 579)							::zpp_nape::geom::ZPP_Vec2_obj::zpp_pool = o1;
            						}
            					}
            				}
            			}
HXDLIN( 579)			if (hx::IsNull( this->zpp_inner_zn->wrap_a1 )) {
HXLINE( 579)				this->zpp_inner_zn->setup_a1();
            			}
            		}
HXLINE( 580)		{
HXLINE( 580)			{
HXLINE( 580)				bool _hx_tmp67;
HXDLIN( 580)				if (hx::IsNotNull( anchor2 )) {
HXLINE( 580)					_hx_tmp67 = anchor2->zpp_disp;
            				}
            				else {
HXLINE( 580)					_hx_tmp67 = false;
            				}
HXDLIN( 580)				if (_hx_tmp67) {
HXLINE( 580)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 580)				if (hx::IsNull( anchor2 )) {
HXLINE( 580)					HX_STACK_DO_THROW(((HX_("Error: Constraint::",cb,f5,02,d5) + HX_("anchor2",1d,ec,a1,02)) + HX_(" cannot be null",07,dc,5d,15)));
            				}
HXDLIN( 580)				{
HXLINE( 580)					if (hx::IsNull( this->zpp_inner_zn->wrap_a2 )) {
HXLINE( 580)						this->zpp_inner_zn->setup_a2();
            					}
HXDLIN( 580)					 ::nape::geom::Vec2 _this9 = this->zpp_inner_zn->wrap_a2;
HXDLIN( 580)					bool _hx_tmp68;
HXDLIN( 580)					if (hx::IsNotNull( _this9 )) {
HXLINE( 580)						_hx_tmp68 = _this9->zpp_disp;
            					}
            					else {
HXLINE( 580)						_hx_tmp68 = false;
            					}
HXDLIN( 580)					if (_hx_tmp68) {
HXLINE( 580)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 580)					bool _hx_tmp69;
HXDLIN( 580)					if (hx::IsNotNull( anchor2 )) {
HXLINE( 580)						_hx_tmp69 = anchor2->zpp_disp;
            					}
            					else {
HXLINE( 580)						_hx_tmp69 = false;
            					}
HXDLIN( 580)					if (_hx_tmp69) {
HXLINE( 580)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 580)					{
HXLINE( 580)						 ::zpp_nape::geom::ZPP_Vec2 _this10 = _this9->zpp_inner;
HXDLIN( 580)						if (_this10->_immutable) {
HXLINE( 580)							HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            						}
HXDLIN( 580)						if (hx::IsNotNull( _this10->_isimmutable )) {
HXLINE( 580)							_this10->_isimmutable();
            						}
            					}
HXDLIN( 580)					if (hx::IsNull( anchor2 )) {
HXLINE( 580)						HX_STACK_DO_THROW(HX_("Error: Cannot assign null Vec2",95,15,46,66));
            					}
HXDLIN( 580)					bool _hx_tmp70;
HXDLIN( 580)					if (hx::IsNotNull( anchor2 )) {
HXLINE( 580)						_hx_tmp70 = anchor2->zpp_disp;
            					}
            					else {
HXLINE( 580)						_hx_tmp70 = false;
            					}
HXDLIN( 580)					if (_hx_tmp70) {
HXLINE( 580)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 580)					{
HXLINE( 580)						 ::zpp_nape::geom::ZPP_Vec2 _this11 = anchor2->zpp_inner;
HXDLIN( 580)						if (hx::IsNotNull( _this11->_validate )) {
HXLINE( 580)							_this11->_validate();
            						}
            					}
HXDLIN( 580)					Float x1 = anchor2->zpp_inner->x;
HXDLIN( 580)					bool _hx_tmp71;
HXDLIN( 580)					if (hx::IsNotNull( anchor2 )) {
HXLINE( 580)						_hx_tmp71 = anchor2->zpp_disp;
            					}
            					else {
HXLINE( 580)						_hx_tmp71 = false;
            					}
HXDLIN( 580)					if (_hx_tmp71) {
HXLINE( 580)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 580)					{
HXLINE( 580)						 ::zpp_nape::geom::ZPP_Vec2 _this12 = anchor2->zpp_inner;
HXDLIN( 580)						if (hx::IsNotNull( _this12->_validate )) {
HXLINE( 580)							_this12->_validate();
            						}
            					}
HXDLIN( 580)					Float y1 = anchor2->zpp_inner->y;
HXDLIN( 580)					bool _hx_tmp72;
HXDLIN( 580)					if (hx::IsNotNull( _this9 )) {
HXLINE( 580)						_hx_tmp72 = _this9->zpp_disp;
            					}
            					else {
HXLINE( 580)						_hx_tmp72 = false;
            					}
HXDLIN( 580)					if (_hx_tmp72) {
HXLINE( 580)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 580)					{
HXLINE( 580)						 ::zpp_nape::geom::ZPP_Vec2 _this13 = _this9->zpp_inner;
HXDLIN( 580)						if (_this13->_immutable) {
HXLINE( 580)							HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            						}
HXDLIN( 580)						if (hx::IsNotNull( _this13->_isimmutable )) {
HXLINE( 580)							_this13->_isimmutable();
            						}
            					}
HXDLIN( 580)					bool _hx_tmp73;
HXDLIN( 580)					if ((x1 == x1)) {
HXLINE( 580)						_hx_tmp73 = (y1 != y1);
            					}
            					else {
HXLINE( 580)						_hx_tmp73 = true;
            					}
HXDLIN( 580)					if (_hx_tmp73) {
HXLINE( 580)						HX_STACK_DO_THROW(HX_("Error: Vec2 components cannot be NaN",85,ba,d8,c1));
            					}
HXDLIN( 580)					bool _hx_tmp74;
HXDLIN( 580)					bool _hx_tmp75;
HXDLIN( 580)					if (hx::IsNotNull( _this9 )) {
HXLINE( 580)						_hx_tmp75 = _this9->zpp_disp;
            					}
            					else {
HXLINE( 580)						_hx_tmp75 = false;
            					}
HXDLIN( 580)					if (_hx_tmp75) {
HXLINE( 580)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 580)					{
HXLINE( 580)						 ::zpp_nape::geom::ZPP_Vec2 _this14 = _this9->zpp_inner;
HXDLIN( 580)						if (hx::IsNotNull( _this14->_validate )) {
HXLINE( 580)							_this14->_validate();
            						}
            					}
HXDLIN( 580)					if ((_this9->zpp_inner->x == x1)) {
HXLINE( 580)						bool _hx_tmp76;
HXDLIN( 580)						if (hx::IsNotNull( _this9 )) {
HXLINE( 580)							_hx_tmp76 = _this9->zpp_disp;
            						}
            						else {
HXLINE( 580)							_hx_tmp76 = false;
            						}
HXDLIN( 580)						if (_hx_tmp76) {
HXLINE( 580)							HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            						}
HXDLIN( 580)						{
HXLINE( 580)							 ::zpp_nape::geom::ZPP_Vec2 _this15 = _this9->zpp_inner;
HXDLIN( 580)							if (hx::IsNotNull( _this15->_validate )) {
HXLINE( 580)								_this15->_validate();
            							}
            						}
HXDLIN( 580)						_hx_tmp74 = (_this9->zpp_inner->y == y1);
            					}
            					else {
HXLINE( 580)						_hx_tmp74 = false;
            					}
HXDLIN( 580)					if (!(_hx_tmp74)) {
HXLINE( 580)						{
HXLINE( 580)							_this9->zpp_inner->x = x1;
HXDLIN( 580)							_this9->zpp_inner->y = y1;
            						}
HXDLIN( 580)						{
HXLINE( 580)							 ::zpp_nape::geom::ZPP_Vec2 _this16 = _this9->zpp_inner;
HXDLIN( 580)							if (hx::IsNotNull( _this16->_invalidate )) {
HXLINE( 580)								_this16->_invalidate(_this16);
            							}
            						}
            					}
HXDLIN( 580)					 ::nape::geom::Vec2 ret1 = _this9;
HXDLIN( 580)					if (anchor2->zpp_inner->weak) {
HXLINE( 580)						bool _hx_tmp77;
HXDLIN( 580)						if (hx::IsNotNull( anchor2 )) {
HXLINE( 580)							_hx_tmp77 = anchor2->zpp_disp;
            						}
            						else {
HXLINE( 580)							_hx_tmp77 = false;
            						}
HXDLIN( 580)						if (_hx_tmp77) {
HXLINE( 580)							HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            						}
HXDLIN( 580)						{
HXLINE( 580)							 ::zpp_nape::geom::ZPP_Vec2 _this17 = anchor2->zpp_inner;
HXDLIN( 580)							if (_this17->_immutable) {
HXLINE( 580)								HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            							}
HXDLIN( 580)							if (hx::IsNotNull( _this17->_isimmutable )) {
HXLINE( 580)								_this17->_isimmutable();
            							}
            						}
HXDLIN( 580)						if (anchor2->zpp_inner->_inuse) {
HXLINE( 580)							HX_STACK_DO_THROW(HX_("Error: This Vec2 is not disposable",b5,d1,d1,d8));
            						}
HXDLIN( 580)						 ::zpp_nape::geom::ZPP_Vec2 inner1 = anchor2->zpp_inner;
HXDLIN( 580)						anchor2->zpp_inner->outer = null();
HXDLIN( 580)						anchor2->zpp_inner = null();
HXDLIN( 580)						{
HXLINE( 580)							 ::nape::geom::Vec2 o2 = anchor2;
HXDLIN( 580)							o2->zpp_pool = null();
HXDLIN( 580)							if (hx::IsNotNull( ::zpp_nape::util::ZPP_PubPool_obj::nextVec2 )) {
HXLINE( 580)								::zpp_nape::util::ZPP_PubPool_obj::nextVec2->zpp_pool = o2;
            							}
            							else {
HXLINE( 580)								::zpp_nape::util::ZPP_PubPool_obj::poolVec2 = o2;
            							}
HXDLIN( 580)							::zpp_nape::util::ZPP_PubPool_obj::nextVec2 = o2;
HXDLIN( 580)							o2->zpp_disp = true;
            						}
HXDLIN( 580)						{
HXLINE( 580)							 ::zpp_nape::geom::ZPP_Vec2 o3 = inner1;
HXDLIN( 580)							{
HXLINE( 580)								if (hx::IsNotNull( o3->outer )) {
HXLINE( 580)									o3->outer->zpp_inner = null();
HXDLIN( 580)									o3->outer = null();
            								}
HXDLIN( 580)								o3->_isimmutable = null();
HXDLIN( 580)								o3->_validate = null();
HXDLIN( 580)								o3->_invalidate = null();
            							}
HXDLIN( 580)							o3->next = ::zpp_nape::geom::ZPP_Vec2_obj::zpp_pool;
HXDLIN( 580)							::zpp_nape::geom::ZPP_Vec2_obj::zpp_pool = o3;
            						}
            					}
            				}
            			}
HXDLIN( 580)			if (hx::IsNull( this->zpp_inner_zn->wrap_a2 )) {
HXLINE( 580)				this->zpp_inner_zn->setup_a2();
            			}
            		}
HXLINE( 581)		{
HXLINE( 581)			{
HXLINE( 581)				bool _hx_tmp78;
HXDLIN( 581)				if (hx::IsNotNull( anchor3 )) {
HXLINE( 581)					_hx_tmp78 = anchor3->zpp_disp;
            				}
            				else {
HXLINE( 581)					_hx_tmp78 = false;
            				}
HXDLIN( 581)				if (_hx_tmp78) {
HXLINE( 581)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 581)				if (hx::IsNull( anchor3 )) {
HXLINE( 581)					HX_STACK_DO_THROW(((HX_("Error: Constraint::",cb,f5,02,d5) + HX_("anchor3",1e,ec,a1,02)) + HX_(" cannot be null",07,dc,5d,15)));
            				}
HXDLIN( 581)				{
HXLINE( 581)					if (hx::IsNull( this->zpp_inner_zn->wrap_a3 )) {
HXLINE( 581)						this->zpp_inner_zn->setup_a3();
            					}
HXDLIN( 581)					 ::nape::geom::Vec2 _this18 = this->zpp_inner_zn->wrap_a3;
HXDLIN( 581)					bool _hx_tmp79;
HXDLIN( 581)					if (hx::IsNotNull( _this18 )) {
HXLINE( 581)						_hx_tmp79 = _this18->zpp_disp;
            					}
            					else {
HXLINE( 581)						_hx_tmp79 = false;
            					}
HXDLIN( 581)					if (_hx_tmp79) {
HXLINE( 581)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 581)					bool _hx_tmp80;
HXDLIN( 581)					if (hx::IsNotNull( anchor3 )) {
HXLINE( 581)						_hx_tmp80 = anchor3->zpp_disp;
            					}
            					else {
HXLINE( 581)						_hx_tmp80 = false;
            					}
HXDLIN( 581)					if (_hx_tmp80) {
HXLINE( 581)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 581)					{
HXLINE( 581)						 ::zpp_nape::geom::ZPP_Vec2 _this19 = _this18->zpp_inner;
HXDLIN( 581)						if (_this19->_immutable) {
HXLINE( 581)							HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            						}
HXDLIN( 581)						if (hx::IsNotNull( _this19->_isimmutable )) {
HXLINE( 581)							_this19->_isimmutable();
            						}
            					}
HXDLIN( 581)					if (hx::IsNull( anchor3 )) {
HXLINE( 581)						HX_STACK_DO_THROW(HX_("Error: Cannot assign null Vec2",95,15,46,66));
            					}
HXDLIN( 581)					bool _hx_tmp81;
HXDLIN( 581)					if (hx::IsNotNull( anchor3 )) {
HXLINE( 581)						_hx_tmp81 = anchor3->zpp_disp;
            					}
            					else {
HXLINE( 581)						_hx_tmp81 = false;
            					}
HXDLIN( 581)					if (_hx_tmp81) {
HXLINE( 581)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 581)					{
HXLINE( 581)						 ::zpp_nape::geom::ZPP_Vec2 _this20 = anchor3->zpp_inner;
HXDLIN( 581)						if (hx::IsNotNull( _this20->_validate )) {
HXLINE( 581)							_this20->_validate();
            						}
            					}
HXDLIN( 581)					Float x2 = anchor3->zpp_inner->x;
HXDLIN( 581)					bool _hx_tmp82;
HXDLIN( 581)					if (hx::IsNotNull( anchor3 )) {
HXLINE( 581)						_hx_tmp82 = anchor3->zpp_disp;
            					}
            					else {
HXLINE( 581)						_hx_tmp82 = false;
            					}
HXDLIN( 581)					if (_hx_tmp82) {
HXLINE( 581)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 581)					{
HXLINE( 581)						 ::zpp_nape::geom::ZPP_Vec2 _this21 = anchor3->zpp_inner;
HXDLIN( 581)						if (hx::IsNotNull( _this21->_validate )) {
HXLINE( 581)							_this21->_validate();
            						}
            					}
HXDLIN( 581)					Float y2 = anchor3->zpp_inner->y;
HXDLIN( 581)					bool _hx_tmp83;
HXDLIN( 581)					if (hx::IsNotNull( _this18 )) {
HXLINE( 581)						_hx_tmp83 = _this18->zpp_disp;
            					}
            					else {
HXLINE( 581)						_hx_tmp83 = false;
            					}
HXDLIN( 581)					if (_hx_tmp83) {
HXLINE( 581)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 581)					{
HXLINE( 581)						 ::zpp_nape::geom::ZPP_Vec2 _this22 = _this18->zpp_inner;
HXDLIN( 581)						if (_this22->_immutable) {
HXLINE( 581)							HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            						}
HXDLIN( 581)						if (hx::IsNotNull( _this22->_isimmutable )) {
HXLINE( 581)							_this22->_isimmutable();
            						}
            					}
HXDLIN( 581)					bool _hx_tmp84;
HXDLIN( 581)					if ((x2 == x2)) {
HXLINE( 581)						_hx_tmp84 = (y2 != y2);
            					}
            					else {
HXLINE( 581)						_hx_tmp84 = true;
            					}
HXDLIN( 581)					if (_hx_tmp84) {
HXLINE( 581)						HX_STACK_DO_THROW(HX_("Error: Vec2 components cannot be NaN",85,ba,d8,c1));
            					}
HXDLIN( 581)					bool _hx_tmp85;
HXDLIN( 581)					bool _hx_tmp86;
HXDLIN( 581)					if (hx::IsNotNull( _this18 )) {
HXLINE( 581)						_hx_tmp86 = _this18->zpp_disp;
            					}
            					else {
HXLINE( 581)						_hx_tmp86 = false;
            					}
HXDLIN( 581)					if (_hx_tmp86) {
HXLINE( 581)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 581)					{
HXLINE( 581)						 ::zpp_nape::geom::ZPP_Vec2 _this23 = _this18->zpp_inner;
HXDLIN( 581)						if (hx::IsNotNull( _this23->_validate )) {
HXLINE( 581)							_this23->_validate();
            						}
            					}
HXDLIN( 581)					if ((_this18->zpp_inner->x == x2)) {
HXLINE( 581)						bool _hx_tmp87;
HXDLIN( 581)						if (hx::IsNotNull( _this18 )) {
HXLINE( 581)							_hx_tmp87 = _this18->zpp_disp;
            						}
            						else {
HXLINE( 581)							_hx_tmp87 = false;
            						}
HXDLIN( 581)						if (_hx_tmp87) {
HXLINE( 581)							HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            						}
HXDLIN( 581)						{
HXLINE( 581)							 ::zpp_nape::geom::ZPP_Vec2 _this24 = _this18->zpp_inner;
HXDLIN( 581)							if (hx::IsNotNull( _this24->_validate )) {
HXLINE( 581)								_this24->_validate();
            							}
            						}
HXDLIN( 581)						_hx_tmp85 = (_this18->zpp_inner->y == y2);
            					}
            					else {
HXLINE( 581)						_hx_tmp85 = false;
            					}
HXDLIN( 581)					if (!(_hx_tmp85)) {
HXLINE( 581)						{
HXLINE( 581)							_this18->zpp_inner->x = x2;
HXDLIN( 581)							_this18->zpp_inner->y = y2;
            						}
HXDLIN( 581)						{
HXLINE( 581)							 ::zpp_nape::geom::ZPP_Vec2 _this25 = _this18->zpp_inner;
HXDLIN( 581)							if (hx::IsNotNull( _this25->_invalidate )) {
HXLINE( 581)								_this25->_invalidate(_this25);
            							}
            						}
            					}
HXDLIN( 581)					 ::nape::geom::Vec2 ret2 = _this18;
HXDLIN( 581)					if (anchor3->zpp_inner->weak) {
HXLINE( 581)						bool _hx_tmp88;
HXDLIN( 581)						if (hx::IsNotNull( anchor3 )) {
HXLINE( 581)							_hx_tmp88 = anchor3->zpp_disp;
            						}
            						else {
HXLINE( 581)							_hx_tmp88 = false;
            						}
HXDLIN( 581)						if (_hx_tmp88) {
HXLINE( 581)							HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            						}
HXDLIN( 581)						{
HXLINE( 581)							 ::zpp_nape::geom::ZPP_Vec2 _this26 = anchor3->zpp_inner;
HXDLIN( 581)							if (_this26->_immutable) {
HXLINE( 581)								HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            							}
HXDLIN( 581)							if (hx::IsNotNull( _this26->_isimmutable )) {
HXLINE( 581)								_this26->_isimmutable();
            							}
            						}
HXDLIN( 581)						if (anchor3->zpp_inner->_inuse) {
HXLINE( 581)							HX_STACK_DO_THROW(HX_("Error: This Vec2 is not disposable",b5,d1,d1,d8));
            						}
HXDLIN( 581)						 ::zpp_nape::geom::ZPP_Vec2 inner2 = anchor3->zpp_inner;
HXDLIN( 581)						anchor3->zpp_inner->outer = null();
HXDLIN( 581)						anchor3->zpp_inner = null();
HXDLIN( 581)						{
HXLINE( 581)							 ::nape::geom::Vec2 o4 = anchor3;
HXDLIN( 581)							o4->zpp_pool = null();
HXDLIN( 581)							if (hx::IsNotNull( ::zpp_nape::util::ZPP_PubPool_obj::nextVec2 )) {
HXLINE( 581)								::zpp_nape::util::ZPP_PubPool_obj::nextVec2->zpp_pool = o4;
            							}
            							else {
HXLINE( 581)								::zpp_nape::util::ZPP_PubPool_obj::poolVec2 = o4;
            							}
HXDLIN( 581)							::zpp_nape::util::ZPP_PubPool_obj::nextVec2 = o4;
HXDLIN( 581)							o4->zpp_disp = true;
            						}
HXDLIN( 581)						{
HXLINE( 581)							 ::zpp_nape::geom::ZPP_Vec2 o5 = inner2;
HXDLIN( 581)							{
HXLINE( 581)								if (hx::IsNotNull( o5->outer )) {
HXLINE( 581)									o5->outer->zpp_inner = null();
HXDLIN( 581)									o5->outer = null();
            								}
HXDLIN( 581)								o5->_isimmutable = null();
HXDLIN( 581)								o5->_validate = null();
HXDLIN( 581)								o5->_invalidate = null();
            							}
HXDLIN( 581)							o5->next = ::zpp_nape::geom::ZPP_Vec2_obj::zpp_pool;
HXDLIN( 581)							::zpp_nape::geom::ZPP_Vec2_obj::zpp_pool = o5;
            						}
            					}
            				}
            			}
HXDLIN( 581)			if (hx::IsNull( this->zpp_inner_zn->wrap_a3 )) {
HXLINE( 581)				this->zpp_inner_zn->setup_a3();
            			}
            		}
HXLINE( 582)		{
HXLINE( 582)			{
HXLINE( 582)				bool _hx_tmp89;
HXDLIN( 582)				if (hx::IsNotNull( anchor4 )) {
HXLINE( 582)					_hx_tmp89 = anchor4->zpp_disp;
            				}
            				else {
HXLINE( 582)					_hx_tmp89 = false;
            				}
HXDLIN( 582)				if (_hx_tmp89) {
HXLINE( 582)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 582)				if (hx::IsNull( anchor4 )) {
HXLINE( 582)					HX_STACK_DO_THROW(((HX_("Error: Constraint::",cb,f5,02,d5) + HX_("anchor4",1f,ec,a1,02)) + HX_(" cannot be null",07,dc,5d,15)));
            				}
HXDLIN( 582)				{
HXLINE( 582)					if (hx::IsNull( this->zpp_inner_zn->wrap_a4 )) {
HXLINE( 582)						this->zpp_inner_zn->setup_a4();
            					}
HXDLIN( 582)					 ::nape::geom::Vec2 _this27 = this->zpp_inner_zn->wrap_a4;
HXDLIN( 582)					bool _hx_tmp90;
HXDLIN( 582)					if (hx::IsNotNull( _this27 )) {
HXLINE( 582)						_hx_tmp90 = _this27->zpp_disp;
            					}
            					else {
HXLINE( 582)						_hx_tmp90 = false;
            					}
HXDLIN( 582)					if (_hx_tmp90) {
HXLINE( 582)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 582)					bool _hx_tmp91;
HXDLIN( 582)					if (hx::IsNotNull( anchor4 )) {
HXLINE( 582)						_hx_tmp91 = anchor4->zpp_disp;
            					}
            					else {
HXLINE( 582)						_hx_tmp91 = false;
            					}
HXDLIN( 582)					if (_hx_tmp91) {
HXLINE( 582)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 582)					{
HXLINE( 582)						 ::zpp_nape::geom::ZPP_Vec2 _this28 = _this27->zpp_inner;
HXDLIN( 582)						if (_this28->_immutable) {
HXLINE( 582)							HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            						}
HXDLIN( 582)						if (hx::IsNotNull( _this28->_isimmutable )) {
HXLINE( 582)							_this28->_isimmutable();
            						}
            					}
HXDLIN( 582)					if (hx::IsNull( anchor4 )) {
HXLINE( 582)						HX_STACK_DO_THROW(HX_("Error: Cannot assign null Vec2",95,15,46,66));
            					}
HXDLIN( 582)					bool _hx_tmp92;
HXDLIN( 582)					if (hx::IsNotNull( anchor4 )) {
HXLINE( 582)						_hx_tmp92 = anchor4->zpp_disp;
            					}
            					else {
HXLINE( 582)						_hx_tmp92 = false;
            					}
HXDLIN( 582)					if (_hx_tmp92) {
HXLINE( 582)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 582)					{
HXLINE( 582)						 ::zpp_nape::geom::ZPP_Vec2 _this29 = anchor4->zpp_inner;
HXDLIN( 582)						if (hx::IsNotNull( _this29->_validate )) {
HXLINE( 582)							_this29->_validate();
            						}
            					}
HXDLIN( 582)					Float x3 = anchor4->zpp_inner->x;
HXDLIN( 582)					bool _hx_tmp93;
HXDLIN( 582)					if (hx::IsNotNull( anchor4 )) {
HXLINE( 582)						_hx_tmp93 = anchor4->zpp_disp;
            					}
            					else {
HXLINE( 582)						_hx_tmp93 = false;
            					}
HXDLIN( 582)					if (_hx_tmp93) {
HXLINE( 582)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 582)					{
HXLINE( 582)						 ::zpp_nape::geom::ZPP_Vec2 _this30 = anchor4->zpp_inner;
HXDLIN( 582)						if (hx::IsNotNull( _this30->_validate )) {
HXLINE( 582)							_this30->_validate();
            						}
            					}
HXDLIN( 582)					Float y3 = anchor4->zpp_inner->y;
HXDLIN( 582)					bool _hx_tmp94;
HXDLIN( 582)					if (hx::IsNotNull( _this27 )) {
HXLINE( 582)						_hx_tmp94 = _this27->zpp_disp;
            					}
            					else {
HXLINE( 582)						_hx_tmp94 = false;
            					}
HXDLIN( 582)					if (_hx_tmp94) {
HXLINE( 582)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 582)					{
HXLINE( 582)						 ::zpp_nape::geom::ZPP_Vec2 _this31 = _this27->zpp_inner;
HXDLIN( 582)						if (_this31->_immutable) {
HXLINE( 582)							HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            						}
HXDLIN( 582)						if (hx::IsNotNull( _this31->_isimmutable )) {
HXLINE( 582)							_this31->_isimmutable();
            						}
            					}
HXDLIN( 582)					bool _hx_tmp95;
HXDLIN( 582)					if ((x3 == x3)) {
HXLINE( 582)						_hx_tmp95 = (y3 != y3);
            					}
            					else {
HXLINE( 582)						_hx_tmp95 = true;
            					}
HXDLIN( 582)					if (_hx_tmp95) {
HXLINE( 582)						HX_STACK_DO_THROW(HX_("Error: Vec2 components cannot be NaN",85,ba,d8,c1));
            					}
HXDLIN( 582)					bool _hx_tmp96;
HXDLIN( 582)					bool _hx_tmp97;
HXDLIN( 582)					if (hx::IsNotNull( _this27 )) {
HXLINE( 582)						_hx_tmp97 = _this27->zpp_disp;
            					}
            					else {
HXLINE( 582)						_hx_tmp97 = false;
            					}
HXDLIN( 582)					if (_hx_tmp97) {
HXLINE( 582)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 582)					{
HXLINE( 582)						 ::zpp_nape::geom::ZPP_Vec2 _this32 = _this27->zpp_inner;
HXDLIN( 582)						if (hx::IsNotNull( _this32->_validate )) {
HXLINE( 582)							_this32->_validate();
            						}
            					}
HXDLIN( 582)					if ((_this27->zpp_inner->x == x3)) {
HXLINE( 582)						bool _hx_tmp98;
HXDLIN( 582)						if (hx::IsNotNull( _this27 )) {
HXLINE( 582)							_hx_tmp98 = _this27->zpp_disp;
            						}
            						else {
HXLINE( 582)							_hx_tmp98 = false;
            						}
HXDLIN( 582)						if (_hx_tmp98) {
HXLINE( 582)							HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            						}
HXDLIN( 582)						{
HXLINE( 582)							 ::zpp_nape::geom::ZPP_Vec2 _this33 = _this27->zpp_inner;
HXDLIN( 582)							if (hx::IsNotNull( _this33->_validate )) {
HXLINE( 582)								_this33->_validate();
            							}
            						}
HXDLIN( 582)						_hx_tmp96 = (_this27->zpp_inner->y == y3);
            					}
            					else {
HXLINE( 582)						_hx_tmp96 = false;
            					}
HXDLIN( 582)					if (!(_hx_tmp96)) {
HXLINE( 582)						{
HXLINE( 582)							_this27->zpp_inner->x = x3;
HXDLIN( 582)							_this27->zpp_inner->y = y3;
            						}
HXDLIN( 582)						{
HXLINE( 582)							 ::zpp_nape::geom::ZPP_Vec2 _this34 = _this27->zpp_inner;
HXDLIN( 582)							if (hx::IsNotNull( _this34->_invalidate )) {
HXLINE( 582)								_this34->_invalidate(_this34);
            							}
            						}
            					}
HXDLIN( 582)					 ::nape::geom::Vec2 ret3 = _this27;
HXDLIN( 582)					if (anchor4->zpp_inner->weak) {
HXLINE( 582)						bool _hx_tmp99;
HXDLIN( 582)						if (hx::IsNotNull( anchor4 )) {
HXLINE( 582)							_hx_tmp99 = anchor4->zpp_disp;
            						}
            						else {
HXLINE( 582)							_hx_tmp99 = false;
            						}
HXDLIN( 582)						if (_hx_tmp99) {
HXLINE( 582)							HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            						}
HXDLIN( 582)						{
HXLINE( 582)							 ::zpp_nape::geom::ZPP_Vec2 _this35 = anchor4->zpp_inner;
HXDLIN( 582)							if (_this35->_immutable) {
HXLINE( 582)								HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            							}
HXDLIN( 582)							if (hx::IsNotNull( _this35->_isimmutable )) {
HXLINE( 582)								_this35->_isimmutable();
            							}
            						}
HXDLIN( 582)						if (anchor4->zpp_inner->_inuse) {
HXLINE( 582)							HX_STACK_DO_THROW(HX_("Error: This Vec2 is not disposable",b5,d1,d1,d8));
            						}
HXDLIN( 582)						 ::zpp_nape::geom::ZPP_Vec2 inner3 = anchor4->zpp_inner;
HXDLIN( 582)						anchor4->zpp_inner->outer = null();
HXDLIN( 582)						anchor4->zpp_inner = null();
HXDLIN( 582)						{
HXLINE( 582)							 ::nape::geom::Vec2 o6 = anchor4;
HXDLIN( 582)							o6->zpp_pool = null();
HXDLIN( 582)							if (hx::IsNotNull( ::zpp_nape::util::ZPP_PubPool_obj::nextVec2 )) {
HXLINE( 582)								::zpp_nape::util::ZPP_PubPool_obj::nextVec2->zpp_pool = o6;
            							}
            							else {
HXLINE( 582)								::zpp_nape::util::ZPP_PubPool_obj::poolVec2 = o6;
            							}
HXDLIN( 582)							::zpp_nape::util::ZPP_PubPool_obj::nextVec2 = o6;
HXDLIN( 582)							o6->zpp_disp = true;
            						}
HXDLIN( 582)						{
HXLINE( 582)							 ::zpp_nape::geom::ZPP_Vec2 o7 = inner3;
HXDLIN( 582)							{
HXLINE( 582)								if (hx::IsNotNull( o7->outer )) {
HXLINE( 582)									o7->outer->zpp_inner = null();
HXDLIN( 582)									o7->outer = null();
            								}
HXDLIN( 582)								o7->_isimmutable = null();
HXDLIN( 582)								o7->_validate = null();
HXDLIN( 582)								o7->_invalidate = null();
            							}
HXDLIN( 582)							o7->next = ::zpp_nape::geom::ZPP_Vec2_obj::zpp_pool;
HXDLIN( 582)							::zpp_nape::geom::ZPP_Vec2_obj::zpp_pool = o7;
            						}
            					}
            				}
            			}
HXDLIN( 582)			if (hx::IsNull( this->zpp_inner_zn->wrap_a4 )) {
HXLINE( 582)				this->zpp_inner_zn->setup_a4();
            			}
            		}
HXLINE( 583)		{
HXLINE( 583)			this->zpp_inner->immutable_midstep(HX_("PulleyJoint::ratio",7a,cf,1b,11));
HXDLIN( 583)			if ((ratio != ratio)) {
HXLINE( 583)				HX_STACK_DO_THROW(HX_("Error: PulleyJoint::ratio cannot be NaN",63,48,fa,b0));
            			}
HXDLIN( 583)			if ((this->zpp_inner_zn->ratio != ratio)) {
HXLINE( 583)				this->zpp_inner_zn->ratio = ratio;
HXDLIN( 583)				this->zpp_inner->wake();
            			}
            		}
HXLINE( 584)		{
HXLINE( 584)			this->zpp_inner->immutable_midstep(HX_("PulleyJoint::jointMin",59,4f,c9,70));
HXDLIN( 584)			if ((jointMin != jointMin)) {
HXLINE( 584)				HX_STACK_DO_THROW(HX_("Error: PulleyJoint::jointMin cannot be NaN",a6,94,5b,4c));
            			}
HXDLIN( 584)			if ((jointMin < 0)) {
HXLINE( 584)				HX_STACK_DO_THROW(HX_("Error: PulleyJoint::jointMin must be >= 0",6a,47,db,7e));
            			}
HXDLIN( 584)			if ((this->zpp_inner_zn->jointMin != jointMin)) {
HXLINE( 584)				this->zpp_inner_zn->jointMin = jointMin;
HXDLIN( 584)				this->zpp_inner->wake();
            			}
            		}
HXLINE( 585)		{
HXLINE( 585)			this->zpp_inner->immutable_midstep(HX_("PulleyJoint::jointMax",6b,48,c9,70));
HXDLIN( 585)			if ((jointMax != jointMax)) {
HXLINE( 585)				HX_STACK_DO_THROW(HX_("Error: PulleyJoint::jointMax cannot be NaN",38,89,ae,e4));
            			}
HXDLIN( 585)			if ((jointMax < 0)) {
HXLINE( 585)				HX_STACK_DO_THROW(HX_("Error: PulleyJoint::jointMax must be >= 0",18,8b,c3,71));
            			}
HXDLIN( 585)			if ((this->zpp_inner_zn->jointMax != jointMax)) {
HXLINE( 585)				this->zpp_inner_zn->jointMax = jointMax;
HXDLIN( 585)				this->zpp_inner->wake();
            			}
            		}
            	}

Dynamic PulleyJoint_obj::__CreateEmpty() { return new PulleyJoint_obj; }

void *PulleyJoint_obj::_hx_vtable = 0;

Dynamic PulleyJoint_obj::__Create(hx::DynamicArray inArgs)
{
	hx::ObjectPtr< PulleyJoint_obj > _hx_result = new PulleyJoint_obj();
	_hx_result->__construct(inArgs[0],inArgs[1],inArgs[2],inArgs[3],inArgs[4],inArgs[5],inArgs[6],inArgs[7],inArgs[8],inArgs[9],inArgs[10]);
	return _hx_result;
}

bool PulleyJoint_obj::_hx_isInstanceOf(int inClassId) {
	if (inClassId<=(int)0x00e9fd26) {
		return inClassId==(int)0x00000001 || inClassId==(int)0x00e9fd26;
	} else {
		return inClassId==(int)0x05b69860;
	}
}

 ::nape::phys::Body PulleyJoint_obj::get_body1(){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_201_get_body1)
HXDLIN( 201)		if (hx::IsNull( this->zpp_inner_zn->b1 )) {
HXDLIN( 201)			return null();
            		}
            		else {
HXDLIN( 201)			return this->zpp_inner_zn->b1->outer;
            		}
HXDLIN( 201)		return null();
            	}


HX_DEFINE_DYNAMIC_FUNC0(PulleyJoint_obj,get_body1,return )

 ::nape::phys::Body PulleyJoint_obj::set_body1( ::nape::phys::Body body1){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_203_set_body1)
HXLINE( 204)		{
HXLINE( 205)			this->zpp_inner->immutable_midstep((HX_("Constraint::",7d,10,25,6e) + HX_("body1",4f,d3,ef,b6)));
HXLINE( 206)			 ::zpp_nape::phys::ZPP_Body inbody1;
HXDLIN( 206)			if (hx::IsNull( body1 )) {
HXLINE( 206)				inbody1 = null();
            			}
            			else {
HXLINE( 206)				inbody1 = body1->zpp_inner;
            			}
HXLINE( 207)			if (hx::IsNotEq( inbody1,this->zpp_inner_zn->b1 )) {
HXLINE( 208)				if (hx::IsNotNull( this->zpp_inner_zn->b1 )) {
HXLINE( 209)					bool _hx_tmp;
HXDLIN( 209)					bool _hx_tmp1;
HXDLIN( 209)					bool _hx_tmp2;
HXDLIN( 209)					 ::nape::space::Space _hx_tmp3;
HXDLIN( 209)					if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 209)						_hx_tmp3 = null();
            					}
            					else {
HXLINE( 209)						_hx_tmp3 = this->zpp_inner->space->outer;
            					}
HXDLIN( 209)					if (hx::IsNotNull( _hx_tmp3 )) {
HXLINE( 209)						_hx_tmp2 = hx::IsNotEq( this->zpp_inner_zn->b2,this->zpp_inner_zn->b1 );
            					}
            					else {
HXLINE( 209)						_hx_tmp2 = false;
            					}
HXDLIN( 209)					if (_hx_tmp2) {
HXLINE( 209)						_hx_tmp1 = hx::IsNotEq( this->zpp_inner_zn->b3,this->zpp_inner_zn->b1 );
            					}
            					else {
HXLINE( 209)						_hx_tmp1 = false;
            					}
HXDLIN( 209)					if (_hx_tmp1) {
HXLINE( 209)						_hx_tmp = hx::IsNotEq( this->zpp_inner_zn->b4,this->zpp_inner_zn->b1 );
            					}
            					else {
HXLINE( 209)						_hx_tmp = false;
            					}
HXDLIN( 209)					if (_hx_tmp) {
HXLINE( 211)						if (hx::IsNotNull( this->zpp_inner_zn->b1 )) {
HXLINE( 211)							this->zpp_inner_zn->b1->constraints->remove(this->zpp_inner);
            						}
            					}
HXLINE( 214)					bool _hx_tmp4;
HXDLIN( 214)					if (this->zpp_inner->active) {
HXLINE( 214)						 ::nape::space::Space _hx_tmp5;
HXDLIN( 214)						if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 214)							_hx_tmp5 = null();
            						}
            						else {
HXLINE( 214)							_hx_tmp5 = this->zpp_inner->space->outer;
            						}
HXDLIN( 214)						_hx_tmp4 = hx::IsNotNull( _hx_tmp5 );
            					}
            					else {
HXLINE( 214)						_hx_tmp4 = false;
            					}
HXDLIN( 214)					if (_hx_tmp4) {
HXLINE( 214)						this->zpp_inner_zn->b1->wake();
            					}
            				}
HXLINE( 216)				this->zpp_inner_zn->b1 = inbody1;
HXLINE( 217)				bool _hx_tmp6;
HXDLIN( 217)				bool _hx_tmp7;
HXDLIN( 217)				bool _hx_tmp8;
HXDLIN( 217)				bool _hx_tmp9;
HXDLIN( 217)				 ::nape::space::Space _hx_tmp10;
HXDLIN( 217)				if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 217)					_hx_tmp10 = null();
            				}
            				else {
HXLINE( 217)					_hx_tmp10 = this->zpp_inner->space->outer;
            				}
HXDLIN( 217)				if (hx::IsNotNull( _hx_tmp10 )) {
HXLINE( 217)					_hx_tmp9 = hx::IsNotNull( inbody1 );
            				}
            				else {
HXLINE( 217)					_hx_tmp9 = false;
            				}
HXDLIN( 217)				if (_hx_tmp9) {
HXLINE( 217)					_hx_tmp8 = hx::IsNotEq( this->zpp_inner_zn->b2,inbody1 );
            				}
            				else {
HXLINE( 217)					_hx_tmp8 = false;
            				}
HXDLIN( 217)				if (_hx_tmp8) {
HXLINE( 217)					_hx_tmp7 = hx::IsNotEq( this->zpp_inner_zn->b3,inbody1 );
            				}
            				else {
HXLINE( 217)					_hx_tmp7 = false;
            				}
HXDLIN( 217)				if (_hx_tmp7) {
HXLINE( 217)					_hx_tmp6 = hx::IsNotEq( this->zpp_inner_zn->b4,inbody1 );
            				}
            				else {
HXLINE( 217)					_hx_tmp6 = false;
            				}
HXDLIN( 217)				if (_hx_tmp6) {
HXLINE( 219)					if (hx::IsNotNull( inbody1 )) {
HXLINE( 219)						inbody1->constraints->add(this->zpp_inner);
            					}
            				}
HXLINE( 222)				bool _hx_tmp11;
HXDLIN( 222)				if (this->zpp_inner->active) {
HXLINE( 222)					 ::nape::space::Space _hx_tmp12;
HXDLIN( 222)					if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 222)						_hx_tmp12 = null();
            					}
            					else {
HXLINE( 222)						_hx_tmp12 = this->zpp_inner->space->outer;
            					}
HXDLIN( 222)					_hx_tmp11 = hx::IsNotNull( _hx_tmp12 );
            				}
            				else {
HXLINE( 222)					_hx_tmp11 = false;
            				}
HXDLIN( 222)				if (_hx_tmp11) {
HXLINE( 223)					this->zpp_inner->wake();
HXLINE( 224)					if (hx::IsNotNull( inbody1 )) {
HXLINE( 224)						inbody1->wake();
            					}
            				}
            			}
            		}
HXLINE( 228)		if (hx::IsNull( this->zpp_inner_zn->b1 )) {
HXLINE( 228)			return null();
            		}
            		else {
HXLINE( 228)			return this->zpp_inner_zn->b1->outer;
            		}
HXDLIN( 228)		return null();
            	}


HX_DEFINE_DYNAMIC_FUNC1(PulleyJoint_obj,set_body1,return )

 ::nape::phys::Body PulleyJoint_obj::get_body2(){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_239_get_body2)
HXDLIN( 239)		if (hx::IsNull( this->zpp_inner_zn->b2 )) {
HXDLIN( 239)			return null();
            		}
            		else {
HXDLIN( 239)			return this->zpp_inner_zn->b2->outer;
            		}
HXDLIN( 239)		return null();
            	}


HX_DEFINE_DYNAMIC_FUNC0(PulleyJoint_obj,get_body2,return )

 ::nape::phys::Body PulleyJoint_obj::set_body2( ::nape::phys::Body body2){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_241_set_body2)
HXLINE( 242)		{
HXLINE( 243)			this->zpp_inner->immutable_midstep((HX_("Constraint::",7d,10,25,6e) + HX_("body2",50,d3,ef,b6)));
HXLINE( 244)			 ::zpp_nape::phys::ZPP_Body inbody2;
HXDLIN( 244)			if (hx::IsNull( body2 )) {
HXLINE( 244)				inbody2 = null();
            			}
            			else {
HXLINE( 244)				inbody2 = body2->zpp_inner;
            			}
HXLINE( 245)			if (hx::IsNotEq( inbody2,this->zpp_inner_zn->b2 )) {
HXLINE( 246)				if (hx::IsNotNull( this->zpp_inner_zn->b2 )) {
HXLINE( 247)					bool _hx_tmp;
HXDLIN( 247)					bool _hx_tmp1;
HXDLIN( 247)					bool _hx_tmp2;
HXDLIN( 247)					 ::nape::space::Space _hx_tmp3;
HXDLIN( 247)					if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 247)						_hx_tmp3 = null();
            					}
            					else {
HXLINE( 247)						_hx_tmp3 = this->zpp_inner->space->outer;
            					}
HXDLIN( 247)					if (hx::IsNotNull( _hx_tmp3 )) {
HXLINE( 247)						_hx_tmp2 = hx::IsNotEq( this->zpp_inner_zn->b1,this->zpp_inner_zn->b2 );
            					}
            					else {
HXLINE( 247)						_hx_tmp2 = false;
            					}
HXDLIN( 247)					if (_hx_tmp2) {
HXLINE( 247)						_hx_tmp1 = hx::IsNotEq( this->zpp_inner_zn->b3,this->zpp_inner_zn->b2 );
            					}
            					else {
HXLINE( 247)						_hx_tmp1 = false;
            					}
HXDLIN( 247)					if (_hx_tmp1) {
HXLINE( 247)						_hx_tmp = hx::IsNotEq( this->zpp_inner_zn->b4,this->zpp_inner_zn->b2 );
            					}
            					else {
HXLINE( 247)						_hx_tmp = false;
            					}
HXDLIN( 247)					if (_hx_tmp) {
HXLINE( 249)						if (hx::IsNotNull( this->zpp_inner_zn->b2 )) {
HXLINE( 249)							this->zpp_inner_zn->b2->constraints->remove(this->zpp_inner);
            						}
            					}
HXLINE( 252)					bool _hx_tmp4;
HXDLIN( 252)					if (this->zpp_inner->active) {
HXLINE( 252)						 ::nape::space::Space _hx_tmp5;
HXDLIN( 252)						if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 252)							_hx_tmp5 = null();
            						}
            						else {
HXLINE( 252)							_hx_tmp5 = this->zpp_inner->space->outer;
            						}
HXDLIN( 252)						_hx_tmp4 = hx::IsNotNull( _hx_tmp5 );
            					}
            					else {
HXLINE( 252)						_hx_tmp4 = false;
            					}
HXDLIN( 252)					if (_hx_tmp4) {
HXLINE( 252)						this->zpp_inner_zn->b2->wake();
            					}
            				}
HXLINE( 254)				this->zpp_inner_zn->b2 = inbody2;
HXLINE( 255)				bool _hx_tmp6;
HXDLIN( 255)				bool _hx_tmp7;
HXDLIN( 255)				bool _hx_tmp8;
HXDLIN( 255)				bool _hx_tmp9;
HXDLIN( 255)				 ::nape::space::Space _hx_tmp10;
HXDLIN( 255)				if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 255)					_hx_tmp10 = null();
            				}
            				else {
HXLINE( 255)					_hx_tmp10 = this->zpp_inner->space->outer;
            				}
HXDLIN( 255)				if (hx::IsNotNull( _hx_tmp10 )) {
HXLINE( 255)					_hx_tmp9 = hx::IsNotNull( inbody2 );
            				}
            				else {
HXLINE( 255)					_hx_tmp9 = false;
            				}
HXDLIN( 255)				if (_hx_tmp9) {
HXLINE( 255)					_hx_tmp8 = hx::IsNotEq( this->zpp_inner_zn->b1,inbody2 );
            				}
            				else {
HXLINE( 255)					_hx_tmp8 = false;
            				}
HXDLIN( 255)				if (_hx_tmp8) {
HXLINE( 255)					_hx_tmp7 = hx::IsNotEq( this->zpp_inner_zn->b3,inbody2 );
            				}
            				else {
HXLINE( 255)					_hx_tmp7 = false;
            				}
HXDLIN( 255)				if (_hx_tmp7) {
HXLINE( 255)					_hx_tmp6 = hx::IsNotEq( this->zpp_inner_zn->b4,inbody2 );
            				}
            				else {
HXLINE( 255)					_hx_tmp6 = false;
            				}
HXDLIN( 255)				if (_hx_tmp6) {
HXLINE( 257)					if (hx::IsNotNull( inbody2 )) {
HXLINE( 257)						inbody2->constraints->add(this->zpp_inner);
            					}
            				}
HXLINE( 260)				bool _hx_tmp11;
HXDLIN( 260)				if (this->zpp_inner->active) {
HXLINE( 260)					 ::nape::space::Space _hx_tmp12;
HXDLIN( 260)					if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 260)						_hx_tmp12 = null();
            					}
            					else {
HXLINE( 260)						_hx_tmp12 = this->zpp_inner->space->outer;
            					}
HXDLIN( 260)					_hx_tmp11 = hx::IsNotNull( _hx_tmp12 );
            				}
            				else {
HXLINE( 260)					_hx_tmp11 = false;
            				}
HXDLIN( 260)				if (_hx_tmp11) {
HXLINE( 261)					this->zpp_inner->wake();
HXLINE( 262)					if (hx::IsNotNull( inbody2 )) {
HXLINE( 262)						inbody2->wake();
            					}
            				}
            			}
            		}
HXLINE( 266)		if (hx::IsNull( this->zpp_inner_zn->b2 )) {
HXLINE( 266)			return null();
            		}
            		else {
HXLINE( 266)			return this->zpp_inner_zn->b2->outer;
            		}
HXDLIN( 266)		return null();
            	}


HX_DEFINE_DYNAMIC_FUNC1(PulleyJoint_obj,set_body2,return )

 ::nape::phys::Body PulleyJoint_obj::get_body3(){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_277_get_body3)
HXDLIN( 277)		if (hx::IsNull( this->zpp_inner_zn->b3 )) {
HXDLIN( 277)			return null();
            		}
            		else {
HXDLIN( 277)			return this->zpp_inner_zn->b3->outer;
            		}
HXDLIN( 277)		return null();
            	}


HX_DEFINE_DYNAMIC_FUNC0(PulleyJoint_obj,get_body3,return )

 ::nape::phys::Body PulleyJoint_obj::set_body3( ::nape::phys::Body body3){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_279_set_body3)
HXLINE( 280)		{
HXLINE( 281)			this->zpp_inner->immutable_midstep((HX_("Constraint::",7d,10,25,6e) + HX_("body3",51,d3,ef,b6)));
HXLINE( 282)			 ::zpp_nape::phys::ZPP_Body inbody3;
HXDLIN( 282)			if (hx::IsNull( body3 )) {
HXLINE( 282)				inbody3 = null();
            			}
            			else {
HXLINE( 282)				inbody3 = body3->zpp_inner;
            			}
HXLINE( 283)			if (hx::IsNotEq( inbody3,this->zpp_inner_zn->b3 )) {
HXLINE( 284)				if (hx::IsNotNull( this->zpp_inner_zn->b3 )) {
HXLINE( 285)					bool _hx_tmp;
HXDLIN( 285)					bool _hx_tmp1;
HXDLIN( 285)					bool _hx_tmp2;
HXDLIN( 285)					 ::nape::space::Space _hx_tmp3;
HXDLIN( 285)					if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 285)						_hx_tmp3 = null();
            					}
            					else {
HXLINE( 285)						_hx_tmp3 = this->zpp_inner->space->outer;
            					}
HXDLIN( 285)					if (hx::IsNotNull( _hx_tmp3 )) {
HXLINE( 285)						_hx_tmp2 = hx::IsNotEq( this->zpp_inner_zn->b1,this->zpp_inner_zn->b3 );
            					}
            					else {
HXLINE( 285)						_hx_tmp2 = false;
            					}
HXDLIN( 285)					if (_hx_tmp2) {
HXLINE( 285)						_hx_tmp1 = hx::IsNotEq( this->zpp_inner_zn->b2,this->zpp_inner_zn->b3 );
            					}
            					else {
HXLINE( 285)						_hx_tmp1 = false;
            					}
HXDLIN( 285)					if (_hx_tmp1) {
HXLINE( 285)						_hx_tmp = hx::IsNotEq( this->zpp_inner_zn->b4,this->zpp_inner_zn->b3 );
            					}
            					else {
HXLINE( 285)						_hx_tmp = false;
            					}
HXDLIN( 285)					if (_hx_tmp) {
HXLINE( 287)						if (hx::IsNotNull( this->zpp_inner_zn->b3 )) {
HXLINE( 287)							this->zpp_inner_zn->b3->constraints->remove(this->zpp_inner);
            						}
            					}
HXLINE( 290)					bool _hx_tmp4;
HXDLIN( 290)					if (this->zpp_inner->active) {
HXLINE( 290)						 ::nape::space::Space _hx_tmp5;
HXDLIN( 290)						if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 290)							_hx_tmp5 = null();
            						}
            						else {
HXLINE( 290)							_hx_tmp5 = this->zpp_inner->space->outer;
            						}
HXDLIN( 290)						_hx_tmp4 = hx::IsNotNull( _hx_tmp5 );
            					}
            					else {
HXLINE( 290)						_hx_tmp4 = false;
            					}
HXDLIN( 290)					if (_hx_tmp4) {
HXLINE( 290)						this->zpp_inner_zn->b3->wake();
            					}
            				}
HXLINE( 292)				this->zpp_inner_zn->b3 = inbody3;
HXLINE( 293)				bool _hx_tmp6;
HXDLIN( 293)				bool _hx_tmp7;
HXDLIN( 293)				bool _hx_tmp8;
HXDLIN( 293)				bool _hx_tmp9;
HXDLIN( 293)				 ::nape::space::Space _hx_tmp10;
HXDLIN( 293)				if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 293)					_hx_tmp10 = null();
            				}
            				else {
HXLINE( 293)					_hx_tmp10 = this->zpp_inner->space->outer;
            				}
HXDLIN( 293)				if (hx::IsNotNull( _hx_tmp10 )) {
HXLINE( 293)					_hx_tmp9 = hx::IsNotNull( inbody3 );
            				}
            				else {
HXLINE( 293)					_hx_tmp9 = false;
            				}
HXDLIN( 293)				if (_hx_tmp9) {
HXLINE( 293)					_hx_tmp8 = hx::IsNotEq( this->zpp_inner_zn->b1,inbody3 );
            				}
            				else {
HXLINE( 293)					_hx_tmp8 = false;
            				}
HXDLIN( 293)				if (_hx_tmp8) {
HXLINE( 293)					_hx_tmp7 = hx::IsNotEq( this->zpp_inner_zn->b2,inbody3 );
            				}
            				else {
HXLINE( 293)					_hx_tmp7 = false;
            				}
HXDLIN( 293)				if (_hx_tmp7) {
HXLINE( 293)					_hx_tmp6 = hx::IsNotEq( this->zpp_inner_zn->b4,inbody3 );
            				}
            				else {
HXLINE( 293)					_hx_tmp6 = false;
            				}
HXDLIN( 293)				if (_hx_tmp6) {
HXLINE( 295)					if (hx::IsNotNull( inbody3 )) {
HXLINE( 295)						inbody3->constraints->add(this->zpp_inner);
            					}
            				}
HXLINE( 298)				bool _hx_tmp11;
HXDLIN( 298)				if (this->zpp_inner->active) {
HXLINE( 298)					 ::nape::space::Space _hx_tmp12;
HXDLIN( 298)					if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 298)						_hx_tmp12 = null();
            					}
            					else {
HXLINE( 298)						_hx_tmp12 = this->zpp_inner->space->outer;
            					}
HXDLIN( 298)					_hx_tmp11 = hx::IsNotNull( _hx_tmp12 );
            				}
            				else {
HXLINE( 298)					_hx_tmp11 = false;
            				}
HXDLIN( 298)				if (_hx_tmp11) {
HXLINE( 299)					this->zpp_inner->wake();
HXLINE( 300)					if (hx::IsNotNull( inbody3 )) {
HXLINE( 300)						inbody3->wake();
            					}
            				}
            			}
            		}
HXLINE( 304)		if (hx::IsNull( this->zpp_inner_zn->b3 )) {
HXLINE( 304)			return null();
            		}
            		else {
HXLINE( 304)			return this->zpp_inner_zn->b3->outer;
            		}
HXDLIN( 304)		return null();
            	}


HX_DEFINE_DYNAMIC_FUNC1(PulleyJoint_obj,set_body3,return )

 ::nape::phys::Body PulleyJoint_obj::get_body4(){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_315_get_body4)
HXDLIN( 315)		if (hx::IsNull( this->zpp_inner_zn->b4 )) {
HXDLIN( 315)			return null();
            		}
            		else {
HXDLIN( 315)			return this->zpp_inner_zn->b4->outer;
            		}
HXDLIN( 315)		return null();
            	}


HX_DEFINE_DYNAMIC_FUNC0(PulleyJoint_obj,get_body4,return )

 ::nape::phys::Body PulleyJoint_obj::set_body4( ::nape::phys::Body body4){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_317_set_body4)
HXLINE( 318)		{
HXLINE( 319)			this->zpp_inner->immutable_midstep((HX_("Constraint::",7d,10,25,6e) + HX_("body4",52,d3,ef,b6)));
HXLINE( 320)			 ::zpp_nape::phys::ZPP_Body inbody4;
HXDLIN( 320)			if (hx::IsNull( body4 )) {
HXLINE( 320)				inbody4 = null();
            			}
            			else {
HXLINE( 320)				inbody4 = body4->zpp_inner;
            			}
HXLINE( 321)			if (hx::IsNotEq( inbody4,this->zpp_inner_zn->b4 )) {
HXLINE( 322)				if (hx::IsNotNull( this->zpp_inner_zn->b4 )) {
HXLINE( 323)					bool _hx_tmp;
HXDLIN( 323)					bool _hx_tmp1;
HXDLIN( 323)					bool _hx_tmp2;
HXDLIN( 323)					 ::nape::space::Space _hx_tmp3;
HXDLIN( 323)					if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 323)						_hx_tmp3 = null();
            					}
            					else {
HXLINE( 323)						_hx_tmp3 = this->zpp_inner->space->outer;
            					}
HXDLIN( 323)					if (hx::IsNotNull( _hx_tmp3 )) {
HXLINE( 323)						_hx_tmp2 = hx::IsNotEq( this->zpp_inner_zn->b1,this->zpp_inner_zn->b4 );
            					}
            					else {
HXLINE( 323)						_hx_tmp2 = false;
            					}
HXDLIN( 323)					if (_hx_tmp2) {
HXLINE( 323)						_hx_tmp1 = hx::IsNotEq( this->zpp_inner_zn->b2,this->zpp_inner_zn->b4 );
            					}
            					else {
HXLINE( 323)						_hx_tmp1 = false;
            					}
HXDLIN( 323)					if (_hx_tmp1) {
HXLINE( 323)						_hx_tmp = hx::IsNotEq( this->zpp_inner_zn->b3,this->zpp_inner_zn->b4 );
            					}
            					else {
HXLINE( 323)						_hx_tmp = false;
            					}
HXDLIN( 323)					if (_hx_tmp) {
HXLINE( 325)						if (hx::IsNotNull( this->zpp_inner_zn->b4 )) {
HXLINE( 325)							this->zpp_inner_zn->b4->constraints->remove(this->zpp_inner);
            						}
            					}
HXLINE( 328)					bool _hx_tmp4;
HXDLIN( 328)					if (this->zpp_inner->active) {
HXLINE( 328)						 ::nape::space::Space _hx_tmp5;
HXDLIN( 328)						if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 328)							_hx_tmp5 = null();
            						}
            						else {
HXLINE( 328)							_hx_tmp5 = this->zpp_inner->space->outer;
            						}
HXDLIN( 328)						_hx_tmp4 = hx::IsNotNull( _hx_tmp5 );
            					}
            					else {
HXLINE( 328)						_hx_tmp4 = false;
            					}
HXDLIN( 328)					if (_hx_tmp4) {
HXLINE( 328)						this->zpp_inner_zn->b4->wake();
            					}
            				}
HXLINE( 330)				this->zpp_inner_zn->b4 = inbody4;
HXLINE( 331)				bool _hx_tmp6;
HXDLIN( 331)				bool _hx_tmp7;
HXDLIN( 331)				bool _hx_tmp8;
HXDLIN( 331)				bool _hx_tmp9;
HXDLIN( 331)				 ::nape::space::Space _hx_tmp10;
HXDLIN( 331)				if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 331)					_hx_tmp10 = null();
            				}
            				else {
HXLINE( 331)					_hx_tmp10 = this->zpp_inner->space->outer;
            				}
HXDLIN( 331)				if (hx::IsNotNull( _hx_tmp10 )) {
HXLINE( 331)					_hx_tmp9 = hx::IsNotNull( inbody4 );
            				}
            				else {
HXLINE( 331)					_hx_tmp9 = false;
            				}
HXDLIN( 331)				if (_hx_tmp9) {
HXLINE( 331)					_hx_tmp8 = hx::IsNotEq( this->zpp_inner_zn->b1,inbody4 );
            				}
            				else {
HXLINE( 331)					_hx_tmp8 = false;
            				}
HXDLIN( 331)				if (_hx_tmp8) {
HXLINE( 331)					_hx_tmp7 = hx::IsNotEq( this->zpp_inner_zn->b2,inbody4 );
            				}
            				else {
HXLINE( 331)					_hx_tmp7 = false;
            				}
HXDLIN( 331)				if (_hx_tmp7) {
HXLINE( 331)					_hx_tmp6 = hx::IsNotEq( this->zpp_inner_zn->b3,inbody4 );
            				}
            				else {
HXLINE( 331)					_hx_tmp6 = false;
            				}
HXDLIN( 331)				if (_hx_tmp6) {
HXLINE( 333)					if (hx::IsNotNull( inbody4 )) {
HXLINE( 333)						inbody4->constraints->add(this->zpp_inner);
            					}
            				}
HXLINE( 336)				bool _hx_tmp11;
HXDLIN( 336)				if (this->zpp_inner->active) {
HXLINE( 336)					 ::nape::space::Space _hx_tmp12;
HXDLIN( 336)					if (hx::IsNull( this->zpp_inner->space )) {
HXLINE( 336)						_hx_tmp12 = null();
            					}
            					else {
HXLINE( 336)						_hx_tmp12 = this->zpp_inner->space->outer;
            					}
HXDLIN( 336)					_hx_tmp11 = hx::IsNotNull( _hx_tmp12 );
            				}
            				else {
HXLINE( 336)					_hx_tmp11 = false;
            				}
HXDLIN( 336)				if (_hx_tmp11) {
HXLINE( 337)					this->zpp_inner->wake();
HXLINE( 338)					if (hx::IsNotNull( inbody4 )) {
HXLINE( 338)						inbody4->wake();
            					}
            				}
            			}
            		}
HXLINE( 342)		if (hx::IsNull( this->zpp_inner_zn->b4 )) {
HXLINE( 342)			return null();
            		}
            		else {
HXLINE( 342)			return this->zpp_inner_zn->b4->outer;
            		}
HXDLIN( 342)		return null();
            	}


HX_DEFINE_DYNAMIC_FUNC1(PulleyJoint_obj,set_body4,return )

 ::nape::geom::Vec2 PulleyJoint_obj::get_anchor1(){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_351_get_anchor1)
HXLINE( 352)		if (hx::IsNull( this->zpp_inner_zn->wrap_a1 )) {
HXLINE( 352)			this->zpp_inner_zn->setup_a1();
            		}
HXLINE( 353)		return this->zpp_inner_zn->wrap_a1;
            	}


HX_DEFINE_DYNAMIC_FUNC0(PulleyJoint_obj,get_anchor1,return )

 ::nape::geom::Vec2 PulleyJoint_obj::set_anchor1( ::nape::geom::Vec2 anchor1){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_355_set_anchor1)
HXLINE( 356)		{
HXLINE( 359)			bool _hx_tmp;
HXDLIN( 359)			if (hx::IsNotNull( anchor1 )) {
HXLINE( 359)				_hx_tmp = anchor1->zpp_disp;
            			}
            			else {
HXLINE( 359)				_hx_tmp = false;
            			}
HXDLIN( 359)			if (_hx_tmp) {
HXLINE( 359)				HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            			}
HXLINE( 363)			if (hx::IsNull( anchor1 )) {
HXLINE( 363)				HX_STACK_DO_THROW(((HX_("Error: Constraint::",cb,f5,02,d5) + HX_("anchor1",1c,ec,a1,02)) + HX_(" cannot be null",07,dc,5d,15)));
            			}
HXLINE( 365)			{
HXLINE( 365)				if (hx::IsNull( this->zpp_inner_zn->wrap_a1 )) {
HXLINE( 365)					this->zpp_inner_zn->setup_a1();
            				}
HXDLIN( 365)				 ::nape::geom::Vec2 _this = this->zpp_inner_zn->wrap_a1;
HXDLIN( 365)				bool _hx_tmp1;
HXDLIN( 365)				if (hx::IsNotNull( _this )) {
HXLINE( 365)					_hx_tmp1 = _this->zpp_disp;
            				}
            				else {
HXLINE( 365)					_hx_tmp1 = false;
            				}
HXDLIN( 365)				if (_hx_tmp1) {
HXLINE( 365)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 365)				bool _hx_tmp2;
HXDLIN( 365)				if (hx::IsNotNull( anchor1 )) {
HXLINE( 365)					_hx_tmp2 = anchor1->zpp_disp;
            				}
            				else {
HXLINE( 365)					_hx_tmp2 = false;
            				}
HXDLIN( 365)				if (_hx_tmp2) {
HXLINE( 365)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 365)				{
HXLINE( 365)					 ::zpp_nape::geom::ZPP_Vec2 _this1 = _this->zpp_inner;
HXDLIN( 365)					if (_this1->_immutable) {
HXLINE( 365)						HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            					}
HXDLIN( 365)					if (hx::IsNotNull( _this1->_isimmutable )) {
HXLINE( 365)						_this1->_isimmutable();
            					}
            				}
HXDLIN( 365)				if (hx::IsNull( anchor1 )) {
HXLINE( 365)					HX_STACK_DO_THROW(HX_("Error: Cannot assign null Vec2",95,15,46,66));
            				}
HXDLIN( 365)				bool _hx_tmp3;
HXDLIN( 365)				if (hx::IsNotNull( anchor1 )) {
HXLINE( 365)					_hx_tmp3 = anchor1->zpp_disp;
            				}
            				else {
HXLINE( 365)					_hx_tmp3 = false;
            				}
HXDLIN( 365)				if (_hx_tmp3) {
HXLINE( 365)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 365)				{
HXLINE( 365)					 ::zpp_nape::geom::ZPP_Vec2 _this2 = anchor1->zpp_inner;
HXDLIN( 365)					if (hx::IsNotNull( _this2->_validate )) {
HXLINE( 365)						_this2->_validate();
            					}
            				}
HXDLIN( 365)				Float x = anchor1->zpp_inner->x;
HXDLIN( 365)				bool _hx_tmp4;
HXDLIN( 365)				if (hx::IsNotNull( anchor1 )) {
HXLINE( 365)					_hx_tmp4 = anchor1->zpp_disp;
            				}
            				else {
HXLINE( 365)					_hx_tmp4 = false;
            				}
HXDLIN( 365)				if (_hx_tmp4) {
HXLINE( 365)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 365)				{
HXLINE( 365)					 ::zpp_nape::geom::ZPP_Vec2 _this3 = anchor1->zpp_inner;
HXDLIN( 365)					if (hx::IsNotNull( _this3->_validate )) {
HXLINE( 365)						_this3->_validate();
            					}
            				}
HXDLIN( 365)				Float y = anchor1->zpp_inner->y;
HXDLIN( 365)				bool _hx_tmp5;
HXDLIN( 365)				if (hx::IsNotNull( _this )) {
HXLINE( 365)					_hx_tmp5 = _this->zpp_disp;
            				}
            				else {
HXLINE( 365)					_hx_tmp5 = false;
            				}
HXDLIN( 365)				if (_hx_tmp5) {
HXLINE( 365)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 365)				{
HXLINE( 365)					 ::zpp_nape::geom::ZPP_Vec2 _this4 = _this->zpp_inner;
HXDLIN( 365)					if (_this4->_immutable) {
HXLINE( 365)						HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            					}
HXDLIN( 365)					if (hx::IsNotNull( _this4->_isimmutable )) {
HXLINE( 365)						_this4->_isimmutable();
            					}
            				}
HXDLIN( 365)				bool _hx_tmp6;
HXDLIN( 365)				if ((x == x)) {
HXLINE( 365)					_hx_tmp6 = (y != y);
            				}
            				else {
HXLINE( 365)					_hx_tmp6 = true;
            				}
HXDLIN( 365)				if (_hx_tmp6) {
HXLINE( 365)					HX_STACK_DO_THROW(HX_("Error: Vec2 components cannot be NaN",85,ba,d8,c1));
            				}
HXDLIN( 365)				bool _hx_tmp7;
HXDLIN( 365)				bool _hx_tmp8;
HXDLIN( 365)				if (hx::IsNotNull( _this )) {
HXLINE( 365)					_hx_tmp8 = _this->zpp_disp;
            				}
            				else {
HXLINE( 365)					_hx_tmp8 = false;
            				}
HXDLIN( 365)				if (_hx_tmp8) {
HXLINE( 365)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 365)				{
HXLINE( 365)					 ::zpp_nape::geom::ZPP_Vec2 _this5 = _this->zpp_inner;
HXDLIN( 365)					if (hx::IsNotNull( _this5->_validate )) {
HXLINE( 365)						_this5->_validate();
            					}
            				}
HXDLIN( 365)				if ((_this->zpp_inner->x == x)) {
HXLINE( 365)					bool _hx_tmp9;
HXDLIN( 365)					if (hx::IsNotNull( _this )) {
HXLINE( 365)						_hx_tmp9 = _this->zpp_disp;
            					}
            					else {
HXLINE( 365)						_hx_tmp9 = false;
            					}
HXDLIN( 365)					if (_hx_tmp9) {
HXLINE( 365)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 365)					{
HXLINE( 365)						 ::zpp_nape::geom::ZPP_Vec2 _this6 = _this->zpp_inner;
HXDLIN( 365)						if (hx::IsNotNull( _this6->_validate )) {
HXLINE( 365)							_this6->_validate();
            						}
            					}
HXDLIN( 365)					_hx_tmp7 = (_this->zpp_inner->y == y);
            				}
            				else {
HXLINE( 365)					_hx_tmp7 = false;
            				}
HXDLIN( 365)				if (!(_hx_tmp7)) {
HXLINE( 365)					{
HXLINE( 365)						_this->zpp_inner->x = x;
HXDLIN( 365)						_this->zpp_inner->y = y;
            					}
HXDLIN( 365)					{
HXLINE( 365)						 ::zpp_nape::geom::ZPP_Vec2 _this7 = _this->zpp_inner;
HXDLIN( 365)						if (hx::IsNotNull( _this7->_invalidate )) {
HXLINE( 365)							_this7->_invalidate(_this7);
            						}
            					}
            				}
HXDLIN( 365)				 ::nape::geom::Vec2 ret = _this;
HXDLIN( 365)				if (anchor1->zpp_inner->weak) {
HXLINE( 365)					bool _hx_tmp10;
HXDLIN( 365)					if (hx::IsNotNull( anchor1 )) {
HXLINE( 365)						_hx_tmp10 = anchor1->zpp_disp;
            					}
            					else {
HXLINE( 365)						_hx_tmp10 = false;
            					}
HXDLIN( 365)					if (_hx_tmp10) {
HXLINE( 365)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 365)					{
HXLINE( 365)						 ::zpp_nape::geom::ZPP_Vec2 _this8 = anchor1->zpp_inner;
HXDLIN( 365)						if (_this8->_immutable) {
HXLINE( 365)							HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            						}
HXDLIN( 365)						if (hx::IsNotNull( _this8->_isimmutable )) {
HXLINE( 365)							_this8->_isimmutable();
            						}
            					}
HXDLIN( 365)					if (anchor1->zpp_inner->_inuse) {
HXLINE( 365)						HX_STACK_DO_THROW(HX_("Error: This Vec2 is not disposable",b5,d1,d1,d8));
            					}
HXDLIN( 365)					 ::zpp_nape::geom::ZPP_Vec2 inner = anchor1->zpp_inner;
HXDLIN( 365)					anchor1->zpp_inner->outer = null();
HXDLIN( 365)					anchor1->zpp_inner = null();
HXDLIN( 365)					{
HXLINE( 365)						 ::nape::geom::Vec2 o = anchor1;
HXDLIN( 365)						o->zpp_pool = null();
HXDLIN( 365)						if (hx::IsNotNull( ::zpp_nape::util::ZPP_PubPool_obj::nextVec2 )) {
HXLINE( 365)							::zpp_nape::util::ZPP_PubPool_obj::nextVec2->zpp_pool = o;
            						}
            						else {
HXLINE( 365)							::zpp_nape::util::ZPP_PubPool_obj::poolVec2 = o;
            						}
HXDLIN( 365)						::zpp_nape::util::ZPP_PubPool_obj::nextVec2 = o;
HXDLIN( 365)						o->zpp_disp = true;
            					}
HXDLIN( 365)					{
HXLINE( 365)						 ::zpp_nape::geom::ZPP_Vec2 o1 = inner;
HXDLIN( 365)						{
HXLINE( 365)							if (hx::IsNotNull( o1->outer )) {
HXLINE( 365)								o1->outer->zpp_inner = null();
HXDLIN( 365)								o1->outer = null();
            							}
HXDLIN( 365)							o1->_isimmutable = null();
HXDLIN( 365)							o1->_validate = null();
HXDLIN( 365)							o1->_invalidate = null();
            						}
HXDLIN( 365)						o1->next = ::zpp_nape::geom::ZPP_Vec2_obj::zpp_pool;
HXDLIN( 365)						::zpp_nape::geom::ZPP_Vec2_obj::zpp_pool = o1;
            					}
            				}
            			}
            		}
HXLINE( 367)		if (hx::IsNull( this->zpp_inner_zn->wrap_a1 )) {
HXLINE( 367)			this->zpp_inner_zn->setup_a1();
            		}
HXDLIN( 367)		return this->zpp_inner_zn->wrap_a1;
            	}


HX_DEFINE_DYNAMIC_FUNC1(PulleyJoint_obj,set_anchor1,return )

 ::nape::geom::Vec2 PulleyJoint_obj::get_anchor2(){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_376_get_anchor2)
HXLINE( 377)		if (hx::IsNull( this->zpp_inner_zn->wrap_a2 )) {
HXLINE( 377)			this->zpp_inner_zn->setup_a2();
            		}
HXLINE( 378)		return this->zpp_inner_zn->wrap_a2;
            	}


HX_DEFINE_DYNAMIC_FUNC0(PulleyJoint_obj,get_anchor2,return )

 ::nape::geom::Vec2 PulleyJoint_obj::set_anchor2( ::nape::geom::Vec2 anchor2){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_380_set_anchor2)
HXLINE( 381)		{
HXLINE( 384)			bool _hx_tmp;
HXDLIN( 384)			if (hx::IsNotNull( anchor2 )) {
HXLINE( 384)				_hx_tmp = anchor2->zpp_disp;
            			}
            			else {
HXLINE( 384)				_hx_tmp = false;
            			}
HXDLIN( 384)			if (_hx_tmp) {
HXLINE( 384)				HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            			}
HXLINE( 388)			if (hx::IsNull( anchor2 )) {
HXLINE( 388)				HX_STACK_DO_THROW(((HX_("Error: Constraint::",cb,f5,02,d5) + HX_("anchor2",1d,ec,a1,02)) + HX_(" cannot be null",07,dc,5d,15)));
            			}
HXLINE( 390)			{
HXLINE( 390)				if (hx::IsNull( this->zpp_inner_zn->wrap_a2 )) {
HXLINE( 390)					this->zpp_inner_zn->setup_a2();
            				}
HXDLIN( 390)				 ::nape::geom::Vec2 _this = this->zpp_inner_zn->wrap_a2;
HXDLIN( 390)				bool _hx_tmp1;
HXDLIN( 390)				if (hx::IsNotNull( _this )) {
HXLINE( 390)					_hx_tmp1 = _this->zpp_disp;
            				}
            				else {
HXLINE( 390)					_hx_tmp1 = false;
            				}
HXDLIN( 390)				if (_hx_tmp1) {
HXLINE( 390)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 390)				bool _hx_tmp2;
HXDLIN( 390)				if (hx::IsNotNull( anchor2 )) {
HXLINE( 390)					_hx_tmp2 = anchor2->zpp_disp;
            				}
            				else {
HXLINE( 390)					_hx_tmp2 = false;
            				}
HXDLIN( 390)				if (_hx_tmp2) {
HXLINE( 390)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 390)				{
HXLINE( 390)					 ::zpp_nape::geom::ZPP_Vec2 _this1 = _this->zpp_inner;
HXDLIN( 390)					if (_this1->_immutable) {
HXLINE( 390)						HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            					}
HXDLIN( 390)					if (hx::IsNotNull( _this1->_isimmutable )) {
HXLINE( 390)						_this1->_isimmutable();
            					}
            				}
HXDLIN( 390)				if (hx::IsNull( anchor2 )) {
HXLINE( 390)					HX_STACK_DO_THROW(HX_("Error: Cannot assign null Vec2",95,15,46,66));
            				}
HXDLIN( 390)				bool _hx_tmp3;
HXDLIN( 390)				if (hx::IsNotNull( anchor2 )) {
HXLINE( 390)					_hx_tmp3 = anchor2->zpp_disp;
            				}
            				else {
HXLINE( 390)					_hx_tmp3 = false;
            				}
HXDLIN( 390)				if (_hx_tmp3) {
HXLINE( 390)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 390)				{
HXLINE( 390)					 ::zpp_nape::geom::ZPP_Vec2 _this2 = anchor2->zpp_inner;
HXDLIN( 390)					if (hx::IsNotNull( _this2->_validate )) {
HXLINE( 390)						_this2->_validate();
            					}
            				}
HXDLIN( 390)				Float x = anchor2->zpp_inner->x;
HXDLIN( 390)				bool _hx_tmp4;
HXDLIN( 390)				if (hx::IsNotNull( anchor2 )) {
HXLINE( 390)					_hx_tmp4 = anchor2->zpp_disp;
            				}
            				else {
HXLINE( 390)					_hx_tmp4 = false;
            				}
HXDLIN( 390)				if (_hx_tmp4) {
HXLINE( 390)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 390)				{
HXLINE( 390)					 ::zpp_nape::geom::ZPP_Vec2 _this3 = anchor2->zpp_inner;
HXDLIN( 390)					if (hx::IsNotNull( _this3->_validate )) {
HXLINE( 390)						_this3->_validate();
            					}
            				}
HXDLIN( 390)				Float y = anchor2->zpp_inner->y;
HXDLIN( 390)				bool _hx_tmp5;
HXDLIN( 390)				if (hx::IsNotNull( _this )) {
HXLINE( 390)					_hx_tmp5 = _this->zpp_disp;
            				}
            				else {
HXLINE( 390)					_hx_tmp5 = false;
            				}
HXDLIN( 390)				if (_hx_tmp5) {
HXLINE( 390)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 390)				{
HXLINE( 390)					 ::zpp_nape::geom::ZPP_Vec2 _this4 = _this->zpp_inner;
HXDLIN( 390)					if (_this4->_immutable) {
HXLINE( 390)						HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            					}
HXDLIN( 390)					if (hx::IsNotNull( _this4->_isimmutable )) {
HXLINE( 390)						_this4->_isimmutable();
            					}
            				}
HXDLIN( 390)				bool _hx_tmp6;
HXDLIN( 390)				if ((x == x)) {
HXLINE( 390)					_hx_tmp6 = (y != y);
            				}
            				else {
HXLINE( 390)					_hx_tmp6 = true;
            				}
HXDLIN( 390)				if (_hx_tmp6) {
HXLINE( 390)					HX_STACK_DO_THROW(HX_("Error: Vec2 components cannot be NaN",85,ba,d8,c1));
            				}
HXDLIN( 390)				bool _hx_tmp7;
HXDLIN( 390)				bool _hx_tmp8;
HXDLIN( 390)				if (hx::IsNotNull( _this )) {
HXLINE( 390)					_hx_tmp8 = _this->zpp_disp;
            				}
            				else {
HXLINE( 390)					_hx_tmp8 = false;
            				}
HXDLIN( 390)				if (_hx_tmp8) {
HXLINE( 390)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 390)				{
HXLINE( 390)					 ::zpp_nape::geom::ZPP_Vec2 _this5 = _this->zpp_inner;
HXDLIN( 390)					if (hx::IsNotNull( _this5->_validate )) {
HXLINE( 390)						_this5->_validate();
            					}
            				}
HXDLIN( 390)				if ((_this->zpp_inner->x == x)) {
HXLINE( 390)					bool _hx_tmp9;
HXDLIN( 390)					if (hx::IsNotNull( _this )) {
HXLINE( 390)						_hx_tmp9 = _this->zpp_disp;
            					}
            					else {
HXLINE( 390)						_hx_tmp9 = false;
            					}
HXDLIN( 390)					if (_hx_tmp9) {
HXLINE( 390)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 390)					{
HXLINE( 390)						 ::zpp_nape::geom::ZPP_Vec2 _this6 = _this->zpp_inner;
HXDLIN( 390)						if (hx::IsNotNull( _this6->_validate )) {
HXLINE( 390)							_this6->_validate();
            						}
            					}
HXDLIN( 390)					_hx_tmp7 = (_this->zpp_inner->y == y);
            				}
            				else {
HXLINE( 390)					_hx_tmp7 = false;
            				}
HXDLIN( 390)				if (!(_hx_tmp7)) {
HXLINE( 390)					{
HXLINE( 390)						_this->zpp_inner->x = x;
HXDLIN( 390)						_this->zpp_inner->y = y;
            					}
HXDLIN( 390)					{
HXLINE( 390)						 ::zpp_nape::geom::ZPP_Vec2 _this7 = _this->zpp_inner;
HXDLIN( 390)						if (hx::IsNotNull( _this7->_invalidate )) {
HXLINE( 390)							_this7->_invalidate(_this7);
            						}
            					}
            				}
HXDLIN( 390)				 ::nape::geom::Vec2 ret = _this;
HXDLIN( 390)				if (anchor2->zpp_inner->weak) {
HXLINE( 390)					bool _hx_tmp10;
HXDLIN( 390)					if (hx::IsNotNull( anchor2 )) {
HXLINE( 390)						_hx_tmp10 = anchor2->zpp_disp;
            					}
            					else {
HXLINE( 390)						_hx_tmp10 = false;
            					}
HXDLIN( 390)					if (_hx_tmp10) {
HXLINE( 390)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 390)					{
HXLINE( 390)						 ::zpp_nape::geom::ZPP_Vec2 _this8 = anchor2->zpp_inner;
HXDLIN( 390)						if (_this8->_immutable) {
HXLINE( 390)							HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            						}
HXDLIN( 390)						if (hx::IsNotNull( _this8->_isimmutable )) {
HXLINE( 390)							_this8->_isimmutable();
            						}
            					}
HXDLIN( 390)					if (anchor2->zpp_inner->_inuse) {
HXLINE( 390)						HX_STACK_DO_THROW(HX_("Error: This Vec2 is not disposable",b5,d1,d1,d8));
            					}
HXDLIN( 390)					 ::zpp_nape::geom::ZPP_Vec2 inner = anchor2->zpp_inner;
HXDLIN( 390)					anchor2->zpp_inner->outer = null();
HXDLIN( 390)					anchor2->zpp_inner = null();
HXDLIN( 390)					{
HXLINE( 390)						 ::nape::geom::Vec2 o = anchor2;
HXDLIN( 390)						o->zpp_pool = null();
HXDLIN( 390)						if (hx::IsNotNull( ::zpp_nape::util::ZPP_PubPool_obj::nextVec2 )) {
HXLINE( 390)							::zpp_nape::util::ZPP_PubPool_obj::nextVec2->zpp_pool = o;
            						}
            						else {
HXLINE( 390)							::zpp_nape::util::ZPP_PubPool_obj::poolVec2 = o;
            						}
HXDLIN( 390)						::zpp_nape::util::ZPP_PubPool_obj::nextVec2 = o;
HXDLIN( 390)						o->zpp_disp = true;
            					}
HXDLIN( 390)					{
HXLINE( 390)						 ::zpp_nape::geom::ZPP_Vec2 o1 = inner;
HXDLIN( 390)						{
HXLINE( 390)							if (hx::IsNotNull( o1->outer )) {
HXLINE( 390)								o1->outer->zpp_inner = null();
HXDLIN( 390)								o1->outer = null();
            							}
HXDLIN( 390)							o1->_isimmutable = null();
HXDLIN( 390)							o1->_validate = null();
HXDLIN( 390)							o1->_invalidate = null();
            						}
HXDLIN( 390)						o1->next = ::zpp_nape::geom::ZPP_Vec2_obj::zpp_pool;
HXDLIN( 390)						::zpp_nape::geom::ZPP_Vec2_obj::zpp_pool = o1;
            					}
            				}
            			}
            		}
HXLINE( 392)		if (hx::IsNull( this->zpp_inner_zn->wrap_a2 )) {
HXLINE( 392)			this->zpp_inner_zn->setup_a2();
            		}
HXDLIN( 392)		return this->zpp_inner_zn->wrap_a2;
            	}


HX_DEFINE_DYNAMIC_FUNC1(PulleyJoint_obj,set_anchor2,return )

 ::nape::geom::Vec2 PulleyJoint_obj::get_anchor3(){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_401_get_anchor3)
HXLINE( 402)		if (hx::IsNull( this->zpp_inner_zn->wrap_a3 )) {
HXLINE( 402)			this->zpp_inner_zn->setup_a3();
            		}
HXLINE( 403)		return this->zpp_inner_zn->wrap_a3;
            	}


HX_DEFINE_DYNAMIC_FUNC0(PulleyJoint_obj,get_anchor3,return )

 ::nape::geom::Vec2 PulleyJoint_obj::set_anchor3( ::nape::geom::Vec2 anchor3){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_405_set_anchor3)
HXLINE( 406)		{
HXLINE( 409)			bool _hx_tmp;
HXDLIN( 409)			if (hx::IsNotNull( anchor3 )) {
HXLINE( 409)				_hx_tmp = anchor3->zpp_disp;
            			}
            			else {
HXLINE( 409)				_hx_tmp = false;
            			}
HXDLIN( 409)			if (_hx_tmp) {
HXLINE( 409)				HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            			}
HXLINE( 413)			if (hx::IsNull( anchor3 )) {
HXLINE( 413)				HX_STACK_DO_THROW(((HX_("Error: Constraint::",cb,f5,02,d5) + HX_("anchor3",1e,ec,a1,02)) + HX_(" cannot be null",07,dc,5d,15)));
            			}
HXLINE( 415)			{
HXLINE( 415)				if (hx::IsNull( this->zpp_inner_zn->wrap_a3 )) {
HXLINE( 415)					this->zpp_inner_zn->setup_a3();
            				}
HXDLIN( 415)				 ::nape::geom::Vec2 _this = this->zpp_inner_zn->wrap_a3;
HXDLIN( 415)				bool _hx_tmp1;
HXDLIN( 415)				if (hx::IsNotNull( _this )) {
HXLINE( 415)					_hx_tmp1 = _this->zpp_disp;
            				}
            				else {
HXLINE( 415)					_hx_tmp1 = false;
            				}
HXDLIN( 415)				if (_hx_tmp1) {
HXLINE( 415)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 415)				bool _hx_tmp2;
HXDLIN( 415)				if (hx::IsNotNull( anchor3 )) {
HXLINE( 415)					_hx_tmp2 = anchor3->zpp_disp;
            				}
            				else {
HXLINE( 415)					_hx_tmp2 = false;
            				}
HXDLIN( 415)				if (_hx_tmp2) {
HXLINE( 415)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 415)				{
HXLINE( 415)					 ::zpp_nape::geom::ZPP_Vec2 _this1 = _this->zpp_inner;
HXDLIN( 415)					if (_this1->_immutable) {
HXLINE( 415)						HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            					}
HXDLIN( 415)					if (hx::IsNotNull( _this1->_isimmutable )) {
HXLINE( 415)						_this1->_isimmutable();
            					}
            				}
HXDLIN( 415)				if (hx::IsNull( anchor3 )) {
HXLINE( 415)					HX_STACK_DO_THROW(HX_("Error: Cannot assign null Vec2",95,15,46,66));
            				}
HXDLIN( 415)				bool _hx_tmp3;
HXDLIN( 415)				if (hx::IsNotNull( anchor3 )) {
HXLINE( 415)					_hx_tmp3 = anchor3->zpp_disp;
            				}
            				else {
HXLINE( 415)					_hx_tmp3 = false;
            				}
HXDLIN( 415)				if (_hx_tmp3) {
HXLINE( 415)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 415)				{
HXLINE( 415)					 ::zpp_nape::geom::ZPP_Vec2 _this2 = anchor3->zpp_inner;
HXDLIN( 415)					if (hx::IsNotNull( _this2->_validate )) {
HXLINE( 415)						_this2->_validate();
            					}
            				}
HXDLIN( 415)				Float x = anchor3->zpp_inner->x;
HXDLIN( 415)				bool _hx_tmp4;
HXDLIN( 415)				if (hx::IsNotNull( anchor3 )) {
HXLINE( 415)					_hx_tmp4 = anchor3->zpp_disp;
            				}
            				else {
HXLINE( 415)					_hx_tmp4 = false;
            				}
HXDLIN( 415)				if (_hx_tmp4) {
HXLINE( 415)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 415)				{
HXLINE( 415)					 ::zpp_nape::geom::ZPP_Vec2 _this3 = anchor3->zpp_inner;
HXDLIN( 415)					if (hx::IsNotNull( _this3->_validate )) {
HXLINE( 415)						_this3->_validate();
            					}
            				}
HXDLIN( 415)				Float y = anchor3->zpp_inner->y;
HXDLIN( 415)				bool _hx_tmp5;
HXDLIN( 415)				if (hx::IsNotNull( _this )) {
HXLINE( 415)					_hx_tmp5 = _this->zpp_disp;
            				}
            				else {
HXLINE( 415)					_hx_tmp5 = false;
            				}
HXDLIN( 415)				if (_hx_tmp5) {
HXLINE( 415)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 415)				{
HXLINE( 415)					 ::zpp_nape::geom::ZPP_Vec2 _this4 = _this->zpp_inner;
HXDLIN( 415)					if (_this4->_immutable) {
HXLINE( 415)						HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            					}
HXDLIN( 415)					if (hx::IsNotNull( _this4->_isimmutable )) {
HXLINE( 415)						_this4->_isimmutable();
            					}
            				}
HXDLIN( 415)				bool _hx_tmp6;
HXDLIN( 415)				if ((x == x)) {
HXLINE( 415)					_hx_tmp6 = (y != y);
            				}
            				else {
HXLINE( 415)					_hx_tmp6 = true;
            				}
HXDLIN( 415)				if (_hx_tmp6) {
HXLINE( 415)					HX_STACK_DO_THROW(HX_("Error: Vec2 components cannot be NaN",85,ba,d8,c1));
            				}
HXDLIN( 415)				bool _hx_tmp7;
HXDLIN( 415)				bool _hx_tmp8;
HXDLIN( 415)				if (hx::IsNotNull( _this )) {
HXLINE( 415)					_hx_tmp8 = _this->zpp_disp;
            				}
            				else {
HXLINE( 415)					_hx_tmp8 = false;
            				}
HXDLIN( 415)				if (_hx_tmp8) {
HXLINE( 415)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 415)				{
HXLINE( 415)					 ::zpp_nape::geom::ZPP_Vec2 _this5 = _this->zpp_inner;
HXDLIN( 415)					if (hx::IsNotNull( _this5->_validate )) {
HXLINE( 415)						_this5->_validate();
            					}
            				}
HXDLIN( 415)				if ((_this->zpp_inner->x == x)) {
HXLINE( 415)					bool _hx_tmp9;
HXDLIN( 415)					if (hx::IsNotNull( _this )) {
HXLINE( 415)						_hx_tmp9 = _this->zpp_disp;
            					}
            					else {
HXLINE( 415)						_hx_tmp9 = false;
            					}
HXDLIN( 415)					if (_hx_tmp9) {
HXLINE( 415)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 415)					{
HXLINE( 415)						 ::zpp_nape::geom::ZPP_Vec2 _this6 = _this->zpp_inner;
HXDLIN( 415)						if (hx::IsNotNull( _this6->_validate )) {
HXLINE( 415)							_this6->_validate();
            						}
            					}
HXDLIN( 415)					_hx_tmp7 = (_this->zpp_inner->y == y);
            				}
            				else {
HXLINE( 415)					_hx_tmp7 = false;
            				}
HXDLIN( 415)				if (!(_hx_tmp7)) {
HXLINE( 415)					{
HXLINE( 415)						_this->zpp_inner->x = x;
HXDLIN( 415)						_this->zpp_inner->y = y;
            					}
HXDLIN( 415)					{
HXLINE( 415)						 ::zpp_nape::geom::ZPP_Vec2 _this7 = _this->zpp_inner;
HXDLIN( 415)						if (hx::IsNotNull( _this7->_invalidate )) {
HXLINE( 415)							_this7->_invalidate(_this7);
            						}
            					}
            				}
HXDLIN( 415)				 ::nape::geom::Vec2 ret = _this;
HXDLIN( 415)				if (anchor3->zpp_inner->weak) {
HXLINE( 415)					bool _hx_tmp10;
HXDLIN( 415)					if (hx::IsNotNull( anchor3 )) {
HXLINE( 415)						_hx_tmp10 = anchor3->zpp_disp;
            					}
            					else {
HXLINE( 415)						_hx_tmp10 = false;
            					}
HXDLIN( 415)					if (_hx_tmp10) {
HXLINE( 415)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 415)					{
HXLINE( 415)						 ::zpp_nape::geom::ZPP_Vec2 _this8 = anchor3->zpp_inner;
HXDLIN( 415)						if (_this8->_immutable) {
HXLINE( 415)							HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            						}
HXDLIN( 415)						if (hx::IsNotNull( _this8->_isimmutable )) {
HXLINE( 415)							_this8->_isimmutable();
            						}
            					}
HXDLIN( 415)					if (anchor3->zpp_inner->_inuse) {
HXLINE( 415)						HX_STACK_DO_THROW(HX_("Error: This Vec2 is not disposable",b5,d1,d1,d8));
            					}
HXDLIN( 415)					 ::zpp_nape::geom::ZPP_Vec2 inner = anchor3->zpp_inner;
HXDLIN( 415)					anchor3->zpp_inner->outer = null();
HXDLIN( 415)					anchor3->zpp_inner = null();
HXDLIN( 415)					{
HXLINE( 415)						 ::nape::geom::Vec2 o = anchor3;
HXDLIN( 415)						o->zpp_pool = null();
HXDLIN( 415)						if (hx::IsNotNull( ::zpp_nape::util::ZPP_PubPool_obj::nextVec2 )) {
HXLINE( 415)							::zpp_nape::util::ZPP_PubPool_obj::nextVec2->zpp_pool = o;
            						}
            						else {
HXLINE( 415)							::zpp_nape::util::ZPP_PubPool_obj::poolVec2 = o;
            						}
HXDLIN( 415)						::zpp_nape::util::ZPP_PubPool_obj::nextVec2 = o;
HXDLIN( 415)						o->zpp_disp = true;
            					}
HXDLIN( 415)					{
HXLINE( 415)						 ::zpp_nape::geom::ZPP_Vec2 o1 = inner;
HXDLIN( 415)						{
HXLINE( 415)							if (hx::IsNotNull( o1->outer )) {
HXLINE( 415)								o1->outer->zpp_inner = null();
HXDLIN( 415)								o1->outer = null();
            							}
HXDLIN( 415)							o1->_isimmutable = null();
HXDLIN( 415)							o1->_validate = null();
HXDLIN( 415)							o1->_invalidate = null();
            						}
HXDLIN( 415)						o1->next = ::zpp_nape::geom::ZPP_Vec2_obj::zpp_pool;
HXDLIN( 415)						::zpp_nape::geom::ZPP_Vec2_obj::zpp_pool = o1;
            					}
            				}
            			}
            		}
HXLINE( 417)		if (hx::IsNull( this->zpp_inner_zn->wrap_a3 )) {
HXLINE( 417)			this->zpp_inner_zn->setup_a3();
            		}
HXDLIN( 417)		return this->zpp_inner_zn->wrap_a3;
            	}


HX_DEFINE_DYNAMIC_FUNC1(PulleyJoint_obj,set_anchor3,return )

 ::nape::geom::Vec2 PulleyJoint_obj::get_anchor4(){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_426_get_anchor4)
HXLINE( 427)		if (hx::IsNull( this->zpp_inner_zn->wrap_a4 )) {
HXLINE( 427)			this->zpp_inner_zn->setup_a4();
            		}
HXLINE( 428)		return this->zpp_inner_zn->wrap_a4;
            	}


HX_DEFINE_DYNAMIC_FUNC0(PulleyJoint_obj,get_anchor4,return )

 ::nape::geom::Vec2 PulleyJoint_obj::set_anchor4( ::nape::geom::Vec2 anchor4){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_430_set_anchor4)
HXLINE( 431)		{
HXLINE( 434)			bool _hx_tmp;
HXDLIN( 434)			if (hx::IsNotNull( anchor4 )) {
HXLINE( 434)				_hx_tmp = anchor4->zpp_disp;
            			}
            			else {
HXLINE( 434)				_hx_tmp = false;
            			}
HXDLIN( 434)			if (_hx_tmp) {
HXLINE( 434)				HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            			}
HXLINE( 438)			if (hx::IsNull( anchor4 )) {
HXLINE( 438)				HX_STACK_DO_THROW(((HX_("Error: Constraint::",cb,f5,02,d5) + HX_("anchor4",1f,ec,a1,02)) + HX_(" cannot be null",07,dc,5d,15)));
            			}
HXLINE( 440)			{
HXLINE( 440)				if (hx::IsNull( this->zpp_inner_zn->wrap_a4 )) {
HXLINE( 440)					this->zpp_inner_zn->setup_a4();
            				}
HXDLIN( 440)				 ::nape::geom::Vec2 _this = this->zpp_inner_zn->wrap_a4;
HXDLIN( 440)				bool _hx_tmp1;
HXDLIN( 440)				if (hx::IsNotNull( _this )) {
HXLINE( 440)					_hx_tmp1 = _this->zpp_disp;
            				}
            				else {
HXLINE( 440)					_hx_tmp1 = false;
            				}
HXDLIN( 440)				if (_hx_tmp1) {
HXLINE( 440)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 440)				bool _hx_tmp2;
HXDLIN( 440)				if (hx::IsNotNull( anchor4 )) {
HXLINE( 440)					_hx_tmp2 = anchor4->zpp_disp;
            				}
            				else {
HXLINE( 440)					_hx_tmp2 = false;
            				}
HXDLIN( 440)				if (_hx_tmp2) {
HXLINE( 440)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 440)				{
HXLINE( 440)					 ::zpp_nape::geom::ZPP_Vec2 _this1 = _this->zpp_inner;
HXDLIN( 440)					if (_this1->_immutable) {
HXLINE( 440)						HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            					}
HXDLIN( 440)					if (hx::IsNotNull( _this1->_isimmutable )) {
HXLINE( 440)						_this1->_isimmutable();
            					}
            				}
HXDLIN( 440)				if (hx::IsNull( anchor4 )) {
HXLINE( 440)					HX_STACK_DO_THROW(HX_("Error: Cannot assign null Vec2",95,15,46,66));
            				}
HXDLIN( 440)				bool _hx_tmp3;
HXDLIN( 440)				if (hx::IsNotNull( anchor4 )) {
HXLINE( 440)					_hx_tmp3 = anchor4->zpp_disp;
            				}
            				else {
HXLINE( 440)					_hx_tmp3 = false;
            				}
HXDLIN( 440)				if (_hx_tmp3) {
HXLINE( 440)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 440)				{
HXLINE( 440)					 ::zpp_nape::geom::ZPP_Vec2 _this2 = anchor4->zpp_inner;
HXDLIN( 440)					if (hx::IsNotNull( _this2->_validate )) {
HXLINE( 440)						_this2->_validate();
            					}
            				}
HXDLIN( 440)				Float x = anchor4->zpp_inner->x;
HXDLIN( 440)				bool _hx_tmp4;
HXDLIN( 440)				if (hx::IsNotNull( anchor4 )) {
HXLINE( 440)					_hx_tmp4 = anchor4->zpp_disp;
            				}
            				else {
HXLINE( 440)					_hx_tmp4 = false;
            				}
HXDLIN( 440)				if (_hx_tmp4) {
HXLINE( 440)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 440)				{
HXLINE( 440)					 ::zpp_nape::geom::ZPP_Vec2 _this3 = anchor4->zpp_inner;
HXDLIN( 440)					if (hx::IsNotNull( _this3->_validate )) {
HXLINE( 440)						_this3->_validate();
            					}
            				}
HXDLIN( 440)				Float y = anchor4->zpp_inner->y;
HXDLIN( 440)				bool _hx_tmp5;
HXDLIN( 440)				if (hx::IsNotNull( _this )) {
HXLINE( 440)					_hx_tmp5 = _this->zpp_disp;
            				}
            				else {
HXLINE( 440)					_hx_tmp5 = false;
            				}
HXDLIN( 440)				if (_hx_tmp5) {
HXLINE( 440)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 440)				{
HXLINE( 440)					 ::zpp_nape::geom::ZPP_Vec2 _this4 = _this->zpp_inner;
HXDLIN( 440)					if (_this4->_immutable) {
HXLINE( 440)						HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            					}
HXDLIN( 440)					if (hx::IsNotNull( _this4->_isimmutable )) {
HXLINE( 440)						_this4->_isimmutable();
            					}
            				}
HXDLIN( 440)				bool _hx_tmp6;
HXDLIN( 440)				if ((x == x)) {
HXLINE( 440)					_hx_tmp6 = (y != y);
            				}
            				else {
HXLINE( 440)					_hx_tmp6 = true;
            				}
HXDLIN( 440)				if (_hx_tmp6) {
HXLINE( 440)					HX_STACK_DO_THROW(HX_("Error: Vec2 components cannot be NaN",85,ba,d8,c1));
            				}
HXDLIN( 440)				bool _hx_tmp7;
HXDLIN( 440)				bool _hx_tmp8;
HXDLIN( 440)				if (hx::IsNotNull( _this )) {
HXLINE( 440)					_hx_tmp8 = _this->zpp_disp;
            				}
            				else {
HXLINE( 440)					_hx_tmp8 = false;
            				}
HXDLIN( 440)				if (_hx_tmp8) {
HXLINE( 440)					HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            				}
HXDLIN( 440)				{
HXLINE( 440)					 ::zpp_nape::geom::ZPP_Vec2 _this5 = _this->zpp_inner;
HXDLIN( 440)					if (hx::IsNotNull( _this5->_validate )) {
HXLINE( 440)						_this5->_validate();
            					}
            				}
HXDLIN( 440)				if ((_this->zpp_inner->x == x)) {
HXLINE( 440)					bool _hx_tmp9;
HXDLIN( 440)					if (hx::IsNotNull( _this )) {
HXLINE( 440)						_hx_tmp9 = _this->zpp_disp;
            					}
            					else {
HXLINE( 440)						_hx_tmp9 = false;
            					}
HXDLIN( 440)					if (_hx_tmp9) {
HXLINE( 440)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 440)					{
HXLINE( 440)						 ::zpp_nape::geom::ZPP_Vec2 _this6 = _this->zpp_inner;
HXDLIN( 440)						if (hx::IsNotNull( _this6->_validate )) {
HXLINE( 440)							_this6->_validate();
            						}
            					}
HXDLIN( 440)					_hx_tmp7 = (_this->zpp_inner->y == y);
            				}
            				else {
HXLINE( 440)					_hx_tmp7 = false;
            				}
HXDLIN( 440)				if (!(_hx_tmp7)) {
HXLINE( 440)					{
HXLINE( 440)						_this->zpp_inner->x = x;
HXDLIN( 440)						_this->zpp_inner->y = y;
            					}
HXDLIN( 440)					{
HXLINE( 440)						 ::zpp_nape::geom::ZPP_Vec2 _this7 = _this->zpp_inner;
HXDLIN( 440)						if (hx::IsNotNull( _this7->_invalidate )) {
HXLINE( 440)							_this7->_invalidate(_this7);
            						}
            					}
            				}
HXDLIN( 440)				 ::nape::geom::Vec2 ret = _this;
HXDLIN( 440)				if (anchor4->zpp_inner->weak) {
HXLINE( 440)					bool _hx_tmp10;
HXDLIN( 440)					if (hx::IsNotNull( anchor4 )) {
HXLINE( 440)						_hx_tmp10 = anchor4->zpp_disp;
            					}
            					else {
HXLINE( 440)						_hx_tmp10 = false;
            					}
HXDLIN( 440)					if (_hx_tmp10) {
HXLINE( 440)						HX_STACK_DO_THROW(((HX_("Error: ",4e,a8,5b,b7) + HX_("Vec2",7e,53,25,39)) + HX_(" has been disposed and cannot be used!",2e,07,ae,74)));
            					}
HXDLIN( 440)					{
HXLINE( 440)						 ::zpp_nape::geom::ZPP_Vec2 _this8 = anchor4->zpp_inner;
HXDLIN( 440)						if (_this8->_immutable) {
HXLINE( 440)							HX_STACK_DO_THROW(HX_("Error: Vec2 is immutable",60,ee,1f,bc));
            						}
HXDLIN( 440)						if (hx::IsNotNull( _this8->_isimmutable )) {
HXLINE( 440)							_this8->_isimmutable();
            						}
            					}
HXDLIN( 440)					if (anchor4->zpp_inner->_inuse) {
HXLINE( 440)						HX_STACK_DO_THROW(HX_("Error: This Vec2 is not disposable",b5,d1,d1,d8));
            					}
HXDLIN( 440)					 ::zpp_nape::geom::ZPP_Vec2 inner = anchor4->zpp_inner;
HXDLIN( 440)					anchor4->zpp_inner->outer = null();
HXDLIN( 440)					anchor4->zpp_inner = null();
HXDLIN( 440)					{
HXLINE( 440)						 ::nape::geom::Vec2 o = anchor4;
HXDLIN( 440)						o->zpp_pool = null();
HXDLIN( 440)						if (hx::IsNotNull( ::zpp_nape::util::ZPP_PubPool_obj::nextVec2 )) {
HXLINE( 440)							::zpp_nape::util::ZPP_PubPool_obj::nextVec2->zpp_pool = o;
            						}
            						else {
HXLINE( 440)							::zpp_nape::util::ZPP_PubPool_obj::poolVec2 = o;
            						}
HXDLIN( 440)						::zpp_nape::util::ZPP_PubPool_obj::nextVec2 = o;
HXDLIN( 440)						o->zpp_disp = true;
            					}
HXDLIN( 440)					{
HXLINE( 440)						 ::zpp_nape::geom::ZPP_Vec2 o1 = inner;
HXDLIN( 440)						{
HXLINE( 440)							if (hx::IsNotNull( o1->outer )) {
HXLINE( 440)								o1->outer->zpp_inner = null();
HXDLIN( 440)								o1->outer = null();
            							}
HXDLIN( 440)							o1->_isimmutable = null();
HXDLIN( 440)							o1->_validate = null();
HXDLIN( 440)							o1->_invalidate = null();
            						}
HXDLIN( 440)						o1->next = ::zpp_nape::geom::ZPP_Vec2_obj::zpp_pool;
HXDLIN( 440)						::zpp_nape::geom::ZPP_Vec2_obj::zpp_pool = o1;
            					}
            				}
            			}
            		}
HXLINE( 442)		if (hx::IsNull( this->zpp_inner_zn->wrap_a4 )) {
HXLINE( 442)			this->zpp_inner_zn->setup_a4();
            		}
HXDLIN( 442)		return this->zpp_inner_zn->wrap_a4;
            	}


HX_DEFINE_DYNAMIC_FUNC1(PulleyJoint_obj,set_anchor4,return )

Float PulleyJoint_obj::get_jointMin(){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_452_get_jointMin)
HXDLIN( 452)		return this->zpp_inner_zn->jointMin;
            	}


HX_DEFINE_DYNAMIC_FUNC0(PulleyJoint_obj,get_jointMin,return )

Float PulleyJoint_obj::set_jointMin(Float jointMin){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_454_set_jointMin)
HXLINE( 455)		{
HXLINE( 456)			this->zpp_inner->immutable_midstep(HX_("PulleyJoint::jointMin",59,4f,c9,70));
HXLINE( 458)			if ((jointMin != jointMin)) {
HXLINE( 459)				HX_STACK_DO_THROW(HX_("Error: PulleyJoint::jointMin cannot be NaN",a6,94,5b,4c));
            			}
HXLINE( 461)			if ((jointMin < 0)) {
HXLINE( 462)				HX_STACK_DO_THROW(HX_("Error: PulleyJoint::jointMin must be >= 0",6a,47,db,7e));
            			}
HXLINE( 465)			if ((this->zpp_inner_zn->jointMin != jointMin)) {
HXLINE( 466)				this->zpp_inner_zn->jointMin = jointMin;
HXLINE( 467)				this->zpp_inner->wake();
            			}
            		}
HXLINE( 470)		return this->zpp_inner_zn->jointMin;
            	}


HX_DEFINE_DYNAMIC_FUNC1(PulleyJoint_obj,set_jointMin,return )

Float PulleyJoint_obj::get_jointMax(){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_480_get_jointMax)
HXDLIN( 480)		return this->zpp_inner_zn->jointMax;
            	}


HX_DEFINE_DYNAMIC_FUNC0(PulleyJoint_obj,get_jointMax,return )

Float PulleyJoint_obj::set_jointMax(Float jointMax){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_482_set_jointMax)
HXLINE( 483)		{
HXLINE( 484)			this->zpp_inner->immutable_midstep(HX_("PulleyJoint::jointMax",6b,48,c9,70));
HXLINE( 486)			if ((jointMax != jointMax)) {
HXLINE( 487)				HX_STACK_DO_THROW(HX_("Error: PulleyJoint::jointMax cannot be NaN",38,89,ae,e4));
            			}
HXLINE( 489)			if ((jointMax < 0)) {
HXLINE( 490)				HX_STACK_DO_THROW(HX_("Error: PulleyJoint::jointMax must be >= 0",18,8b,c3,71));
            			}
HXLINE( 493)			if ((this->zpp_inner_zn->jointMax != jointMax)) {
HXLINE( 494)				this->zpp_inner_zn->jointMax = jointMax;
HXLINE( 495)				this->zpp_inner->wake();
            			}
            		}
HXLINE( 498)		return this->zpp_inner_zn->jointMax;
            	}


HX_DEFINE_DYNAMIC_FUNC1(PulleyJoint_obj,set_jointMax,return )

Float PulleyJoint_obj::get_ratio(){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_508_get_ratio)
HXDLIN( 508)		return this->zpp_inner_zn->ratio;
            	}


HX_DEFINE_DYNAMIC_FUNC0(PulleyJoint_obj,get_ratio,return )

Float PulleyJoint_obj::set_ratio(Float ratio){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_510_set_ratio)
HXLINE( 511)		{
HXLINE( 512)			this->zpp_inner->immutable_midstep(HX_("PulleyJoint::ratio",7a,cf,1b,11));
HXLINE( 514)			if ((ratio != ratio)) {
HXLINE( 515)				HX_STACK_DO_THROW(HX_("Error: PulleyJoint::ratio cannot be NaN",63,48,fa,b0));
            			}
HXLINE( 518)			if ((this->zpp_inner_zn->ratio != ratio)) {
HXLINE( 519)				this->zpp_inner_zn->ratio = ratio;
HXLINE( 520)				this->zpp_inner->wake();
            			}
            		}
HXLINE( 523)		return this->zpp_inner_zn->ratio;
            	}


HX_DEFINE_DYNAMIC_FUNC1(PulleyJoint_obj,set_ratio,return )

bool PulleyJoint_obj::isSlack(){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_536_isSlack)
HXLINE( 538)		bool _hx_tmp;
HXDLIN( 538)		bool _hx_tmp1;
HXDLIN( 538)		bool _hx_tmp2;
HXDLIN( 538)		 ::nape::phys::Body _hx_tmp3;
HXDLIN( 538)		if (hx::IsNull( this->zpp_inner_zn->b1 )) {
HXLINE( 538)			_hx_tmp3 = null();
            		}
            		else {
HXLINE( 538)			_hx_tmp3 = this->zpp_inner_zn->b1->outer;
            		}
HXDLIN( 538)		if (hx::IsNotNull( _hx_tmp3 )) {
HXLINE( 538)			 ::nape::phys::Body _hx_tmp4;
HXDLIN( 538)			if (hx::IsNull( this->zpp_inner_zn->b2 )) {
HXLINE( 538)				_hx_tmp4 = null();
            			}
            			else {
HXLINE( 538)				_hx_tmp4 = this->zpp_inner_zn->b2->outer;
            			}
HXDLIN( 538)			_hx_tmp2 = hx::IsNull( _hx_tmp4 );
            		}
            		else {
HXLINE( 538)			_hx_tmp2 = true;
            		}
HXDLIN( 538)		if (!(_hx_tmp2)) {
HXLINE( 538)			 ::nape::phys::Body _hx_tmp5;
HXDLIN( 538)			if (hx::IsNull( this->zpp_inner_zn->b3 )) {
HXLINE( 538)				_hx_tmp5 = null();
            			}
            			else {
HXLINE( 538)				_hx_tmp5 = this->zpp_inner_zn->b3->outer;
            			}
HXDLIN( 538)			_hx_tmp1 = hx::IsNull( _hx_tmp5 );
            		}
            		else {
HXLINE( 538)			_hx_tmp1 = true;
            		}
HXDLIN( 538)		if (!(_hx_tmp1)) {
HXLINE( 538)			 ::nape::phys::Body _hx_tmp6;
HXDLIN( 538)			if (hx::IsNull( this->zpp_inner_zn->b4 )) {
HXLINE( 538)				_hx_tmp6 = null();
            			}
            			else {
HXLINE( 538)				_hx_tmp6 = this->zpp_inner_zn->b4->outer;
            			}
HXDLIN( 538)			_hx_tmp = hx::IsNull( _hx_tmp6 );
            		}
            		else {
HXLINE( 538)			_hx_tmp = true;
            		}
HXDLIN( 538)		if (_hx_tmp) {
HXLINE( 539)			HX_STACK_DO_THROW(HX_("Error: Cannot compute slack for PulleyJoint if either body is null.",e9,7c,ad,f9));
            		}
HXLINE( 542)		return this->zpp_inner_zn->slack;
            	}


HX_DEFINE_DYNAMIC_FUNC0(PulleyJoint_obj,isSlack,return )

 ::nape::geom::MatMN PulleyJoint_obj::impulse(){
            	HX_GC_STACKFRAME(&_hx_pos_7d77866d564ee991_592_impulse)
HXLINE( 593)		 ::nape::geom::MatMN ret =  ::nape::geom::MatMN_obj::__alloc( HX_CTX ,1,1);
HXLINE( 594)		{
HXLINE( 594)			bool _hx_tmp;
HXDLIN( 594)			if ((0 < ret->zpp_inner->m)) {
HXLINE( 594)				_hx_tmp = (0 >= ret->zpp_inner->n);
            			}
            			else {
HXLINE( 594)				_hx_tmp = true;
            			}
HXDLIN( 594)			if (_hx_tmp) {
HXLINE( 594)				HX_STACK_DO_THROW(HX_("Error: MatMN indices out of range",cc,72,58,e6));
            			}
HXDLIN( 594)			ret->zpp_inner->x[(0 * ret->zpp_inner->n)] = this->zpp_inner_zn->jAcc;
            		}
HXLINE( 595)		return ret;
            	}


 ::nape::geom::Vec3 PulleyJoint_obj::bodyImpulse( ::nape::phys::Body body){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_600_bodyImpulse)
HXLINE( 602)		if (hx::IsNull( body )) {
HXLINE( 603)			HX_STACK_DO_THROW(HX_("Error: Cannot evaluate impulse on null body",9d,b5,dc,16));
            		}
HXLINE( 605)		bool _hx_tmp;
HXDLIN( 605)		bool _hx_tmp1;
HXDLIN( 605)		bool _hx_tmp2;
HXDLIN( 605)		 ::nape::phys::Body _hx_tmp3;
HXDLIN( 605)		if (hx::IsNull( this->zpp_inner_zn->b1 )) {
HXLINE( 605)			_hx_tmp3 = null();
            		}
            		else {
HXLINE( 605)			_hx_tmp3 = this->zpp_inner_zn->b1->outer;
            		}
HXDLIN( 605)		if (hx::IsNotEq( body,_hx_tmp3 )) {
HXLINE( 605)			 ::nape::phys::Body _hx_tmp4;
HXDLIN( 605)			if (hx::IsNull( this->zpp_inner_zn->b2 )) {
HXLINE( 605)				_hx_tmp4 = null();
            			}
            			else {
HXLINE( 605)				_hx_tmp4 = this->zpp_inner_zn->b2->outer;
            			}
HXDLIN( 605)			_hx_tmp2 = hx::IsNotEq( body,_hx_tmp4 );
            		}
            		else {
HXLINE( 605)			_hx_tmp2 = false;
            		}
HXDLIN( 605)		if (_hx_tmp2) {
HXLINE( 605)			 ::nape::phys::Body _hx_tmp5;
HXDLIN( 605)			if (hx::IsNull( this->zpp_inner_zn->b3 )) {
HXLINE( 605)				_hx_tmp5 = null();
            			}
            			else {
HXLINE( 605)				_hx_tmp5 = this->zpp_inner_zn->b3->outer;
            			}
HXDLIN( 605)			_hx_tmp1 = hx::IsNotEq( body,_hx_tmp5 );
            		}
            		else {
HXLINE( 605)			_hx_tmp1 = false;
            		}
HXDLIN( 605)		if (_hx_tmp1) {
HXLINE( 605)			 ::nape::phys::Body _hx_tmp6;
HXDLIN( 605)			if (hx::IsNull( this->zpp_inner_zn->b4 )) {
HXLINE( 605)				_hx_tmp6 = null();
            			}
            			else {
HXLINE( 605)				_hx_tmp6 = this->zpp_inner_zn->b4->outer;
            			}
HXDLIN( 605)			_hx_tmp = hx::IsNotEq( body,_hx_tmp6 );
            		}
            		else {
HXLINE( 605)			_hx_tmp = false;
            		}
HXDLIN( 605)		if (_hx_tmp) {
HXLINE( 606)			HX_STACK_DO_THROW(HX_("Error: Body is not linked to this constraint",2e,e5,48,bf));
            		}
HXLINE( 609)		if (!(this->zpp_inner->active)) {
HXLINE( 610)			return ::nape::geom::Vec3_obj::get(null(),null(),null());
            		}
            		else {
HXLINE( 613)			return this->zpp_inner_zn->bodyImpulse(body->zpp_inner);
            		}
HXLINE( 609)		return null();
            	}


void PulleyJoint_obj::visitBodies( ::Dynamic lambda){
            	HX_STACKFRAME(&_hx_pos_7d77866d564ee991_619_visitBodies)
HXLINE( 620)		 ::nape::phys::Body _hx_tmp;
HXDLIN( 620)		if (hx::IsNull( this->zpp_inner_zn->b1 )) {
HXLINE( 620)			_hx_tmp = null();
            		}
            		else {
HXLINE( 620)			_hx_tmp = this->zpp_inner_zn->b1->outer;
            		}
HXDLIN( 620)		if (hx::IsNotNull( _hx_tmp )) {
HXLINE( 621)			 ::nape::phys::Body _hx_tmp1;
HXDLIN( 621)			if (hx::IsNull( this->zpp_inner_zn->b1 )) {
HXLINE( 621)				_hx_tmp1 = null();
            			}
            			else {
HXLINE( 621)				_hx_tmp1 = this->zpp_inner_zn->b1->outer;
            			}
HXDLIN( 621)			lambda(_hx_tmp1);
            		}
HXLINE( 623)		bool _hx_tmp2;
HXDLIN( 623)		 ::nape::phys::Body _hx_tmp3;
HXDLIN( 623)		if (hx::IsNull( this->zpp_inner_zn->b2 )) {
HXLINE( 623)			_hx_tmp3 = null();
            		}
            		else {
HXLINE( 623)			_hx_tmp3 = this->zpp_inner_zn->b2->outer;
            		}
HXDLIN( 623)		if (hx::IsNotNull( _hx_tmp3 )) {
HXLINE( 623)			 ::nape::phys::Body _hx_tmp4;
HXDLIN( 623)			if (hx::IsNull( this->zpp_inner_zn->b2 )) {
HXLINE( 623)				_hx_tmp4 = null();
            			}
            			else {
HXLINE( 623)				_hx_tmp4 = this->zpp_inner_zn->b2->outer;
            			}
HXDLIN( 623)			 ::nape::phys::Body _hx_tmp5;
HXDLIN( 623)			if (hx::IsNull( this->zpp_inner_zn->b1 )) {
HXLINE( 623)				_hx_tmp5 = null();
            			}
            			else {
HXLINE( 623)				_hx_tmp5 = this->zpp_inner_zn->b1->outer;
            			}
HXDLIN( 623)			_hx_tmp2 = hx::IsNotEq( _hx_tmp4,_hx_tmp5 );
            		}
            		else {
HXLINE( 623)			_hx_tmp2 = false;
            		}
HXDLIN( 623)		if (_hx_tmp2) {
HXLINE( 624)			 ::nape::phys::Body _hx_tmp6;
HXDLIN( 624)			if (hx::IsNull( this->zpp_inner_zn->b2 )) {
HXLINE( 624)				_hx_tmp6 = null();
            			}
            			else {
HXLINE( 624)				_hx_tmp6 = this->zpp_inner_zn->b2->outer;
            			}
HXDLIN( 624)			lambda(_hx_tmp6);
            		}
HXLINE( 626)		bool _hx_tmp7;
HXDLIN( 626)		bool _hx_tmp8;
HXDLIN( 626)		 ::nape::phys::Body _hx_tmp9;
HXDLIN( 626)		if (hx::IsNull( this->zpp_inner_zn->b3 )) {
HXLINE( 626)			_hx_tmp9 = null();
            		}
            		else {
HXLINE( 626)			_hx_tmp9 = this->zpp_inner_zn->b3->outer;
            		}
HXDLIN( 626)		if (hx::IsNotNull( _hx_tmp9 )) {
HXLINE( 626)			 ::nape::phys::Body _hx_tmp10;
HXDLIN( 626)			if (hx::IsNull( this->zpp_inner_zn->b3 )) {
HXLINE( 626)				_hx_tmp10 = null();
            			}
            			else {
HXLINE( 626)				_hx_tmp10 = this->zpp_inner_zn->b3->outer;
            			}
HXDLIN( 626)			 ::nape::phys::Body _hx_tmp11;
HXDLIN( 626)			if (hx::IsNull( this->zpp_inner_zn->b1 )) {
HXLINE( 626)				_hx_tmp11 = null();
            			}
            			else {
HXLINE( 626)				_hx_tmp11 = this->zpp_inner_zn->b1->outer;
            			}
HXDLIN( 626)			_hx_tmp8 = hx::IsNotEq( _hx_tmp10,_hx_tmp11 );
            		}
            		else {
HXLINE( 626)			_hx_tmp8 = false;
            		}
HXDLIN( 626)		if (_hx_tmp8) {
HXLINE( 626)			 ::nape::phys::Body _hx_tmp12;
HXDLIN( 626)			if (hx::IsNull( this->zpp_inner_zn->b3 )) {
HXLINE( 626)				_hx_tmp12 = null();
            			}
            			else {
HXLINE( 626)				_hx_tmp12 = this->zpp_inner_zn->b3->outer;
            			}
HXDLIN( 626)			 ::nape::phys::Body _hx_tmp13;
HXDLIN( 626)			if (hx::IsNull( this->zpp_inner_zn->b2 )) {
HXLINE( 626)				_hx_tmp13 = null();
            			}
            			else {
HXLINE( 626)				_hx_tmp13 = this->zpp_inner_zn->b2->outer;
            			}
HXDLIN( 626)			_hx_tmp7 = hx::IsNotEq( _hx_tmp12,_hx_tmp13 );
            		}
            		else {
HXLINE( 626)			_hx_tmp7 = false;
            		}
HXDLIN( 626)		if (_hx_tmp7) {
HXLINE( 627)			 ::nape::phys::Body _hx_tmp14;
HXDLIN( 627)			if (hx::IsNull( this->zpp_inner_zn->b3 )) {
HXLINE( 627)				_hx_tmp14 = null();
            			}
            			else {
HXLINE( 627)				_hx_tmp14 = this->zpp_inner_zn->b3->outer;
            			}
HXDLIN( 627)			lambda(_hx_tmp14);
            		}
HXLINE( 629)		bool _hx_tmp15;
HXDLIN( 629)		bool _hx_tmp16;
HXDLIN( 629)		bool _hx_tmp17;
HXDLIN( 629)		 ::nape::phys::Body _hx_tmp18;
HXDLIN( 629)		if (hx::IsNull( this->zpp_inner_zn->b4 )) {
HXLINE( 629)			_hx_tmp18 = null();
            		}
            		else {
HXLINE( 629)			_hx_tmp18 = this->zpp_inner_zn->b4->outer;
            		}
HXDLIN( 629)		if (hx::IsNotNull( _hx_tmp18 )) {
HXLINE( 629)			 ::nape::phys::Body _hx_tmp19;
HXDLIN( 629)			if (hx::IsNull( this->zpp_inner_zn->b4 )) {
HXLINE( 629)				_hx_tmp19 = null();
            			}
            			else {
HXLINE( 629)				_hx_tmp19 = this->zpp_inner_zn->b4->outer;
            			}
HXDLIN( 629)			 ::nape::phys::Body _hx_tmp20;
HXDLIN( 629)			if (hx::IsNull( this->zpp_inner_zn->b1 )) {
HXLINE( 629)				_hx_tmp20 = null();
            			}
            			else {
HXLINE( 629)				_hx_tmp20 = this->zpp_inner_zn->b1->outer;
            			}
HXDLIN( 629)			_hx_tmp17 = hx::IsNotEq( _hx_tmp19,_hx_tmp20 );
            		}
            		else {
HXLINE( 629)			_hx_tmp17 = false;
            		}
HXDLIN( 629)		if (_hx_tmp17) {
HXLINE( 629)			 ::nape::phys::Body _hx_tmp21;
HXDLIN( 629)			if (hx::IsNull( this->zpp_inner_zn->b4 )) {
HXLINE( 629)				_hx_tmp21 = null();
            			}
            			else {
HXLINE( 629)				_hx_tmp21 = this->zpp_inner_zn->b4->outer;
            			}
HXDLIN( 629)			 ::nape::phys::Body _hx_tmp22;
HXDLIN( 629)			if (hx::IsNull( this->zpp_inner_zn->b2 )) {
HXLINE( 629)				_hx_tmp22 = null();
            			}
            			else {
HXLINE( 629)				_hx_tmp22 = this->zpp_inner_zn->b2->outer;
            			}
HXDLIN( 629)			_hx_tmp16 = hx::IsNotEq( _hx_tmp21,_hx_tmp22 );
            		}
            		else {
HXLINE( 629)			_hx_tmp16 = false;
            		}
HXDLIN( 629)		if (_hx_tmp16) {
HXLINE( 629)			 ::nape::phys::Body _hx_tmp23;
HXDLIN( 629)			if (hx::IsNull( this->zpp_inner_zn->b4 )) {
HXLINE( 629)				_hx_tmp23 = null();
            			}
            			else {
HXLINE( 629)				_hx_tmp23 = this->zpp_inner_zn->b4->outer;
            			}
HXDLIN( 629)			 ::nape::phys::Body _hx_tmp24;
HXDLIN( 629)			if (hx::IsNull( this->zpp_inner_zn->b3 )) {
HXLINE( 629)				_hx_tmp24 = null();
            			}
            			else {
HXLINE( 629)				_hx_tmp24 = this->zpp_inner_zn->b3->outer;
            			}
HXDLIN( 629)			_hx_tmp15 = hx::IsNotEq( _hx_tmp23,_hx_tmp24 );
            		}
            		else {
HXLINE( 629)			_hx_tmp15 = false;
            		}
HXDLIN( 629)		if (_hx_tmp15) {
HXLINE( 630)			 ::nape::phys::Body _hx_tmp25;
HXDLIN( 630)			if (hx::IsNull( this->zpp_inner_zn->b4 )) {
HXLINE( 630)				_hx_tmp25 = null();
            			}
            			else {
HXLINE( 630)				_hx_tmp25 = this->zpp_inner_zn->b4->outer;
            			}
HXDLIN( 630)			lambda(_hx_tmp25);
            		}
            	}



hx::ObjectPtr< PulleyJoint_obj > PulleyJoint_obj::__new( ::nape::phys::Body body1, ::nape::phys::Body body2, ::nape::phys::Body body3, ::nape::phys::Body body4, ::nape::geom::Vec2 anchor1, ::nape::geom::Vec2 anchor2, ::nape::geom::Vec2 anchor3, ::nape::geom::Vec2 anchor4,Float jointMin,Float jointMax,hx::Null< Float >  __o_ratio) {
	hx::ObjectPtr< PulleyJoint_obj > __this = new PulleyJoint_obj();
	__this->__construct(body1,body2,body3,body4,anchor1,anchor2,anchor3,anchor4,jointMin,jointMax,__o_ratio);
	return __this;
}

hx::ObjectPtr< PulleyJoint_obj > PulleyJoint_obj::__alloc(hx::Ctx *_hx_ctx, ::nape::phys::Body body1, ::nape::phys::Body body2, ::nape::phys::Body body3, ::nape::phys::Body body4, ::nape::geom::Vec2 anchor1, ::nape::geom::Vec2 anchor2, ::nape::geom::Vec2 anchor3, ::nape::geom::Vec2 anchor4,Float jointMin,Float jointMax,hx::Null< Float >  __o_ratio) {
	PulleyJoint_obj *__this = (PulleyJoint_obj*)(hx::Ctx::alloc(_hx_ctx, sizeof(PulleyJoint_obj), true, "nape.constraint.PulleyJoint"));
	*(void **)__this = PulleyJoint_obj::_hx_vtable;
	__this->__construct(body1,body2,body3,body4,anchor1,anchor2,anchor3,anchor4,jointMin,jointMax,__o_ratio);
	return __this;
}

PulleyJoint_obj::PulleyJoint_obj()
{
}

void PulleyJoint_obj::__Mark(HX_MARK_PARAMS)
{
	HX_MARK_BEGIN_CLASS(PulleyJoint);
	HX_MARK_MEMBER_NAME(zpp_inner_zn,"zpp_inner_zn");
	 ::nape::constraint::Constraint_obj::__Mark(HX_MARK_ARG);
	HX_MARK_END_CLASS();
}

void PulleyJoint_obj::__Visit(HX_VISIT_PARAMS)
{
	HX_VISIT_MEMBER_NAME(zpp_inner_zn,"zpp_inner_zn");
	 ::nape::constraint::Constraint_obj::__Visit(HX_VISIT_ARG);
}

hx::Val PulleyJoint_obj::__Field(const ::String &inName,hx::PropertyAccess inCallProp)
{
	switch(inName.length) {
	case 5:
		if (HX_FIELD_EQ(inName,"body1") ) { if (inCallProp == hx::paccAlways) return hx::Val( get_body1() ); }
		if (HX_FIELD_EQ(inName,"body2") ) { if (inCallProp == hx::paccAlways) return hx::Val( get_body2() ); }
		if (HX_FIELD_EQ(inName,"body3") ) { if (inCallProp == hx::paccAlways) return hx::Val( get_body3() ); }
		if (HX_FIELD_EQ(inName,"body4") ) { if (inCallProp == hx::paccAlways) return hx::Val( get_body4() ); }
		if (HX_FIELD_EQ(inName,"ratio") ) { if (inCallProp == hx::paccAlways) return hx::Val( get_ratio() ); }
		break;
	case 7:
		if (HX_FIELD_EQ(inName,"anchor1") ) { if (inCallProp == hx::paccAlways) return hx::Val( get_anchor1() ); }
		if (HX_FIELD_EQ(inName,"anchor2") ) { if (inCallProp == hx::paccAlways) return hx::Val( get_anchor2() ); }
		if (HX_FIELD_EQ(inName,"anchor3") ) { if (inCallProp == hx::paccAlways) return hx::Val( get_anchor3() ); }
		if (HX_FIELD_EQ(inName,"anchor4") ) { if (inCallProp == hx::paccAlways) return hx::Val( get_anchor4() ); }
		if (HX_FIELD_EQ(inName,"isSlack") ) { return hx::Val( isSlack_dyn() ); }
		if (HX_FIELD_EQ(inName,"impulse") ) { return hx::Val( impulse_dyn() ); }
		break;
	case 8:
		if (HX_FIELD_EQ(inName,"jointMin") ) { if (inCallProp == hx::paccAlways) return hx::Val( get_jointMin() ); }
		if (HX_FIELD_EQ(inName,"jointMax") ) { if (inCallProp == hx::paccAlways) return hx::Val( get_jointMax() ); }
		break;
	case 9:
		if (HX_FIELD_EQ(inName,"get_body1") ) { return hx::Val( get_body1_dyn() ); }
		if (HX_FIELD_EQ(inName,"set_body1") ) { return hx::Val( set_body1_dyn() ); }
		if (HX_FIELD_EQ(inName,"get_body2") ) { return hx::Val( get_body2_dyn() ); }
		if (HX_FIELD_EQ(inName,"set_body2") ) { return hx::Val( set_body2_dyn() ); }
		if (HX_FIELD_EQ(inName,"get_body3") ) { return hx::Val( get_body3_dyn() ); }
		if (HX_FIELD_EQ(inName,"set_body3") ) { return hx::Val( set_body3_dyn() ); }
		if (HX_FIELD_EQ(inName,"get_body4") ) { return hx::Val( get_body4_dyn() ); }
		if (HX_FIELD_EQ(inName,"set_body4") ) { return hx::Val( set_body4_dyn() ); }
		if (HX_FIELD_EQ(inName,"get_ratio") ) { return hx::Val( get_ratio_dyn() ); }
		if (HX_FIELD_EQ(inName,"set_ratio") ) { return hx::Val( set_ratio_dyn() ); }
		break;
	case 11:
		if (HX_FIELD_EQ(inName,"get_anchor1") ) { return hx::Val( get_anchor1_dyn() ); }
		if (HX_FIELD_EQ(inName,"set_anchor1") ) { return hx::Val( set_anchor1_dyn() ); }
		if (HX_FIELD_EQ(inName,"get_anchor2") ) { return hx::Val( get_anchor2_dyn() ); }
		if (HX_FIELD_EQ(inName,"set_anchor2") ) { return hx::Val( set_anchor2_dyn() ); }
		if (HX_FIELD_EQ(inName,"get_anchor3") ) { return hx::Val( get_anchor3_dyn() ); }
		if (HX_FIELD_EQ(inName,"set_anchor3") ) { return hx::Val( set_anchor3_dyn() ); }
		if (HX_FIELD_EQ(inName,"get_anchor4") ) { return hx::Val( get_anchor4_dyn() ); }
		if (HX_FIELD_EQ(inName,"set_anchor4") ) { return hx::Val( set_anchor4_dyn() ); }
		if (HX_FIELD_EQ(inName,"bodyImpulse") ) { return hx::Val( bodyImpulse_dyn() ); }
		if (HX_FIELD_EQ(inName,"visitBodies") ) { return hx::Val( visitBodies_dyn() ); }
		break;
	case 12:
		if (HX_FIELD_EQ(inName,"zpp_inner_zn") ) { return hx::Val( zpp_inner_zn ); }
		if (HX_FIELD_EQ(inName,"get_jointMin") ) { return hx::Val( get_jointMin_dyn() ); }
		if (HX_FIELD_EQ(inName,"set_jointMin") ) { return hx::Val( set_jointMin_dyn() ); }
		if (HX_FIELD_EQ(inName,"get_jointMax") ) { return hx::Val( get_jointMax_dyn() ); }
		if (HX_FIELD_EQ(inName,"set_jointMax") ) { return hx::Val( set_jointMax_dyn() ); }
	}
	return super::__Field(inName,inCallProp);
}

hx::Val PulleyJoint_obj::__SetField(const ::String &inName,const hx::Val &inValue,hx::PropertyAccess inCallProp)
{
	switch(inName.length) {
	case 5:
		if (HX_FIELD_EQ(inName,"body1") ) { if (inCallProp == hx::paccAlways) return hx::Val( set_body1(inValue.Cast<  ::nape::phys::Body >()) ); }
		if (HX_FIELD_EQ(inName,"body2") ) { if (inCallProp == hx::paccAlways) return hx::Val( set_body2(inValue.Cast<  ::nape::phys::Body >()) ); }
		if (HX_FIELD_EQ(inName,"body3") ) { if (inCallProp == hx::paccAlways) return hx::Val( set_body3(inValue.Cast<  ::nape::phys::Body >()) ); }
		if (HX_FIELD_EQ(inName,"body4") ) { if (inCallProp == hx::paccAlways) return hx::Val( set_body4(inValue.Cast<  ::nape::phys::Body >()) ); }
		if (HX_FIELD_EQ(inName,"ratio") ) { if (inCallProp == hx::paccAlways) return hx::Val( set_ratio(inValue.Cast< Float >()) ); }
		break;
	case 7:
		if (HX_FIELD_EQ(inName,"anchor1") ) { if (inCallProp == hx::paccAlways) return hx::Val( set_anchor1(inValue.Cast<  ::nape::geom::Vec2 >()) ); }
		if (HX_FIELD_EQ(inName,"anchor2") ) { if (inCallProp == hx::paccAlways) return hx::Val( set_anchor2(inValue.Cast<  ::nape::geom::Vec2 >()) ); }
		if (HX_FIELD_EQ(inName,"anchor3") ) { if (inCallProp == hx::paccAlways) return hx::Val( set_anchor3(inValue.Cast<  ::nape::geom::Vec2 >()) ); }
		if (HX_FIELD_EQ(inName,"anchor4") ) { if (inCallProp == hx::paccAlways) return hx::Val( set_anchor4(inValue.Cast<  ::nape::geom::Vec2 >()) ); }
		break;
	case 8:
		if (HX_FIELD_EQ(inName,"jointMin") ) { if (inCallProp == hx::paccAlways) return hx::Val( set_jointMin(inValue.Cast< Float >()) ); }
		if (HX_FIELD_EQ(inName,"jointMax") ) { if (inCallProp == hx::paccAlways) return hx::Val( set_jointMax(inValue.Cast< Float >()) ); }
		break;
	case 12:
		if (HX_FIELD_EQ(inName,"zpp_inner_zn") ) { zpp_inner_zn=inValue.Cast<  ::zpp_nape::constraint::ZPP_PulleyJoint >(); return inValue; }
	}
	return super::__SetField(inName,inValue,inCallProp);
}

void PulleyJoint_obj::__GetFields(Array< ::String> &outFields)
{
	outFields->push(HX_("zpp_inner_zn",22,84,fa,e0));
	outFields->push(HX_("body1",4f,d3,ef,b6));
	outFields->push(HX_("body2",50,d3,ef,b6));
	outFields->push(HX_("body3",51,d3,ef,b6));
	outFields->push(HX_("body4",52,d3,ef,b6));
	outFields->push(HX_("anchor1",1c,ec,a1,02));
	outFields->push(HX_("anchor2",1d,ec,a1,02));
	outFields->push(HX_("anchor3",1e,ec,a1,02));
	outFields->push(HX_("anchor4",1f,ec,a1,02));
	outFields->push(HX_("jointMin",68,fa,25,55));
	outFields->push(HX_("jointMax",7a,f3,25,55));
	outFields->push(HX_("ratio",0b,35,24,e4));
	super::__GetFields(outFields);
};

#ifdef HXCPP_SCRIPTABLE
static hx::StorageInfo PulleyJoint_obj_sMemberStorageInfo[] = {
	{hx::fsObject /*  ::zpp_nape::constraint::ZPP_PulleyJoint */ ,(int)offsetof(PulleyJoint_obj,zpp_inner_zn),HX_("zpp_inner_zn",22,84,fa,e0)},
	{ hx::fsUnknown, 0, null()}
};
static hx::StaticInfo *PulleyJoint_obj_sStaticStorageInfo = 0;
#endif

static ::String PulleyJoint_obj_sMemberFields[] = {
	HX_("zpp_inner_zn",22,84,fa,e0),
	HX_("get_body1",a6,2f,99,fa),
	HX_("set_body1",b2,1b,ea,dd),
	HX_("get_body2",a7,2f,99,fa),
	HX_("set_body2",b3,1b,ea,dd),
	HX_("get_body3",a8,2f,99,fa),
	HX_("set_body3",b4,1b,ea,dd),
	HX_("get_body4",a9,2f,99,fa),
	HX_("set_body4",b5,1b,ea,dd),
	HX_("get_anchor1",33,4c,9c,88),
	HX_("set_anchor1",3f,53,09,93),
	HX_("get_anchor2",34,4c,9c,88),
	HX_("set_anchor2",40,53,09,93),
	HX_("get_anchor3",35,4c,9c,88),
	HX_("set_anchor3",41,53,09,93),
	HX_("get_anchor4",36,4c,9c,88),
	HX_("set_anchor4",42,53,09,93),
	HX_("get_jointMin",71,ae,3f,0a),
	HX_("set_jointMin",e5,d1,38,1f),
	HX_("get_jointMax",83,a7,3f,0a),
	HX_("set_jointMax",f7,ca,38,1f),
	HX_("get_ratio",62,91,cd,27),
	HX_("set_ratio",6e,7d,1e,0b),
	HX_("isSlack",06,56,47,1b),
	HX_("impulse",b5,50,bd,6d),
	HX_("bodyImpulse",33,76,a2,5f),
	HX_("visitBodies",ab,f3,5e,e4),
	::String(null()) };

hx::Class PulleyJoint_obj::__mClass;

void PulleyJoint_obj::__register()
{
	PulleyJoint_obj _hx_dummy;
	PulleyJoint_obj::_hx_vtable = *(void **)&_hx_dummy;
	hx::Static(__mClass) = new hx::Class_obj();
	__mClass->mName = HX_("nape.constraint.PulleyJoint",26,70,00,26);
	__mClass->mSuper = &super::__SGetClass();
	__mClass->mConstructEmpty = &__CreateEmpty;
	__mClass->mConstructArgs = &__Create;
	__mClass->mGetStaticField = &hx::Class_obj::GetNoStaticField;
	__mClass->mSetStaticField = &hx::Class_obj::SetNoStaticField;
	__mClass->mStatics = hx::Class_obj::dupFunctions(0 /* sStaticFields */);
	__mClass->mMembers = hx::Class_obj::dupFunctions(PulleyJoint_obj_sMemberFields);
	__mClass->mCanCast = hx::TCanCast< PulleyJoint_obj >;
#ifdef HXCPP_SCRIPTABLE
	__mClass->mMemberStorageInfo = PulleyJoint_obj_sMemberStorageInfo;
#endif
#ifdef HXCPP_SCRIPTABLE
	__mClass->mStaticStorageInfo = PulleyJoint_obj_sStaticStorageInfo;
#endif
	hx::_hx_RegisterClass(__mClass->mName, __mClass);
}

} // end namespace nape
} // end namespace constraint
