HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SIM_ObjectSolveInfo.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5  *
6  */
7 
8 #ifndef __SIM_ObjectSolveInfo_h__
9 #define __SIM_ObjectSolveInfo_h__
10 
11 #include "SIM_API.h"
12 #include <UT/UT_ValArray.h>
13 
14 class SIM_Solver;
15 class SIM_Object;
17 class SIM_Engine;
18 
20 
21 /// This is a simple virtual base class for information that can be stored
22 /// on a SIM_Object during a solve. This object specific solve info is
23 /// automatically deleted by the engine at the end of a solve. All objects
24 /// involved in the solve in any way have this data cleared, so the solver
25 /// can use this data for objects being solved, feedback object, and one
26 /// way affector objects.
28 {
29 public:
30  SIM_ObjectSolveInfo(const SIM_Solver *createdbysolver,
31  const SIM_Object *object);
32  virtual ~SIM_ObjectSolveInfo();
33 
34  const SIM_Solver *getCreatedBySolver() const;
35 
36  static void clearAllSolveInfo(const SIM_Engine *engine);
37 
38 private:
39  const SIM_Solver *myCreatedBySolver;
40  const SIM_Object *myObject;
41 
42  static bool theClearingSolveInfos;
43 };
44 
45 #endif
#define SIM_API
Definition: SIM_API.h:10
UT_ValArray< SIM_ObjectSolveInfo * > SIM_ObjectSolveInfoArray