$search
00001 #ifndef _PARALLEL_STEPPER_H_ 00002 #define _PARALLEL_STEPPER_H_ 00003 00004 #include <ode/ode.h> 00005 00006 #include "util.h" 00007 00008 // TOOD: Add this struct to ode/src/objetcs.h 00009 00010 // Parallel-step parameters 00011 struct dxParallelStepParameters { 00012 int syncType; 00013 int reduceType; 00014 }; 00015 00016 void dxParallelProcessIslands (dxWorld *world, dReal stepsize, dstepper_fn_t stepper); 00017 00018 void dxParallelQuickStepper ( //dxWorldProcessContext *shared_context, 00019 dxWorldProcessContext *context, 00020 dxWorld *world, dxBody * const *body, int nb, 00021 dxJoint * const *_joint, int _nj, dReal stepsize); 00022 00023 bool dxReallocateParallelWorldProcessContext (dxWorld *world, dReal stepsize, dmemestimate_fn_t stepperestimate); 00024 00025 size_t dxEstimateParallelStepMemoryRequirements ( dxBody * const *body, int nb, dxJoint * const *_joint, int _nj); 00026 00027 template<typename T> 00028 void compute_invM_JT (int m, const T* J, T* iMJ, int *jb, 00029 dxBody * const *body, const T* invI); 00030 00031 template<typename T> 00032 void compute_Adcfm_b (int m, T sor_w, T* J, const T* iMJ, int* jb, const T* cfm, 00033 T* Adcfm, T* b); 00034 00035 00036 #endif