0031682: Visualization - Prs3d_ShadingAspect::SetTransparency() has no effect with...
[occt.git] / src / StdObject / StdObject_Location.hxx
index 9bfa7aa..7c729d4 100644 (file)
 #ifndef _StdObject_Location_HeaderFile
 #define _StdObject_Location_HeaderFile
 
-#include <StdObjMgt_ContentTypes.hxx>
+#include <StdObjMgt_ReadData.hxx>
+#include <StdObjMgt_WriteData.hxx>
+#include <StdObjMgt_Persistent.hxx>
+#include <StdObjMgt_TransientPersistentMap.hxx>
 
 #include <TopLoc_Location.hxx>
 
-
-class StdObject_Location : private StdObjMgt_ContentTypes
+class StdObject_Location
 {
 public:
-  //! Read persistent data from a file.
-  inline void Read (StdObjMgt_ReadData& theReadData)
-    { theReadData >> myData; }
+
+  //! Gets persistent child objects
+  Standard_EXPORT void PChildren(StdObjMgt_Persistent::SequenceOfPersistent& theChildren) const;
 
   //! Import transient object from the persistent data.
   TopLoc_Location Import() const;
 
+  //! Creates a persistent wrapper object for a location
+  Standard_EXPORT static StdObject_Location Translate (const TopLoc_Location& theLoc,
+                                                       StdObjMgt_TransientPersistentMap& theMap);
+
 private:
-  Reference<> myData;
+  Handle(StdObjMgt_Persistent) myData;
+
+  friend StdObjMgt_ReadData& operator >>
+    (StdObjMgt_ReadData&, StdObject_Location&);
+  friend StdObjMgt_WriteData& operator <<
+    (StdObjMgt_WriteData&, const StdObject_Location&);
 };
 
+//! Read persistent data from a file.
+inline StdObjMgt_ReadData& operator >>
+  (StdObjMgt_ReadData& theReadData, StdObject_Location& theLocation)
+{
+  StdObjMgt_ReadData::ObjectSentry aSentry (theReadData);
+  return theReadData >> theLocation.myData;
+}
+
+//! Write persistent data to a file.
+inline StdObjMgt_WriteData& operator <<
+  (StdObjMgt_WriteData& theWriteData, const StdObject_Location& theLocation)
+{
+  StdObjMgt_WriteData::ObjectSentry aSentry (theWriteData);
+  return theWriteData << theLocation.myData;
+}
+
 #endif