00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __CS_IVARIA_ODE_H__
00020 #define __CS_IVARIA_ODE_H__
00021
00022 SCF_VERSION (iODEFrameUpdateCallback, 0, 0, 1);
00023
00029 struct iODEFrameUpdateCallback : public iBase
00030 {
00032 virtual void Execute (float stepsize) = 0;
00033 };
00034
00035 SCF_VERSION (iODEDynamicState, 0, 0, 1);
00036
00042 struct iODEDynamicState : public iBase
00043 {
00044
00046 virtual void SetGlobalERP (float erp) = 0;
00047 virtual float GlobalERP () = 0;
00048
00050 virtual void SetGlobalCFM (float cfm) = 0;
00051 virtual float GlobalCFM () = 0;
00052
00054 virtual void EnableStepFast (bool enable) = 0;
00055 virtual bool StepFastEnabled () = 0;
00056 virtual void SetStepFastIterations (int iter) = 0;
00057 virtual int StepFastIterations () = 0;
00058
00074 virtual void EnableFrameRate (bool enable) = 0;
00075 virtual bool FrameRateEnabled () = 0;
00076
00077 virtual void SetFrameRate (float hz) = 0;
00078 virtual float FrameRate () = 0;
00079
00080 virtual void SetFrameLimit (float hz) = 0;
00081 virtual float FrameLimit () = 0;
00082
00083 virtual void AddFrameUpdateCallback (iODEFrameUpdateCallback *cb) = 0;
00084 virtual void RemoveFrameUpdateCallback (iODEFrameUpdateCallback *cb) = 0;
00085
00097 virtual void EnableFastObjects (bool enable) = 0;
00098 virtual bool FastObjectsEnabled () = 0;
00099
00100 };
00101
00102 SCF_VERSION (iODEDynamicSystemState, 0, 0, 1);
00103
00110 struct iODEDynamicSystemState : public iBase
00111 {
00117 virtual void SetERP (float erp) = 0;
00118 virtual float ERP () = 0;
00119
00125 virtual void SetCFM (float cfm) = 0;
00126 virtual float CFM () = 0;
00127
00133 virtual void EnableStepFast (bool enable) = 0;
00134 virtual bool StepFastEnabled () = 0;
00135 virtual void SetStepFastIterations (int iter) = 0;
00136 virtual int StepFastIterations () = 0;
00137
00154 virtual void EnableFrameRate (bool enable) = 0;
00155 virtual bool FrameRateEnabled () = 0;
00156
00157 virtual void SetFrameRate (float hz) = 0;
00158 virtual float FrameRate () = 0;
00159
00160 virtual void SetFrameLimit (float hz) = 0;
00161 virtual float FrameLimit () = 0;
00162
00163 virtual void AddFrameUpdateCallback (iODEFrameUpdateCallback *cb) = 0;
00164 virtual void RemoveFrameUpdateCallback (iODEFrameUpdateCallback *cb) = 0;
00165
00179 virtual void EnableFastObjects (bool enable) = 0;
00180 virtual bool FastObjectsEnabled () = 0;
00181
00182 };
00183
00184 #endif // __CS_IVARIA_ODE_H__