HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SIM_PopGeometry.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_PopGeometry_h__
9 #define __SIM_PopGeometry_h__
10 
11 #include "SIMZ_API.h"
12 #include <POP/POP_ContextData.h>
13 #include <SIM/SIM_GeometryCopy.h>
14 #include "SIMZ_Utils.h"
15 
16 class UT_IStream;
17 class SIM_Object;
18 
19 // This SIM_Geometry implementation gets geometry from a POP.
21 {
22 public:
24 
25  POP_ContextData &getContextData();
26  const POP_ContextData &getContextData() const;
27 
28  void cacheGuides(const SIM_Data *owner);
29  void cacheGuides(const SIM_Data *owner, const UT_Array<GU_DetailHandle> &guidelist);
30  const UT_Array<GU_DetailHandle> *getGuideCache(const SIM_Data *owner) const;
31 
32  void resetGuides(SIM_Time time);
33 
34  virtual void setOwnGeometrySubclass(const GU_DetailHandle &gdh);
35 
36 protected:
37  explicit SIM_PopGeometry(const SIM_DataFactory *factory);
38  virtual ~SIM_PopGeometry();
39 
40  virtual void initializeSubclass();
41  virtual bool loadSubclass(UT_IStream &is);
42  virtual int64 getMemorySizeSubclass() const;
43  virtual void makeEqualSubclass(const SIM_Data *source);
44 
45 private:
46  POP_ContextData myContextData;
47 
49  UT_ValArray< const SIM_Data * > myGuideOwners;
50  SIM_Time myGuideTime;
51 
55  "POP Geometry",
57 };
58 
59 #endif
60 
#define SIMZ_API
Definition: SIMZ_API.h:10
#define DECLARE_STANDARD_GETCASTTOTYPE()
Definition: SIM_DataUtils.h:45
#define GETSET_DATA_FUNCS_B(DataName, FuncName)
#define DECLARE_DATAFACTORY(DataClass, SuperClass, Description, DopParms)
Definition: SIM_DataUtils.h:58
long long int64
Definition: SYS_Types.h:100
virtual bool loadSubclass(UT_IStream &is)
Loads our attributes and internal data if it was set when we saved.
GLsizei GLsizei GLchar * source
Definition: glcorearb.h:802
virtual void makeEqualSubclass(const SIM_Data *source)
virtual void setOwnGeometrySubclass(const GU_DetailHandle &gdh)
virtual void initializeSubclass()
Initializes this data by clearing our internal geometry and transform.
#define SIM_NAME_NEEDSRESET
Definition: SIMZ_Utils.h:23
virtual int64 getMemorySizeSubclass() const
static const SIM_DopDescription * getEmptyDopDescription()
A DOP description that says not to create an automatic DOP.
This implements a SIM_Geometry that copies the source geometry.