PFSimpleTest.h

Go to the documentation of this file.
00001 
00010 /**********************************************************************
00011  *<
00012     CREATED BY: Oleg Bayborodin
00013 
00014     HISTORY: created 05-28-2002
00015 
00016  *> Copyright (c) 2001, All Rights Reserved.
00017  **********************************************************************/
00018 
00019 #pragma once
00020 
00021 #include "PFExport.h"
00022 #include "PFSimpleAction.h"
00023 #include "IPFTest.h"
00024 #include "..\iparamb2.h"
00025 
00026 class PFSimpleTest: public PFSimpleAction, 
00027                     public IPFTest
00028 {
00029 public:
00030     // constructor: inherited as a base class constructor
00031     PFSimpleTest() { _activeIcon() = _trueIcon() = _falseIcon() = NULL; }
00032     PFExport virtual ~PFSimpleTest();
00033 
00041     PFExport virtual BaseInterface* GetInterface(Interface_ID id);
00042 #pragma warning(push)
00043 #pragma warning(disable:4100)
00044 
00048     virtual bool    Proceed(IObject* pCont, PreciseTimeValue timeStart, PreciseTimeValue& timeEnd, 
00049                             Object* pSystem, INode* pNode, INode* actionNode, IPFIntegrator* integrator, 
00050                             BitArray& testResult, Tab<float>& testTime) { return false; }
00051 #pragma warning(pop)
00052 
00056     PFExport void ProceedStep1(IObject* pCont, Object* pSystem, INode* pNode, INode* actionNode, FPInterface* integrator);
00057 
00062     PFExport bool ProceedStep2(TimeValue timeStartTick, float timeStartFraction, TimeValue& timeEndTick, float& timeEndFraction, BitArray& testResult, Tab<float>& testTime);
00063 
00066 protected:
00067         // const access to class members
00068         const IObject*      containerFnPub()        const   { return m_containerFnPub; }
00069         const Object*       particleSystemFnPub()   const   { return m_particleSystemFnPub; }
00070         const INode*        particleNodeFnPub()     const   { return m_particleNodeFnPub; }
00071         const INode*        actionNodeFnPub()       const   { return m_actionNodeFnPub; }
00072         const FPInterface*  integratorFnPub()       const   { return m_integratorFnPub; }
00073         HBITMAP             activeIcon()            const   { return m_activeIcon; }
00074         HBITMAP             trueIcon()              const   { return m_trueIcon; }
00075         HBITMAP             falseIcon()             const   { return m_falseIcon; }
00076 
00077         // access to class members
00078         IObject*&       _containerFnPub()       { return m_containerFnPub; }
00079         Object*&        _particleSystemFnPub()  { return m_particleSystemFnPub; }
00080         INode*&         _particleNodeFnPub()    { return m_particleNodeFnPub; }
00081         INode*&         _actionNodeFnPub()      { return m_actionNodeFnPub; }
00082         FPInterface*&   _integratorFnPub()      { return m_integratorFnPub; }
00083         HBITMAP&        _activeIcon()           { return m_activeIcon; }
00084         HBITMAP&        _trueIcon()             { return m_trueIcon; }
00085         HBITMAP&        _falseIcon()            { return m_falseIcon; }
00086 
00087 private:
00088         // to support FnPub two-step Proceed
00089         IObject* m_containerFnPub;
00090         Object* m_particleSystemFnPub;
00091         INode* m_particleNodeFnPub;
00092         INode* m_actionNodeFnPub;
00093         FPInterface* m_integratorFnPub;
00094 
00095         // for custom icons
00096         HBITMAP m_activeIcon;
00097         HBITMAP m_trueIcon;
00098         HBITMAP m_falseIcon;
00099 };
00100 
00101