00001 #ifdef CHIPMUNK_FFI
00002
00003
00004
00005
00006 #ifdef _MSC_VER
00007 #if _MSC_VER >= 1600
00008 #define MAKE_REF(name) decltype(name) *_##name = name
00009 #else
00010 #define MAKE_REF(name)
00011 #endif
00012 #else
00013 #define MAKE_REF(name) __typeof__(name) *_##name = name
00014 #endif
00015
00016 #define MAKE_PROPERTIES_REF(struct, property) \
00017 MAKE_REF(struct##Get##property); MAKE_REF(struct##Set##property);
00018
00019 MAKE_REF(cpv);
00020 MAKE_REF(cpveql);
00021 MAKE_REF(cpvadd);
00022 MAKE_REF(cpvneg);
00023 MAKE_REF(cpvsub);
00024 MAKE_REF(cpvmult);
00025 MAKE_REF(cpvdot);
00026 MAKE_REF(cpvcross);
00027 MAKE_REF(cpvperp);
00028 MAKE_REF(cpvrperp);
00029 MAKE_REF(cpvproject);
00030 MAKE_REF(cpvrotate);
00031 MAKE_REF(cpvunrotate);
00032 MAKE_REF(cpvlengthsq);
00033 MAKE_REF(cpvlerp);
00034 MAKE_REF(cpvnormalize);
00035 MAKE_REF(cpvnormalize_safe);
00036 MAKE_REF(cpvclamp);
00037 MAKE_REF(cpvlerpconst);
00038 MAKE_REF(cpvdist);
00039 MAKE_REF(cpvdistsq);
00040 MAKE_REF(cpvnear);
00041
00042 MAKE_REF(cpfmax);
00043 MAKE_REF(cpfmin);
00044 MAKE_REF(cpfabs);
00045 MAKE_REF(cpfclamp);
00046 MAKE_REF(cpflerp);
00047 MAKE_REF(cpflerpconst);
00048
00049 MAKE_REF(cpBBNew);
00050 MAKE_REF(cpBBNewForCircle);
00051 MAKE_REF(cpBBIntersects);
00052 MAKE_REF(cpBBContainsBB);
00053 MAKE_REF(cpBBContainsVect);
00054 MAKE_REF(cpBBMerge);
00055 MAKE_REF(cpBBExpand);
00056 MAKE_REF(cpBBArea);
00057 MAKE_REF(cpBBMergedArea);
00058 MAKE_REF(cpBBSegmentQuery);
00059 MAKE_REF(cpBBIntersectsSegment);
00060
00061 MAKE_REF(cpBodyGetMass);
00062 MAKE_REF(cpBodyGetMoment);
00063 MAKE_REF(cpBodyGetPos);
00064 MAKE_REF(cpBodyGetAngle);
00065 MAKE_REF(cpBodyGetRot);
00066 MAKE_PROPERTIES_REF(cpBody, Vel);
00067 MAKE_PROPERTIES_REF(cpBody, Force);
00068 MAKE_PROPERTIES_REF(cpBody, AngVel);
00069 MAKE_PROPERTIES_REF(cpBody, Torque);
00070 MAKE_PROPERTIES_REF(cpBody, VelLimit);
00071 MAKE_PROPERTIES_REF(cpBody, AngVelLimit);
00072 MAKE_PROPERTIES_REF(cpBody, UserData);
00073 MAKE_REF(cpBodyIsSleeping);
00074 MAKE_REF(cpBodyIsStatic);
00075 MAKE_REF(cpBodyIsRogue);
00076 MAKE_REF(cpBodyLocal2World);
00077 MAKE_REF(cpBodyWorld2Local);
00078 MAKE_REF(cpBodyKineticEnergy);
00079
00080 MAKE_REF(cpShapeGetBB);
00081 MAKE_PROPERTIES_REF(cpShape, Body);
00082 MAKE_PROPERTIES_REF(cpShape, Sensor);
00083 MAKE_PROPERTIES_REF(cpShape, Elasticity);
00084 MAKE_PROPERTIES_REF(cpShape, Friction);
00085 MAKE_PROPERTIES_REF(cpShape, SurfaceVelocity);
00086 MAKE_PROPERTIES_REF(cpShape, UserData);
00087 MAKE_PROPERTIES_REF(cpShape, CollisionType);
00088 MAKE_PROPERTIES_REF(cpShape, Group);
00089 MAKE_PROPERTIES_REF(cpShape, Layers);
00090
00091 MAKE_REF(cpArbiterGetShapes);
00092 MAKE_REF(cpArbiterGetBodies);
00093 MAKE_REF(cpArbiterIsFirstContact);
00094 MAKE_REF(cpArbiterGetCount);
00095
00096 MAKE_REF(cpConstraintGetA);
00097 MAKE_REF(cpConstraintGetB);
00098 MAKE_PROPERTIES_REF(cpConstraint, MaxForce);
00099 MAKE_PROPERTIES_REF(cpConstraint, ErrorBias);
00100 MAKE_PROPERTIES_REF(cpConstraint, MaxBias);
00101 MAKE_PROPERTIES_REF(cpConstraint, UserData);
00102 MAKE_REF(cpConstraintGetImpulse);
00103
00104 MAKE_PROPERTIES_REF(cpDampedRotarySpring, RestAngle);
00105 MAKE_PROPERTIES_REF(cpDampedRotarySpring, Stiffness);
00106 MAKE_PROPERTIES_REF(cpDampedRotarySpring, Damping);
00107
00108
00109 MAKE_PROPERTIES_REF(cpDampedSpring, Anchr1);
00110 MAKE_PROPERTIES_REF(cpDampedSpring, Anchr2);
00111 MAKE_PROPERTIES_REF(cpDampedSpring, RestLength);
00112 MAKE_PROPERTIES_REF(cpDampedSpring, Stiffness);
00113 MAKE_PROPERTIES_REF(cpDampedSpring, Damping);
00114
00115
00116 MAKE_PROPERTIES_REF(cpGearJoint, Phase);
00117 MAKE_REF(cpGearJointGetRatio);
00118
00119 MAKE_PROPERTIES_REF(cpGrooveJoint, Anchr2);
00120 MAKE_REF(cpGrooveJointGetGrooveA);
00121 MAKE_REF(cpGrooveJointGetGrooveB);
00122
00123 MAKE_PROPERTIES_REF(cpPinJoint, Anchr1);
00124 MAKE_PROPERTIES_REF(cpPinJoint, Anchr2);
00125 MAKE_PROPERTIES_REF(cpPinJoint, Dist);
00126
00127 MAKE_PROPERTIES_REF(cpPivotJoint, Anchr1);
00128 MAKE_PROPERTIES_REF(cpPivotJoint, Anchr2);
00129
00130 MAKE_PROPERTIES_REF(cpRatchetJoint, Angle);
00131 MAKE_PROPERTIES_REF(cpRatchetJoint, Phase);
00132 MAKE_PROPERTIES_REF(cpRatchetJoint, Ratchet);
00133
00134 MAKE_PROPERTIES_REF(cpRotaryLimitJoint, Min);
00135 MAKE_PROPERTIES_REF(cpRotaryLimitJoint, Max);
00136
00137 MAKE_PROPERTIES_REF(cpSimpleMotor, Rate);
00138
00139 MAKE_PROPERTIES_REF(cpSlideJoint, Anchr1);
00140 MAKE_PROPERTIES_REF(cpSlideJoint, Anchr2);
00141 MAKE_PROPERTIES_REF(cpSlideJoint, Min);
00142 MAKE_PROPERTIES_REF(cpSlideJoint, Max);
00143
00144 MAKE_REF(cpSegmentQueryHitPoint);
00145 MAKE_REF(cpSegmentQueryHitDist);
00146
00147 MAKE_REF(cpSpatialIndexDestroy);
00148 MAKE_REF(cpSpatialIndexCount);
00149 MAKE_REF(cpSpatialIndexEach);
00150 MAKE_REF(cpSpatialIndexContains);
00151 MAKE_REF(cpSpatialIndexInsert);
00152 MAKE_REF(cpSpatialIndexRemove);
00153 MAKE_REF(cpSpatialIndexReindex);
00154 MAKE_REF(cpSpatialIndexReindexObject);
00155 MAKE_REF(cpSpatialIndexPointQuery);
00156 MAKE_REF(cpSpatialIndexSegmentQuery);
00157 MAKE_REF(cpSpatialIndexQuery);
00158 MAKE_REF(cpSpatialIndexReindexQuery);
00159
00160 MAKE_PROPERTIES_REF(cpSpace, Iterations);
00161 MAKE_PROPERTIES_REF(cpSpace, Gravity);
00162 MAKE_PROPERTIES_REF(cpSpace, Damping);
00163 MAKE_PROPERTIES_REF(cpSpace, IdleSpeedThreshold);
00164 MAKE_PROPERTIES_REF(cpSpace, SleepTimeThreshold);
00165 MAKE_PROPERTIES_REF(cpSpace, CollisionSlop);
00166 MAKE_PROPERTIES_REF(cpSpace, CollisionBias);
00167 MAKE_PROPERTIES_REF(cpSpace, CollisionPersistence);
00168 MAKE_PROPERTIES_REF(cpSpace, EnableContactGraph);
00169 MAKE_PROPERTIES_REF(cpSpace, UserData);
00170 MAKE_REF(cpSpaceGetStaticBody);
00171 MAKE_REF(cpSpaceGetCurrentTimeStep);
00172 MAKE_REF(cpSpaceIsLocked);
00173
00174 #endif