+var b2Vec2 = yf.argcd(
+ function (a) {
+ return b2Vec2.call(this, a[0] || a.x || 0.0, a[1] || a.y || 0.0);
+ },
+ Box2D.b2Vec2
+);
+
+
+yf.ipairs(function (k, v) { Box2D[k] = Box2D[v]; }, {
+ DYNAMIC_BODY: 'b2_dynamicBody'
+});
+
+function camelizeCase (s) {
+ return s.replace(/_([a-z])/g, function (m) {
+ return m[1].toUpperCase();
+ });
+}
+
+function wrapEmscriptenType (T) {
+ var P = T.prototype;
+ var keys = Object.keys(P);
+ var members = keys.filter(function (k) { return k.startsWith("get_"); });
+ var accessors = keys.filter(function (k) { return k.startsWith("Get"); });
+ members.forEach(function (k) {
+ var name = camelizeCase(k.slice(4));
+ if (!name || name in P) return;
+ Object.defineProperty(P, name, {
+ get: P[k], set: P['s' + k.slice(1)]
+ });
+
+ });
+ accessors.forEach(function (k) {
+ var name = k.slice(3);
+ name = name[0].toLowerCase() + name.slice(1);
+ if (!name || name in P) return;
+ Object.defineProperty(P, name, {
+ get: P[k], set: P['S' + k.slice(1)]
+ });
+
+ });
+}
+
+yf.each(wrapEmscriptenType, [
+ Box2D.b2Vec2, Box2D.b2BodyDef, Box2D.b2Body,
+ Box2D.b2JointDef, Box2D.b2RevoluteJointDef,
+ Box2D.b2Joint, Box2D.b2DistanceJoint, Box2D.b2RevoluteJoint,
+]);
+
+yT.defineProperties(Box2D.b2Vec2.prototype, {
+ 0: { alias: 'x' },
+ 1: { alias: 'y' },
+});
+
+