



DS_API.dsSetOutputNull()
at the beginning of any demo.OdeHelper.allocateODEDataForThread(int)
does not need to be called as it does nothing (and never did). Actually
it will be removed in one of the next releases.OdeHelper.init2(...) needs to be called only once
per application, not for every thread (in fact, calling it multiple
times should fail).OdeHelper.init2(...) needs to have returned before
any thread uses ode4j.OdeHelper
(initialisation methods and a factory for creating
most classes), OdeConfig (for configuration) and OdeConstants
(providing many of the contants used in ode4j).DVector3
and DMatrix3 classes.DVector3C and DMatrix3C
interfaces that provide immutable encapsulation.OdeHelper.
For
example: dInitOde2(...) -> OdeHelper.initOde2(...).OdeHelper.createMass().dJointAttach( myJoint, b1, b2 ) becomes myJoint.attach(
b1,
b2 ). This is also valid when looking for C++ function names
in ODE itself.dJointSetPistonAnchor ( piston, ... );
becomes piston.setAnchor ( ... ); .DVector3 result = new DVector3();
box.getSides( result );DVector3C result = box.getLengths(); //The
trailing 'C' on DVector3C and other classes
indicates and constant / immutable object.