#ifndef __BRIDGE_H__
#define __BRIDGE_H__
extern "C" {
typedef double dReal;
typedef unsigned int dTriIndex;
void dMULTIPLY0_331(dReal *res, const dReal *a, const dReal *b);
void dMULTIPLY0_333(dReal *res, const dReal *a, const dReal *b);
void dMULTIPLY0_441(dReal *res, const dReal *a, const dReal *b);
void dMULTIPLY0_444(dReal *res, const dReal *a, const dReal *b);
struct trimeshvi {
unsigned int vtxCount;
dReal *vtx;
dTriIndex *indices;
unsigned int indexCount;
};
struct convexfvp {
unsigned int faceCount;
dReal *faces;
unsigned int vtxCount;
dReal *vtx;
unsigned int *polygons;
};
dReal dDot(const dReal *a, const dReal *b, int n);
void SetScaleLimit(dReal sclim);
void Cross3(dReal *c, dReal *a, dReal *b);
void Normal4(dReal *n, dReal *v);
void RecalcFaces(convexfvp *fvp);
void FreeTriMeshVI(trimeshvi *tmv, bool ff);
void FreeConvexFVP(convexfvp *fvp, bool ff);
trimeshvi *CvtTriMeshVIFromConvexFVP(convexfvp *fvp, dReal sc);
convexfvp *CvtConvexFVPFromTriMeshVI(trimeshvi *tmv, dReal sc);
trimeshvi *ScaleTriMeshVI(trimeshvi *tmv, dReal sc);
trimeshvi *CopyTriMeshVI(trimeshvi *dst, trimeshvi *src, dReal sc);
convexfvp *ScaleConvexFVP(convexfvp *fvp, dReal sc);
convexfvp *CopyConvexFVP(convexfvp *dst, convexfvp *src, dReal sc);
}
#endif