// ---- auto generated by YInG - the YAC interface generator (Sat, 15/Mar/2014 18:54:49)
#ifndef __YAC__OldMath_h__
#define __YAC__OldMath_h__

sUI                                          clid_Color;
YAC_Template <_Color>                          *t_Color;
sUI                                          clid_Vector;
YAC_Template <_Vector>                         *t_Vector;
sUI                                          clid_Vector4;
YAC_Template <_Vector4>                        *t_Vector4;
sUI                                          clid_Matrix;
YAC_Template <_Matrix>                         *t_Matrix;
sUI                                          clid_VectorArray;
YAC_Template <_VectorArray>                    *t_VectorArray;
sUI                                          clid_IVector;
YAC_Template <_IVector>                        *t_IVector;
sUI                                          clid_WrappedFloat;
YAC_Template <_WrappedFloat>                   *t_WrappedFloat;
sUI                                          clid_Math;
YAC_Template <_Math>                           *t_Math;

void YAC_CALL YAC_Init_OldMath(YAC_Host *_host) {
	// --------------------------------- classes ---------------------------------
	   t_Color                    =new YAC_Template <_Color>(_host);
	clid_Color                    =                t_Color->ctemplate.class_ID;
	   t_Vector                   =new YAC_Template <_Vector>(_host);
	clid_Vector                   =                t_Vector->ctemplate.class_ID;
	   t_Vector4                  =new YAC_Template <_Vector4>(_host);
	clid_Vector4                  =                t_Vector4->ctemplate.class_ID;
	   t_Matrix                   =new YAC_Template <_Matrix>(_host);
	clid_Matrix                   =                t_Matrix->ctemplate.class_ID;
	   t_VectorArray              =new YAC_Template <_VectorArray>(_host);
	clid_VectorArray              =                t_VectorArray->ctemplate.class_ID;
	   t_IVector                  =new YAC_Template <_IVector>(_host);
	clid_IVector                  =                t_IVector->ctemplate.class_ID;
	   t_WrappedFloat             =new YAC_Template <_WrappedFloat>(_host);
	clid_WrappedFloat             =                t_WrappedFloat->ctemplate.class_ID;
	   t_Math                     =new YAC_Template <_Math>(_host);
	clid_Math                     =                t_Math->ctemplate.class_ID;
	// -------------------------------- functions --------------------------------
	static const sUI   __APIC___ivector_arg_types                 []={1, 1,};
	static const sUI   __APIC___vector_arg_types                  []={2, 2, 2,};
	static const sUI   __APIC___vector4_arg_types                 []={2, 2, 2, 2,};
	static const sUI   __APIC___mathC32Multiply_arg_types         []={1, 1, 2,};
	static const sUI   __APIC___mathC32Blend_arg_types            []={1, 1, 2,};
	static const sUI   __APIC___mathNormal_arg_types              []={3, 3, 3, 3,};
	static const sUI   __APIC___mathUnproject_arg_types           []={3, 3, 3,};
	static const sUI   __APIC___mathProject_arg_types             []={3, 3,};
	static const sUI   __APIC___mathReflect_arg_types             []={3, 3, 3,};
	static const sUI   __APIC___mathDistancePointPlane_arg_types  []={3, 3, 3,};
	static const sUI   __APIC___mathVectorMin_arg_types           []={3, 3, 3,};
	static const sUI   __APIC___mathVectorMax_arg_types           []={3, 3, 3,};
	static const sUI   __APIC___mathC32ToC8_arg_types             []={1,};
	static const sUI   __APIC___zglLoadMatrix_arg_types           []={3, 3,};
	static const sUI   __APIC___zglLightPositionv_arg_types       []={1, 3, 2,};
	static const sUI   __APIC___zglLightSpotDirectionv_arg_types  []={1, 3,};
	static const sUI   __APIC___zglNormalv_arg_types              []={3,};
	static const sUI   __APIC___zglRotatev_arg_types              []={3,};
	static const sUI   __APIC___zglRotate3f_arg_types             []={2, 2, 2,};
	static const sUI   __APIC___zglScalev_arg_types               []={3,};
	static const sUI   __APIC___zglStoreMatrix_arg_types          []={3, 3,};
	static const sUI   __APIC___zglTranslatev_arg_types           []={3,};
	static const sUI   __APIC___zglVertexv_arg_types              []={3,};
	static const char *__APIC___ivector_arg_otypes                []={"", "",};
	static const char *__APIC___vector_arg_otypes                 []={"", "", "",};
	static const char *__APIC___vector4_arg_otypes                []={"", "", "", "",};
	static const char *__APIC___mathC32Multiply_arg_otypes        []={"", "", "",};
	static const char *__APIC___mathC32Blend_arg_otypes           []={"", "", "",};
	static const char *__APIC___mathNormal_arg_otypes             []={"", "", "", "",};
	static const char *__APIC___mathUnproject_arg_otypes          []={"", "", "",};
	static const char *__APIC___mathProject_arg_otypes            []={"", "",};
	static const char *__APIC___mathReflect_arg_otypes            []={"", "", "",};
	static const char *__APIC___mathDistancePointPlane_arg_otypes []={"", "", "",};
	static const char *__APIC___mathVectorMin_arg_otypes          []={"", "", "",};
	static const char *__APIC___mathVectorMax_arg_otypes          []={"", "", "",};
	static const char *__APIC___mathC32ToC8_arg_otypes            []={"",};
	static const char *__APIC___zglLoadMatrix_arg_otypes          []={"", "",};
	static const char *__APIC___zglLightPositionv_arg_otypes      []={"", "", "",};
	static const char *__APIC___zglLightSpotDirectionv_arg_otypes []={"", "",};
	static const char *__APIC___zglNormalv_arg_otypes             []={"",};
	static const char *__APIC___zglRotatev_arg_otypes             []={"",};
	static const char *__APIC___zglRotate3f_arg_otypes            []={"", "", "",};
	static const char *__APIC___zglScalev_arg_otypes              []={"",};
	static const char *__APIC___zglStoreMatrix_arg_otypes         []={"", "",};
	static const char *__APIC___zglTranslatev_arg_otypes          []={"",};
	static const char *__APIC___zglVertexv_arg_otypes             []={"",};
	_host->yacRegisterFunction((void*)__APIC___ivector, "ivector", 3, "", 2, __APIC___ivector_arg_types, __APIC___ivector_arg_otypes, 3);
	_host->yacRegisterFunction((void*)__APIC___vector, "vector", 3, "", 3, __APIC___vector_arg_types, __APIC___vector_arg_otypes, 3);
	_host->yacRegisterFunction((void*)__APIC___vector4, "vector4", 3, "", 4, __APIC___vector4_arg_types, __APIC___vector4_arg_otypes, 3);
	_host->yacRegisterFunction((void*)__APIC___mathC32Multiply, "mathC32Multiply", 1, "", 3, __APIC___mathC32Multiply_arg_types, __APIC___mathC32Multiply_arg_otypes, 1);
	_host->yacRegisterFunction((void*)__APIC___mathC32Blend, "mathC32Blend", 1, "", 3, __APIC___mathC32Blend_arg_types, __APIC___mathC32Blend_arg_otypes, 1);
	_host->yacRegisterFunction((void*)__APIC___mathNormal, "mathNormal", 0, "", 4, __APIC___mathNormal_arg_types, __APIC___mathNormal_arg_otypes, 0);
	_host->yacRegisterFunction((void*)__APIC___mathUnproject, "mathUnproject", 0, "", 3, __APIC___mathUnproject_arg_types, __APIC___mathUnproject_arg_otypes, 0);
	_host->yacRegisterFunction((void*)__APIC___mathProject, "mathProject", 0, "", 2, __APIC___mathProject_arg_types, __APIC___mathProject_arg_otypes, 0);
	_host->yacRegisterFunction((void*)__APIC___mathReflect, "mathReflect", 0, "", 3, __APIC___mathReflect_arg_types, __APIC___mathReflect_arg_otypes, 0);
	_host->yacRegisterFunction((void*)__APIC___mathDistancePointPlane, "mathDistancePointPlane", 2, "", 3, __APIC___mathDistancePointPlane_arg_types, __APIC___mathDistancePointPlane_arg_otypes, 2);
	_host->yacRegisterFunction((void*)__APIC___mathVectorMin, "mathVectorMin", 0, "", 3, __APIC___mathVectorMin_arg_types, __APIC___mathVectorMin_arg_otypes, 0);
	_host->yacRegisterFunction((void*)__APIC___mathVectorMax, "mathVectorMax", 0, "", 3, __APIC___mathVectorMax_arg_types, __APIC___mathVectorMax_arg_otypes, 0);
	_host->yacRegisterFunction((void*)__APIC___mathC32ToC8, "mathC32ToC8", 1, "", 1, __APIC___mathC32ToC8_arg_types, __APIC___mathC32ToC8_arg_otypes, 1);
	_host->yacRegisterFunction((void*)__APIC___zglLoadMatrix, "zglLoadMatrix", 0, "", 2, __APIC___zglLoadMatrix_arg_types, __APIC___zglLoadMatrix_arg_otypes, 0);
	_host->yacRegisterFunction((void*)__APIC___zglLightPositionv, "zglLightPositionv", 0, "", 3, __APIC___zglLightPositionv_arg_types, __APIC___zglLightPositionv_arg_otypes, 0);
	_host->yacRegisterFunction((void*)__APIC___zglLightSpotDirectionv, "zglLightSpotDirectionv", 0, "", 2, __APIC___zglLightSpotDirectionv_arg_types, __APIC___zglLightSpotDirectionv_arg_otypes, 0);
	_host->yacRegisterFunction((void*)__APIC___zglNormalv, "zglNormalv", 0, "", 1, __APIC___zglNormalv_arg_types, __APIC___zglNormalv_arg_otypes, 0);
	_host->yacRegisterFunction((void*)__APIC___zglRotatev, "zglRotatev", 0, "", 1, __APIC___zglRotatev_arg_types, __APIC___zglRotatev_arg_otypes, 0);
	_host->yacRegisterFunction((void*)__APIC___zglRotate3f, "zglRotate3f", 0, "", 3, __APIC___zglRotate3f_arg_types, __APIC___zglRotate3f_arg_otypes, 0);
	_host->yacRegisterFunction((void*)__APIC___zglScalev, "zglScalev", 0, "", 1, __APIC___zglScalev_arg_types, __APIC___zglScalev_arg_otypes, 0);
	_host->yacRegisterFunction((void*)__APIC___zglStoreMatrix, "zglStoreMatrix", 0, "", 2, __APIC___zglStoreMatrix_arg_types, __APIC___zglStoreMatrix_arg_otypes, 0);
	_host->yacRegisterFunction((void*)__APIC___zglTranslatev, "zglTranslatev", 0, "", 1, __APIC___zglTranslatev_arg_types, __APIC___zglTranslatev_arg_otypes, 0);
	_host->yacRegisterFunction((void*)__APIC___zglVertexv, "zglVertexv", 0, "", 1, __APIC___zglVertexv_arg_types, __APIC___zglVertexv_arg_otypes, 0);

}
void* YAC_CALL __APIC___ivector     (yacmemptr _args                         ) {return (void*)_ivector(_args.mem[0].si, _args.mem[1].si);}
void* YAC_CALL __APIC___vector      (yacmemptr _args                         ) {return (void*)_vector(_args.mem[0].f4, _args.mem[1].f4, _args.mem[2].f4);}
void* YAC_CALL __APIC___vector4     (yacmemptr _args                         ) {return (void*)_vector4(_args.mem[0].f4, _args.mem[1].f4, _args.mem[2].f4, _args.mem[3].f4);}
sSI   YAC_CALL __APIC___mathC32Multiply(yacmemptr _args                      ) {return (sSI)_mathC32Multiply(_args.mem[0].si, _args.mem[1].si, _args.mem[2].f4);}
sSI   YAC_CALL __APIC___mathC32Blend(yacmemptr _args                         ) {return (sSI)_mathC32Blend(_args.mem[0].si, _args.mem[1].si, _args.mem[2].f4);}
void  YAC_CALL __APIC___mathNormal  (yacmemptr _args                         ) {_mathNormal(_args.mem[0].o, _args.mem[1].o, _args.mem[2].o, _args.mem[3].o);}
void  YAC_CALL __APIC___mathUnproject(yacmemptr _args                        ) {_mathUnproject(_args.mem[0].o, _args.mem[1].o, _args.mem[2].o);}
void  YAC_CALL __APIC___mathProject (yacmemptr _args                         ) {_mathProject(_args.mem[0].o, _args.mem[1].o);}
void  YAC_CALL __APIC___mathReflect (yacmemptr _args                         ) {_mathReflect(_args.mem[0].o, _args.mem[1].o, _args.mem[2].o);}
sF32  YAC_CALL __APIC___mathDistancePointPlane(yacmemptr _args               ) {return (sF32)_mathDistancePointPlane(_args.mem[0].o, _args.mem[1].o, _args.mem[2].o);}
void  YAC_CALL __APIC___mathVectorMin(yacmemptr _args                        ) {_mathVectorMin(_args.mem[0].o, _args.mem[1].o, _args.mem[2].o);}
void  YAC_CALL __APIC___mathVectorMax(yacmemptr _args                        ) {_mathVectorMax(_args.mem[0].o, _args.mem[1].o, _args.mem[2].o);}
sSI   YAC_CALL __APIC___mathC32ToC8 (yacmemptr _args                         ) {return (sSI)_mathC32ToC8(_args.mem[0].si);}
void  YAC_CALL __APIC___zglLoadMatrix(yacmemptr _args                        ) {_zglLoadMatrix(_args.mem[0].o, _args.mem[1].o);}
void  YAC_CALL __APIC___zglLightPositionv(yacmemptr _args                    ) {_zglLightPositionv(_args.mem[0].si, _args.mem[1].o, _args.mem[2].f4);}
void  YAC_CALL __APIC___zglLightSpotDirectionv(yacmemptr _args               ) {_zglLightSpotDirectionv(_args.mem[0].si, _args.mem[1].o);}
void  YAC_CALL __APIC___zglNormalv  (yacmemptr _args                         ) {_zglNormalv(_args.mem[0].o);}
void  YAC_CALL __APIC___zglRotatev  (yacmemptr _args                         ) {_zglRotatev(_args.mem[0].o);}
void  YAC_CALL __APIC___zglRotate3f (yacmemptr _args                         ) {_zglRotate3f(_args.mem[0].f4, _args.mem[1].f4, _args.mem[2].f4);}
void  YAC_CALL __APIC___zglScalev   (yacmemptr _args                         ) {_zglScalev(_args.mem[0].o);}
void  YAC_CALL __APIC___zglStoreMatrix(yacmemptr _args                       ) {_zglStoreMatrix(_args.mem[0].o, _args.mem[1].o);}
void  YAC_CALL __APIC___zglTranslatev(yacmemptr _args                        ) {_zglTranslatev(_args.mem[0].o);}
void  YAC_CALL __APIC___zglVertexv  (yacmemptr _args                         ) {_zglVertexv(_args.mem[0].o);}

void YAC_CALL YAC_Exit_OldMath(YAC_Host *_host) {
	delete t_Color;
	delete t_Math;
	delete t_WrappedFloat;
	delete t_IVector;
	delete t_VectorArray;
	delete t_Matrix;
	delete t_Vector4;
	delete t_Vector;
}

#endif
