00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 INLINE bool OdeWorld::
00024 is_empty() const {
00025 return (_id == 0);
00026 }
00027
00028
00029
00030
00031
00032
00033 INLINE dWorldID OdeWorld::
00034 get_id() const {
00035 return _id;
00036 }
00037
00038 INLINE void OdeWorld::
00039 set_gravity(dReal x, dReal y, dReal z) {
00040 dWorldSetGravity(_id, x, y, z);
00041 }
00042
00043 INLINE void OdeWorld::
00044 set_gravity(const LVecBase3f &vec) {
00045 dWorldSetGravity(_id, vec[0], vec[1], vec[2]);
00046 }
00047
00048 INLINE LVecBase3f OdeWorld::
00049 get_gravity() const {
00050 dVector3 gravity;
00051 dWorldGetGravity(_id, gravity);
00052
00053 return LVecBase3f(gravity[0],gravity[1],gravity[2]);
00054 }
00055
00056 INLINE void OdeWorld::
00057 set_erp(dReal erp) {
00058 dWorldSetERP(_id, erp);
00059 }
00060
00061 INLINE dReal OdeWorld::
00062 get_erp() const {
00063 return dWorldGetERP(_id);
00064 }
00065
00066 INLINE void OdeWorld::
00067 set_cfm(dReal cfm) {
00068 dWorldSetCFM(_id, cfm);
00069 }
00070
00071 INLINE dReal OdeWorld::
00072 get_cfm() const {
00073 return dWorldGetCFM(_id);
00074 }
00075
00076 INLINE void OdeWorld::
00077 step(dReal stepsize) {
00078 dWorldStep(_id, stepsize);
00079 }
00080
00081 INLINE LVecBase3f OdeWorld::
00082 impulse_to_force(dReal stepsize, \
00083 dReal ix, dReal iy, dReal iz){
00084 dVector3 force;
00085 dWorldImpulseToForce(_id,
00086 stepsize,
00087 ix, iy, iz,
00088 force);
00089 return LVecBase3f(force[0], force[1], force[2]);
00090 }
00091
00092 INLINE LVecBase3f OdeWorld::
00093 impulse_to_force(dReal stepsize, \
00094 const LVecBase3f &impulse){
00095 dVector3 force;
00096 dWorldImpulseToForce(_id,
00097 stepsize,
00098 impulse[0], impulse[1], impulse[2],
00099 force);
00100 return LVecBase3f(force[0], force[1], force[2]);
00101 }
00102
00103 INLINE void OdeWorld::
00104 quick_step(dReal stepsize) {
00105 dWorldQuickStep(_id, stepsize);
00106 }
00107
00108 INLINE void OdeWorld::
00109 set_quick_step_num_iterations(int num) {
00110 dWorldSetQuickStepNumIterations(_id, num);
00111 }
00112
00113 INLINE int OdeWorld::
00114 get_quick_step_num_iterations() const {
00115 return dWorldGetQuickStepNumIterations(_id);
00116 }
00117
00118 INLINE void OdeWorld::
00119 set_quick_step_w(dReal over_relaxation) {
00120 dWorldSetQuickStepW(_id, over_relaxation);
00121 }
00122
00123 INLINE dReal OdeWorld::
00124 get_quick_step_w() const {
00125 return dWorldGetQuickStepW(_id);
00126 }
00127
00128 INLINE void OdeWorld::
00129 set_contact_max_correcting_vel(dReal vel) {
00130 dWorldSetContactMaxCorrectingVel(_id, vel);
00131 }
00132
00133 INLINE dReal OdeWorld::
00134 get_contact_max_correcting_vel() const {
00135 return dWorldGetContactMaxCorrectingVel(_id);
00136 }
00137
00138 INLINE void OdeWorld::
00139 set_contact_surface_layer(dReal depth) {
00140 dWorldSetContactSurfaceLayer(_id, depth);
00141 }
00142
00143 INLINE dReal OdeWorld::
00144 get_contact_surface_layer() const {
00145 return dWorldGetContactSurfaceLayer(_id);
00146 }
00147
00148 INLINE void OdeWorld::
00149 step_fast1(dReal stepsize, int maxiterations) {
00150 dWorldStepFast1(_id, stepsize, maxiterations);
00151 }
00152
00153 INLINE void OdeWorld::
00154 set_auto_enable_depth_sf1(int auto_enable_depth) {
00155 dWorldSetAutoEnableDepthSF1(_id, auto_enable_depth);
00156 }
00157
00158 INLINE int OdeWorld::
00159 get_auto_enable_depth_sf1() const {
00160 return dWorldGetAutoEnableDepthSF1(_id);
00161 }
00162
00163 INLINE dReal OdeWorld::
00164 get_auto_disable_linear_threshold() const {
00165 return dWorldGetAutoDisableLinearThreshold(_id);
00166 }
00167
00168 INLINE void OdeWorld::
00169 set_auto_disable_linear_threshold(dReal linear_threshold) {
00170 dWorldSetAutoDisableLinearThreshold(_id, linear_threshold);
00171 }
00172
00173 INLINE dReal OdeWorld::
00174 get_auto_disable_angular_threshold() const {
00175 return dWorldGetAutoDisableAngularThreshold(_id);
00176 }
00177
00178 INLINE void OdeWorld::
00179 set_auto_disable_angular_threshold(dReal angular_threshold) {
00180 dWorldSetAutoDisableAngularThreshold(_id, angular_threshold);
00181 }
00182
00183 INLINE int OdeWorld::
00184 get_auto_disable_steps() const {
00185 return dWorldGetAutoDisableSteps(_id);
00186 }
00187
00188 INLINE void OdeWorld::
00189 set_auto_disable_steps(int steps) {
00190 dWorldSetAutoDisableSteps(_id, steps);
00191 }
00192
00193 INLINE dReal OdeWorld::
00194 get_auto_disable_time() const {
00195 return dWorldGetAutoDisableTime(_id);
00196 }
00197
00198 INLINE void OdeWorld::
00199 set_auto_disable_time(dReal time) {
00200 dWorldSetAutoDisableTime(_id, time);
00201 }
00202
00203 INLINE int OdeWorld::
00204 get_auto_disable_flag() const {
00205 return dWorldGetAutoDisableFlag(_id);
00206 }
00207
00208 INLINE void OdeWorld::
00209 set_auto_disable_flag(int do_auto_disable) {
00210 dWorldSetAutoDisableFlag(_id, do_auto_disable);
00211 }
00212
00213 INLINE int OdeWorld::
00214 compare_to(const OdeWorld &other) const {
00215 if (_id != other._id) {
00216 return _id < other._id ? -1 : 1;
00217 }
00218 return 0;
00219 }