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_GuideShared_h__ 00015 #define __SIM_GuideShared_h__ 00016 00017 #include "SIM_API.h" 00018 #include "SIM_Time.h" 00019 #include "SIM_RootDataId.h" 00020 #include "SIM_Guide.h" 00021 00022 /// This SIM_Guide subclass caches the geometry and transform from the first 00023 /// object it is asked to build for. Subsequent requests for other objects 00024 /// return null geometry. This way this guide geometry will only be rendered 00025 /// once, not once for each object it is attached to. 00026 class SIM_API SIM_GuideShared : public SIM_Guide 00027 { 00028 public: 00029 /// Constructor which takes a const SIM_Data as our owner. 00030 explicit SIM_GuideShared(const SIM_Data *owner, 00031 bool displayonce); 00032 /// Destructor for this class. 00033 virtual ~SIM_GuideShared(); 00034 00035 protected: 00036 virtual GU_ConstDetailHandle getGuideGeometrySubclass( 00037 const SIM_RootData &root, 00038 UT_DMatrix4 &xform, 00039 const SIM_Time &t); 00040 virtual int64 getMemorySizeSubclass() const; 00041 virtual void clearSubclass(); 00042 00043 private: 00044 GU_DetailHandle myDetailHandle; 00045 SIM_RootDataId myCachedObjectId; 00046 const bool myDisplayOnce; 00047 }; 00048 00049 #endif 00050
1.5.9