Go to the
documentation of this file.
00001
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #pragma once
00021
00022 #include "PFExport.h"
00023 #include "PreciseTimeValue.h"
00024 #include "..\ifnpub.h"
00025
00026
00027 #define PFINTEGRATOR_INTERFACE Interface_ID(0x74f93d03, 0x1eb34500)
00028
00029 #define GetPFIntegratorInterface(obj) ((IPFIntegrator*)obj->GetInterface(PFINTEGRATOR_INTERFACE))
00030
00031
00032 enum { kPFIntegrator_proceedSync,
00033 kPFIntegrator_proceedASync
00034 };
00035
00036 class IPFIntegrator : public FPMixinInterface
00037 {
00038
00039 BEGIN_FUNCTION_MAP
00040 FN_5(kPFIntegrator_proceedSync, TYPE_bool, ProceedSync, TYPE_IOBJECT, TYPE_TIMEVALUE, TYPE_FLOAT, TYPE_bool, TYPE_BITARRAY);
00041 FN_5(kPFIntegrator_proceedASync, TYPE_bool, ProceedASync, TYPE_IOBJECT, TYPE_TIMEVALUE_TAB, TYPE_FLOAT_TAB, TYPE_bool, TYPE_BITARRAY);
00042
00043 END_FUNCTION_MAP
00044
00045 public:
00046
00066 virtual bool Proceed(IObject* pCont, PreciseTimeValue time, int index) = 0;
00067
00071 virtual bool Proceed(IObject* pCont, PreciseTimeValue time) = 0;
00072
00076 virtual bool Proceed(IObject* pCont, Tab<PreciseTimeValue>& times) = 0;
00077
00081 virtual bool Proceed(IObject* pCont, PreciseTimeValue time, BitArray& selected) = 0;
00082
00086 virtual bool Proceed(IObject* pCont, Tab<PreciseTimeValue>& times, BitArray& selected) = 0;
00087
00101 PFExport bool ProceedSync(IObject* pCont, TimeValue timeTick, float timeFraction,
00102 bool isSelected, BitArray* selected);
00103
00117 PFExport bool ProceedASync(IObject* pCont, Tab<TimeValue> *timeTicks, Tab<float> *timeFractions,
00118 bool isSelected, BitArray* selected);
00119
00126 virtual IPFIntegrator* GetEncapsulatedIntegrator() { return NULL; }
00127
00132 PFExport bool HasEncapsulatedIntegrator(IPFIntegrator* integrator);
00133
00137 FPInterfaceDesc* GetDesc() { return GetDescByID(PFINTEGRATOR_INTERFACE); }
00138
00142 friend PFExport IPFIntegrator* GetPFIntegrator();
00143
00147 friend PFExport void ReleasePFIntegrator(IPFIntegrator*);
00148
00149 protected:
00150 static Tab<IObject*> m_objs;
00151 };
00152
00153 PFExport IPFIntegrator* GetPFIntegrator();
00154
00155
00156 PFExport void ReleasePFIntegrator(IPFIntegrator* integrator);
00157
00158