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 * 477 Richmond Street West, Suite 1001 00009 * Toronto, Ontario 00010 * Canada M5V 3E7 00011 * 416-504-9876 00012 */ 00013 00014 #ifndef __SIM_GuidePerObject_h__ 00015 #define __SIM_GuidePerObject_h__ 00016 00017 #include "SIM_API.h" 00018 #include <UT/UT_HashTable.h> 00019 #include "SIM_Guide.h" 00020 00021 /// This SIM_Guide subclass creates a separate guide geometry for each object. 00022 class SIM_API SIM_GuidePerObject : public SIM_Guide 00023 { 00024 public: 00025 /// Constructor which takes a const SIM_Data as our owner. 00026 explicit SIM_GuidePerObject(const SIM_Data *owner); 00027 /// Destructor for this class. 00028 virtual ~SIM_GuidePerObject(); 00029 00030 protected: 00031 virtual GU_ConstDetailHandle getGuideGeometrySubclass( 00032 const SIM_RootData &root, 00033 UT_DMatrix4 &xform, 00034 const SIM_Time &t); 00035 virtual int64 getMemorySizeSubclass() const; 00036 virtual void clearSubclass(); 00037 00038 private: 00039 static int traverseGetSize(UT_Thing &thing, 00040 const UT_Hash &, 00041 void *); 00042 static int traverseDelete(UT_Thing &thing, 00043 const UT_Hash &, 00044 void *); 00045 00046 UT_HashTable myGeometries; 00047 }; 00048 00049 #endif 00050
1.5.9