Go to the
documentation of this file.
00001
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #pragma once
00015
00016 #include "PFExport.h"
00017 #include "PreciseTimeValue.h"
00018 #include "..\ifnpub.h"
00019 #include "..\object.h"
00020
00021 class IPFIntegrator;
00022
00023 PFExport Object* GetPFObject(Object* obj);
00024
00025 #define PFOPERATOR_INTERFACE Interface_ID(0x74f93d01, 0x1eb34500)
00026 #define GetPFOperatorInterface(obj) ((IPFOperator*)((GetPFObject(obj))->GetInterface(PFOPERATOR_INTERFACE)))
00027
00028
00029 class IPFOperator : public FPMixinInterface
00030 {
00031 public:
00032
00033
00034 enum { kProceed
00035 };
00036
00037
00038
00039 BEGIN_FUNCTION_MAP
00040
00041 FN_7(kProceed, TYPE_bool, Proceed, TYPE_IOBJECT, TYPE_TIMEVALUE, TYPE_TIMEVALUE_BR, TYPE_OBJECT, TYPE_INODE, TYPE_INODE, TYPE_INTERFACE);
00042
00043 END_FUNCTION_MAP
00044
00092 virtual bool Proceed(IObject* pCont, PreciseTimeValue timeStart, PreciseTimeValue& timeEnd, Object* pSystem, INode* pNode, INode* actioNode, IPFIntegrator* integrator) = 0;
00093
00097 PFExport bool Proceed(IObject* pCont, TimeValue timeStart, TimeValue& timeEnd, Object* pSystem, INode* pNode, INode* actionNode, FPInterface* integrator);
00098 #pragma warning(push)
00099 #pragma warning(disable:4100)
00100
00109 virtual bool HasPreProceed(IObject* pCont, PreciseTimeValue timeStart, PreciseTimeValue& timeEnd) { return false; }
00110
00114 virtual void PreProceedBegin(IObject* pCont, PreciseTimeValue timeStart, PreciseTimeValue& timeEnd) { ; }
00115
00119 virtual void PreProceedEnd(IObject* pCont, PreciseTimeValue timeStart, PreciseTimeValue& timeEnd) { ; }
00120
00131 virtual bool HasPostProceed(IObject* pCont, PreciseTimeValue time) { return false; }
00132
00136 virtual void PostProceedBegin(IObject* pCont, PreciseTimeValue time) { ; }
00137
00141 virtual void PostProceedEnd(IObject* pCont, PreciseTimeValue time) { ; }
00142 #pragma warning(pop)
00143
00146 FPInterfaceDesc* GetDesc() { return GetDescByID(PFOPERATOR_INTERFACE); }
00147
00150 };
00151
00152 inline IPFOperator* PFOperatorInterface(Object* obj) {
00153 return ((obj == NULL) ? NULL : GetPFOperatorInterface(obj));
00154 };
00155
00156 inline IPFOperator* PFOperatorInterface(INode* node) {
00157 return ((node == NULL) ? NULL : PFOperatorInterface(node->GetObjectRef()));
00158 };
00159