00001 /* 00002 * PROPRIETARY INFORMATION. This software is proprietary to 00003 * Side Effects Software Inc., and is not to be reproduced, 00004 * transmitted, or disclosed in any way without written permission. 00005 * 00006 * Produced by: 00007 * Side Effects Software Inc. 00008 * 123 Front Street West, Suite 1401 00009 * Toronto, Ontario 00010 * Canada M5J 2M2 00011 * 416-504-9876 00012 */ 00013 00014 #ifndef __SIM_ObjectSolveInfo_h__ 00015 #define __SIM_ObjectSolveInfo_h__ 00016 00017 #include "SIM_API.h" 00018 #include <UT/UT_PtrArray.h> 00019 00020 class SIM_Solver; 00021 class SIM_Object; 00022 class SIM_ObjectSolveInfo; 00023 00024 typedef UT_PtrArray<SIM_ObjectSolveInfo *> SIM_ObjectSolveInfoArray; 00025 00026 /// This is a simple virtual base class for information that can be stored 00027 /// on a SIM_Object during a solve. This object specific solve info is 00028 /// automatically deleted by the engine at the end of a solve. All objects 00029 /// involved in the solve in any way have this data cleared, so the solver 00030 /// can use this data for objects being solved, feedback object, and one 00031 /// way affector objects. 00032 class SIM_API SIM_ObjectSolveInfo 00033 { 00034 public: 00035 SIM_ObjectSolveInfo(const SIM_Solver *createdbysolver, 00036 const SIM_Object *object); 00037 virtual ~SIM_ObjectSolveInfo(); 00038 00039 const SIM_Solver *getCreatedBySolver() const; 00040 00041 static void clearAllSolveInfo(); 00042 00043 private: 00044 const SIM_Solver *myCreatedBySolver; 00045 const SIM_Object *myObject; 00046 00047 static SIM_ObjectSolveInfoArray theSolveInfos; 00048 static bool theClearingSolveInfos; 00049 }; 00050 00051 #endif
1.5.9